From f181442c67dac6e57d1362f2b762063bde90f297 Mon Sep 17 00:00:00 2001 From: viraladmin <00purple@gmail.com> Date: Sun, 2 Aug 2026 23:31:44 -0600 Subject: [PATCH] repository cleanup and scrollbar fix --- .gitignore | 1 + PRIVACY_POLICY.md | 142 ++++ README.md | 3 + .../assets/contractless-logo-BgfMS-Kf.png | Bin 5286 -> 0 bytes ...contractless_browser_core_bg-C_vtp2Os.wasm | Bin 703517 -> 0 bytes extension/dist/assets/popup-C5oUQoSX.css | 1 - extension/dist/assets/print-DTb91-bp.css | 1 - extension/dist/background.js | 3 - extension/dist/chrome/manifest.json | 2 +- extension/dist/chrome/popup.html | 2 +- extension/dist/chrome/popup.js | 12 +- extension/dist/chunks/core-CvwXoH-U.js | 1 - .../chunks/modulepreload-polyfill-B5Qt9EMX.js | 1 - extension/dist/content.js | 1 - extension/dist/contractless-logo.png | Bin 5286 -> 0 bytes extension/dist/firefox/manifest.json | 2 +- extension/dist/manifest.json | 45 -- extension/dist/popup.html | 635 ------------------ extension/dist/popup.js | 8 - extension/dist/print.html | 44 -- extension/dist/print.js | 1 - extension/dist/provider.js | 1 - extension/src/manifest.chrome.json | 2 +- extension/src/manifest.firefox.json | 2 +- extension/src/popup.ts | 78 ++- extension/src/wallet.css | 26 + 26 files changed, 244 insertions(+), 770 deletions(-) create mode 100644 PRIVACY_POLICY.md delete mode 100644 extension/dist/assets/contractless-logo-BgfMS-Kf.png delete mode 100644 extension/dist/assets/contractless_browser_core_bg-C_vtp2Os.wasm delete mode 100644 extension/dist/assets/popup-C5oUQoSX.css delete mode 100644 extension/dist/assets/print-DTb91-bp.css delete mode 100644 extension/dist/background.js delete mode 100644 extension/dist/chunks/core-CvwXoH-U.js delete mode 100644 extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js delete mode 100644 extension/dist/content.js delete mode 100644 extension/dist/contractless-logo.png delete mode 100644 extension/dist/manifest.json delete mode 100644 extension/dist/popup.html delete mode 100644 extension/dist/popup.js delete mode 100644 extension/dist/print.html delete mode 100644 extension/dist/print.js delete mode 100644 extension/dist/provider.js diff --git a/.gitignore b/.gitignore index 286b1e0..3e5cc04 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ core/target/ extension/node_modules/ +extension/dist/ extension/web-ext-artifacts/ tests/storage/dual-signatures/ diff --git a/PRIVACY_POLICY.md b/PRIVACY_POLICY.md new file mode 100644 index 0000000..ad72e8e --- /dev/null +++ b/PRIVACY_POLICY.md @@ -0,0 +1,142 @@ +# Contractless Web3 Wallet Privacy Policy + +Effective date: August 2, 2026 + +Contractless Web3 Wallet is a browser extension for creating and managing +Contractless blockchain wallets, connecting to compatible Web3 applications, +and reviewing, signing, and broadcasting Contractless transactions. + +## Information Contractless Does Not Collect + +Contractless Web3 Wallet does not include advertising, analytics, telemetry, +tracking, or behavioral profiling. The developer does not collect or sell: + +- names, email addresses, telephone numbers, or other identifying information; +- browsing history or general website activity; +- health information; +- personal communications; +- precise or approximate location information; or +- wallet encryption keys or private keys. + +## Information Processed Locally + +The wallet must process financial and authentication information to provide its +requested functionality. This processing occurs locally inside the browser +extension and does not make the information available to the developer. + +Locally processed information may include: + +- encrypted Contractless wallet files; +- wallet addresses, public keys, and vanity addresses; +- private keys and wallet encryption keys while the wallet is unlocked; +- balances, assets, NFTs, RWAs, loans, and transaction history; +- unsigned and signed Contractless transactions; +- website connection approvals and temporary application access keys; and +- wallet labels, network selection, API endpoints, and automatic-lock settings. + +Private keys are encrypted before being placed in persistent extension storage. +Decrypted private keys exist only while the wallet is unlocked. Locking the +wallet clears decrypted wallet material and expires active website sessions. + +## Contractless API Communication + +The extension communicates with the Contractless API selected in the wallet's +settings. Testnet defaults to `https://api.contractless.dev`. Users may replace +the API endpoint, and mainnet uses a separately configured endpoint. + +The extension sends only the information required to perform a user-requested +blockchain operation. Depending on the request, this may include: + +- a wallet address, public key, and authentication signature; +- an address, asset identifier, transaction identifier, or block identifier + required for a blockchain lookup; or +- a complete signed transaction submitted for validation and broadcast. + +Private keys and wallet encryption keys are never sent to a Contractless API, +website, blockchain node, or the extension developer. + +An API endpoint chosen by the user is operated independently and may have its +own privacy and logging practices. Users should only configure API endpoints +they trust. + +## Website Connections + +Contractless-compatible websites may request access to the wallet through the +Contractless Web3 provider. A website does not receive the active wallet address +until the user explicitly approves its connection request. + +After approval, the website receives a temporary access key associated with +that website, application identifier, wallet, and unlock session. The access +expires when the wallet locks or the user disconnects the application. + +Websites may request message signatures or transactions. The wallet displays +the request for review and requires user approval before signing. A connected +website receives only the address, signatures, transaction information, and +other results required to complete the approved request. Websites never receive +the wallet private key or encryption key. + +Contractless does not control third-party websites. Their handling of +information received after user approval is governed by their own privacy +policies. + +## Browser Permissions + +Contractless Web3 Wallet uses the following browser permissions: + +- **Storage:** Stores encrypted wallets, wallet settings, labels, and temporary + application sessions. +- **Alarms:** Enforces the user-configured automatic wallet lock timeout. +- **Clipboard write:** Copies information only after the user selects a copy + action, such as copying an address or transaction identifier. +- **Host access:** Makes the Contractless provider available to compatible + websites and communicates with the configured Contractless API. The extension + does not read or collect general webpage content. + +## Data Retention and Deletion + +Wallet information remains in browser extension storage until the user removes +it, clears the extension's storage, or uninstalls the extension. Temporary +website access information expires when the wallet locks or the application is +disconnected. + +Contractless does not maintain a separate developer-controlled database of +extension wallets or user activity. + +## Sharing and Sale of Information + +Contractless does not sell user information. Information is not used for +advertising, credit decisions, behavioral profiling, or purposes unrelated to +the wallet's user-facing functionality. + +Information is transmitted only when necessary to complete a user-requested +wallet operation, communicate with the configured Contractless API, or respond +to an explicitly approved website request. + +The use of information by Contractless Web3 Wallet is limited to providing and +improving its disclosed wallet functionality. Information is not transferred +for advertising or other unrelated purposes, and humans are not permitted to +read private wallet information except when specifically requested by the user +for support, required for security, or required by law. + +## Security + +Contractless Web3 Wallet performs cryptographic operations locally using code +and WebAssembly bundled with the extension. API communication must use HTTPS, +except when a user deliberately configures a local development endpoint. + +No system can guarantee absolute security. Users are responsible for protecting +their wallet images, private keys, encryption keys, devices, and configured API +endpoints. + +## Changes to This Policy + +This policy may be updated when wallet functionality or privacy requirements +change. Material changes will be reflected by updating this document and its +effective date. + +## Contact + +Questions or privacy concerns may be submitted through the Contractless Web3 +Wallet repository: + +https://contractless.dev/contractless/Contractless-Web3-Wallets diff --git a/README.md b/README.md index 715c1b6..f76d95c 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,9 @@ Private keys remain inside the extension. Websites receive only approved addresses, signatures, signed transaction bytes, and session-scoped access keys. +The wallet's data-handling practices are described in the +[Privacy Policy](PRIVACY_POLICY.md). + ## Integration Test The `tests/tests.html` page verifies that a website can detect the extension, diff --git a/extension/dist/assets/contractless-logo-BgfMS-Kf.png b/extension/dist/assets/contractless-logo-BgfMS-Kf.png deleted file mode 100644 index 729e4d758734de7d40045dd953e5e6ccae13c5b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5286 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 z%0A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℞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

i%IR|R&_l@C#~DyaC}rvsXEht;dN14m7n`OZdC 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�c>wsTnrCg!bi&`qTXh`=w& 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 XB!}y{nck*G#gndQcl&W$&!_wkCz)I4 diff --git a/extension/dist/assets/popup-C5oUQoSX.css b/extension/dist/assets/popup-C5oUQoSX.css deleted file mode 100644 index e5133e2..0000000 --- a/extension/dist/assets/popup-C5oUQoSX.css +++ /dev/null @@ -1 +0,0 @@ -:root{--blue: #2167a5;--blue-deep: #174d7c;--ink: #13202a;--muted-white: rgb(255 255 255 / 90%);--danger: #b9382e;--danger-soft: #fff0ee;--success: #1d8054;--dark: #0c151d;--surface: #111e28;--surface-raised: #172936;--surface-active: #1b3547;--dark-line: #314957;--dark-muted: #c4d0d7;--accent: #55c5dc;font:14px/1.45 Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{width:390px;min-width:390px;min-height:600px;margin:0;background:var(--blue);color:#fff}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.wallet-shell{position:relative;width:390px;height:600px;overflow:hidden;background:var(--blue)}.screen{width:100%;height:100%;background:var(--blue)}.screen[hidden]{display:none}.wallet-header{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid rgb(255 255 255 / 70%)}.wallet-header img{width:37px;filter:brightness(0) invert(1)}.wallet-header div{display:grid}.wallet-header strong{font-size:18px}.wallet-header small{color:var(--muted-white);font-size:14px}.wallet-header>span{margin-left:auto;font-size:13px;font-weight:700}.screen-content{padding:28px 24px 22px}.screen-content.compact{padding-top:18px}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase}h1{margin:7px 0 9px;font-size:27px;line-height:1.12;letter-spacing:0}.intro{margin:0 0 24px;color:var(--muted-white);line-height:1.5}label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.input-row{height:49px;display:grid;grid-template-columns:1fr auto;border:1px solid white;background:#fff}.input-row:focus-within,textarea:focus{outline:2px solid rgb(255 255 255 / 28%);outline-offset:2px}.input-row input{min-width:0;border:0;padding:0 13px;color:var(--ink);outline:0}.reveal{border:0;border-left:1px solid #d9e0e5;padding:0 13px;background:#fff;color:var(--blue);font-size:11px;font-weight:700}textarea{width:100%;min-height:82px;margin-bottom:13px;resize:none;border:1px solid white;padding:11px 13px;color:var(--ink);outline:0}.note{display:grid;gap:2px;margin:18px 0 23px;border-left:3px solid var(--accent);padding:13px;background:var(--surface-raised);color:#fff;font-size:12px}.note span{color:var(--dark-muted)}.compact-note{margin:12px 0 14px;padding:10px 13px}.warning{margin:18px 0 25px;border-left:3px solid var(--danger);padding:13px;background:#321c20;color:#ffbbb5;font-size:12px;line-height:1.4}.warning strong{display:block}.primary,.secondary{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--accent);background:var(--accent);color:#08202b;font-weight:700}.primary span{font-size:18px}.secondary{min-height:42px;margin-top:9px;background:transparent;color:#dcecf3;font-size:12px}.secondary:disabled{border-color:#ffffff59;color:#ffffff7f}.text-button{width:100%;margin-top:8px;border:0;padding:8px;background:transparent;color:var(--muted-white)}.divider{display:flex;align-items:center;gap:10px;margin:17px 0 12px;color:#ffffffad;font-size:12px;text-transform:uppercase}.divider:before,.divider:after{height:1px;flex:1;background:#ffffff4d;content:""}.file-heading{margin-top:20px}.file-picker{min-height:86px;display:flex;align-items:center;gap:13px;margin-bottom:24px;border:1px dashed rgb(255 255 255 / 72%);padding:14px;background:#ffffff1a;cursor:pointer}.file-picker>span:last-child{display:grid;gap:4px}.file-picker small{color:#ffffffad;font-weight:400}.file-icon{width:34px;height:34px;display:grid;flex:0 0 34px;place-items:center;border:1px solid white;font-size:22px;font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.loading-screen{position:relative}.loading-brand{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:34px}.loading-brand img,.large-logo{width:148px;filter:brightness(0) invert(1)}.spinner{width:28px;aspect-ratio:1;border:3px solid rgb(255 255 255 / 28%);border-top-color:#fff;border-radius:50%;animation:spin .85s linear infinite}.loading-screen>p{position:absolute;bottom:35px;width:100%;margin:0;color:#ffffffb8;font-size:12px;text-align:center;text-transform:uppercase}@keyframes spin{to{transform:rotate(360deg)}}.success-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid #55c98a;background:#123727;color:#66dfa0;font-size:22px;font-weight:700}.image-preview{position:relative;height:142px;margin:18px 0;overflow:hidden;border:1px solid var(--dark-line);background:var(--surface)}.image-preview img{width:100%;height:100%;display:block;object-fit:contain}.confirmation{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:14px 0;color:#ffffffd6;font-size:11px;line-height:1.35}.confirmation input{width:16px;height:16px;margin:0}.centered-content{height:100%;display:flex;flex-direction:column;justify-content:center;padding:36px 28px;text-align:center}.centered-content{align-items:stretch}.centered-content .large-logo{align-self:center;width:92px;margin-bottom:25px}.centered-content h1{text-align:center}.centered-content .primary{margin-top:22px}.dashboard-header{height:66px}.account-button{min-width:105px;max-width:132px;height:34px;display:flex;align-items:center;gap:7px;margin-left:auto;overflow:hidden;border:1px solid rgb(255 255 255 / 45%);padding:0 10px;background:transparent;color:#fff;font-size:14px}.account-button>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#63d18d}.assets-dashboard{height:calc(100% - 66px);overflow:hidden}.portfolio-balance{padding:22px 22px 19px;border-bottom:1px solid rgb(255 255 255 / 24%);background:var(--blue-deep)}.portfolio-balance>span{color:var(--muted-white);font-size:14px;text-transform:uppercase}.portfolio-balance>strong{display:block;margin-top:4px;font-size:31px;line-height:1.2}.portfolio-balance>strong small{font-size:13px}.portfolio-balance p{max-width:100%;margin:7px 0 0;overflow:hidden;color:#ffffffd1;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.wallet-actions{height:88px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgb(255 255 255 / 24%)}.wallet-actions button{display:grid;place-items:center;align-content:center;gap:5px;border:0;border-right:1px solid rgb(255 255 255 / 18%);background:transparent;color:#fff;font-size:14px;font-weight:700}.wallet-actions button:last-child{border-right:0}.action-icon{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 65%);font-size:16px;font-weight:400}.asset-ledger{height:calc(100% - 209px);background:var(--dark);color:#fff}.asset-filter{height:42px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--dark-line);padding:5px 19px;background:#0f1a22}.asset-filter button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dark-muted);font-size:14px;font-weight:700}.asset-filter button.active{border-bottom-color:var(--accent);color:#fff}.asset-ledger-heading{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;border-bottom:1px solid var(--dark-line)}.asset-ledger-heading h1{margin:0;font-size:19px}.asset-ledger-heading button{width:30px;height:30px;border:0;background:transparent;color:var(--accent);font-size:17px}.asset-row{min-height:66px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 19px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.asset-symbol{width:36px;height:36px;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:12px;font-weight:700}.contractless-symbol img{width:25px;filter:brightness(0) invert(1)}.asset-name,.asset-value{min-width:0;display:grid;gap:2px}.asset-name strong,.asset-value strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.asset-name span,.asset-value span{color:var(--dark-muted);font-size:13px}.asset-value{max-width:125px;text-align:right}.token-list{max-height:calc(100% - 148px);overflow-y:auto}.empty-assets{display:grid;gap:5px;padding:27px 20px;color:var(--dark-muted);text-align:center}.empty-assets strong{color:#dce8ee;font-size:16px}.empty-assets span{font-size:14px}.receive-screen{background:var(--dark)}.receive-screen .wallet-header{background:var(--blue)}.send-screen,.send-review-screen,.send-success-screen{background:var(--dark);color:#fff}.send-screen .wallet-header,.send-review-screen .wallet-header,.send-success-screen .wallet-header{background:var(--blue)}.send-content,.send-review-content,.send-success-content{height:calc(100% - 72px);padding:22px;overflow-y:auto}.send-content{display:grid;align-content:start;gap:17px}.send-content label{color:#fff;font-size:14px}.send-content input,.send-content select{width:100%;min-height:48px;border:1px solid var(--dark-line);padding:0 13px;background:var(--surface);color:#fff;outline:0}.send-content input:focus,.send-content select:focus{border-color:var(--accent)}.send-amount-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.send-amount-row input{border-right:0}.send-amount-row>span{min-width:64px;display:grid;place-items:center;border:1px solid var(--dark-line);background:var(--surface-raised);color:var(--accent);font-weight:700}.field-note{display:block;margin-top:7px;color:var(--dark-muted);font-size:13px}.send-continue{margin-top:5px}.send-review-content{padding:0 22px 24px}.send-review-amount{margin:0 -22px 20px;padding:24px 22px;background:var(--blue-deep)}.send-review-amount>span{color:var(--muted-white);font-size:13px;text-transform:uppercase}.send-review-amount strong{display:block;margin-top:5px;font-size:29px}.send-review-amount small{color:var(--accent);font-size:15px}.send-review-details{margin:0 0 18px}.send-review-details>div{padding:12px 0;border-bottom:1px solid var(--dark-line)}.send-review-details dt{margin-bottom:4px;color:var(--dark-muted);font-size:13px}.send-review-details dd{margin:0;overflow-wrap:anywhere;color:#fff;font-weight:700}.signing-notice{margin:18px 0;padding-left:12px;border-left:3px solid var(--accent);color:var(--dark-muted)}.send-success-content{text-align:center}.send-success-content p{color:var(--dark-muted)}.send-txid{margin:24px 0 14px;padding:14px;border:1px solid var(--dark-line);background:var(--surface);text-align:left}.send-txid span{display:block;margin-bottom:5px;color:var(--dark-muted);font-size:13px}.send-txid strong{overflow-wrap:anywhere}.send-success-content .secondary{margin-bottom:10px}.receive-content{height:calc(100% - 72px);overflow-y:auto;padding:25px 24px 22px;text-align:center}.receive-label{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase}.receive-content h1{margin-top:8px}.receive-content>p{margin:0 auto 20px;color:var(--dark-muted);font-size:11px;line-height:1.45}.qr-frame{width:238px;height:238px;display:grid;place-items:center;margin:0 auto 19px;border:1px solid #708693;padding:8px;background:#fff}.qr-frame canvas{width:220px;height:220px;display:block}.receive-address{display:grid;gap:6px;border:1px solid var(--dark-line);padding:13px;background:var(--surface);text-align:left}.receive-address span{color:var(--dark-muted);font-size:11px;font-weight:700;text-transform:uppercase}.receive-address strong{overflow-wrap:anywhere;color:#e5f0f5;font:12px/1.4 Consolas,monospace}.receive-copy{margin-top:13px}.nfts-screen,.nft-detail-screen{background:var(--dark);color:#fff}.nfts-screen .wallet-header,.nft-detail-screen .wallet-header{background:var(--blue)}.header-refresh{width:34px;height:34px;display:grid;place-items:center;margin-left:auto;border:1px solid rgb(255 255 255 / 70%);background:transparent;color:#fff;font-size:18px}.nfts-content,.nft-detail-content{height:calc(100% - 72px);overflow-y:auto}.nfts-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.nfts-summary span:first-child{color:var(--accent)}.nfts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--dark-line)}.nft-card{min-width:0;display:grid;align-content:start;border:0;padding:0;background:var(--surface);color:#fff;text-align:left}.nft-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nft-card-media{width:100%;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:#17303e;color:var(--accent);font-size:28px;font-weight:700}.nft-card-media img{width:100%;height:100%;display:block;object-fit:cover}.nft-card-identity{min-height:116px;display:grid;align-content:start;gap:3px;padding:11px 12px 13px}.nft-card-identity>span{color:var(--accent);font-size:11px;font-weight:700}.nft-card-identity strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity small{overflow:hidden;color:var(--dark-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity b{margin-top:5px;color:#fff;font-size:12px}.nft-card-identity em{color:#e9c667;font-size:11px;font-style:normal}.nfts-empty{grid-column:1 / -1;min-height:300px;display:grid;place-content:center;gap:6px;padding:30px;background:var(--surface);color:var(--dark-muted);text-align:center}.nfts-empty strong{color:#fff;font-size:17px}.nfts-pagination{min-height:52px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--dark-line);background:#0f1a22;text-align:center}.nfts-pagination[hidden]{display:none}.nfts-pagination button{width:38px;height:38px;border:1px solid var(--dark-line);background:var(--surface);color:var(--accent);font-size:17px}.nfts-pagination button:disabled{color:#61727c}.nfts-pagination span{color:var(--dark-muted);font-size:13px}.nft-detail-media{width:100%;aspect-ratio:16 / 11;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--dark-line);background:#142934}.nft-detail-media img{width:100%;height:100%;display:block;object-fit:contain}.nft-detail-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:end;padding:18px 20px 14px}.nft-detail-heading>div{min-width:0}.nft-detail-heading span{color:var(--accent);font-size:11px;font-weight:700}.nft-detail-heading h1{overflow-wrap:anywhere;margin:4px 0 0;font-size:23px}.nft-detail-heading>strong{color:#63d18d;font-size:13px;text-align:right}.nft-detail-description{margin:0;padding:0 20px 17px;color:var(--dark-muted);font-size:14px;line-height:1.5}.nft-detail-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 20px 18px}.nft-detail-attributes[hidden]{display:none}.nft-detail-attributes>div{min-width:0;display:grid;gap:2px;border:1px solid var(--dark-line);padding:9px;background:var(--surface-raised)}.nft-detail-attributes span{overflow:hidden;color:var(--dark-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nft-detail-attributes strong{overflow-wrap:anywhere;font-size:13px}.nft-detail-fields{margin:0;border-top:1px solid var(--dark-line)}.nft-detail-fields>div{display:grid;gap:4px;padding:12px 20px;border-bottom:1px solid var(--dark-line)}.nft-detail-fields dt{color:var(--dark-muted);font-size:12px}.nft-detail-fields dd{margin:0;overflow-wrap:anywhere;color:#fff;font:12px/1.45 Consolas,monospace}.nft-detail-actions{padding:18px 20px 0}.nft-provenance{padding:18px 20px 25px}.nft-provenance h2{margin:0 0 11px;font-size:16px}.nft-provenance p{color:var(--dark-muted)}.nft-history-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;border:0;padding:10px 0;border-bottom:1px solid var(--dark-line);background:transparent;color:#fff;text-align:left}.nft-history-row:hover,.nft-history-row:focus-visible{background:var(--surface-raised)}.nft-history-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nft-history-row strong{font-size:13px}.nft-history-row span{color:var(--dark-muted);font-size:12px;text-align:right}.nft-history-row small{grid-column:1 / -1;color:var(--accent);font:11px Consolas,monospace}.activity-screen{background:var(--dark);color:#fff}.activity-screen .wallet-header{background:var(--blue)}.activity-content{height:calc(100% - 72px);overflow-y:auto}.activity-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;text-transform:uppercase}.activity-summary strong{color:var(--accent);font-size:13px}.activity-summary>div{display:flex;align-items:center;gap:8px}.activity-summary button{width:30px;height:30px;border:1px solid var(--dark-line);background:transparent;color:var(--accent);font-size:17px}.activity-list{background:var(--surface)}.activity-row{width:100%;min-height:98px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--dark-line);border-top:0;border-right:0;border-left:0;background:transparent;color:#fff;text-align:left}.activity-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-marker{width:29px;height:29px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:13px;font-weight:700}.activity-marker.incoming,.activity-status .incoming{color:#63d18d}.activity-marker.outgoing,.activity-status .outgoing{color:#fff}.activity-details,.activity-status{min-width:0;display:grid;gap:2px}.activity-details strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.activity-details span{color:#c1d0d8;font:13px Consolas,monospace}.activity-details small,.activity-status span{color:var(--dark-muted);font-size:13px}.activity-status{max-width:132px;text-align:right}.activity-status strong{font-size:14px;white-space:nowrap}.activity-status .confirmed{color:#63d18d}.activity-status .pending{color:#e9c667}.activity-empty{display:grid;gap:6px;padding:42px 24px;color:var(--dark-muted);font-size:14px;text-align:center}.activity-empty strong{color:#dce8ee;font-size:16px}.activity-error{color:#ffaaa4}.transaction-screen{background:var(--dark);color:#fff}.transaction-screen .wallet-header{background:var(--blue)}.transaction-confirmed{color:#84e7aa}.transaction-pending{color:#f1d27b}.transaction-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:24px}.transaction-identity{display:grid;gap:13px;padding:18px;border-bottom:1px solid var(--dark-line);background:var(--surface-raised)}.transaction-identity>div{display:grid;gap:7px}.transaction-identity span,.transaction-field span{color:var(--dark-muted);font-size:12px;font-weight:700;text-transform:uppercase}.transaction-identity strong{overflow-wrap:anywhere;color:#fff;font:13px/1.55 Consolas,monospace}.transaction-identity button{min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:14px;font-weight:700}.transaction-section{border-top:1px solid var(--dark-line)}.transaction-section h2{margin:0;padding:16px 18px 10px;font-size:16px}.transaction-fields{display:grid}.transaction-field{display:grid;gap:6px;padding:13px 18px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.transaction-field strong{overflow-wrap:anywhere;color:#fff;font-size:15px;font-weight:600;line-height:1.45}.transaction-technical{border-top:1px solid var(--dark-line)}.transaction-technical summary{padding:17px 18px;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer}.technical-field strong{font:12px/1.55 Consolas,monospace;word-break:break-all}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#091a278a}.account-drawer{position:absolute;top:0;right:0;bottom:0;z-index:11;width:338px;display:flex;flex-direction:column;border-left:1px solid var(--dark-line);background:var(--dark);color:#fff;transform:translate(100%);transition:transform .18s ease-out}.account-drawer.open{transform:translate(0)}.drawer-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:var(--blue);color:#fff}.drawer-header>div{display:grid;gap:2px}.drawer-header strong{font-size:19px}.drawer-header span{color:var(--muted-white);font-size:14px}.drawer-header button{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:23px;line-height:1}.drawer-section{max-height:244px;overflow-y:auto;padding:17px 15px 14px;border-bottom:1px solid var(--dark-line)}.drawer-label{display:block;margin:0 3px 8px;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.known-address{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center;border:1px solid var(--dark-line);padding:4px;background:var(--surface);color:#fff}.known-address+.known-address{margin-top:7px}.known-address.active-address{border-color:var(--accent);background:var(--surface-active)}.address-select{min-width:0;min-height:48px;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:10px;align-items:center;border:0;padding:5px 6px;background:transparent;color:#fff;text-align:left}.rename-address{width:28px;height:34px;border:0;background:transparent;color:var(--accent);font-size:16px}.address-avatar{width:34px;height:34px;display:grid;place-items:center;background:#204f70}.address-avatar img{width:24px;filter:brightness(0) invert(1)}.address-details{min-width:0;display:grid;gap:2px}.address-details strong{font-size:15px}.address-details small{overflow:hidden;color:var(--dark-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.selected-mark{color:var(--success);font-size:14px;font-weight:700}.drawer-navigation{display:grid;padding:8px 0}.drawer-navigation button{min-height:72px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--dark-line);padding:9px 18px;background:transparent;color:#fff;text-align:left}.drawer-navigation button>span:nth-child(2){display:grid;gap:2px}.drawer-navigation strong{font-size:16px}.drawer-navigation small{color:var(--dark-muted);font-size:13px}.menu-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.menu-arrow{color:var(--dark-muted);font-size:20px;text-align:right}.drawer-lock{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;margin:auto 15px 15px;border:1px solid var(--dark-line);background:var(--surface-raised);color:#dce8ee;font-size:14px;font-weight:700}.header-back{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:18px}.settings-screen{background:var(--dark);color:#fff}.settings-screen .wallet-header{background:var(--blue);color:#fff}.settings-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:20px}.settings-group{padding:18px 20px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.settings-heading{display:grid;gap:3px;margin-bottom:15px}.settings-heading strong{font-size:13px}.settings-heading span{color:var(--dark-muted);font-size:12px;line-height:1.4}.settings-group label{color:#b7c6ce;font-size:12px;text-transform:uppercase}.settings-group input,.settings-group select{width:100%;height:44px;border:1px solid #8699a5;padding:0 11px;background:#fff;color:var(--ink);outline:0}.settings-group input:focus,.settings-group select:focus{border-color:var(--blue);outline:2px solid rgb(33 103 165 / 14%)}.settings-save{width:calc(100% - 40px);margin:16px 20px;border-color:var(--accent);background:var(--accent);color:#08202b}.backup-settings{padding-right:0;padding-left:0}.backup-settings .settings-heading{padding:0 20px}.settings-action{width:100%;min-height:61px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-top:1px solid var(--dark-line);padding:9px 20px;background:transparent;color:#fff;text-align:left}.settings-action:last-child{border-bottom:1px solid var(--dark-line)}.settings-action>span:nth-child(2){display:grid;gap:2px}.settings-action strong{font-size:14px}.settings-action small{color:var(--dark-muted);font-size:11px}.settings-action>span:last-child{color:var(--dark-muted);font-size:20px}.settings-action-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.private-key-result{margin:16px 20px 0;border:1px solid var(--dark-line);padding:13px;background:var(--surface-raised)}.private-key-result>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.private-key-result>div>strong{font-size:11px;text-transform:uppercase}.private-key-result>div>button{width:28px;height:28px;border:0;background:transparent;color:var(--dark-muted);font-size:19px}.private-key-result textarea{height:95px;min-height:95px;margin:0 0 10px;border:1px solid #8699a5;padding:9px;background:#fff;color:var(--ink);font-size:11px}.private-key-result .secondary{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#091a27ad}.backup-key-modal{position:absolute;top:50%;right:20px;left:20px;z-index:31;border:1px solid white;background:var(--blue);color:#fff;transform:translateY(-50%)}.backup-key-modal>header{min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid rgb(255 255 255 / 40%)}.backup-key-modal>header>div{display:grid;gap:2px}.backup-key-modal>header strong{font-size:13px}.backup-key-modal>header span{color:var(--muted-white);font-size:11px}.backup-key-modal>header button{width:30px;height:30px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:20px}.backup-key-modal>div{padding:17px 15px}.backup-key-modal .primary{margin-top:16px}#notice{position:absolute;right:18px;bottom:14px;left:18px;z-index:40;margin:0;padding:10px 12px;border:1px solid #8d4448;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:11px}#notice:empty{display:none}.provider-approval-screen{display:flex;flex-direction:column}.provider-approval-screen .screen-content{min-height:0;flex:1;overflow-y:auto;padding-bottom:18px}.approval-context{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-context .eyebrow{min-width:0;overflow-wrap:anywhere}.risk-label{flex:0 0 auto;padding:5px 8px;border:1px solid currentColor;font-size:11px;font-weight:700;text-transform:uppercase}.risk-safe{background:#123b2d;color:#63e5a9}.risk-low{background:#403612;color:#ffe16c}.risk-high{background:#481f24;color:#ff8b8b}.approval-details{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);margin:20px 0;border:1px solid #315466;background:#091923}.approval-details dt,.approval-details dd{min-width:0;margin:0;padding:11px 12px;border-bottom:1px solid #203d4c;overflow-wrap:anywhere}.approval-details dt{color:#85dce8;font-size:12px;font-weight:700;text-transform:capitalize}.approval-details dd{color:#f5f9fb;font:13px/1.45 Arial,Helvetica,sans-serif;white-space:pre-wrap}.approval-details dt:last-of-type,.approval-details dd:last-of-type{border-bottom:0}.approval-actions{display:grid;flex:0 0 auto;grid-template-columns:1fr 1fr;gap:10px;padding:14px 24px 18px;border-top:1px solid rgb(255 255 255 / 35%);background:var(--blue-deep)}.approval-actions button{min-height:48px;margin:0}.approval-actions button.is-processing:before{width:15px;height:15px;content:"";border:2px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:approval-spin .7s linear infinite}.approval-actions button:disabled{opacity:.72}@keyframes approval-spin{to{transform:rotate(360deg)}} diff --git a/extension/dist/assets/print-DTb91-bp.css b/extension/dist/assets/print-DTb91-bp.css deleted file mode 100644 index b6c42aa..0000000 --- a/extension/dist/assets/print-DTb91-bp.css +++ /dev/null @@ -1 +0,0 @@ -*{box-sizing:border-box}body{max-width:760px;margin:0 auto;padding:34px;color:#111820;font:14px/1.45 Arial,Helvetica,sans-serif}header{display:flex;align-items:center;gap:15px;padding-bottom:18px;border-bottom:3px solid #2167a5}header img{width:58px}h1{margin:0;font-size:24px}header p{margin:2px 0 0;color:#5c6972}.warning{margin:22px 0;border:2px solid #9b1c1c;padding:12px;color:#7a1111;font-weight:700}section{margin-top:18px}h2{margin:0 0 7px;color:#42515b;font-size:12px;text-transform:uppercase}pre{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;border:1px solid #aebac2;padding:11px;font:10px/1.35 Consolas,monospace}.print-error{color:#9b1c1c;font-weight:700}@media print{body{max-width:none;padding:0}} diff --git a/extension/dist/background.js b/extension/dist/background.js deleted file mode 100644 index d670490..0000000 --- a/extension/dist/background.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as yt}from"./chunks/core-CvwXoH-U.js";const F="contractlessWallet",M="contractlessWallets",V="contractlessSettings",L="contractlessAutoLock",K="contractlessUnlockedWallet",j="contractlessApplicationSessions",ct=12e4,vt=10,bt={apiUrl:"https://api.contractless.dev",autoLockMinutes:60};let s;const J="pending-provider-approvals";async function k(){const e=await chrome.storage.local.get(V);return{...bt,...e[V]??{}}}function lt(e){const t=JSON.parse(e);if(typeof t.short_address!="string"||typeof t.public_key!="string")throw new Error("The encrypted wallet metadata is invalid.");return{address:t.short_address,publicKey:t.public_key}}async function $(){const e=await chrome.storage.local.get([M,F]),t=e[M];if((t==null?void 0:t.version)===1&&Array.isArray(t.wallets))return t;const a=e[F];if(typeof a!="string")return{version:1,wallets:[]};const i=lt(a),d={id:crypto.randomUUID(),label:"Contractless Account 1",address:i.address,publicKey:i.publicKey,walletJson:a},l={version:1,activeWalletId:d.id,wallets:[d]};return await chrome.storage.local.set({[M]:l}),await chrome.storage.local.remove(F),l}async function H(e){await chrome.storage.local.set({[M]:e})}function P(e){return e.wallets.find(t=>t.id===e.activeWalletId)??e.wallets[0]}async function X(e){const t=await $(),a=lt(e),i=t.wallets.find(l=>l.address===a.address);if(i)return i.walletJson=e,i.publicKey=a.publicKey,t.activeWalletId=i.id,await H(t),i;const d={id:crypto.randomUUID(),label:`Contractless Account ${t.wallets.length+1}`,address:a.address,publicKey:a.publicKey,walletJson:e};return t.wallets.push(d),t.activeWalletId=d.id,await H(t),d}async function E(){await dt();const e=await $(),t=P(e),a=await k();return{exists:e.wallets.length>0,unlocked:!!(s&&s.walletId===(t==null?void 0:t.id)),activeWalletId:t==null?void 0:t.id,activeWalletLabel:t==null?void 0:t.label,address:s==null?void 0:s.short_address,publicKey:s==null?void 0:s.public_key,wallets:e.wallets.map(i=>({id:i.id,label:i.label,address:i.address,publicKey:i.publicKey,active:i.id===(t==null?void 0:t.id)})),apiUrl:a.apiUrl,autoLockMinutes:a.autoLockMinutes}}async function b(){if(!s)return;const e=await k();s.expiresAt=Date.now()+e.autoLockMinutes*6e4,await chrome.storage.session.set({[K]:s}),await chrome.alarms.clear(L),await chrome.alarms.create(L,{when:s.expiresAt})}function kt(e,t){const a=new Uint8Array(e);let i="";const d=32768;for(let l=0;l{});if(!l.ok||(f==null?void 0:f.success)!==!0)throw new Error((f==null?void 0:f.error)??`Wallet registration failed with HTTP ${l.status}.`);return f.data}async function St(e,t){var f;const a=await k(),i=e.create_handshake_proof(t.public_key,t.private_key),d=await fetch(`${a.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(t.short_address)}`,{headers:{"X-Contractless-Address":t.short_address,"X-Contractless-Public-Key":t.public_key,"X-Contractless-Signature":i}}),l=await d.json().catch(()=>{});if(!d.ok||(l==null?void 0:l.success)!==!0)throw new Error((l==null?void 0:l.error)??`Wallet registration lookup failed with HTTP ${d.status}.`);((f=l.data)==null?void 0:f.registered)!==!0&&await Y(e,t)}async function dt(){if(s){if(s.expiresAt>Date.now())return;await R();return}const t=(await chrome.storage.session.get(K))[K];if(!t||t.expiresAt<=Date.now()){await chrome.storage.session.remove(K);return}t.sessionId||(t.sessionId=crypto.randomUUID(),await wt(),await chrome.storage.session.set({[K]:t})),s=t}async function R(){s&&(s.private_key="",s=void 0),await chrome.storage.session.remove([K,j]),await chrome.alarms.clear(L)}async function Q(){const t=(await chrome.storage.session.get(j))[j];return Array.isArray(t)?t:[]}async function pt(e){await chrome.storage.session.set({[j]:e})}async function wt(){await chrome.storage.session.remove(j)}function Tt(e){const t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,a=>a.toString(16).padStart(2,"0")).join("")}async function Et(e){const t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),a=>a.toString(16).padStart(2,"0")).join("")}function O(e){return!e.params||typeof e.params!="object"?{}:e.params}function C(e){const t=String(e??"").trim();if(!/^[A-Za-z0-9_-]{5,32}$/.test(t))throw new Error("The application ID must contain 5 to 32 URL-safe characters.");return t}function Z(e,t){if(String(e.origin??"")!==t)throw new Error("The application origin does not match the requesting website.")}function ut(e){const t=Number(e),a=Math.floor(Date.now()/1e3);if(!Number.isInteger(t)||Math.abs(a-t)>300)throw new Error("The application connection timestamp must be within five minutes.");return t}function ht(e){const t=String(e??"").trim().toLowerCase();if(!/^[0-9a-f]{32,128}$/.test(t)||t.length%2!==0)throw new Error("The application nonce must contain 16 to 64 random hexadecimal bytes.");return t}function gt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("The application connection message must contain 1 to 75 bytes.");return t}function ft(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("A signed website message must contain 1 to 75 bytes.");return t}function st(e,t){if(e==="contractless_connect"||e==="contractless_signMessage")return"safe";const a=t.transaction;if(!a||typeof a!="object")return"high";const i=Number(a.txtype);return Number.isInteger(i)&&i>=100&&i<=113?"low":"high"}function _t(e){if(!e||typeof e!="object")throw new Error("A complete transaction object is required.");const t=e,a=Number(t.txtype);if(!Number.isInteger(a))throw new Error("The transaction type is invalid.");if(a===6||a===7)throw new Error("Swaps and loan creation require a staged signing workflow.");return t}function z(e){if(!e||typeof e!="object")throw new Error("A complete or partially signed transaction object is required.");const t=e,a=t.unsigned_swap??t.unsigned_loan_contract??t;if(!a||typeof a!="object")throw new Error("The unsigned transaction fields are missing.");const i=Number(a.txtype);if(i!==6&&i!==7)throw new Error("Staged signing is only available for swaps and loan creation.");return t}async function rt(e,t){var S;if(!s)throw new Error("Wallet is locked.");const a=t.unsigned_swap??t.unsigned_loan_contract??t;if(!a||typeof a!="object")return;const i=a,d=Number(i.txtype),l=d===2?[["Receiving",String(i.receiver??"")]]:d===6?[["First swap participant",String(i.sender1??"")],["Second swap participant",String(i.sender2??"")]]:d===7?[["Lender",String(i.lender??"")],["Borrower",String(i.borrower??"")]]:[];if(l.length===0)return;e.inspect_transaction_request(JSON.stringify(t));const f=await k(),v=e.create_handshake_proof(s.public_key,s.private_key),y={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":v},T=new Map;for(const[x,U]of l){const A=U.trim().toLowerCase();let I=T.get(A);if(I===void 0){const r=await fetch(`${f.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(A)}`,{headers:y}),o=await r.json().catch(()=>{});if(!r.ok||(o==null?void 0:o.success)!==!0)throw new Error((o==null?void 0:o.error)??`Address registration lookup failed with HTTP ${r.status}.`);I=((S=o.data)==null?void 0:S.registered)===!0,T.set(A,I)}if(!I)throw new Error(`${x} wallet is not registered.`)}}async function mt(e,t){if(t.complete!==!0||typeof t.bytes_hex!="string"||typeof t.hash!="string")throw new Error("The transaction could not be completed.");if(!s)throw new Error("Wallet is locked.");const a=await k(),i=e.create_handshake_proof(s.public_key,s.private_key),d=await fetch(`${a.apiUrl}/api/v1/transactions/broadcast`,{method:"POST",headers:{"Content-Type":"application/json","X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},body:JSON.stringify({transaction_hex:t.bytes_hex})}),l=await d.json().catch(()=>{});if(!d.ok||(l==null?void 0:l.success)!==!0)throw new Error((l==null?void 0:l.error)??`Transaction broadcast failed with HTTP ${d.status}.`);return await b(),{txid:t.hash,bytes:t.bytes_hex,broadcast:l.data}}async function N(e,t){if(!s)throw new Error("Wallet is locked.");Z(e,t);const a=C(e.appId),i=String(e.accessKey??""),d=(await Q()).find(l=>l.origin===t&&l.appId===a&&l.accessKey===i&&l.walletId===(s==null?void 0:s.walletId)&&l.unlockSessionId===(s==null?void 0:s.sessionId));if(!d)throw new Error("The application session is invalid or has expired. Reconnect the wallet.");return d}async function B(){const t=(await chrome.storage.session.get(J))[J],a=Array.isArray(t)?t.filter(y=>typeof y=="string"&&y.length>0):typeof t=="string"&&t.length>0?[t]:[];if(a.length===0)return[];const i=a.map(y=>`approval:${y}`),d=await chrome.storage.session.get(i),l=Date.now(),f=[],v=[];for(const y of a){const T=`approval:${y}`,S=d[T];!S||l-S.createdAt>=ct?v.push(T):f.push(y)}return(v.length>0||f.length!==a.length)&&(await chrome.storage.session.set({[J]:f}),v.length>0&&await chrome.storage.session.remove(v)),f}async function G(e){const t=(await B()).filter(a=>a!==e);return await chrome.storage.session.set({[J]:t}),t}async function ot(e){const t=await B(),a=await chrome.storage.session.get(t.map(d=>`approval:${d}`));if(e.method==="contractless_connect"&&t.some(d=>{const l=a[`approval:${d}`];if(!l||l.method!=="contractless_connect")return!1;const f=O(l),v=O(e);return l.origin===e.origin&&f.appId===v.appId}))throw new Error("This application already has a wallet connection request pending.");if(t.length>=vt)throw new Error("The wallet approval queue is full. Resolve a pending request first.");await chrome.storage.session.set({[J]:[...t,e.id],[`approval:${e.id}`]:e});try{await chrome.action.openPopup()}catch{}}async function nt(e){const t=`approval-result:${e}`,a=Date.now()+ct;for(;Date.now()setTimeout(d,150))}throw await chrome.storage.session.remove([`approval:${e}`,t]),await G(e),new Error("Wallet approval request expired.")}function At(e){const t=e.url??e.origin;if(!t)throw new Error("The requesting website origin is unavailable.");const a=new URL(t).origin;if(a==="null")throw new Error("Requests from opaque origins are not supported.");return a}async function it(e,t){if(!s)throw new Error("Wallet is locked.");switch(await b(),t.method){case"contractless_connect":{const a=O(t);Z(a,t.origin);const i=String(a.walletSessionId??"");if(i&&i!==s.sessionId)throw new Error("The active wallet changed while the connection was being approved.");const d=C(a.appId),l=ut(a.timestamp),f=ht(a.nonce),v=gt(a.message),y=Tt(32),T=await Et(y),S=Math.floor(Date.now()/1e3),x=Math.min(S+900,Math.floor(s.expiresAt/1e3)),U=["Contractless application connection",`Application ID: ${d}`,`Origin: ${t.origin}`,`Requested timestamp: ${l}`,`Message: ${v}`,`Session key hash: ${T}`].join(` -`),A=JSON.parse(e.sign_message_request(JSON.stringify({origin:t.origin,message:U,nonce:f,issued_at:S,expires_at:x}),s.private_key,s.public_key)),I={origin:t.origin,appId:d,accessKey:y,walletId:s.walletId,unlockSessionId:s.sessionId,createdAt:Date.now()},r=await Q();return r.push(I),await pt(r),{address:s.short_address,publicKey:s.public_key,signature:A.signature,proof:A,accessKey:y,appId:d,origin:t.origin,sessionExpiresAt:s.expiresAt}}case"contractless_signMessage":{const a=O(t);await N(a,t.origin);const i=Math.floor(Date.now()/1e3),d=Number(a.expires_at??i+300),l=C(a.appId),f={origin:t.origin,message:["Contractless application message",`Application ID: ${l}`,`Message: ${ft(a.message)}`].join(` -`),nonce:String(a.nonce??""),issued_at:i,expires_at:d};return JSON.parse(e.sign_message_request(JSON.stringify(f),s.private_key,s.public_key))}case"contractless_sendTransaction":{const a=O(t);await N(a,t.origin);const i=_t(a.transaction),d=JSON.parse(e.sign_transaction_request(JSON.stringify(i),s.private_key,s.public_key,1));return mt(e,d)}case"contractless_signDualTransaction":{const a=O(t);await N(a,t.origin);const i=z(a.transaction),d=Number(a.signerSlot);if(d!==1&&d!==2)throw new Error("The signer slot must be 1 or 2.");const l=JSON.parse(e.sign_transaction_request(JSON.stringify(i),s.private_key,s.public_key,d));return{complete:!1,txid:l.hash,unsignedBytes:l.unsigned_bytes_hex,canonicalUnsignedJson:JSON.parse(e.inspect_transaction_request(JSON.stringify(i))).canonical_unsigned_json,signedTransaction:l.signed_transaction,signature:d===1?l.signature1:l.signature2,signature1:l.signature1,signature2:l.signature2,signerSlot:d,signerPublicKey:s.public_key}}default:throw new Error("The website requested an unsupported wallet method.")}}async function It(e,t){var i,d,l,f,v,y,T,S,x,U,A,I;const a=await yt();switch(await dt(),e.type){case"status":return E();case"create-wallet":{const r=String(e.password),o=a.generate_browser_wallet(r),n=JSON.parse(a.unlock_browser_wallet(o,r));await Y(a,n);const u=await X(o);return await W({walletId:u.id,...n}),E()}case"import-wallet":{const r=a.import_legacy_wallet(String(e.walletJson),String(e.legacyPassword),String(e.password)),o=await X(r),n=JSON.parse(a.unlock_browser_wallet(r,String(e.password)));return await W({walletId:o.id,...n}),E()}case"import-wallet-image":{const r=String(e.password),o=a.import_private_key_image(String(e.imageBase64),String(e.imagePassword),r),n=await X(o),u=JSON.parse(a.unlock_browser_wallet(o,r));return await W({walletId:n.id,...u}),E()}case"import-private-key":{const r=String(e.password),o=a.import_private_key(String(e.privateKey),r),n=await X(o),u=JSON.parse(a.unlock_browser_wallet(o,r));return await W({walletId:n.id,...u}),E()}case"unlock":{const r=await $(),o=P(r);if(!o)throw new Error("No wallet exists.");const n=JSON.parse(a.unlock_browser_wallet(o.walletJson,String(e.password)));await W({walletId:o.id,...n});try{await St(a,n)}catch(u){console.warn("Automatic wallet registration failed during unlock.",u)}return E()}case"switch-wallet":{const r=await $(),o=String(e.walletId);if(!r.wallets.some(n=>n.id===o))throw new Error("The selected wallet does not exist.");return await R(),r.activeWalletId=o,await H(r),E()}case"rename-wallet":{const r=await $(),o=r.wallets.find(u=>u.id===String(e.walletId));if(!o)throw new Error("The selected wallet does not exist.");const n=String(e.label).trim();if(n.length<1||n.length>40)throw new Error("Wallet labels must contain between 1 and 40 characters.");return o.label=n,await H(r),E()}case"lock":return await R(),E();case"save-settings":{const r={apiUrl:String(e.apiUrl).replace(/\/+$/,""),autoLockMinutes:Math.max(1,Number(e.autoLockMinutes))};return await chrome.storage.local.set({[V]:r}),await b(),E()}case"register-wallet":{if(!s)throw new Error("Wallet is locked.");const r=await Y(a,s);return await b(),r}case"wallet-balances":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},u=encodeURIComponent(s.short_address),[c,h,w]=await Promise.all([fetch(`${r.apiUrl}/api/v1/balances?address=${u}`,{headers:n}),fetch(`${r.apiUrl}/api/v1/tokens`,{headers:n}),fetch(`${r.apiUrl}/api/v1/nfts`,{headers:n})]),[p,_,g]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{}),w.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Balance lookup failed with HTTP ${c.status}.`);return await b(),{address:s.short_address,balances:((i=p.data)==null?void 0:i.balances)??[],tokens:h.ok&&(_==null?void 0:_.success)===!0?((d=_.data)==null?void 0:d.tokens)??[]:[],nfts:w.ok&&(g==null?void 0:g.success)===!0?((l=g.data)==null?void 0:l.nfts)??[]:[],tokenCatalogError:h.ok&&(_==null?void 0:_.success)===!0?void 0:(_==null?void 0:_.error)??`Token lookup failed with HTTP ${h.status}.`,nftCatalogError:w.ok&&(g==null?void 0:g.success)===!0?void 0:(g==null?void 0:g.error)??`NFT lookup failed with HTTP ${w.status}.`}}case"wallet-nft-details":{if(!s)throw new Error("Wallet is locked.");const r=String(e.name??"").trim(),o=Number(e.series??0);if(!r||r.length>15||!Number.isInteger(o)||o<0||o>4294967295)throw new Error("A valid NFT or RWA identifier is required.");const n=await k(),u=a.create_handshake_proof(s.public_key,s.private_key),c={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":u},h=`name=${encodeURIComponent(r)}&series=${o}`,[w,p]=await Promise.all([fetch(`${n.apiUrl}/api/v1/nfts/details?${h}`,{headers:c}),fetch(`${n.apiUrl}/api/v1/nfts/media?${h}`,{headers:c})]),[_,g]=await Promise.all([w.json().catch(()=>{}),p.json().catch(()=>{})]);if(!w.ok||(_==null?void 0:_.success)!==!0)throw new Error((_==null?void 0:_.error)??`NFT details lookup failed with HTTP ${w.status}.`);let m="",tt=!1,et={},D;if(p.ok&&(g==null?void 0:g.success)===!0){et=(f=g.data)!=null&&f.metadata&&typeof g.data.metadata=="object"?g.data.metadata:{},tt=((v=g.data)==null?void 0:v.image_available)===!0;const at=String(((y=g.data)==null?void 0:y.image_url)??"");if(at)try{const q=await fetch(new URL(at,`${n.apiUrl}/`).toString(),{headers:c});q.ok?m=kt(await q.arrayBuffer(),q.headers.get("Content-Type")??"image/png"):D=`NFT image returned HTTP ${q.status}.`}catch{D="NFT image could not be retrieved."}}else D=(g==null?void 0:g.error)??`NFT media lookup failed with HTTP ${p.status}.`;return await b(),{..._.data,metadata:et,image_data_url:m,image_available:tt,media_error:D}}case"wallet-receive-address":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n=encodeURIComponent(s.short_address),u=await fetch(`${r.apiUrl}/api/v1/addresses/vanity?address=${n}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o}}),c=await u.json().catch(()=>{});if(!u.ok||(c==null?void 0:c.success)!==!0)throw new Error((c==null?void 0:c.error)??`Vanity address lookup failed with HTTP ${u.status}.`);await b();const h=typeof((T=c.data)==null?void 0:T.vanity_address)=="string"&&c.data.vanity_address.trim()!==""?c.data.vanity_address:void 0;return{shortAddress:s.short_address,receiveAddress:h??s.short_address,vanity:!!h}}case"wallet-prepare-transfer":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},u=String(e.receiver??"").trim().toLowerCase(),c=s.short_address.endsWith(".cltc")?"cltc":"clc";let h=u;if(new RegExp(`^[0-9a-f]{40}\\.${c}$`).test(u)){const g=await fetch(`${r.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(h)}`,{headers:n}),m=await g.json().catch(()=>{});if(!g.ok||(m==null?void 0:m.success)!==!0)throw new Error((m==null?void 0:m.error)??`Address lookup failed with HTTP ${g.status}.`);if(((x=m.data)==null?void 0:x.registered)!==!0)throw new Error("The receiving wallet is not registered.")}else{if(!new RegExp(`^[a-z]{1,20}\\.${c}$`).test(u))throw new Error(`Enter a valid Contractless ${c.toUpperCase()} address.`);const g=await fetch(`${r.apiUrl}/api/v1/addresses/vanity/resolve?address=${encodeURIComponent(u)}`,{headers:n}),m=await g.json().catch(()=>{});if(!g.ok||(m==null?void 0:m.success)!==!0)throw new Error((m==null?void 0:m.error)??`Vanity address lookup failed with HTTP ${g.status}.`);if(h=String(((S=m.data)==null?void 0:S.owner_address)??""),!h)throw new Error("That vanity address is not registered.")}const w=Number(e.nftSeries??0);if(!Number.isInteger(w)||w<0||w>4294967295)throw new Error("The NFT/RWA series number is invalid.");const p={txtype:2,time:Math.floor(Date.now()/1e3),value:String(e.valueAtomic??""),coin:String(e.asset??"").trim().padEnd(15," "),nft_series:w,sender:s.short_address,receiver:h,txfee:String(e.feeAtomic??"")},_=JSON.parse(a.inspect_transaction_request(JSON.stringify(p)));return await b(),{transaction:p,review:_.review,hash:_.hash,receiverInput:u}}case"wallet-broadcast-transfer":{if(!s)throw new Error("Wallet is locked.");const r=e.transaction;if(!r||typeof r!="object")throw new Error("The reviewed transfer is unavailable.");const o=JSON.parse(a.sign_transaction_request(JSON.stringify(r),s.private_key,s.public_key,1));return mt(a,o)}case"wallet-activity":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n=encodeURIComponent(s.short_address),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},[c,h]=await Promise.all([fetch(`${r.apiUrl}/api/v1/addresses/latest?address=${n}&limit=25`,{headers:u}),fetch(`${r.apiUrl}/api/v1/height`,{headers:u})]),[w,p]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Activity lookup failed with HTTP ${c.status}.`);if(!h.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Block height lookup failed with HTTP ${h.status}.`);return await b(),{address:s.short_address,current_height:Number(((U=p.data)==null?void 0:U.height)??0),transactions:Array.isArray((A=w.data)==null?void 0:A.transactions)?w.data.transactions:[]}}case"wallet-transaction":{if(!s)throw new Error("Wallet is locked.");const r=String(e.txid);if(!/^[0-9a-f]{64}$/i.test(r))throw new Error("A valid transaction ID is required.");const o=await k(),n=a.create_handshake_proof(s.public_key,s.private_key),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":n},[c,h]=await Promise.all([fetch(`${o.apiUrl}/api/v1/transactions/lookup?txid=${encodeURIComponent(r)}`,{headers:u}),fetch(`${o.apiUrl}/api/v1/height`,{headers:u})]),[w,p]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Transaction lookup failed with HTTP ${c.status}.`);if(!h.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Block height lookup failed with HTTP ${h.status}.`);return await b(),{...w.data,current_height:Number(((I=p.data)==null?void 0:I.height)??0)}}case"export-wallet":{const r=P(await $());if(!r)throw new Error("No wallet exists.");return r.walletJson}case"export-legacy-wallet":{const r=P(await $());if(!r)throw new Error("No wallet exists.");return a.export_legacy_wallet(r.walletJson,String(e.password),String(e.legacyPassword))}case"export-private-key-image":{const r=P(await $());if(!r)throw new Error("No wallet exists.");const o=JSON.parse(a.export_legacy_wallet(r.walletJson,String(e.password),String(e.imagePassword)));if(typeof o.private_key!="string")throw new Error("The wallet image could not be created.");return o.private_key}case"reveal-private-key":{const r=P(await $());if(!r)throw new Error("No wallet exists.");const o=JSON.parse(a.unlock_browser_wallet(r.walletJson,String(e.password)));if(typeof o.private_key!="string")throw new Error("The private key could not be decrypted.");return await b(),{label:r.label,address:r.address,privateKey:o.private_key}}case"provider-request":{const r=At(t),o=String(e.method),n=e.params&&typeof e.params=="object"?e.params:{};if(o==="contractless_detect")return{installed:!0,providerVersion:"1.0.0"};if(o==="contractless_connect"){Z(n,r);const c=C(n.appId),h=ut(n.timestamp);ht(n.nonce);const w=gt(n.message),p={id:crypto.randomUUID(),method:o,params:{...n,walletSessionId:s==null?void 0:s.sessionId},origin:r,createdAt:Date.now(),risk:st(o,n),display:{request:"Connect application",application_id:c,website:r,wallet_address:(s==null?void 0:s.short_address)??"Unlock wallet to continue",message:w,requested_timestamp:h,access:"Address access and future wallet requests until this wallet locks"}};if(await ot(p),!await nt(p.id))throw new Error("The wallet connection request was rejected.");return it(a,p)}if(o==="contractless_accounts")try{return await N(n,r),s?[s.short_address]:[]}catch{return[]}if(o==="contractless_balances"){if(await N(n,r),!s)throw new Error("Wallet is locked.");const c=await k(),h=a.create_handshake_proof(s.public_key,s.private_key),w=await fetch(`${c.apiUrl}/api/v1/balances?address=${encodeURIComponent(s.short_address)}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":h}}),p=await w.json().catch(()=>{});if(!w.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Balance lookup failed with HTTP ${w.status}.`);return await b(),p.data}if(o==="contractless_disconnect"){const c=await N(n,r),h=(await Q()).filter(w=>!(w.origin===c.origin&&w.appId===c.appId&&w.accessKey===c.accessKey));return await pt(h),{disconnected:!0}}if(o==="contractless_completeDualTransaction"){await N(n,r);const c=z(n.transaction);return JSON.parse(a.complete_dual_transaction_request(JSON.stringify(c),String(n.signature1??""),String(n.publicKey1??""),String(n.signature2??""),String(n.publicKey2??"")))}if(!["contractless_signMessage","contractless_sendTransaction","contractless_signDualTransaction"].includes(o))throw new Error("The website requested an unsupported wallet method.");if(await N(n,r),o==="contractless_sendTransaction"){const c=_t(n.transaction);await rt(a,c)}else if(o==="contractless_signDualTransaction"){const c=z(n.transaction);await rt(a,c)}const u={id:crypto.randomUUID(),method:o,params:n,origin:r,createdAt:Date.now(),risk:st(o,n),display:o==="contractless_signMessage"?{request:"Sign a text message",application_id:C(n.appId),website:r,message:ft(n.message),warning:"This is a text signature. It cannot move wallet assets."}:o==="contractless_signDualTransaction"?(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(n.transaction)));return{application_id:C(n.appId),website:r,transaction_type:c.transaction_name,signer_slot:n.signerSlot,transaction_fields:c.review,action:"Sign and return this signature to the application without broadcasting."}})():(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(n.transaction)));return{application_id:C(n.appId),website:r,transaction_type:c.transaction_name,transaction_fields:c.review,action:"Sign and broadcast this transaction."}})()};if(await ot(u),!await nt(u.id))throw new Error("The wallet request was rejected.");return it(a,u)}case"pending-provider-approval":{const r=await B(),o=r[0]??"";if(!o)return null;const n=`approval:${o}`,c=(await chrome.storage.session.get(n))[n];return c?s?(c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},c.display={...c.display??{},wallet_address:s.short_address},await chrome.storage.session.set({[n]:c})),{locked:!1,request:c,position:1,total:r.length}):{locked:!0}:(await G(o),null)}case"resolve-provider-approval":{if(!s)throw new Error("Unlock the wallet before approving this request.");const r=String(e.id??""),o=await B();if(!r||o[0]!==r)throw new Error("The wallet approval request has expired.");const n=`approval:${r}`,c=(await chrome.storage.session.get(n))[n];if(!c)throw new Error("The wallet approval request has expired.");return c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},await chrome.storage.session.set({[n]:c})),await chrome.storage.session.set({[`approval-result:${r}`]:{approved:e.approved===!0}}),await chrome.storage.session.remove(n),{resolved:!0,remaining:(await G(r)).length}}default:throw new Error("Unsupported wallet request.")}}chrome.runtime.onMessage.addListener((e,t,a)=>(It(e,t).then(i=>a({ok:!0,result:i})).catch(i=>a({ok:!1,error:i instanceof Error?i.message:String(i)})),!0));chrome.alarms.onAlarm.addListener(e=>{e.name===L&&R()}); diff --git a/extension/dist/chrome/manifest.json b/extension/dist/chrome/manifest.json index c42233e..c9aa099 100644 --- a/extension/dist/chrome/manifest.json +++ b/extension/dist/chrome/manifest.json @@ -6,7 +6,7 @@ "content_security_policy": { "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" }, - "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "permissions": ["storage", "alarms", "clipboardWrite"], "host_permissions": ["https://api.contractless.dev/*"], "optional_host_permissions": ["https://*/"], "action": { diff --git a/extension/dist/chrome/popup.html b/extension/dist/chrome/popup.html index 1aaf6fa..4350f86 100644 --- a/extension/dist/chrome/popup.html +++ b/extension/dist/chrome/popup.html @@ -7,7 +7,7 @@ - +

diff --git a/extension/dist/chrome/popup.js b/extension/dist/chrome/popup.js index f57b0b4..769a04a 100644 --- a/extension/dist/chrome/popup.js +++ b/extension/dist/chrome/popup.js @@ -1,8 +1,8 @@ -import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Yt}from"./chunks/core-D2IK1U91.js";function Cn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},De,Ct;function En(){return Ct||(Ct=1,De=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),De}var Ue={},ee={},Et;function se(){if(Et)return ee;Et=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return ee.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var qe={},bt;function lt(){return bt||(bt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(qe)),qe}var Fe,kt;function bn(){if(kt)return Fe;kt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},Fe=e,Fe}var Ve,At;function kn(){if(At)return Ve;At=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},Nt;function An(){return Nt||(Nt=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let s=1;s=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,s=0,d=null,u=null;for(let m=0;m=5&&(a+=t.N1+(l-5)),d=f,l=1),f=r.get(p,m),f===u?s++:(s>=5&&(a+=t.N1+(s-5)),u=f,s=1)}l>=5&&(a+=t.N1+(l-5)),s>=5&&(a+=t.N1+(s-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,s=s<<1&2047|r.get(u,d),u>=10&&(s===1488||s===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},Je=t,Je}var We={},He={},Ye={},Rt;function Qt(){return Rt||(Rt=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var O={},It;function Zt(){if(It)return O;It=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r -]))+`;O.KANJI=new RegExp(n,"g"),O.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),O.BYTE=new RegExp(o,"g"),O.NUMERIC=new RegExp(e,"g"),O.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return O.testKanji=function(s){return r.test(s)},O.testNumeric=function(s){return i.test(s)},O.testAlphanumeric=function(s){return a.test(s)},O}var Pt;function ce(){return Pt||(Pt=1,(function(e){const t=Qt(),n=Zt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var Mt;function Bn(){return Mt||(Mt=1,(function(e){const t=se(),n=Gt(),o=lt(),r=ce(),i=Qt(),a=7973,l=t.getBCHDigit(a);function s(p,f,h){for(let w=1;w<=40;w++)if(f<=e.getCapacity(w,h,p))return w}function d(p,f){return r.getCharCountIndicator(p,f)+4}function u(p,f){let h=0;return p.forEach(function(w){const R=d(w.mode,f);h+=R+w.getBitsLength()}),h}function m(p,f){for(let h=1;h<=40;h++)if(u(p,h)<=e.getCapacity(h,f,r.MIXED))return h}e.from=function(f,h){return i.isValid(f)?parseInt(f,10):h},e.getCapacity=function(f,h,w){if(!i.isValid(f))throw new Error("Invalid QR Code version");typeof w>"u"&&(w=r.BYTE);const R=t.getSymbolTotalCodewords(f),C=n.getTotalCodewordsCount(f,h),B=(R-C)*8;if(w===r.MIXED)return B;const E=B-d(w,f);switch(w){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(f,h){let w;const R=o.from(h,o.M);if(Array.isArray(f)){if(f.length>1)return m(f,R);if(f.length===0)return 1;w=f[0]}else w=f;return s(w.mode,w.getLength(),R)},e.getEncodedBits=function(f){if(!i.isValid(f)||f<7)throw new Error("Invalid QR Code version");let h=f<<12;for(;t.getBCHDigit(h)-l>=0;)h^=a<=0;)s^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,Ut;function In(){if(Ut)return Xe;Ut=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,qt;function Pn(){if(qt)return et;qt=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` -Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Vt;function $n(){return Vt||(Vt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var s,d,u,m,p,f,h,w,R;!l.empty();){s=l.pop(),d=s.value,m=s.cost,p=n[d]||{};for(u in p)p.hasOwnProperty(u)&&(f=p[u],h=m+f,w=a[u],R=typeof a[u]>"u",(R||w>h)&&(a[u]=h,l.push(u,h),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var Kt;function Dn(){return Kt||(Kt=1,(function(e){const t=ce(),n=Rn(),o=In(),r=Pn(),i=Mn(),a=Zt(),l=se(),s=$n();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,B,E){const L=[];let D;for(;(D=C.exec(E))!==null;)L.push({data:D[0],index:D.index,mode:B,length:D[0].length});return L}function m(C){const B=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let L,D;return l.isKanjiModeEnabled()?(L=u(a.BYTE,t.BYTE,C),D=u(a.KANJI,t.KANJI,C)):(L=u(a.BYTE_KANJI,t.BYTE,C),D=[]),B.concat(E,L,D).sort(function(N,A){return N.index-A.index}).map(function(N){return{data:N.data,mode:N.mode,length:N.length}})}function p(C,B){switch(B){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function f(C){return C.reduce(function(B,E){const L=B.length-1>=0?B[B.length-1]:null;return L&&L.mode===E.mode?(B[B.length-1].data+=E.data,B):(B.push(E),B)},[])}function h(C){const B=[];for(let E=0;E=0&&k<=6&&(_===0||_===6)||_>=0&&_<=6&&(k===0||k===6)||k>=2&&k<=4&&_>=2&&_<=4?y.set(b+k,S+_,!0,!0):y.set(b+k,S+_,!1,!0))}}function h(y){const N=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,N,A){const v=y.size,T=u.getEncodedBits(N,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(v-15+b,8,S,!0),b<8?y.set(8,v-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(v-8,8,1,!0)}function B(y,N){const A=y.size;let v=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let _=0;_<2;_++)if(!y.isReserved(T,k-_)){let X=!1;S>>b&1)===1),y.set(T,k-_,X),b--,b===-1&&(S++,b=7)}if(T+=v,T<0||A<=T){T-=v,v=-v;break}}}function E(y,N,A){const v=new n;A.forEach(function(_){v.put(_.mode.bit,4),v.put(_.getLength(),m.getCharCountIndicator(_.mode,y)),_.write(v)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,N),S=(T-b)*8;for(v.getLengthInBits()+4<=S&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const k=(S-v.getLengthInBits())/8;for(let _=0;_40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var qe={},kt;function dt(){return kt||(kt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(qe)),qe}var Fe,At;function An(){if(At)return Fe;At=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},Fe=e,Fe}var Ve,Nt;function Nn(){if(Nt)return Ve;Nt=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},St;function Sn(){return St||(St=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let s=1;s=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,s=0,d=null,u=null;for(let f=0;f=5&&(a+=t.N1+(l-5)),d=p,l=1),p=r.get(g,f),p===u?s++:(s>=5&&(a+=t.N1+(s-5)),u=p,s=1)}l>=5&&(a+=t.N1+(l-5)),s>=5&&(a+=t.N1+(s-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,s=s<<1&2047|r.get(u,d),u>=10&&(s===1488||s===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},Je=t,Je}var We={},He={},Ye={},It;function Zt(){return It||(It=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var O={},Pt;function Xt(){if(Pt)return O;Pt=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r +]))+`;O.KANJI=new RegExp(n,"g"),O.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),O.BYTE=new RegExp(o,"g"),O.NUMERIC=new RegExp(e,"g"),O.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return O.testKanji=function(s){return r.test(s)},O.testNumeric=function(s){return i.test(s)},O.testAlphanumeric=function(s){return a.test(s)},O}var Mt;function ce(){return Mt||(Mt=1,(function(e){const t=Zt(),n=Xt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var $t;function xn(){return $t||($t=1,(function(e){const t=se(),n=Qt(),o=dt(),r=ce(),i=Zt(),a=7973,l=t.getBCHDigit(a);function s(g,p,h){for(let w=1;w<=40;w++)if(p<=e.getCapacity(w,h,g))return w}function d(g,p){return r.getCharCountIndicator(g,p)+4}function u(g,p){let h=0;return g.forEach(function(w){const x=d(w.mode,p);h+=x+w.getBitsLength()}),h}function f(g,p){for(let h=1;h<=40;h++)if(u(g,h)<=e.getCapacity(h,p,r.MIXED))return h}e.from=function(p,h){return i.isValid(p)?parseInt(p,10):h},e.getCapacity=function(p,h,w){if(!i.isValid(p))throw new Error("Invalid QR Code version");typeof w>"u"&&(w=r.BYTE);const x=t.getSymbolTotalCodewords(p),C=n.getTotalCodewordsCount(p,h),B=(x-C)*8;if(w===r.MIXED)return B;const E=B-d(w,p);switch(w){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(p,h){let w;const x=o.from(h,o.M);if(Array.isArray(p)){if(p.length>1)return f(p,x);if(p.length===0)return 1;w=p[0]}else w=p;return s(w.mode,w.getLength(),x)},e.getEncodedBits=function(p){if(!i.isValid(p)||p<7)throw new Error("Invalid QR Code version");let h=p<<12;for(;t.getBCHDigit(h)-l>=0;)h^=a<=0;)s^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,qt;function Mn(){if(qt)return Xe;qt=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,Ft;function $n(){if(Ft)return et;Ft=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` +Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Kt;function Dn(){return Kt||(Kt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var s,d,u,f,g,p,h,w,x;!l.empty();){s=l.pop(),d=s.value,f=s.cost,g=n[d]||{};for(u in g)g.hasOwnProperty(u)&&(p=g[u],h=f+p,w=a[u],x=typeof a[u]>"u",(x||w>h)&&(a[u]=h,l.push(u,h),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var jt;function qn(){return jt||(jt=1,(function(e){const t=ce(),n=Pn(),o=Mn(),r=$n(),i=Un(),a=Xt(),l=se(),s=Dn();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,B,E){const L=[];let U;for(;(U=C.exec(E))!==null;)L.push({data:U[0],index:U.index,mode:B,length:U[0].length});return L}function f(C){const B=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let L,U;return l.isKanjiModeEnabled()?(L=u(a.BYTE,t.BYTE,C),U=u(a.KANJI,t.KANJI,C)):(L=u(a.BYTE_KANJI,t.BYTE,C),U=[]),B.concat(E,L,U).sort(function(N,A){return N.index-A.index}).map(function(N){return{data:N.data,mode:N.mode,length:N.length}})}function g(C,B){switch(B){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function p(C){return C.reduce(function(B,E){const L=B.length-1>=0?B[B.length-1]:null;return L&&L.mode===E.mode?(B[B.length-1].data+=E.data,B):(B.push(E),B)},[])}function h(C){const B=[];for(let E=0;E=0&&k<=6&&(_===0||_===6)||_>=0&&_<=6&&(k===0||k===6)||k>=2&&k<=4&&_>=2&&_<=4?y.set(b+k,S+_,!0,!0):y.set(b+k,S+_,!1,!0))}}function h(y){const N=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,N,A){const v=y.size,T=u.getEncodedBits(N,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(v-15+b,8,S,!0),b<8?y.set(8,v-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(v-8,8,1,!0)}function B(y,N){const A=y.size;let v=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let _=0;_<2;_++)if(!y.isReserved(T,k-_)){let X=!1;S>>b&1)===1),y.set(T,k-_,X),b--,b===-1&&(S++,b=7)}if(T+=v,T<0||A<=T){T-=v,v=-v;break}}}function E(y,N,A){const v=new n;A.forEach(function(_){v.put(_.mode.bit,4),v.put(_.getLength(),f.getCharCountIndicator(_.mode,y)),_.write(v)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,N),S=(T-b)*8;for(v.getLengthInBits()+4<=S&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const k=(S-v.getLengthInBits())/8;for(let _=0;_=7&&R(_,N),B(_,S),isNaN(v)&&(v=a.getBestMask(_,C.bind(null,_,A))),a.applyMask(v,_),C(_,A,v),{modules:_,version:N,errorCorrectionLevel:A,maskPattern:v,segments:T}}return Ue.create=function(N,A){if(typeof N>"u"||N==="")throw new Error("No input text");let v=t.M,T,b;return typeof A<"u"&&(v=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),D(N,T,v,b)},Ue}var rt={},ot={},zt;function Xt(){return zt||(zt=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,s=e.getScale(a,i),d=Math.floor((a+i.margin*2)*s),u=i.margin*s,m=[i.color.light,i.color.dark];for(let p=0;p=u&&f>=u&&p"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(d=o()),s=t.getOptions(s);const u=t.getImageWidth(i.modules.size,s),m=d.getContext("2d"),p=m.createImageData(u,u);return t.qrToImageData(p.data,i,s),n(m,d,u),m.putImageData(p,0,0),d},e.renderToDataURL=function(i,a,l){let s=l;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const d=e.render(i,a,s),u=s.type||"image/png",m=s.rendererOpts||{};return d.toDataURL(u,m.quality)}})(rt)),rt}var it={},Jt;function Fn(){if(Jt)return it;Jt=1;const e=Xt();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",s=0,d=!1,u=0;for(let m=0;m0&&p>0&&r[m-1]||(l+=d?n("M",p+a,.5+f+a):n("m",s,0),s=0,d=!1),p+1':"",f="',h='viewBox="0 0 '+m+" "+m+'"',R=''+p+f+` -`;return typeof l=="function"&&l(null,R),R},it}var Wt;function Vn(){if(Wt)return de;Wt=1;const e=En(),t=Un(),n=qn(),o=Fn();function r(i,a,l,s,d){const u=[].slice.call(arguments,1),m=u.length,p=typeof u[m-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(m<2)throw new Error("Too few arguments provided");m===2?(d=l,l=a,a=s=void 0):m===3&&(a.getContext&&typeof d>"u"?(d=s,s=void 0):(d=s,s=l,l=a,a=void 0))}else{if(m<1)throw new Error("Too few arguments provided");return m===1?(l=a,a=s=void 0):m===2&&!a.getContext&&(s=l,l=a,a=void 0),new Promise(function(f,h){try{const w=t.create(l,s);f(i(w,a,s))}catch(w){h(w)}})}try{const f=t.create(l,s);d(null,i(f,a,s))}catch(f){d(f)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var Kn=Vn();const jn=Cn(Kn),c=e=>document.getElementById(e),zn=Array.from(document.querySelectorAll(".screen")),M=c("notice"),en=navigator.userAgent.includes("Firefox");let Le="",fe="",ge="",ie="",g,dt,Te="held",K=1,ae=0;const we=8;let x,H=[],Z,P,_e,tn="activity",G,ve="",oe="";const he=20,On={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){zn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){g=e;const t=e.networkName,n=e.networkSymbol;document.querySelectorAll("[data-network-name]").forEach(o=>{o.textContent=t}),document.querySelectorAll("[data-network-symbol]").forEach(o=>{o.textContent=n}),c("base-asset-name").textContent=`Contractless ${t}`,c("wallet-address").textContent=e.address??"",c("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",c("settings-testnet-api-url").value=e.testnetApiUrl,c("settings-mainnet-api-url").value=e.mainnetApiUrl,document.querySelectorAll("[data-select-network]").forEach(o=>{const r=o.dataset.selectNetwork===e.selectedNetwork;o.classList.toggle("active",r),o.setAttribute("aria-pressed",String(r))}),c("settings-lock-timeout").value=String(e.autoLockMinutes),Xn(e),e.exists?e.unlocked?at().then(o=>{o||(I("dashboard-screen"),Be())}):I("locked-screen"):I("create-screen")}function Jn(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Ht(e,t,n){const o=n===1?2:1,r=(g==null?void 0:g.networkSymbol)??"CLTC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Wn(e,t){var a;const n=((a=g==null?void 0:g.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Ht(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Ht(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=c("approve-provider-approval"),n=c("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function at(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";c("provider-approval-origin").textContent=`${t.origin}${n}`;const o=c("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";c("provider-approval-title").textContent=Jn(t.method,r),c("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=c("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,s])=>{if(l==="transaction_fields"&&s&&typeof s=="object"){const d=s,u=Number(d.txtype??0),m=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Wn(a,d),Object.entries(d).forEach(([p,f])=>{u===6&&m.has(p)||j(a,p==="txtype"?"transaction_type_id":p,dn(u,p,f))});return}j(a,l,s)}),I("provider-approval-screen"),!0}async function nn(e,t){if(!(e>0&&await at())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Hn(e){return e.replace(/[.0]/g,"").length>0}function st(){const e=c("token-list");if(e.replaceChildren(),!x){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent="Loading token balances...";const u=document.createElement("span");u.textContent="Balances are retrieved from the selected Contractless API.",s.append(d,u),e.append(s);return}const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set(x.tokens.map(s=>s.token.trim().toUpperCase())),o=new Set(x.nfts.map(s=>`${s.name.trim().toUpperCase()}|${Number(s.series||0)}`)),r=x.balances.filter(s=>{const d=s.asset.trim().toUpperCase(),u=`${d}|${Number(s.nft_series||0)}`;return s.nft_series===0&&d!=="CLTC"&&d!=="CLC"&&n.has(d)&&!o.has(u)}),i=new Map(r.map(s=>[s.asset.trim().toUpperCase(),s])),a=Te==="all"?x.tokens.map(s=>s.token):r.filter(s=>Hn(s.balance)).map(s=>s.asset),l=[...new Set(a.map(s=>s.trim().toUpperCase()))].filter(s=>s!==t&&!o.has(`${s}|0`)).sort((s,d)=>s.localeCompare(d));if(l.length===0){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent=Te==="held"?"No token balances found":"No tokens found";const u=document.createElement("span");u.textContent=Te==="held"?"Switch to All tokens to view the complete network token list.":x.tokenCatalogError?`Token catalog unavailable: ${x.tokenCatalogError}`:"The selected API did not return any fungible tokens.",s.append(d,u),e.append(s);return}l.forEach(s=>{const d=i.get(s),u=document.createElement("div");u.className="asset-row";const m=document.createElement("div");m.className="asset-symbol token-symbol",m.textContent=s.slice(0,3);const p=document.createElement("div");p.className="asset-name";const f=document.createElement("strong");f.textContent=s;const h=document.createElement("span");h.textContent="Contractless token",p.append(f,h);const w=document.createElement("div");w.className="asset-value";const R=document.createElement("strong");R.textContent=(d==null?void 0:d.balance)??"0.00000000";const C=document.createElement("span");C.textContent=s,w.append(R,C),u.append(m,p,w),e.append(u)})}async function Be(){if(g!=null&&g.unlocked){x=void 0,c("base-balance").textContent="--",c("base-asset-balance").textContent="--",st();try{if(!g.apiUrl)throw new Error(`No ${g.networkName} API is configured.`);const e=await $("wallet-balances");x={balances:Array.isArray(e.balances)?e.balances:[],tokens:Array.isArray(e.tokens)?e.tokens:[],nfts:Array.isArray(e.nfts)?e.nfts:[],tokenCatalogError:e.tokenCatalogError,nftCatalogError:e.nftCatalogError};const t=g.networkSymbol,n=x.balances.find(r=>r.nft_series===0&&r.asset.toUpperCase()===t),o=(n==null?void 0:n.balance)??"0.00000000";c("base-balance").textContent=o,c("base-asset-balance").textContent=o,st()}catch(e){const t=c("token-list");t.replaceChildren();const n=document.createElement("div");n.className="empty-assets balance-error";const o=document.createElement("strong");o.textContent="Unable to load balances";const r=document.createElement("span");r.textContent=F(e),n.append(o,r),t.append(n),M.textContent=F(e)}}}function Ne(e,t){return`${e.trim().toUpperCase()}|${t}`}function Yn(e){try{return Y(e,"Balance")>0n}catch{return!1}}function rn(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=Y(e.balance,"Balance"),n=Y(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ut(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function ft(e){const t=ut(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function on(e){const n=ut(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function be(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Gn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function Qn(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=ft(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function an(){const e=(K-1)*we;return H.slice(e,e+we)}function Ce(){const e=c("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(H.length/we));if(K=Math.min(Math.max(1,K),t),c("nfts-count").textContent=H.length===1?"1 owned asset":`${H.length} owned assets`,c("nfts-page").textContent=String(K),c("nfts-pages").textContent=String(t),c("nfts-pagination").hidden=t<=1,c("nfts-previous").disabled=K<=1,c("nfts-next").disabled=K>=t,!H.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=x!=null&&x.nftCatalogError?`NFT catalog unavailable: ${x.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}an().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(Qn(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=on(n);const a=document.createElement("strong");a.textContent=ft(n);const l=document.createElement("small");l.textContent=be(n);const s=document.createElement("b");if(s.textContent=rn(n),r.append(i,a,l,s),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>Zn(n)),e.append(o)})}function Se(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function xe(e){Z=e;const t=e.details,n=ut(e),o=on(e),r=ft(e);c("nft-detail-title").textContent=r,c("nft-detail-kind").textContent=`${o} details`,c("nft-detail-badge").textContent=o,c("nft-detail-name").textContent=r,c("nft-detail-ownership").textContent=rn(e);const i=c("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;c("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=c("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(m=>{if(!m||typeof m!="object")return;const p=m,f=document.createElement("div"),h=document.createElement("span");h.textContent=String(p.trait_type??p.type??"Attribute");const w=document.createElement("strong");w.textContent=String(p.value??""),f.append(h,w),l.append(f)}),l.hidden=l.childElementCount===0;const d=c("nft-detail-fields");d.replaceChildren(),Se(d,"Asset",be(e)),Se(d,"Creator",(t==null?void 0:t.creator)??"--"),Se(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Se(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=c("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(m=>{const p=document.createElement("button");p.type="button",p.className="nft-history-row",p.title=`View full transaction ${m.txid}`;const f=document.createElement("strong");f.textContent=m.action;const h=document.createElement("span");h.textContent=`Block ${Number(m.block).toLocaleString()}`;const w=document.createElement("small");w.textContent=Gn(m.txid),p.append(f,h,w),p.addEventListener("click",()=>{fn({txid:m.txid,block_height:Number(m.block),transaction_hex:""},"nft")}),u.append(p)});else{const m=document.createElement("p");m.textContent="No provenance records were returned.",u.append(m)}else{const m=document.createElement("p");m.textContent="Loading provenance...",u.append(m)}}function Zn(e){xe(e),I("nft-detail-screen")}async function mt(e){const t=an().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Ne(r.name,r.series),r]));H=x.nfts.map(r=>{const i=x==null?void 0:x.balances.find(l=>Ne(l.asset,Number(l.nft_series||0))===Ne(r.name,Number(r.series||0)));if(!i||!Yn(i.balance))return null;const a=n.get(Ne(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(H.length/we));K=Math.min(K,o),Ce(),await mt(t)}function Xn(e){const t=c("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const s=document.createElement("strong");s.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(s,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){z(!1);return}U(async()=>{z(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const m=document.createElement("button");m.type="button",m.className="rename-address",m.title="Rename wallet",m.setAttribute("aria-label",`Rename ${n.label}`),m.textContent="✎",m.addEventListener("click",()=>{const p=window.prompt("Wallet label",n.label);p===null||p.trim()===n.label||U(async()=>{const f=await $("rename-wallet",{walletId:n.id,label:p});V(f),z(!0)})}),o.append(r,m),t.append(o)})}function z(e){const t=c("account-drawer"),n=c("drawer-backdrop"),o=c("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function gt(){c("revealed-private-key").value="",c("private-key-result").hidden=!0}function Ee(e){if(c("backup-key-modal").hidden=!e,c("backup-key-backdrop").hidden=!e,e){const t=c("backup-key-input");t.value="",t.focus()}else c("backup-key-input").value="",dt=void 0}async function er(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");c("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",c("receive-address-value").textContent=t;const n=c("receive-qr");await jn.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function Y(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function sn(){if(P)return P.balance;const e=c("send-asset").value,t=x==null?void 0:x.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function cn(){const e=c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC";if(e!==t)return 100000000n;const n=c("send-amount").value.trim();if(!n)return 0n;try{return(Y(n,"Amount")+99n)/100n}catch{return 0n}}function Re(){const e=(P==null?void 0:P.name)??c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC",n=P?be(P):e;c("send-amount-symbol").textContent=n,c("send-available").textContent=`Available: ${sn()} ${n}`;const o=cn();c("send-fee").value=ne(o),c("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function tr(){const e=c("send-asset");e.replaceChildren();const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set([t]);x==null||x.tokens.forEach(o=>{const r=o.token.trim().toUpperCase();(x==null?void 0:x.balances.find(a=>a.nft_series===0&&a.asset.trim().toUpperCase()===r&&Y(a.balance,"Balance")>0n))&&n.add(r)}),n.forEach(o=>{const r=document.createElement("option");r.value=o,r.textContent=o,e.append(r)}),Re()}function nr(){if(!x)throw new Error("Wallet balances are still loading.");P=void 0,G=void 0,c("send-form").reset(),c("send-asset").disabled=!1,c("send-amount").disabled=!1,tr(),I("send-screen")}function rr(e){if(!x)throw new Error("Wallet balances are still loading.");P=e,G=void 0,c("send-form").reset();const t=c("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=be(e),t.append(n),t.disabled=!0;const o=c("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),Re(),I("send-screen")}async function or(){var w;if(!(g!=null&&g.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??c("send-asset").value,t=P?be(P):e,n=Q(c("send-recipient").value,"Enter a receiving address."),o=Q(c("send-amount").value,"Enter an amount to send."),r=Q(c("send-fee").value,"Enter a transaction fee."),i=Y(o,"Amount"),a=Y(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=cn();if(as)throw new Error(`Insufficient ${e} balance.`);const d=g.networkSymbol,u=((w=x==null?void 0:x.balances.find(R=>R.nft_series===0&&R.asset.trim().toUpperCase()===d))==null?void 0:w.balance)??"0.00000000",m=Y(u,"Base balance");if((e===d?i+a:a)>m)throw new Error(`Insufficient ${d} balance including the fee.`);const f=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),h=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;G={transaction:f.transaction,receiverInput:f.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:h},c("review-amount").textContent=G.amount,c("review-asset").textContent=t,c("review-sender").textContent=g.address,c("review-recipient").textContent=f.receiverInput,c("review-resolved-recipient").textContent=String(f.review.receiver??""),c("review-fee").textContent=G.fee,c("review-total").textContent=h,I("send-review-screen")}function ln(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function ir(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function ar(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function dn(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(ar(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function q(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=ir(t);const l=document.createElement("strong");l.textContent=o?String(n??""):dn(r,t,n),i.append(a,l),e.append(i)}function ht(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function fn(e,t="activity"){_e=e,tn=t;const n=c("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),c("transaction-title").textContent="Loading transaction",c("transaction-header-status").textContent="",c("transaction-full-txid").textContent=e.txid,c("transaction-overview").replaceChildren(),c("transaction-fields").replaceChildren(),c("transaction-technical-fields").replaceChildren(),c("transaction-miner-earnings").replaceChildren(),c("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Yt((g==null?void 0:g.selectedNetwork)??"testnet"),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=ht(o.block_height,o.current_height){q(u,f,h,!1,i.txtype)});const m=e.miner_earnings??[];if(m.length>0){const f=c("transaction-miner-earnings");m.forEach((h,w)=>{q(f,`earning_${w+1}_type`,h.type),q(f,`earning_${w+1}_asset`,h.asset),q(f,`earning_${w+1}_nft_series`,h.nft_series),q(f,`earning_${w+1}_amount`,`${re(h.amount_atomic)} ${h.asset.trim()}`)}),c("miner-earnings-section").hidden=!1}const p=c("transaction-technical-fields");i.stored_hash&&q(p,"stored_hash",i.stored_hash,!0),i.signature&&q(p,"signature",i.signature,!0),i.signature1&&q(p,"signature_1",i.signature1,!0),i.signature2&&q(p,"signature_2",i.signature2,!0),q(p,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){c("transaction-title").textContent="Transaction unavailable";const r=c("transaction-fields");r.replaceChildren(),q(r,"error",F(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function sr(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=(g==null?void 0:g.networkSymbol)??"CLTC",i=s=>String(n[s]??"").trim(),a=(s,d,u="")=>`${u}${re(n[s])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const s=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${s}`:`Received ${s}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",s,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const s=i("ticker");return{title:`Created ${s}`,subtitle:"Token creation",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 4:{const s=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${s} ${Number(s)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const s=String(n.sender1??"").trim().toLowerCase()===o,d=i(s?"ticker1":"ticker2"),u=i(s?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[s?"sender2":"sender1"])}`,amount:a(s?"value1":"value2",d,"-"),secondary:a(s?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const s=String(n.lender??"").trim().toLowerCase()===o;return{title:s?"Loan funded":"Loan received",subtitle:s?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),s?"-":"+"),direction:s?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const s=i("ticker");return{title:`Issued ${s}`,subtitle:"Additional token supply",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function cr(e,t){const n=c("activity-list");if(n.replaceChildren(),c("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Yt((g==null?void 0:g.selectedNetwork)??"testnet");e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:On[E]??`Transaction Type ${E}`,fields:{}}}const a=sr(i,(g==null?void 0:g.address)??""),l=ln(r.transaction_hex),d=ht(r.block_height,t){fn(r)}),n.append(u)})}async function mn(){if(!(g!=null&&g.unlocked))return;c("activity-count").textContent="Loading";const e=c("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await cr(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=F(n),e.append(o),c("activity-count").textContent="Unavailable"}}function F(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function U(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=F(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function lr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function gn(e,t){g=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),c("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=c("backup-confirmed");n.disabled=!0,n.checked=!1,c("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>{const t=String(e.dataset.screen);if(t==="image-screen"&&en){chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0});return}I(t)})});c("account-menu-button").addEventListener("click",()=>z(!0));c("close-account-drawer").addEventListener("click",()=>z(!1));c("drawer-backdrop").addEventListener("click",()=>z(!1));function hn(e){z(!1),c("cancel-wallet-add").hidden=!1,I(e)}c("menu-create-wallet").addEventListener("click",()=>{hn("create-screen")});c("menu-import-wallet").addEventListener("click",()=>{z(!1),en?chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0}):hn("image-screen")});c("cancel-wallet-add").addEventListener("click",()=>{c("cancel-wallet-add").hidden=!0,g&&V(g)});c("menu-settings").addEventListener("click",()=>{z(!1),gt(),g&&(c("settings-testnet-api-url").value=g.testnetApiUrl,c("settings-mainnet-api-url").value=g.mainnetApiUrl,c("settings-lock-timeout").value=String(g.autoLockMinutes)),I("settings-screen")});c("close-settings").addEventListener("click",()=>{gt(),g&&V(g)});c("drawer-lock-wallet").addEventListener("click",()=>{U(async()=>{z(!1),fe="",ie="",V(await $("lock"))})});c("open-receive").addEventListener("click",()=>{U(er)});c("open-send").addEventListener("click",()=>{U(async()=>nr())});c("close-send").addEventListener("click",()=>{G=void 0,P?(xe(P),I("nft-detail-screen")):g&&V(g)});c("send-asset").addEventListener("change",Re);c("send-amount").addEventListener("input",Re);c("send-form").addEventListener("submit",e=>{e.preventDefault(),U(or)});c("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),c("send-form").requestSubmit())});c("edit-send").addEventListener("click",()=>{I("send-screen")});c("sign-broadcast-transfer").addEventListener("click",()=>{U(async()=>{if(!G)throw new Error("The reviewed transfer is unavailable.");ve=(await $("wallet-broadcast-transfer",{transaction:G.transaction})).txid,c("send-result-txid").textContent=ve,G=void 0,I("send-success-screen")})});c("copy-send-txid").addEventListener("click",()=>{ve&&navigator.clipboard.writeText(ve).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=F(e)})});c("finish-send").addEventListener("click",()=>{ve="";const e=!!P;P=void 0,g&&(Be(),e?(Z=void 0,I("nfts-screen"),pt(!0)):V(g))});c("open-activity").addEventListener("click",()=>{I("activity-screen"),mn()});c("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),pt(!0)});c("close-nfts").addEventListener("click",()=>{ae+=1,g&&V(g)});c("refresh-nfts").addEventListener("click",()=>{pt(!0)});c("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});c("transfer-nft").addEventListener("click",()=>{U(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");rr(Z)})});c("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),mt(e)});c("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(H.length/we));if(K>=e)return;K+=1;const t=++ae;Ce(),mt(t)});c("close-activity").addEventListener("click",()=>{g&&V(g)});c("close-transaction").addEventListener("click",()=>{tn==="nft"&&Z?(xe(Z),I("nft-detail-screen")):I("activity-screen")});c("copy-transaction-txid").addEventListener("click",()=>{const e=_e==null?void 0:_e.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=F(t)})});c("refresh-activity").addEventListener("click",()=>{mn()});c("refresh-balances").addEventListener("click",()=>{Be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{Te=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),st()})});c("close-receive").addEventListener("click",()=>{g&&V(g)});c("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=c("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=F(n)})});c("save-wallet-settings").addEventListener("click",()=>{U(async()=>{const e=c("settings-testnet-api-url").value.replace(/\/+$/,""),t=c("settings-mainnet-api-url").value.replace(/\/+$/,"");if(!e)throw new Error("A testnet API URL is required.");for(const n of[e,t].filter(Boolean)){const o=new URL(n);if(o.protocol!=="https:"&&o.hostname!=="localhost"&&o.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const r=`${o.origin}/*`;if(!await chrome.permissions.contains({origins:[r]})&&!await chrome.permissions.request({origins:[r]}))throw new Error("Permission to contact this API endpoint was denied.")}g=await $("save-settings",{testnetApiUrl:e,mainnetApiUrl:t,autoLockMinutes:c("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-select-network]").forEach(e=>{e.addEventListener("click",()=>{const t=e.dataset.selectNetwork;!t||t===(g==null?void 0:g.selectedNetwork)||U(async()=>{z(!1),V(await $("switch-network",{network:t}))})})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{dt=e.dataset.backupAction,Ee(!0)})});c("close-backup-key").addEventListener("click",()=>Ee(!1));c("backup-key-backdrop").addEventListener("click",()=>Ee(!1));c("confirm-backup-key").addEventListener("click",()=>{const e=dt,t=c("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}U(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=g==null?void 0:g.address)==null?void 0:r.split(".")[0])??"contractless";pn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){c("revealed-private-key").value=n.privateKey,c("private-key-result").hidden=!1,c("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});c("clear-private-key").addEventListener("click",gt);c("copy-private-key").addEventListener("click",()=>{const e=c("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=F(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=c(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});c("continue-create").addEventListener("click",()=>{try{Le=Q(c("new-password").value,"Enter an encryption key."),c("verify-password").value="",I("verify-screen")}catch(e){M.textContent=F(e)}});c("create-wallet").addEventListener("click",()=>{if(c("verify-password").value!==Le){M.textContent="The encryption keys do not match.";return}U(async()=>{const t=Le,n=await $("create-wallet",{password:t});Le="",c("new-password").value="",c("verify-password").value="",await gn(n,t)},!0).catch(()=>I("verify-screen",!1))});const ct=c("wallet-image");ct.addEventListener("change",()=>{var t;const e=(t=ct.files)==null?void 0:t[0];ge="",c("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=lr(new Uint8Array(n))}).catch(n=>{M.textContent=F(n)})});c("import-image-form").addEventListener("submit",e=>{e.preventDefault();const t=c("image-password").value;try{Q(t,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-wallet-image",{imageBase64:ge,imagePassword:t,password:t});fe=t,ge="",ct.value="",c("image-password").value="",V(n)},!0).catch(()=>I("image-screen",!1))});c("import-private").addEventListener("click",()=>{const e=c("private-key").value.trim(),t=c("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});c("private-key").value="",c("private-password").value="",await gn(n,t)},!0).catch(()=>I("private-screen",!1))});c("save-image").addEventListener("click",()=>{U(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=g==null?void 0:g.address)==null?void 0:n.split(".")[0])??"contractless";pn(ie,`${e}.wallet.png`);const t=c("backup-confirmed");t.disabled=!1,t.checked=!1,c("open-wallet").disabled=!0})});c("backup-confirmed").addEventListener("change",e=>{c("open-wallet").disabled=!e.currentTarget.checked});c("open-wallet").addEventListener("click",()=>{fe="",ie="",c("wallet-image-preview").removeAttribute("src"),g&&V(g)});c("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=c("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("unlock",{password:t});fe=t,c("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});c("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await nn(e.remaining??0,!0)}).catch(()=>ye(null)))});c("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await nn(e.remaining??0,!1)}).catch(()=>ye(null)))});$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=F(e)}); +`);const S=E(N,A,T),k=e.getSymbolSize(N),_=new o(k);return p(_,N),h(_),w(_,N),C(_,A,0),N>=7&&x(_,N),B(_,S),isNaN(v)&&(v=a.getBestMask(_,C.bind(null,_,A))),a.applyMask(v,_),C(_,A,v),{modules:_,version:N,errorCorrectionLevel:A,maskPattern:v,segments:T}}return De.create=function(N,A){if(typeof N>"u"||N==="")throw new Error("No input text");let v=t.M,T,b;return typeof A<"u"&&(v=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),U(N,T,v,b)},De}var rt={},ot={},Ot;function en(){return Ot||(Ot=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,s=e.getScale(a,i),d=Math.floor((a+i.margin*2)*s),u=i.margin*s,f=[i.color.light,i.color.dark];for(let g=0;g=u&&p>=u&&g"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(d=o()),s=t.getOptions(s);const u=t.getImageWidth(i.modules.size,s),f=d.getContext("2d"),g=f.createImageData(u,u);return t.qrToImageData(g.data,i,s),n(f,d,u),f.putImageData(g,0,0),d},e.renderToDataURL=function(i,a,l){let s=l;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const d=e.render(i,a,s),u=s.type||"image/png",f=s.rendererOpts||{};return d.toDataURL(u,f.quality)}})(rt)),rt}var it={},Wt;function Kn(){if(Wt)return it;Wt=1;const e=en();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",s=0,d=!1,u=0;for(let f=0;f0&&g>0&&r[f-1]||(l+=d?n("M",g+a,.5+p+a):n("m",s,0),s=0,d=!1),g+1':"",p="',h='viewBox="0 0 '+f+" "+f+'"',x=''+g+p+` +`;return typeof l=="function"&&l(null,x),x},it}var Ht;function jn(){if(Ht)return de;Ht=1;const e=kn(),t=Fn(),n=Vn(),o=Kn();function r(i,a,l,s,d){const u=[].slice.call(arguments,1),f=u.length,g=typeof u[f-1]=="function";if(!g&&!e())throw new Error("Callback required as last argument");if(g){if(f<2)throw new Error("Too few arguments provided");f===2?(d=l,l=a,a=s=void 0):f===3&&(a.getContext&&typeof d>"u"?(d=s,s=void 0):(d=s,s=l,l=a,a=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(l=a,a=s=void 0):f===2&&!a.getContext&&(s=l,l=a,a=void 0),new Promise(function(p,h){try{const w=t.create(l,s);p(i(w,a,s))}catch(w){h(w)}})}try{const p=t.create(l,s);d(null,i(p,a,s))}catch(p){d(p)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var zn=jn();const On=bn(zn),c=e=>document.getElementById(e),Jn=Array.from(document.querySelectorAll(".screen")),M=c("notice"),tn=navigator.userAgent.includes("Firefox");let Te="",fe="",ge="",ie="",m,ut,_e="held",K=1,ae=0;const we=8;let R,H=[],Z,P,Be,nn="activity",G,ve="",oe="";const he=20,Wn=15e3;let at=!1;const Hn={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){Jn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){m=e;const t=e.networkName,n=e.networkSymbol;document.querySelectorAll("[data-network-name]").forEach(o=>{o.textContent=t}),document.querySelectorAll("[data-network-symbol]").forEach(o=>{o.textContent=n}),c("base-asset-name").textContent=`Contractless ${t}`,c("wallet-address").textContent=e.address??"",c("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",c("settings-testnet-api-url").value=e.testnetApiUrl,c("settings-mainnet-api-url").value=e.mainnetApiUrl,document.querySelectorAll("[data-select-network]").forEach(o=>{const r=o.dataset.selectNetwork===e.selectedNetwork;o.classList.toggle("active",r),o.setAttribute("aria-pressed",String(r))}),c("settings-lock-timeout").value=String(e.autoLockMinutes),nr(e),e.exists?e.unlocked?st().then(o=>{o||(I("dashboard-screen"),be())}):I("locked-screen"):I("create-screen")}function Yn(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Yt(e,t,n){const o=n===1?2:1,r=(m==null?void 0:m.networkSymbol)??"CLTC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Gn(e,t){var a;const n=((a=m==null?void 0:m.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Yt(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Yt(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=c("approve-provider-approval"),n=c("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function st(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";c("provider-approval-origin").textContent=`${t.origin}${n}`;const o=c("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";c("provider-approval-title").textContent=Yn(t.method,r),c("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=c("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,s])=>{if(l==="transaction_fields"&&s&&typeof s=="object"){const d=s,u=Number(d.txtype??0),f=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Gn(a,d),Object.entries(d).forEach(([g,p])=>{u===6&&f.has(g)||j(a,g==="txtype"?"transaction_type_id":g,fn(u,g,p))});return}j(a,l,s)}),I("provider-approval-screen"),!0}async function rn(e,t){if(!(e>0&&await st())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Qn(e){return e.replace(/[.0]/g,"").length>0}function ct(){const e=c("token-list");if(e.replaceChildren(),!R){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent="Loading token balances...";const u=document.createElement("span");u.textContent="Balances are retrieved from the selected Contractless API.",s.append(d,u),e.append(s);return}const t=(m==null?void 0:m.networkSymbol)??"CLTC",n=new Set(R.tokens.map(s=>s.token.trim().toUpperCase())),o=new Set(R.nfts.map(s=>`${s.name.trim().toUpperCase()}|${Number(s.series||0)}`)),r=R.balances.filter(s=>{const d=s.asset.trim().toUpperCase(),u=`${d}|${Number(s.nft_series||0)}`;return s.nft_series===0&&d!=="CLTC"&&d!=="CLC"&&n.has(d)&&!o.has(u)}),i=new Map(r.map(s=>[s.asset.trim().toUpperCase(),s])),a=_e==="all"?R.tokens.map(s=>s.token):r.filter(s=>Qn(s.balance)).map(s=>s.asset),l=[...new Set(a.map(s=>s.trim().toUpperCase()))].filter(s=>s!==t&&!o.has(`${s}|0`)).sort((s,d)=>s.localeCompare(d));if(l.length===0){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent=_e==="held"?"No token balances found":"No tokens found";const u=document.createElement("span");u.textContent=_e==="held"?"Switch to All tokens to view the complete network token list.":R.tokenCatalogError?`Token catalog unavailable: ${R.tokenCatalogError}`:"The selected API did not return any fungible tokens.",s.append(d,u),e.append(s);return}l.forEach(s=>{const d=i.get(s),u=document.createElement("div");u.className="asset-row";const f=document.createElement("div");f.className="asset-symbol token-symbol",f.textContent=s.slice(0,3);const g=document.createElement("div");g.className="asset-name";const p=document.createElement("strong");p.textContent=s;const h=document.createElement("span");h.textContent="Contractless token",g.append(p,h);const w=document.createElement("div");w.className="asset-value";const x=document.createElement("strong");x.textContent=(d==null?void 0:d.balance)??"0.00000000";const C=document.createElement("span");C.textContent=s,w.append(x,C),u.append(f,g,w),e.append(u)})}async function be(e={}){if(!(m!=null&&m.unlocked)||at)return;const t=m.address,n=m.selectedNetwork,o=m.apiUrl,r=R!==void 0,i=e.showLoading??!r,a=e.reportErrors??!0;at=!0,i&&(R=void 0,c("base-balance").textContent="--",c("base-asset-balance").textContent="--",ct());try{if(!m.apiUrl)throw new Error(`No ${m.networkName} API is configured.`);const l=await $("wallet-balances");if(!(m!=null&&m.unlocked)||m.address!==t||m.selectedNetwork!==n||m.apiUrl!==o)return;R={balances:Array.isArray(l.balances)?l.balances:[],tokens:Array.isArray(l.tokens)?l.tokens:[],nfts:Array.isArray(l.nfts)?l.nfts:[],tokenCatalogError:l.tokenCatalogError,nftCatalogError:l.nftCatalogError};const s=m.networkSymbol,d=R.balances.find(f=>f.nft_series===0&&f.asset.toUpperCase()===s),u=(d==null?void 0:d.balance)??"0.00000000";c("base-balance").textContent=u,c("base-asset-balance").textContent=u,ct()}catch(l){if(!r){const s=c("token-list");s.replaceChildren();const d=document.createElement("div");d.className="empty-assets balance-error";const u=document.createElement("strong");u.textContent="Unable to load balances";const f=document.createElement("span");f.textContent=F(l),d.append(u,f),s.append(d)}a&&(M.textContent=F(l))}finally{at=!1}}function on(){document.hidden||c("dashboard-screen").hidden||!(m!=null&&m.unlocked)||be({showLoading:!1,reportErrors:!1})}function Se(e,t){return`${e.trim().toUpperCase()}|${t}`}function Zn(e){try{return Y(e,"Balance")>0n}catch{return!1}}function an(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=Y(e.balance,"Balance"),n=Y(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ft(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function mt(e){const t=ft(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function sn(e){const n=ft(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function ke(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Xn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function er(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=mt(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function cn(){const e=(K-1)*we;return H.slice(e,e+we)}function Ce(){const e=c("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(H.length/we));if(K=Math.min(Math.max(1,K),t),c("nfts-count").textContent=H.length===1?"1 owned asset":`${H.length} owned assets`,c("nfts-page").textContent=String(K),c("nfts-pages").textContent=String(t),c("nfts-pagination").hidden=t<=1,c("nfts-previous").disabled=K<=1,c("nfts-next").disabled=K>=t,!H.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=R!=null&&R.nftCatalogError?`NFT catalog unavailable: ${R.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}cn().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(er(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=sn(n);const a=document.createElement("strong");a.textContent=mt(n);const l=document.createElement("small");l.textContent=ke(n);const s=document.createElement("b");if(s.textContent=an(n),r.append(i,a,l,s),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>tr(n)),e.append(o)})}function Le(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function Re(e){Z=e;const t=e.details,n=ft(e),o=sn(e),r=mt(e);c("nft-detail-title").textContent=r,c("nft-detail-kind").textContent=`${o} details`,c("nft-detail-badge").textContent=o,c("nft-detail-name").textContent=r,c("nft-detail-ownership").textContent=an(e);const i=c("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;c("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=c("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(f=>{if(!f||typeof f!="object")return;const g=f,p=document.createElement("div"),h=document.createElement("span");h.textContent=String(g.trait_type??g.type??"Attribute");const w=document.createElement("strong");w.textContent=String(g.value??""),p.append(h,w),l.append(p)}),l.hidden=l.childElementCount===0;const d=c("nft-detail-fields");d.replaceChildren(),Le(d,"Asset",ke(e)),Le(d,"Creator",(t==null?void 0:t.creator)??"--"),Le(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Le(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=c("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(f=>{const g=document.createElement("button");g.type="button",g.className="nft-history-row",g.title=`View full transaction ${f.txid}`;const p=document.createElement("strong");p.textContent=f.action;const h=document.createElement("span");h.textContent=`Block ${Number(f.block).toLocaleString()}`;const w=document.createElement("small");w.textContent=Xn(f.txid),g.append(p,h,w),g.addEventListener("click",()=>{pn({txid:f.txid,block_height:Number(f.block),transaction_hex:""},"nft")}),u.append(g)});else{const f=document.createElement("p");f.textContent="No provenance records were returned.",u.append(f)}else{const f=document.createElement("p");f.textContent="Loading provenance...",u.append(f)}}function tr(e){Re(e),I("nft-detail-screen")}async function pt(e){const t=cn().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Se(r.name,r.series),r]));H=R.nfts.map(r=>{const i=R==null?void 0:R.balances.find(l=>Se(l.asset,Number(l.nft_series||0))===Se(r.name,Number(r.series||0)));if(!i||!Zn(i.balance))return null;const a=n.get(Se(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(H.length/we));K=Math.min(K,o),Ce(),await pt(t)}function nr(e){const t=c("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const s=document.createElement("strong");s.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(s,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){z(!1);return}D(async()=>{z(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const f=document.createElement("button");f.type="button",f.className="rename-address",f.title="Rename wallet",f.setAttribute("aria-label",`Rename ${n.label}`),f.textContent="✎",f.addEventListener("click",()=>{const g=window.prompt("Wallet label",n.label);g===null||g.trim()===n.label||D(async()=>{const p=await $("rename-wallet",{walletId:n.id,label:g});V(p),z(!0)})}),o.append(r,f),t.append(o)})}function z(e){const t=c("account-drawer"),n=c("drawer-backdrop"),o=c("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function ht(){c("revealed-private-key").value="",c("private-key-result").hidden=!0}function Ee(e){if(c("backup-key-modal").hidden=!e,c("backup-key-backdrop").hidden=!e,e){const t=c("backup-key-input");t.value="",t.focus()}else c("backup-key-input").value="",ut=void 0}async function rr(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");c("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",c("receive-address-value").textContent=t;const n=c("receive-qr");await On.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function Y(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function ln(){if(P)return P.balance;const e=c("send-asset").value,t=R==null?void 0:R.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function dn(){const e=c("send-asset").value,t=(m==null?void 0:m.networkSymbol)??"CLTC";if(e!==t)return 100000000n;const n=c("send-amount").value.trim();if(!n)return 0n;try{return(Y(n,"Amount")+99n)/100n}catch{return 0n}}function xe(){const e=(P==null?void 0:P.name)??c("send-asset").value,t=(m==null?void 0:m.networkSymbol)??"CLTC",n=P?ke(P):e;c("send-amount-symbol").textContent=n,c("send-available").textContent=`Available: ${ln()} ${n}`;const o=dn();c("send-fee").value=ne(o),c("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function or(){const e=c("send-asset");e.replaceChildren();const t=(m==null?void 0:m.networkSymbol)??"CLTC",n=new Set([t]);R==null||R.tokens.forEach(o=>{const r=o.token.trim().toUpperCase();(R==null?void 0:R.balances.find(a=>a.nft_series===0&&a.asset.trim().toUpperCase()===r&&Y(a.balance,"Balance")>0n))&&n.add(r)}),n.forEach(o=>{const r=document.createElement("option");r.value=o,r.textContent=o,e.append(r)}),xe()}function ir(){if(!R)throw new Error("Wallet balances are still loading.");P=void 0,G=void 0,c("send-form").reset(),c("send-asset").disabled=!1,c("send-amount").disabled=!1,or(),I("send-screen")}function ar(e){if(!R)throw new Error("Wallet balances are still loading.");P=e,G=void 0,c("send-form").reset();const t=c("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=ke(e),t.append(n),t.disabled=!0;const o=c("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),xe(),I("send-screen")}async function sr(){var w;if(!(m!=null&&m.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??c("send-asset").value,t=P?ke(P):e,n=Q(c("send-recipient").value,"Enter a receiving address."),o=Q(c("send-amount").value,"Enter an amount to send."),r=Q(c("send-fee").value,"Enter a transaction fee."),i=Y(o,"Amount"),a=Y(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=dn();if(as)throw new Error(`Insufficient ${e} balance.`);const d=m.networkSymbol,u=((w=R==null?void 0:R.balances.find(x=>x.nft_series===0&&x.asset.trim().toUpperCase()===d))==null?void 0:w.balance)??"0.00000000",f=Y(u,"Base balance");if((e===d?i+a:a)>f)throw new Error(`Insufficient ${d} balance including the fee.`);const p=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),h=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;G={transaction:p.transaction,receiverInput:p.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:h},c("review-amount").textContent=G.amount,c("review-asset").textContent=t,c("review-sender").textContent=m.address,c("review-recipient").textContent=p.receiverInput,c("review-resolved-recipient").textContent=String(p.review.receiver??""),c("review-fee").textContent=G.fee,c("review-total").textContent=h,I("send-review-screen")}function un(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function cr(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function lr(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function fn(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(lr(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function q(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=cr(t);const l=document.createElement("strong");l.textContent=o?String(n??""):fn(r,t,n),i.append(a,l),e.append(i)}function wt(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function pn(e,t="activity"){Be=e,nn=t;const n=c("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),c("transaction-title").textContent="Loading transaction",c("transaction-header-status").textContent="",c("transaction-full-txid").textContent=e.txid,c("transaction-overview").replaceChildren(),c("transaction-fields").replaceChildren(),c("transaction-technical-fields").replaceChildren(),c("transaction-miner-earnings").replaceChildren(),c("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Gt((m==null?void 0:m.selectedNetwork)??"testnet"),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=wt(o.block_height,o.current_height){q(u,p,h,!1,i.txtype)});const f=e.miner_earnings??[];if(f.length>0){const p=c("transaction-miner-earnings");f.forEach((h,w)=>{q(p,`earning_${w+1}_type`,h.type),q(p,`earning_${w+1}_asset`,h.asset),q(p,`earning_${w+1}_nft_series`,h.nft_series),q(p,`earning_${w+1}_amount`,`${re(h.amount_atomic)} ${h.asset.trim()}`)}),c("miner-earnings-section").hidden=!1}const g=c("transaction-technical-fields");i.stored_hash&&q(g,"stored_hash",i.stored_hash,!0),i.signature&&q(g,"signature",i.signature,!0),i.signature1&&q(g,"signature_1",i.signature1,!0),i.signature2&&q(g,"signature_2",i.signature2,!0),q(g,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){c("transaction-title").textContent="Transaction unavailable";const r=c("transaction-fields");r.replaceChildren(),q(r,"error",F(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function dr(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=(m==null?void 0:m.networkSymbol)??"CLTC",i=s=>String(n[s]??"").trim(),a=(s,d,u="")=>`${u}${re(n[s])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const s=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${s}`:`Received ${s}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",s,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const s=i("ticker");return{title:`Created ${s}`,subtitle:"Token creation",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 4:{const s=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${s} ${Number(s)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const s=String(n.sender1??"").trim().toLowerCase()===o,d=i(s?"ticker1":"ticker2"),u=i(s?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[s?"sender2":"sender1"])}`,amount:a(s?"value1":"value2",d,"-"),secondary:a(s?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const s=String(n.lender??"").trim().toLowerCase()===o;return{title:s?"Loan funded":"Loan received",subtitle:s?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),s?"-":"+"),direction:s?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const s=i("ticker");return{title:`Issued ${s}`,subtitle:"Additional token supply",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function ur(e,t){const n=c("activity-list");if(n.replaceChildren(),c("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Gt((m==null?void 0:m.selectedNetwork)??"testnet");e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:Hn[E]??`Transaction Type ${E}`,fields:{}}}const a=dr(i,(m==null?void 0:m.address)??""),l=un(r.transaction_hex),d=wt(r.block_height,t){pn(r)}),n.append(u)})}async function gn(){if(!(m!=null&&m.unlocked))return;c("activity-count").textContent="Loading";const e=c("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await ur(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=F(n),e.append(o),c("activity-count").textContent="Unavailable"}}function F(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function D(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=F(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function fr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function wn(e,t){m=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),c("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=c("backup-confirmed");n.disabled=!0,n.checked=!1,c("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>{const t=String(e.dataset.screen);if(t==="image-screen"&&tn){chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0});return}I(t)})});c("account-menu-button").addEventListener("click",()=>z(!0));c("close-account-drawer").addEventListener("click",()=>z(!1));c("drawer-backdrop").addEventListener("click",()=>z(!1));function vn(e){z(!1),c("cancel-wallet-add").hidden=!1,I(e)}c("menu-create-wallet").addEventListener("click",()=>{vn("create-screen")});c("menu-import-wallet").addEventListener("click",()=>{z(!1),tn?chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0}):vn("image-screen")});c("cancel-wallet-add").addEventListener("click",()=>{c("cancel-wallet-add").hidden=!0,m&&V(m)});c("menu-settings").addEventListener("click",()=>{z(!1),ht(),m&&(c("settings-testnet-api-url").value=m.testnetApiUrl,c("settings-mainnet-api-url").value=m.mainnetApiUrl,c("settings-lock-timeout").value=String(m.autoLockMinutes)),I("settings-screen")});c("close-settings").addEventListener("click",()=>{ht(),m&&V(m)});c("drawer-lock-wallet").addEventListener("click",()=>{D(async()=>{z(!1),fe="",ie="",V(await $("lock"))})});c("open-receive").addEventListener("click",()=>{D(rr)});c("open-send").addEventListener("click",()=>{D(async()=>ir())});c("close-send").addEventListener("click",()=>{G=void 0,P?(Re(P),I("nft-detail-screen")):m&&V(m)});c("send-asset").addEventListener("change",xe);c("send-amount").addEventListener("input",xe);c("send-form").addEventListener("submit",e=>{e.preventDefault(),D(sr)});c("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),c("send-form").requestSubmit())});c("edit-send").addEventListener("click",()=>{I("send-screen")});c("sign-broadcast-transfer").addEventListener("click",()=>{D(async()=>{if(!G)throw new Error("The reviewed transfer is unavailable.");ve=(await $("wallet-broadcast-transfer",{transaction:G.transaction})).txid,c("send-result-txid").textContent=ve,G=void 0,I("send-success-screen")})});c("copy-send-txid").addEventListener("click",()=>{ve&&navigator.clipboard.writeText(ve).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=F(e)})});c("finish-send").addEventListener("click",()=>{ve="";const e=!!P;P=void 0,m&&(be(),e?(Z=void 0,I("nfts-screen"),gt(!0)):V(m))});c("open-activity").addEventListener("click",()=>{I("activity-screen"),gn()});c("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),gt(!0)});c("close-nfts").addEventListener("click",()=>{ae+=1,m&&V(m)});c("refresh-nfts").addEventListener("click",()=>{gt(!0)});c("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});c("transfer-nft").addEventListener("click",()=>{D(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");ar(Z)})});c("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),pt(e)});c("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(H.length/we));if(K>=e)return;K+=1;const t=++ae;Ce(),pt(t)});c("close-activity").addEventListener("click",()=>{m&&V(m)});c("close-transaction").addEventListener("click",()=>{nn==="nft"&&Z?(Re(Z),I("nft-detail-screen")):I("activity-screen")});c("copy-transaction-txid").addEventListener("click",()=>{const e=Be==null?void 0:Be.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=F(t)})});c("refresh-activity").addEventListener("click",()=>{gn()});c("refresh-balances").addEventListener("click",()=>{be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{_e=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),ct()})});c("close-receive").addEventListener("click",()=>{m&&V(m)});c("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=c("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=F(n)})});c("save-wallet-settings").addEventListener("click",()=>{D(async()=>{const e=c("settings-testnet-api-url").value.replace(/\/+$/,""),t=c("settings-mainnet-api-url").value.replace(/\/+$/,"");if(!e)throw new Error("A testnet API URL is required.");for(const n of[e,t].filter(Boolean)){const o=new URL(n);if(o.protocol!=="https:"&&o.hostname!=="localhost"&&o.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const r=`${o.origin}/*`;if(!await chrome.permissions.contains({origins:[r]})&&!await chrome.permissions.request({origins:[r]}))throw new Error("Permission to contact this API endpoint was denied.")}m=await $("save-settings",{testnetApiUrl:e,mainnetApiUrl:t,autoLockMinutes:c("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-select-network]").forEach(e=>{e.addEventListener("click",()=>{const t=e.dataset.selectNetwork;!t||t===(m==null?void 0:m.selectedNetwork)||D(async()=>{z(!1),V(await $("switch-network",{network:t}))})})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{ut=e.dataset.backupAction,Ee(!0)})});c("close-backup-key").addEventListener("click",()=>Ee(!1));c("backup-key-backdrop").addEventListener("click",()=>Ee(!1));c("confirm-backup-key").addEventListener("click",()=>{const e=ut,t=c("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}D(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=m==null?void 0:m.address)==null?void 0:r.split(".")[0])??"contractless";hn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){c("revealed-private-key").value=n.privateKey,c("private-key-result").hidden=!1,c("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});c("clear-private-key").addEventListener("click",ht);c("copy-private-key").addEventListener("click",()=>{const e=c("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=F(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=c(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});c("continue-create").addEventListener("click",()=>{try{Te=Q(c("new-password").value,"Enter an encryption key."),c("verify-password").value="",I("verify-screen")}catch(e){M.textContent=F(e)}});c("create-wallet").addEventListener("click",()=>{if(c("verify-password").value!==Te){M.textContent="The encryption keys do not match.";return}D(async()=>{const t=Te,n=await $("create-wallet",{password:t});Te="",c("new-password").value="",c("verify-password").value="",await wn(n,t)},!0).catch(()=>I("verify-screen",!1))});const lt=c("wallet-image");lt.addEventListener("change",()=>{var t;const e=(t=lt.files)==null?void 0:t[0];ge="",c("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=fr(new Uint8Array(n))}).catch(n=>{M.textContent=F(n)})});c("import-image-form").addEventListener("submit",e=>{e.preventDefault();const t=c("image-password").value;try{Q(t,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(n){M.textContent=F(n);return}D(async()=>{const n=await $("import-wallet-image",{imageBase64:ge,imagePassword:t,password:t});fe=t,ge="",lt.value="",c("image-password").value="",V(n)},!0).catch(()=>I("image-screen",!1))});c("import-private").addEventListener("click",()=>{const e=c("private-key").value.trim(),t=c("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=F(n);return}D(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});c("private-key").value="",c("private-password").value="",await wn(n,t)},!0).catch(()=>I("private-screen",!1))});c("save-image").addEventListener("click",()=>{D(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=m==null?void 0:m.address)==null?void 0:n.split(".")[0])??"contractless";hn(ie,`${e}.wallet.png`);const t=c("backup-confirmed");t.disabled=!1,t.checked=!1,c("open-wallet").disabled=!0})});c("backup-confirmed").addEventListener("change",e=>{c("open-wallet").disabled=!e.currentTarget.checked});c("open-wallet").addEventListener("click",()=>{fe="",ie="",c("wallet-image-preview").removeAttribute("src"),m&&V(m)});c("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=c("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=F(n);return}D(async()=>{const n=await $("unlock",{password:t});fe=t,c("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});c("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),D(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await rn(e.remaining??0,!0)}).catch(()=>ye(null)))});c("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),D(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await rn(e.remaining??0,!1)}).catch(()=>ye(null)))});window.setInterval(on,Wn);document.addEventListener("visibilitychange",on);$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=F(e)}); diff --git a/extension/dist/chunks/core-CvwXoH-U.js b/extension/dist/chunks/core-CvwXoH-U.js deleted file mode 100644 index 559b415..0000000 --- a/extension/dist/chunks/core-CvwXoH-U.js +++ /dev/null @@ -1 +0,0 @@ -function I(t,e,r,_,o){let l,c;try{const w=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),p=a,q=s(_,n.__wbindgen_malloc,n.__wbindgen_realloc),v=a,F=s(o,n.__wbindgen_malloc,n.__wbindgen_realloc),U=a,k=n.complete_dual_transaction_request(w,d,y,m,b,p,q,v,F,U);var i=k[0],f=k[1];if(k[3])throw i=0,f=0,u(k[2]);return l=i,c=f,g(i,f)}finally{n.__wbindgen_free(l,c,1)}}function M(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.create_handshake_proof(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function B(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.create_wallet_registration(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function C(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.create_wallet_registration_from_keys(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function D(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.decode_transaction(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function j(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.export_legacy_wallet(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function z(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.generate_browser_wallet(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function N(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.import_legacy_wallet(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function V(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.import_private_key(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function G(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.import_private_key_image(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function H(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.inspect_transaction_request(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function P(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.sign_message_request(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function X(t,e,r,_){let o,l;try{const f=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),y=a,m=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),b=a,p=n.sign_transaction_request(f,w,d,y,m,b,_);var c=p[0],i=p[1];if(p[3])throw c=0,i=0,u(p[2]);return o=c,l=i,g(c,i)}finally{n.__wbindgen_free(o,l,1)}}function Y(){let t,e;try{const o=n.transaction_type_registry();var r=o[0],_=o[1];if(o[3])throw r=0,_=0,u(o[2]);return t=r,e=_,g(r,_)}finally{n.__wbindgen_free(t,e,1)}}function J(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.unlock_browser_wallet(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function K(t,e,r,_){let o,l;try{const f=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),y=a,m=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),b=a,p=s(_,n.__wbindgen_malloc,n.__wbindgen_realloc),q=a,v=n.verify_message_proof(f,w,d,y,m,b,p,q);var c=v[0],i=v[1];if(v[3])throw c=0,i=0,u(v[2]);return o=c,l=i,g(c,i)}finally{n.__wbindgen_free(o,l,1)}}function Q(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const r=e;return typeof r=="object"&&r!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,r){throw new Error(g(e,r))},__wbg_call_a6e5c5dce5018821:function(){return R(function(e,r,_){return e.call(r,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return R(function(e,r){e.getRandomValues(r)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,r,_){Uint8Array.prototype.set.call(S(e,r),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return R(function(e,r){e.randomFillSync(r)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return R(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return W(e)?0:h(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return W(e)?0:h(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return W(e)?0:h(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return W(e)?0:h(e)},__wbg_subarray_3ed232c8a6baee09:function(e,r,_){return e.subarray(r>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,r){return S(e,r)},__wbindgen_cast_0000000000000002:function(e,r){return g(e,r)},__wbindgen_init_externref_table:function(){const e=n.__wbindgen_externrefs,r=e.grow(4);e.set(0,void 0),e.set(r+0,void 0),e.set(r+1,null),e.set(r+2,!0),e.set(r+3,!1)}}}}function h(t){const e=n.__externref_table_alloc();return n.__wbindgen_externrefs.set(e,t),e}function S(t,e){return t=t>>>0,A().subarray(t/1,t/1+e)}function g(t,e){return $(t>>>0,e)}let x=null;function A(){return(x===null||x.byteLength===0)&&(x=new Uint8Array(n.memory.buffer)),x}function R(t,e){try{return t.apply(this,e)}catch(r){const _=h(r);n.__wbindgen_exn_store(_)}}function W(t){return t==null}function s(t,e,r){if(r===void 0){const i=T.encode(t),f=e(i.length,1)>>>0;return A().subarray(f,f+i.length).set(i),a=i.length,f}let _=t.length,o=e(_,1)>>>0;const l=A();let c=0;for(;c<_;c++){const i=t.charCodeAt(c);if(i>127)break;l[o+c]=i}if(c!==_){c!==0&&(t=t.slice(c)),o=r(o,_,_=c+t.length*3,1)>>>0;const i=A().subarray(o+c,o+_),f=T.encodeInto(t,i);c+=f.written,o=r(o,_,c,1)>>>0}return a=c,o}function u(t){const e=n.__wbindgen_externrefs.get(t);return n.__externref_table_dealloc(t),e}let E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});E.decode();const Z=2146435072;let O=0;function $(t,e){return O+=e,O>=Z&&(E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),E.decode(),O=e),E.decode(A().subarray(t,t+e))}const T=new TextEncoder;"encodeInto"in T||(T.encodeInto=function(t,e){const r=T.encode(t);return e.set(r),{read:t.length,written:r.length}});let a=0,n;function ee(t,e){return n=t.exports,x=null,n.__wbindgen_start(),n}async function ne(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&r(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const _=await t.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(t,e);return _ instanceof WebAssembly.Instance?{instance:_,module:t}:_}function r(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}async function te(t){if(n!==void 0)return n;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/contractless_browser_core_bg-C_vtp2Os.wasm",import.meta.url));const e=Q();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:r,module:_}=await ne(await t,e);return ee(r)}let L;async function re(){return L??(L=te()),await L,{complete_dual_transaction_request:I,create_handshake_proof:M,create_wallet_registration:B,create_wallet_registration_from_keys:C,decode_transaction:D,export_legacy_wallet:j,generate_browser_wallet:z,import_legacy_wallet:N,import_private_key:V,import_private_key_image:G,inspect_transaction_request:H,sign_message_request:P,sign_transaction_request:X,transaction_type_registry:Y,unlock_browser_wallet:J,verify_message_proof:K}}export{re as c}; diff --git a/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js b/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js deleted file mode 100644 index 3e0a78a..0000000 --- a/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js +++ /dev/null @@ -1 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})(); diff --git a/extension/dist/content.js b/extension/dist/content.js deleted file mode 100644 index 0ce4e56..0000000 --- a/extension/dist/content.js +++ /dev/null @@ -1 +0,0 @@ -const o=document.createElement("script");o.src=chrome.runtime.getURL("provider.js");o.onload=()=>o.remove();(document.head||document.documentElement).appendChild(o);window.addEventListener("message",e=>{var t;e.source!==window||((t=e.data)==null?void 0:t.source)!=="contractless-page"||chrome.runtime.sendMessage({type:"provider-request",method:e.data.method,params:e.data.params},a=>{window.postMessage({source:"contractless-wallet",id:e.data.id,response:a},window.location.origin)})}); diff --git a/extension/dist/contractless-logo.png b/extension/dist/contractless-logo.png deleted file mode 100644 index 729e4d758734de7d40045dd953e5e6ccae13c5b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5286 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 sz - - - - - Contractless Wallet - - - - - - -
-
-
- Contractless -
-
-

Opening wallet

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - diff --git a/extension/dist/popup.js b/extension/dist/popup.js deleted file mode 100644 index 6f113ab..0000000 --- a/extension/dist/popup.js +++ /dev/null @@ -1,8 +0,0 @@ -import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Yt}from"./chunks/core-CvwXoH-U.js";function yn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},De,Ct;function Cn(){return Ct||(Ct=1,De=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),De}var Ue={},ee={},Et;function se(){if(Et)return ee;Et=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return ee.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var Fe={},bt;function lt(){return bt||(bt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(Fe)),Fe}var qe,kt;function En(){if(kt)return qe;kt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},qe=e,qe}var Ve,At;function bn(){if(At)return Ve;At=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},Lt;function kn(){return Lt||(Lt=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let c=1;c=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,c=0,d=null,u=null;for(let f=0;f=5&&(a+=t.N1+(l-5)),d=m,l=1),m=r.get(p,f),m===u?c++:(c>=5&&(a+=t.N1+(c-5)),u=m,c=1)}l>=5&&(a+=t.N1+(l-5)),c>=5&&(a+=t.N1+(c-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,c=c<<1&2047|r.get(u,d),u>=10&&(c===1488||c===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let c=0;c=0;){const a=i[0];for(let c=0;c0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},We=t,We}var Je={},He={},Ye={},Rt;function Qt(){return Rt||(Rt=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var z={},It;function Zt(){if(It)return z;It=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r -]))+`;z.KANJI=new RegExp(n,"g"),z.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),z.BYTE=new RegExp(o,"g"),z.NUMERIC=new RegExp(e,"g"),z.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return z.testKanji=function(c){return r.test(c)},z.testNumeric=function(c){return i.test(c)},z.testAlphanumeric=function(c){return a.test(c)},z}var Pt;function ce(){return Pt||(Pt=1,(function(e){const t=Qt(),n=Zt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var Mt;function _n(){return Mt||(Mt=1,(function(e){const t=se(),n=Gt(),o=lt(),r=ce(),i=Qt(),a=7973,l=t.getBCHDigit(a);function c(p,m,g){for(let v=1;v<=40;v++)if(m<=e.getCapacity(v,g,p))return v}function d(p,m){return r.getCharCountIndicator(p,m)+4}function u(p,m){let g=0;return p.forEach(function(v){const R=d(v.mode,m);g+=R+v.getBitsLength()}),g}function f(p,m){for(let g=1;g<=40;g++)if(u(p,g)<=e.getCapacity(g,m,r.MIXED))return g}e.from=function(m,g){return i.isValid(m)?parseInt(m,10):g},e.getCapacity=function(m,g,v){if(!i.isValid(m))throw new Error("Invalid QR Code version");typeof v>"u"&&(v=r.BYTE);const R=t.getSymbolTotalCodewords(m),C=n.getTotalCodewordsCount(m,g),_=(R-C)*8;if(v===r.MIXED)return _;const E=_-d(v,m);switch(v){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(m,g){let v;const R=o.from(g,o.M);if(Array.isArray(m)){if(m.length>1)return f(m,R);if(m.length===0)return 1;v=m[0]}else v=m;return c(v.mode,v.getLength(),R)},e.getEncodedBits=function(m){if(!i.isValid(m)||m<7)throw new Error("Invalid QR Code version");let g=m<<12;for(;t.getBCHDigit(g)-l>=0;)g^=a<=0;)c^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,Ut;function Rn(){if(Ut)return Xe;Ut=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,Ft;function In(){if(Ft)return et;Ft=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` -Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Vt;function Mn(){return Vt||(Vt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var c,d,u,f,p,m,g,v,R;!l.empty();){c=l.pop(),d=c.value,f=c.cost,p=n[d]||{};for(u in p)p.hasOwnProperty(u)&&(m=p[u],g=f+m,v=a[u],R=typeof a[u]>"u",(R||v>g)&&(a[u]=g,l.push(u,g),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var Kt;function $n(){return Kt||(Kt=1,(function(e){const t=ce(),n=xn(),o=Rn(),r=In(),i=Pn(),a=Zt(),l=se(),c=Mn();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,_,E){const N=[];let D;for(;(D=C.exec(E))!==null;)N.push({data:D[0],index:D.index,mode:_,length:D[0].length});return N}function f(C){const _=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let N,D;return l.isKanjiModeEnabled()?(N=u(a.BYTE,t.BYTE,C),D=u(a.KANJI,t.KANJI,C)):(N=u(a.BYTE_KANJI,t.BYTE,C),D=[]),_.concat(E,N,D).sort(function(L,A){return L.index-A.index}).map(function(L){return{data:L.data,mode:L.mode,length:L.length}})}function p(C,_){switch(_){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function m(C){return C.reduce(function(_,E){const N=_.length-1>=0?_[_.length-1]:null;return N&&N.mode===E.mode?(_[_.length-1].data+=E.data,_):(_.push(E),_)},[])}function g(C){const _=[];for(let E=0;E=0&&k<=6&&(B===0||B===6)||B>=0&&B<=6&&(k===0||k===6)||k>=2&&k<=4&&B>=2&&B<=4?y.set(b+k,S+B,!0,!0):y.set(b+k,S+B,!1,!0))}}function g(y){const L=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,L,A){const w=y.size,T=u.getEncodedBits(L,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(w-15+b,8,S,!0),b<8?y.set(8,w-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(w-8,8,1,!0)}function _(y,L){const A=y.size;let w=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let B=0;B<2;B++)if(!y.isReserved(T,k-B)){let X=!1;S>>b&1)===1),y.set(T,k-B,X),b--,b===-1&&(S++,b=7)}if(T+=w,T<0||A<=T){T-=w,w=-w;break}}}function E(y,L,A){const w=new n;A.forEach(function(B){w.put(B.mode.bit,4),w.put(B.getLength(),f.getCharCountIndicator(B.mode,y)),B.write(w)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,L),S=(T-b)*8;for(w.getLengthInBits()+4<=S&&w.put(0,4);w.getLengthInBits()%8!==0;)w.putBit(0);const k=(S-w.getLengthInBits())/8;for(let B=0;B=7&&R(B,L),_(B,S),isNaN(w)&&(w=a.getBestMask(B,C.bind(null,B,A))),a.applyMask(w,B),C(B,A,w),{modules:B,version:L,errorCorrectionLevel:A,maskPattern:w,segments:T}}return Ue.create=function(L,A){if(typeof L>"u"||L==="")throw new Error("No input text");let w=t.M,T,b;return typeof A<"u"&&(w=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),D(L,T,w,b)},Ue}var rt={},ot={},zt;function Xt(){return zt||(zt=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,c=e.getScale(a,i),d=Math.floor((a+i.margin*2)*c),u=i.margin*c,f=[i.color.light,i.color.dark];for(let p=0;p=u&&m>=u&&p"u"&&(!a||!a.getContext)&&(c=a,a=void 0),a||(d=o()),c=t.getOptions(c);const u=t.getImageWidth(i.modules.size,c),f=d.getContext("2d"),p=f.createImageData(u,u);return t.qrToImageData(p.data,i,c),n(f,d,u),f.putImageData(p,0,0),d},e.renderToDataURL=function(i,a,l){let c=l;typeof c>"u"&&(!a||!a.getContext)&&(c=a,a=void 0),c||(c={});const d=e.render(i,a,c),u=c.type||"image/png",f=c.rendererOpts||{};return d.toDataURL(u,f.quality)}})(rt)),rt}var it={},Wt;function Fn(){if(Wt)return it;Wt=1;const e=Xt();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",c=0,d=!1,u=0;for(let f=0;f0&&p>0&&r[f-1]||(l+=d?n("M",p+a,.5+m+a):n("m",c,0),c=0,d=!1),p+1':"",m="',g='viewBox="0 0 '+f+" "+f+'"',R=''+p+m+` -`;return typeof l=="function"&&l(null,R),R},it}var Jt;function qn(){if(Jt)return de;Jt=1;const e=Cn(),t=Dn(),n=Un(),o=Fn();function r(i,a,l,c,d){const u=[].slice.call(arguments,1),f=u.length,p=typeof u[f-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(f<2)throw new Error("Too few arguments provided");f===2?(d=l,l=a,a=c=void 0):f===3&&(a.getContext&&typeof d>"u"?(d=c,c=void 0):(d=c,c=l,l=a,a=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(l=a,a=c=void 0):f===2&&!a.getContext&&(c=l,l=a,a=void 0),new Promise(function(m,g){try{const v=t.create(l,c);m(i(v,a,c))}catch(v){g(v)}})}try{const m=t.create(l,c);d(null,i(m,a,c))}catch(m){d(m)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var Vn=qn();const Kn=yn(Vn),s=e=>document.getElementById(e),jn=Array.from(document.querySelectorAll(".screen")),M=s("notice");let Ne="",fe="",ge="",ie="",h,dt,Te="held",K=1,ae=0;const ve=8;let x,J=[],Z,P,_e,en="activity",Y,we="",oe="";const he=20,zn={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){jn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){var i;h=e;const t=e.address??((i=e.wallets.find(a=>a.active))==null?void 0:i.address),n=(t==null?void 0:t.endsWith(".cltc"))??!0,o=n?"Testnet":"Mainnet",r=n?"CLTC":"CLC";document.querySelectorAll("[data-network-name]").forEach(a=>{a.textContent=o}),document.querySelectorAll("[data-network-symbol]").forEach(a=>{a.textContent=r}),s("base-asset-name").textContent=`Contractless ${o}`,s("wallet-address").textContent=e.address??"",s("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",s("settings-api-url").value=e.apiUrl,s("settings-lock-timeout").value=String(e.autoLockMinutes),Zn(e),e.exists?e.unlocked?at().then(a=>{a||(I("dashboard-screen"),Be())}):I("locked-screen"):I("create-screen")}function On(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Ht(e,t,n){var i;const o=n===1?2:1,r=(i=h==null?void 0:h.address)!=null&&i.endsWith(".cltc")?"CLTC":"CLC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Wn(e,t){var a;const n=((a=h==null?void 0:h.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Ht(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Ht(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=s("approve-provider-approval"),n=s("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function at(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";s("provider-approval-origin").textContent=`${t.origin}${n}`;const o=s("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";s("provider-approval-title").textContent=On(t.method,r),s("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=s("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,c])=>{if(l==="transaction_fields"&&c&&typeof c=="object"){const d=c,u=Number(d.txtype??0),f=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Wn(a,d),Object.entries(d).forEach(([p,m])=>{u===6&&f.has(p)||j(a,p==="txtype"?"transaction_type_id":p,ln(u,p,m))});return}j(a,l,c)}),I("provider-approval-screen"),!0}async function tn(e,t){if(!(e>0&&await at())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Jn(e){return e.replace(/[.0]/g,"").length>0}function st(){var c;const e=s("token-list");if(e.replaceChildren(),!x){const d=document.createElement("div");d.className="empty-assets";const u=document.createElement("strong");u.textContent="Loading token balances...";const f=document.createElement("span");f.textContent="Balances are retrieved from the selected Contractless API.",d.append(u,f),e.append(d);return}const t=(c=h==null?void 0:h.address)!=null&&c.endsWith(".cltc")?"CLTC":"CLC",n=new Set(x.tokens.map(d=>d.token.trim().toUpperCase())),o=new Set(x.nfts.map(d=>`${d.name.trim().toUpperCase()}|${Number(d.series||0)}`)),r=x.balances.filter(d=>{const u=d.asset.trim().toUpperCase(),f=`${u}|${Number(d.nft_series||0)}`;return d.nft_series===0&&u!=="CLTC"&&u!=="CLC"&&n.has(u)&&!o.has(f)}),i=new Map(r.map(d=>[d.asset.trim().toUpperCase(),d])),a=Te==="all"?x.tokens.map(d=>d.token):r.filter(d=>Jn(d.balance)).map(d=>d.asset),l=[...new Set(a.map(d=>d.trim().toUpperCase()))].filter(d=>d!==t&&!o.has(`${d}|0`)).sort((d,u)=>d.localeCompare(u));if(l.length===0){const d=document.createElement("div");d.className="empty-assets";const u=document.createElement("strong");u.textContent=Te==="held"?"No token balances found":"No tokens found";const f=document.createElement("span");f.textContent=Te==="held"?"Switch to All tokens to view the complete network token list.":x.tokenCatalogError?`Token catalog unavailable: ${x.tokenCatalogError}`:"The selected API did not return any fungible tokens.",d.append(u,f),e.append(d);return}l.forEach(d=>{const u=i.get(d),f=document.createElement("div");f.className="asset-row";const p=document.createElement("div");p.className="asset-symbol token-symbol",p.textContent=d.slice(0,3);const m=document.createElement("div");m.className="asset-name";const g=document.createElement("strong");g.textContent=d;const v=document.createElement("span");v.textContent="Contractless token",m.append(g,v);const R=document.createElement("div");R.className="asset-value";const C=document.createElement("strong");C.textContent=(u==null?void 0:u.balance)??"0.00000000";const _=document.createElement("span");_.textContent=d,R.append(C,_),f.append(p,m,R),e.append(f)})}async function Be(){var e;if(h!=null&&h.unlocked){x=void 0,s("base-balance").textContent="--",s("base-asset-balance").textContent="--",st();try{const t=await $("wallet-balances");x={balances:Array.isArray(t.balances)?t.balances:[],tokens:Array.isArray(t.tokens)?t.tokens:[],nfts:Array.isArray(t.nfts)?t.nfts:[],tokenCatalogError:t.tokenCatalogError,nftCatalogError:t.nftCatalogError};const n=(e=h.address)!=null&&e.endsWith(".cltc")?"CLTC":"CLC",o=x.balances.find(i=>i.nft_series===0&&i.asset.toUpperCase()===n),r=(o==null?void 0:o.balance)??"0.00000000";s("base-balance").textContent=r,s("base-asset-balance").textContent=r,st()}catch(t){const n=s("token-list");n.replaceChildren();const o=document.createElement("div");o.className="empty-assets balance-error";const r=document.createElement("strong");r.textContent="Unable to load balances";const i=document.createElement("span");i.textContent=q(t),o.append(r,i),n.append(o),M.textContent=q(t)}}}function Le(e,t){return`${e.trim().toUpperCase()}|${t}`}function Hn(e){try{return H(e,"Balance")>0n}catch{return!1}}function nn(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=H(e.balance,"Balance"),n=H(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ut(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function ft(e){const t=ut(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function rn(e){const n=ut(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function be(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Yn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function Gn(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=ft(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function on(){const e=(K-1)*ve;return J.slice(e,e+ve)}function Ce(){const e=s("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(J.length/ve));if(K=Math.min(Math.max(1,K),t),s("nfts-count").textContent=J.length===1?"1 owned asset":`${J.length} owned assets`,s("nfts-page").textContent=String(K),s("nfts-pages").textContent=String(t),s("nfts-pagination").hidden=t<=1,s("nfts-previous").disabled=K<=1,s("nfts-next").disabled=K>=t,!J.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=x!=null&&x.nftCatalogError?`NFT catalog unavailable: ${x.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}on().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(Gn(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=rn(n);const a=document.createElement("strong");a.textContent=ft(n);const l=document.createElement("small");l.textContent=be(n);const c=document.createElement("b");if(c.textContent=nn(n),r.append(i,a,l,c),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>Qn(n)),e.append(o)})}function Se(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function xe(e){Z=e;const t=e.details,n=ut(e),o=rn(e),r=ft(e);s("nft-detail-title").textContent=r,s("nft-detail-kind").textContent=`${o} details`,s("nft-detail-badge").textContent=o,s("nft-detail-name").textContent=r,s("nft-detail-ownership").textContent=nn(e);const i=s("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;s("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=s("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(f=>{if(!f||typeof f!="object")return;const p=f,m=document.createElement("div"),g=document.createElement("span");g.textContent=String(p.trait_type??p.type??"Attribute");const v=document.createElement("strong");v.textContent=String(p.value??""),m.append(g,v),l.append(m)}),l.hidden=l.childElementCount===0;const d=s("nft-detail-fields");d.replaceChildren(),Se(d,"Asset",be(e)),Se(d,"Creator",(t==null?void 0:t.creator)??"--"),Se(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Se(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=s("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(f=>{const p=document.createElement("button");p.type="button",p.className="nft-history-row",p.title=`View full transaction ${f.txid}`;const m=document.createElement("strong");m.textContent=f.action;const g=document.createElement("span");g.textContent=`Block ${Number(f.block).toLocaleString()}`;const v=document.createElement("small");v.textContent=Yn(f.txid),p.append(m,g,v),p.addEventListener("click",()=>{un({txid:f.txid,block_height:Number(f.block),transaction_hex:""},"nft")}),u.append(p)});else{const f=document.createElement("p");f.textContent="No provenance records were returned.",u.append(f)}else{const f=document.createElement("p");f.textContent="Loading provenance...",u.append(f)}}function Qn(e){xe(e),I("nft-detail-screen")}async function mt(e){const t=on().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Le(r.name,r.series),r]));J=x.nfts.map(r=>{const i=x==null?void 0:x.balances.find(l=>Le(l.asset,Number(l.nft_series||0))===Le(r.name,Number(r.series||0)));if(!i||!Hn(i.balance))return null;const a=n.get(Le(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(J.length/ve));K=Math.min(K,o),Ce(),await mt(t)}function Zn(e){const t=s("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const c=document.createElement("strong");c.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(c,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){G(!1);return}U(async()=>{G(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const f=document.createElement("button");f.type="button",f.className="rename-address",f.title="Rename wallet",f.setAttribute("aria-label",`Rename ${n.label}`),f.textContent="✎",f.addEventListener("click",()=>{const p=window.prompt("Wallet label",n.label);p===null||p.trim()===n.label||U(async()=>{const m=await $("rename-wallet",{walletId:n.id,label:p});V(m),G(!0)})}),o.append(r,f),t.append(o)})}function G(e){const t=s("account-drawer"),n=s("drawer-backdrop"),o=s("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function gt(){s("revealed-private-key").value="",s("private-key-result").hidden=!0}function Ee(e){if(s("backup-key-modal").hidden=!e,s("backup-key-backdrop").hidden=!e,e){const t=s("backup-key-input");t.value="",t.focus()}else s("backup-key-input").value="",dt=void 0}async function Xn(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");s("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",s("receive-address-value").textContent=t;const n=s("receive-qr");await Kn.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function H(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function an(){if(P)return P.balance;const e=s("send-asset").value,t=x==null?void 0:x.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function sn(){var o;const e=s("send-asset").value,t=(o=h==null?void 0:h.address)!=null&&o.endsWith(".cltc")?"CLTC":"CLC";if(e!==t)return 100000000n;const n=s("send-amount").value.trim();if(!n)return 0n;try{return(H(n,"Amount")+99n)/100n}catch{return 0n}}function Re(){var r;const e=(P==null?void 0:P.name)??s("send-asset").value,t=(r=h==null?void 0:h.address)!=null&&r.endsWith(".cltc")?"CLTC":"CLC",n=P?be(P):e;s("send-amount-symbol").textContent=n,s("send-available").textContent=`Available: ${an()} ${n}`;const o=sn();s("send-fee").value=ne(o),s("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function er(){var o;const e=s("send-asset");e.replaceChildren();const t=(o=h==null?void 0:h.address)!=null&&o.endsWith(".cltc")?"CLTC":"CLC",n=new Set([t]);x==null||x.tokens.forEach(r=>{const i=r.token.trim().toUpperCase();(x==null?void 0:x.balances.find(l=>l.nft_series===0&&l.asset.trim().toUpperCase()===i&&H(l.balance,"Balance")>0n))&&n.add(i)}),n.forEach(r=>{const i=document.createElement("option");i.value=r,i.textContent=r,e.append(i)}),Re()}function tr(){if(!x)throw new Error("Wallet balances are still loading.");P=void 0,Y=void 0,s("send-form").reset(),s("send-asset").disabled=!1,s("send-amount").disabled=!1,er(),I("send-screen")}function nr(e){if(!x)throw new Error("Wallet balances are still loading.");P=e,Y=void 0,s("send-form").reset();const t=s("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=be(e),t.append(n),t.disabled=!0;const o=s("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),Re(),I("send-screen")}async function rr(){var v;if(!(h!=null&&h.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??s("send-asset").value,t=P?be(P):e,n=Q(s("send-recipient").value,"Enter a receiving address."),o=Q(s("send-amount").value,"Enter an amount to send."),r=Q(s("send-fee").value,"Enter a transaction fee."),i=H(o,"Amount"),a=H(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=sn();if(ac)throw new Error(`Insufficient ${e} balance.`);const d=h.address.endsWith(".cltc")?"CLTC":"CLC",u=((v=x==null?void 0:x.balances.find(R=>R.nft_series===0&&R.asset.trim().toUpperCase()===d))==null?void 0:v.balance)??"0.00000000",f=H(u,"Base balance");if((e===d?i+a:a)>f)throw new Error(`Insufficient ${d} balance including the fee.`);const m=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),g=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;Y={transaction:m.transaction,receiverInput:m.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:g},s("review-amount").textContent=Y.amount,s("review-asset").textContent=t,s("review-sender").textContent=h.address,s("review-recipient").textContent=m.receiverInput,s("review-resolved-recipient").textContent=String(m.review.receiver??""),s("review-fee").textContent=Y.fee,s("review-total").textContent=g,I("send-review-screen")}function cn(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function or(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function ir(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function ln(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(ir(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function F(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=or(t);const l=document.createElement("strong");l.textContent=o?String(n??""):ln(r,t,n),i.append(a,l),e.append(i)}function ht(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function un(e,t="activity"){_e=e,en=t;const n=s("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),s("transaction-title").textContent="Loading transaction",s("transaction-header-status").textContent="",s("transaction-full-txid").textContent=e.txid,s("transaction-overview").replaceChildren(),s("transaction-fields").replaceChildren(),s("transaction-technical-fields").replaceChildren(),s("transaction-miner-earnings").replaceChildren(),s("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Yt(),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=ht(o.block_height,o.current_height){F(u,m,g,!1,i.txtype)});const f=e.miner_earnings??[];if(f.length>0){const m=s("transaction-miner-earnings");f.forEach((g,v)=>{F(m,`earning_${v+1}_type`,g.type),F(m,`earning_${v+1}_asset`,g.asset),F(m,`earning_${v+1}_nft_series`,g.nft_series),F(m,`earning_${v+1}_amount`,`${re(g.amount_atomic)} ${g.asset.trim()}`)}),s("miner-earnings-section").hidden=!1}const p=s("transaction-technical-fields");i.stored_hash&&F(p,"stored_hash",i.stored_hash,!0),i.signature&&F(p,"signature",i.signature,!0),i.signature1&&F(p,"signature_1",i.signature1,!0),i.signature2&&F(p,"signature_2",i.signature2,!0),F(p,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){s("transaction-title").textContent="Transaction unavailable";const r=s("transaction-fields");r.replaceChildren(),F(r,"error",q(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function ar(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=o.endsWith(".cltc")?"CLTC":"CLC",i=c=>String(n[c]??"").trim(),a=(c,d,u="")=>`${u}${re(n[c])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const c=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${c}`:`Received ${c}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",c,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const c=i("ticker");return{title:`Created ${c}`,subtitle:"Token creation",amount:a("number",c,"+"),secondary:l(),direction:"incoming"}}case 4:{const c=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${c} ${Number(c)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const c=String(n.sender1??"").trim().toLowerCase()===o,d=i(c?"ticker1":"ticker2"),u=i(c?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[c?"sender2":"sender1"])}`,amount:a(c?"value1":"value2",d,"-"),secondary:a(c?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const c=String(n.lender??"").trim().toLowerCase()===o;return{title:c?"Loan funded":"Loan received",subtitle:c?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),c?"-":"+"),direction:c?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const c=i("ticker");return{title:`Issued ${c}`,subtitle:"Additional token supply",amount:a("number",c,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function sr(e,t){const n=s("activity-list");if(n.replaceChildren(),s("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Yt();e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:zn[E]??`Transaction Type ${E}`,fields:{}}}const a=ar(i,(h==null?void 0:h.address)??""),l=cn(r.transaction_hex),d=ht(r.block_height,t){un(r)}),n.append(u)})}async function fn(){if(!(h!=null&&h.unlocked))return;s("activity-count").textContent="Loading";const e=s("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await sr(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=q(n),e.append(o),s("activity-count").textContent="Unavailable"}}function q(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function U(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=q(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function cr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function pn(e,t){h=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),s("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=s("backup-confirmed");n.disabled=!0,n.checked=!1,s("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>I(String(e.dataset.screen)))});s("account-menu-button").addEventListener("click",()=>G(!0));s("close-account-drawer").addEventListener("click",()=>G(!1));s("drawer-backdrop").addEventListener("click",()=>G(!1));function gn(e){G(!1),s("cancel-wallet-add").hidden=!1,I(e)}s("menu-create-wallet").addEventListener("click",()=>{gn("create-screen")});s("menu-import-wallet").addEventListener("click",()=>{gn("image-screen")});s("cancel-wallet-add").addEventListener("click",()=>{s("cancel-wallet-add").hidden=!0,h&&V(h)});s("menu-settings").addEventListener("click",()=>{G(!1),gt(),h&&(s("settings-api-url").value=h.apiUrl,s("settings-lock-timeout").value=String(h.autoLockMinutes)),I("settings-screen")});s("close-settings").addEventListener("click",()=>{gt(),h&&V(h)});s("drawer-lock-wallet").addEventListener("click",()=>{U(async()=>{G(!1),fe="",ie="",V(await $("lock"))})});s("open-receive").addEventListener("click",()=>{U(Xn)});s("open-send").addEventListener("click",()=>{U(async()=>tr())});s("close-send").addEventListener("click",()=>{Y=void 0,P?(xe(P),I("nft-detail-screen")):h&&V(h)});s("send-asset").addEventListener("change",Re);s("send-amount").addEventListener("input",Re);s("send-form").addEventListener("submit",e=>{e.preventDefault(),U(rr)});s("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),s("send-form").requestSubmit())});s("edit-send").addEventListener("click",()=>{I("send-screen")});s("sign-broadcast-transfer").addEventListener("click",()=>{U(async()=>{if(!Y)throw new Error("The reviewed transfer is unavailable.");we=(await $("wallet-broadcast-transfer",{transaction:Y.transaction})).txid,s("send-result-txid").textContent=we,Y=void 0,I("send-success-screen")})});s("copy-send-txid").addEventListener("click",()=>{we&&navigator.clipboard.writeText(we).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=q(e)})});s("finish-send").addEventListener("click",()=>{we="";const e=!!P;P=void 0,h&&(Be(),e?(Z=void 0,I("nfts-screen"),pt(!0)):V(h))});s("open-activity").addEventListener("click",()=>{I("activity-screen"),fn()});s("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),pt(!0)});s("close-nfts").addEventListener("click",()=>{ae+=1,h&&V(h)});s("refresh-nfts").addEventListener("click",()=>{pt(!0)});s("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});s("transfer-nft").addEventListener("click",()=>{U(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");nr(Z)})});s("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),mt(e)});s("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(J.length/ve));if(K>=e)return;K+=1;const t=++ae;Ce(),mt(t)});s("close-activity").addEventListener("click",()=>{h&&V(h)});s("close-transaction").addEventListener("click",()=>{en==="nft"&&Z?(xe(Z),I("nft-detail-screen")):I("activity-screen")});s("copy-transaction-txid").addEventListener("click",()=>{const e=_e==null?void 0:_e.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=q(t)})});s("refresh-activity").addEventListener("click",()=>{fn()});s("refresh-balances").addEventListener("click",()=>{Be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{Te=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),st()})});s("close-receive").addEventListener("click",()=>{h&&V(h)});s("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=s("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=q(n)})});s("save-wallet-settings").addEventListener("click",()=>{U(async()=>{const e=s("settings-api-url").value.replace(/\/+$/,""),t=new URL(e);if(t.protocol!=="https:"&&t.hostname!=="localhost"&&t.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const n=`${t.origin}/*`;if(!await chrome.permissions.contains({origins:[n]})&&!await chrome.permissions.request({origins:[n]}))throw new Error("Permission to contact this API endpoint was denied.");h=await $("save-settings",{apiUrl:e,autoLockMinutes:s("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{dt=e.dataset.backupAction,Ee(!0)})});s("close-backup-key").addEventListener("click",()=>Ee(!1));s("backup-key-backdrop").addEventListener("click",()=>Ee(!1));s("confirm-backup-key").addEventListener("click",()=>{const e=dt,t=s("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}U(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=h==null?void 0:h.address)==null?void 0:r.split(".")[0])??"contractless";mn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){s("revealed-private-key").value=n.privateKey,s("private-key-result").hidden=!1,s("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});s("clear-private-key").addEventListener("click",gt);s("copy-private-key").addEventListener("click",()=>{const e=s("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=q(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=s(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});s("continue-create").addEventListener("click",()=>{try{Ne=Q(s("new-password").value,"Enter an encryption key."),s("verify-password").value="",I("verify-screen")}catch(e){M.textContent=q(e)}});s("create-wallet").addEventListener("click",()=>{if(s("verify-password").value!==Ne){M.textContent="The encryption keys do not match.";return}U(async()=>{const t=Ne,n=await $("create-wallet",{password:t});Ne="",s("new-password").value="",s("verify-password").value="",await pn(n,t)},!0).catch(()=>I("verify-screen",!1))});const ct=s("wallet-image");ct.addEventListener("change",()=>{var t;const e=(t=ct.files)==null?void 0:t[0];ge="",s("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=cr(new Uint8Array(n))}).catch(n=>{M.textContent=q(n)})});s("import-image").addEventListener("click",()=>{const e=s("image-password").value;try{Q(e,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(t){M.textContent=q(t);return}U(async()=>{const t=await $("import-wallet-image",{imageBase64:ge,imagePassword:e,password:e});fe=e,ge="",ct.value="",s("image-password").value="",V(t)},!0).catch(()=>I("image-screen",!1))});s("import-private").addEventListener("click",()=>{const e=s("private-key").value.trim(),t=s("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=q(n);return}U(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});s("private-key").value="",s("private-password").value="",await pn(n,t)},!0).catch(()=>I("private-screen",!1))});s("save-image").addEventListener("click",()=>{U(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=h==null?void 0:h.address)==null?void 0:n.split(".")[0])??"contractless";mn(ie,`${e}.wallet.png`);const t=s("backup-confirmed");t.disabled=!1,t.checked=!1,s("open-wallet").disabled=!0})});s("backup-confirmed").addEventListener("change",e=>{s("open-wallet").disabled=!e.currentTarget.checked});s("open-wallet").addEventListener("click",()=>{fe="",ie="",s("wallet-image-preview").removeAttribute("src"),h&&V(h)});s("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=s("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=q(n);return}U(async()=>{const n=await $("unlock",{password:t});fe=t,s("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});s("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await tn(e.remaining??0,!0)}).catch(()=>ye(null)))});s("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await tn(e.remaining??0,!1)}).catch(()=>ye(null)))});$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=q(e)}); diff --git a/extension/dist/print.html b/extension/dist/print.html deleted file mode 100644 index 7eeccfa..0000000 --- a/extension/dist/print.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - Contractless Wallet Backup - - - - - -
- -
-

Contractless Wallet Backup

-

Private recovery information

-
-
- -

- Keep this page private. Anyone with the private key and encryption key can - control this wallet. -

- -
-

Wallet

-

-    
-
-

Address

-

-    
-
-

Private Key

-

-    
-
-

Encryption Key

-

-    
- - - - diff --git a/extension/dist/print.js b/extension/dist/print.js deleted file mode 100644 index c86b6e5..0000000 --- a/extension/dist/print.js +++ /dev/null @@ -1 +0,0 @@ -import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";async function a(){const e=new URLSearchParams(location.search).get("id");if(!e)throw new Error("Missing printable wallet backup.");const n=`print-backup:${e}`,o=await chrome.storage.session.get(n);await chrome.storage.session.remove(n);const t=o[n];if(!t)throw new Error("The printable wallet backup has expired.");document.getElementById("wallet-label").textContent=t.label,document.getElementById("wallet-address").textContent=t.address,document.getElementById("wallet-private-key").textContent=t.privateKey,document.getElementById("wallet-encryption-key").textContent=t.encryptionKey,setTimeout(()=>{window.focus(),window.print()},150)}a().catch(e=>{document.getElementById("print-error").textContent=e instanceof Error?e.message:String(e)}); diff --git a/extension/dist/provider.js b/extension/dist/provider.js deleted file mode 100644 index 47444f0..0000000 --- a/extension/dist/provider.js +++ /dev/null @@ -1 +0,0 @@ -const a=new Map;window.addEventListener("message",e=>{var s,t,o;if(e.source!==window||((s=e.data)==null?void 0:s.source)!=="contractless-wallet")return;const r=a.get(e.data.id);r&&(a.delete(e.data.id),(t=e.data.response)!=null&&t.ok?r.resolve(e.data.response.result):r.reject(new Error(((o=e.data.response)==null?void 0:o.error)??"Wallet request failed.")))});const n=Object.freeze({isContractless:!0,request({method:e,params:r}){const s=crypto.randomUUID();return new Promise((t,o)=>{a.set(s,{resolve:t,reject:o}),window.postMessage({source:"contractless-page",id:s,method:e,params:r},window.location.origin)})}});Object.defineProperty(window,"contractless",{value:n,writable:!1,configurable:!1}); diff --git a/extension/src/manifest.chrome.json b/extension/src/manifest.chrome.json index c42233e..c9aa099 100644 --- a/extension/src/manifest.chrome.json +++ b/extension/src/manifest.chrome.json @@ -6,7 +6,7 @@ "content_security_policy": { "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" }, - "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "permissions": ["storage", "alarms", "clipboardWrite"], "host_permissions": ["https://api.contractless.dev/*"], "optional_host_permissions": ["https://*/"], "action": { diff --git a/extension/src/manifest.firefox.json b/extension/src/manifest.firefox.json index 389d071..d2357e1 100644 --- a/extension/src/manifest.firefox.json +++ b/extension/src/manifest.firefox.json @@ -18,7 +18,7 @@ "content_security_policy": { "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" }, - "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "permissions": ["storage", "alarms", "clipboardWrite"], "host_permissions": ["https://api.contractless.dev/*"], "optional_host_permissions": ["https://*/"], "action": { diff --git a/extension/src/popup.ts b/extension/src/popup.ts index 4d82910..c7523ca 100644 --- a/extension/src/popup.ts +++ b/extension/src/popup.ts @@ -120,6 +120,8 @@ let pendingTransfer: let lastSentTxid = ""; let pendingProviderApprovalId = ""; const CONFIRMED_AFTER_BLOCKS = 20; +const BALANCE_REFRESH_INTERVAL_MS = 15_000; +let balanceLoadInFlight = false; const TRANSACTION_NAMES: Record = { 1: "Mining Reward", @@ -532,12 +534,26 @@ function renderTokenBalances(): void { }); } -async function loadWalletBalances(): Promise { - if (!walletStatus?.unlocked) return; - walletBalances = undefined; - byId("base-balance").textContent = "--"; - byId("base-asset-balance").textContent = "--"; - renderTokenBalances(); +async function loadWalletBalances( + options: { showLoading?: boolean; reportErrors?: boolean } = {} +): Promise { + if (!walletStatus?.unlocked || balanceLoadInFlight) return; + + const requestedAddress = walletStatus.address; + const requestedNetwork = walletStatus.selectedNetwork; + const requestedApiUrl = walletStatus.apiUrl; + const hadBalances = walletBalances !== undefined; + const showLoading = options.showLoading ?? !hadBalances; + const reportErrors = options.reportErrors ?? true; + + balanceLoadInFlight = true; + if (showLoading) { + walletBalances = undefined; + byId("base-balance").textContent = "--"; + byId("base-asset-balance").textContent = "--"; + renderTokenBalances(); + } + try { if (!walletStatus.apiUrl) { throw new Error(`No ${walletStatus.networkName} API is configured.`); @@ -555,6 +571,16 @@ async function loadWalletBalances(): Promise { tokenCatalogError?: string; nftCatalogError?: string; }; + + if ( + !walletStatus?.unlocked + || walletStatus.address !== requestedAddress + || walletStatus.selectedNetwork !== requestedNetwork + || walletStatus.apiUrl !== requestedApiUrl + ) { + return; + } + walletBalances = { balances: Array.isArray(result.balances) ? result.balances : [], tokens: Array.isArray(result.tokens) ? result.tokens : [], @@ -572,20 +598,35 @@ async function loadWalletBalances(): Promise { byId("base-asset-balance").textContent = baseBalance; renderTokenBalances(); } catch (error) { - const list = byId("token-list"); - list.replaceChildren(); - const empty = document.createElement("div"); - empty.className = "empty-assets balance-error"; - const title = document.createElement("strong"); - title.textContent = "Unable to load balances"; - const description = document.createElement("span"); - description.textContent = errorText(error); - empty.append(title, description); - list.append(empty); - notice.textContent = errorText(error); + if (!hadBalances) { + const list = byId("token-list"); + list.replaceChildren(); + const empty = document.createElement("div"); + empty.className = "empty-assets balance-error"; + const title = document.createElement("strong"); + title.textContent = "Unable to load balances"; + const description = document.createElement("span"); + description.textContent = errorText(error); + empty.append(title, description); + list.append(empty); + } + if (reportErrors) notice.textContent = errorText(error); + } finally { + balanceLoadInFlight = false; } } +function refreshVisibleDashboard(): void { + if ( + document.hidden + || byId("dashboard-screen").hidden + || !walletStatus?.unlocked + ) { + return; + } + void loadWalletBalances({ showLoading: false, reportErrors: false }); +} + function nftKey(name: string, series: number): string { return `${name.trim().toUpperCase()}|${series}`; } @@ -2285,6 +2326,9 @@ byId("reject-provider-approval").addEventListener("click", () => { }).catch(() => setApprovalProcessing(null)); }); +window.setInterval(refreshVisibleDashboard, BALANCE_REFRESH_INTERVAL_MS); +document.addEventListener("visibilitychange", refreshVisibleDashboard); + send("status") .then((status) => showStatus(status as WalletStatus)) .catch((error) => { diff --git a/extension/src/wallet.css b/extension/src/wallet.css index f267e41..dcf6862 100644 --- a/extension/src/wallet.css +++ b/extension/src/wallet.css @@ -51,6 +51,32 @@ button:disabled { cursor: not-allowed; } .screen[hidden] { display: none; } +#create-screen, +#image-screen, +#private-screen, +#verify-screen, +#backup-screen { + overflow-x: hidden; + overflow-y: scroll; +} + +#create-screen::-webkit-scrollbar, +#image-screen::-webkit-scrollbar, +#private-screen::-webkit-scrollbar, +#verify-screen::-webkit-scrollbar, +#backup-screen::-webkit-scrollbar { + width: 8px; +} + +#create-screen::-webkit-scrollbar-thumb, +#image-screen::-webkit-scrollbar-thumb, +#private-screen::-webkit-scrollbar-thumb, +#verify-screen::-webkit-scrollbar-thumb, +#backup-screen::-webkit-scrollbar-thumb { + border: 2px solid var(--blue); + background: rgb(255 255 255 / 65%); +} + .wallet-header { height: 72px; display: flex;