Contractless-Web3-Wallets/extension/dist/firefox/popup.js

9 lines
65 KiB
JavaScript

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++)this.putBit((t>>>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<r-1;s++)l[s]=l[s-1]-a;return l.push(6),l.reverse()},e.getPositions=function(o){const r=[],i=e.getRowColCoords(o),a=i.length;for(let l=0;l<a;l++)for(let s=0;s<a;s++)l===0&&s===0||l===0&&s===a-1||l===a-1&&s===0||r.push([i[l],i[s]]);return r}})(Ke)),Ke}var je={},St;function Nn(){if(St)return je;St=1;const e=se().getSymbolSize,t=7;return je.getPositions=function(o){const r=e(o);return[[0,0],[r-t,0],[0,r-t]]},je}var ze={},Lt;function Sn(){return Lt||(Lt=1,(function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(r){return r!=null&&r!==""&&!isNaN(r)&&r>=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<i;m++){l=s=0,d=u=null;for(let p=0;p<i;p++){let f=r.get(m,p);f===d?l++:(l>=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<i-1;l++)for(let s=0;s<i-1;s++){const d=r.get(l,s)+r.get(l,s+1)+r.get(l+1,s)+r.get(l+1,s+1);(d===4||d===0)&&a++}return a*t.N2},e.getPenaltyN3=function(r){const i=r.size;let a=0,l=0,s=0;for(let d=0;d<i;d++){l=s=0;for(let u=0;u<i;u++)l=l<<1&2047|r.get(d,u),u>=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<a;s++)i+=r.data[s];return Math.abs(Math.ceil(i*100/a/5)-10)*t.N4};function n(o,r,i){switch(o){case e.Patterns.PATTERN000:return(r+i)%2===0;case e.Patterns.PATTERN001:return r%2===0;case e.Patterns.PATTERN010:return i%3===0;case e.Patterns.PATTERN011:return(r+i)%3===0;case e.Patterns.PATTERN100:return(Math.floor(r/2)+Math.floor(i/3))%2===0;case e.Patterns.PATTERN101:return r*i%2+r*i%3===0;case e.Patterns.PATTERN110:return(r*i%2+r*i%3)%2===0;case e.Patterns.PATTERN111:return(r*i%3+(r+i)%2)%2===0;default:throw new Error("bad maskPattern:"+o)}}e.applyMask=function(r,i){const a=i.size;for(let l=0;l<a;l++)for(let s=0;s<a;s++)i.isReserved(s,l)||i.xor(s,l,n(r,s,l))},e.getBestMask=function(r,i){const a=Object.keys(e.Patterns).length;let l=0,s=1/0;for(let d=0;d<a;d++){i(d),e.applyMask(d,r);const u=e.getPenaltyN1(r)+e.getPenaltyN2(r)+e.getPenaltyN3(r)+e.getPenaltyN4(r);e.applyMask(d,r),u<s&&(s=u,l=d)}return l}})(ze)),ze}var Ae={},Tt;function Gt(){if(Tt)return Ae;Tt=1;const e=lt(),t=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],n=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return Ae.getBlocksCount=function(r,i){switch(i){case e.L:return t[(r-1)*4+0];case e.M:return t[(r-1)*4+1];case e.Q:return t[(r-1)*4+2];case e.H:return t[(r-1)*4+3];default:return}},Ae.getTotalCodewordsCount=function(r,i){switch(i){case e.L:return n[(r-1)*4+0];case e.M:return n[(r-1)*4+1];case e.Q:return n[(r-1)*4+2];case e.H:return n[(r-1)*4+3];default:return}},Ae}var Oe={},pe={},_t;function Ln(){if(_t)return pe;_t=1;const e=new Uint8Array(512),t=new Uint8Array(256);return(function(){let o=1;for(let r=0;r<255;r++)e[r]=o,t[o]=r,o<<=1,o&256&&(o^=285);for(let r=255;r<512;r++)e[r]=e[r-255]})(),pe.log=function(o){if(o<1)throw new Error("log("+o+")");return t[o]},pe.exp=function(o){return e[o]},pe.mul=function(o,r){return o===0||r===0?0:e[t[o]+t[r]]},pe}var Bt;function Tn(){return Bt||(Bt=1,(function(e){const t=Ln();e.mul=function(o,r){const i=new Uint8Array(o.length+r.length-1);for(let a=0;a<o.length;a++)for(let l=0;l<r.length;l++)i[a+l]^=t.mul(o[a],r[l]);return i},e.mod=function(o,r){let i=new Uint8Array(o);for(;i.length-r.length>=0;){const a=i[0];for(let s=0;s<r.length;s++)i[s]^=t.mul(r[s],a);let l=0;for(;l<i.length&&i[l]===0;)l++;i=i.slice(l)}return i},e.generateECPolynomial=function(o){let r=new Uint8Array([1]);for(let i=0;i<o;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})(Oe)),Oe}var Je,xt;function _n(){if(xt)return Je;xt=1;const e=Tn();function t(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}return t.prototype.initialize=function(o){this.degree=o,this.genPoly=e.generateECPolynomial(this.degree)},t.prototype.encode=function(o){if(!this.genPoly)throw new Error("Encoder not initialized");const r=new Uint8Array(o.length+this.degree);r.set(o);const i=e.mod(r,this.genPoly),a=this.degree-i.length;if(a>0){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<<t.getBCHDigit(h)-l;return f<<12|h}})(We)),We}var Ge={},$t;function xn(){if($t)return Ge;$t=1;const e=se(),t=1335,n=21522,o=e.getBCHDigit(t);return Ge.getEncodedBits=function(i,a){const l=i.bit<<3|a;let s=l<<10;for(;e.getBCHDigit(s)-o>=0;)s^=t<<e.getBCHDigit(s)-o;return(l<<10|s)^n},Ge}var Qe={},Ze,Dt;function Rn(){if(Dt)return Ze;Dt=1;const e=ce();function t(n){this.mode=e.NUMERIC,this.data=n.toString()}return t.getBitsLength=function(o){return 10*Math.floor(o/3)+(o%3?o%3*3+1:0)},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(o){let r,i,a;for(r=0;r+3<=this.data.length;r+=3)i=this.data.substr(r,3),a=parseInt(i,10),o.put(a,10);const l=this.data.length-r;l>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<r;o++)n.put(this.data[o],8)},et=t,et}var tt,Ft;function Mn(){if(Ft)return tt;Ft=1;const e=ce(),t=se();function n(o){this.mode=e.KANJI,this.data=o}return n.getBitsLength=function(r){return r*13},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(o){let r;for(r=0;r<this.data.length;r++){let i=t.toSJIS(this.data[r]);if(i>=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<C.length;E++){const L=C[E];switch(L.mode){case t.NUMERIC:B.push([L,{data:L.data,mode:t.ALPHANUMERIC,length:L.length},{data:L.data,mode:t.BYTE,length:L.length}]);break;case t.ALPHANUMERIC:B.push([L,{data:L.data,mode:t.BYTE,length:L.length}]);break;case t.KANJI:B.push([L,{data:L.data,mode:t.BYTE,length:d(L.data)}]);break;case t.BYTE:B.push([{data:L.data,mode:t.BYTE,length:d(L.data)}])}}return B}function w(C,B){const E={},L={start:{}};let D=["start"];for(let y=0;y<C.length;y++){const N=C[y],A=[];for(let v=0;v<N.length;v++){const T=N[v],b=""+y+v;A.push(b),E[b]={node:T,lastCount:0},L[b]={};for(let S=0;S<D.length;S++){const k=D[S];E[k]&&E[k].node.mode===T.mode?(L[k][b]=p(E[k].lastCount+T.length,T.mode)-p(E[k].lastCount,T.mode),E[k].lastCount+=T.length):(E[k]&&(E[k].lastCount=T.length),L[k][b]=p(T.length,T.mode)+4+t.getCharCountIndicator(T.mode,B))}}D=A}for(let y=0;y<D.length;y++)L[D[y]].end=0;return{map:L,table:E}}function R(C,B){let E;const L=t.getBestModeForData(C);if(E=t.from(B,L),E!==t.BYTE&&E.bit<L.bit)throw new Error('"'+C+'" cannot be encoded with mode '+t.toString(E)+`.
Suggested mode is: `+t.toString(L));switch(E===t.KANJI&&!l.isKanjiModeEnabled()&&(E=t.BYTE),E){case t.NUMERIC:return new n(C);case t.ALPHANUMERIC:return new o(C);case t.KANJI:return new i(C);case t.BYTE:return new r(C)}}e.fromArray=function(B){return B.reduce(function(E,L){return typeof L=="string"?E.push(R(L,null)):L.data&&E.push(R(L.data,L.mode)),E},[])},e.fromString=function(B,E){const L=m(B,l.isKanjiModeEnabled()),D=h(L),y=w(D,E),N=s.find_path(y.map,"start","end"),A=[];for(let v=1;v<N.length-1;v++)A.push(y.table[N[v]].node);return e.fromArray(f(A))},e.rawSplit=function(B){return e.fromArray(m(B,l.isKanjiModeEnabled()))}})(Qe)),Qe}var jt;function Un(){if(jt)return Ue;jt=1;const e=se(),t=lt(),n=bn(),o=kn(),r=An(),i=Nn(),a=Sn(),l=Gt(),s=_n(),d=Bn(),u=xn(),m=ce(),p=Dn();function f(y,N){const A=y.size,v=i.getPositions(N);for(let T=0;T<v.length;T++){const b=v[T][0],S=v[T][1];for(let k=-1;k<=7;k++)if(!(b+k<=-1||A<=b+k))for(let _=-1;_<=7;_++)S+_<=-1||A<=S+_||(k>=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<N-8;A++){const v=A%2===0;y.set(A,6,v,!0),y.set(6,A,v,!0)}}function w(y,N){const A=r.getPositions(N);for(let v=0;v<A.length;v++){const T=A[v][0],b=A[v][1];for(let S=-2;S<=2;S++)for(let k=-2;k<=2;k++)S===-2||S===2||k===-2||k===2||S===0&&k===0?y.set(T+S,b+k,!0,!0):y.set(T+S,b+k,!1,!0)}}function R(y,N){const A=y.size,v=d.getEncodedBits(N);let T,b,S;for(let k=0;k<18;k++)T=Math.floor(k/3),b=k%3+A-8-3,S=(v>>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<N.length&&(X=(N[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;_<k;_++)v.put(_%2?17:236,8);return L(v,y,N)}function L(y,N,A){const v=e.getSymbolTotalCodewords(N),T=l.getTotalCodewordsCount(N,A),b=v-T,S=l.getBlocksCount(N,A),k=v%S,_=S-k,X=Math.floor(v/S),me=Math.floor(b/S),wn=me+1,wt=X-me,vn=new s(wt);let Ie=0;const ke=new Array(S),vt=new Array(S);let Pe=0;const yn=new Uint8Array(y.buffer);for(let le=0;le<S;le++){const $e=le<_?me:wn;ke[le]=yn.slice(Ie,Ie+$e),vt[le]=vn.encode(ke[le]),Ie+=$e,Pe=Math.max(Pe,$e)}const Me=new Uint8Array(v);let yt=0,J,W;for(J=0;J<Pe;J++)for(W=0;W<S;W++)J<ke[W].length&&(Me[yt++]=ke[W][J]);for(J=0;J<wt;J++)for(W=0;W<S;W++)Me[yt++]=vt[W][J];return Me}function D(y,N,A,v){let T;if(Array.isArray(y))T=p.fromArray(y);else if(typeof y=="string"){let X=N;if(!X){const me=p.rawSplit(y);X=d.getBestVersionForData(me,A)}T=p.fromString(y,X||40)}else throw new Error("Invalid data");const b=d.getBestVersionForData(T,A);if(!b)throw new Error("The amount of data is too big to be stored in a QR Code");if(!N)N=b;else if(N<b)throw new Error(`
The chosen QR Code version cannot contain this amount of data.
Minimum version required to store current data is: `+b+`.
`);const S=E(N,A,T),k=e.getSymbolSize(N),_=new o(k);return f(_,N),h(_),w(_,N),C(_,A,0),N>=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<d;p++)for(let f=0;f<d;f++){let h=(p*d+f)*4,w=i.color.light;if(p>=u&&f>=u&&p<d-u&&f<d-u){const R=Math.floor((p-u)/s),C=Math.floor((f-u)/s);w=m[l[R*a+C]?1:0]}o[h++]=w.r,o[h++]=w.g,o[h++]=w.b,o[h]=w.a}}})(ot)),ot}var Ot;function qn(){return Ot||(Ot=1,(function(e){const t=Xt();function n(r,i,a){r.clearRect(0,0,i.width,i.height),i.style||(i.style={}),i.height=a,i.width=a,i.style.height=a+"px",i.style.width=a+"px"}function o(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}e.render=function(i,a,l){let s=l,d=a;typeof s>"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;m<r.length;m++){const p=Math.floor(m%i),f=Math.floor(m/i);!p&&!d&&(d=!0),r[m]?(u++,m>0&&p>0&&r[m-1]||(l+=d?n("M",p+a,.5+f+a):n("m",s,0),s=0,d=!1),p+1<i&&r[m+1]||(l+=n("h",u),u=0)):s++}return l}return it.render=function(i,a,l){const s=e.getOptions(a),d=i.modules.size,u=i.modules.data,m=d+s.margin*2,p=s.color.light.a?"<path "+t(s.color.light,"fill")+' d="M0 0h'+m+"v"+m+'H0z"/>':"",f="<path "+t(s.color.dark,"stroke")+' d="'+o(u,d,s.margin)+'"/>',h='viewBox="0 0 '+m+" "+m+'"',R='<svg xmlns="http://www.w3.org/2000/svg" '+(s.width?'width="'+s.width+'" height="'+s.width+'" ':"")+h+' shape-rendering="crispEdges">'+p+f+`</svg>
`;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()<n;){if(await at())return;await new Promise(o=>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<t.length&&e===ae;){const r=t[n++];r.loading=!0,Ce();try{r.details=await $("wallet-nft-details",{name:r.name,series:r.series}),r.error=r.details.media_error}catch(i){r.error=F(i)}finally{r.loading=!1}if(e!==ae)return;Ce(),Z===r&&xe(r)}};await Promise.all([o(),o()])}async function pt(e=!1){const t=++ae;if(c("nfts-count").textContent="Loading ownership...",(!x||e)&&await Be(),t!==ae||!x)return;const n=e?new Map:new Map(H.map(r=>[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(a<l)throw new Error(`The minimum transaction fee is ${ne(l)}.`);const s=Y(sn(),"Available balance");if(i>s)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<e?0:t-e}function un(e,t){const n=ht(e,t);return e?n>=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)<he,s=ln(o.transaction_hex);c("transaction-title").textContent=i.transaction_name,c("transaction-header-status").textContent=l?"Pending":"Confirmed",c("transaction-header-status").className=l?"transaction-pending":"transaction-confirmed",c("transaction-full-txid").textContent=o.txid;const d=c("transaction-overview");q(d,"status",l?"Pending":"Confirmed"),q(d,"block_height",o.block_height?o.block_height.toLocaleString():"Mempool"),q(d,"confirmations",un(o.block_height,o.current_height)),s&&q(d,"date",s.toLocaleString()),q(d,"transaction_type",i.txtype);const u=c("transaction-fields");Object.entries(i.fields).forEach(([f,h])=>{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)<he,u=document.createElement("button");u.type="button",u.className="activity-row";const m=document.createElement("span");m.className=`activity-marker ${a.direction}`,m.textContent=d?"...":a.direction==="incoming"?"↑":a.direction==="outgoing"?"↓":"↔";const p=document.createElement("div");p.className="activity-details";const f=document.createElement("strong");f.textContent=a.title;const h=document.createElement("span");h.textContent=d?`Pending · ${a.subtitle}`:a.subtitle;const w=document.createElement("small");w.textContent=l?l.toLocaleString():"Transaction time unavailable",p.append(f,h,w);const R=document.createElement("div");R.className="activity-status";const C=document.createElement("strong");if(C.className=a.direction,C.textContent=a.amount,R.append(C),a.secondary){const E=document.createElement("span");E.textContent=a.secondary,R.append(E)}const B=document.createElement("span");B.className=d?"pending":"confirmed",B.textContent=un(r.block_height,t),R.append(B),u.append(m,p,R),u.addEventListener("click",()=>{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;o<e.length;o+=32768)t+=String.fromCharCode(...e.subarray(o,o+32768));return btoa(t)}function pn(e,t){const n=atob(e),o=new Uint8Array(n.length);for(let a=0;a<n.length;a+=1)o[a]=n.charCodeAt(a);const r=URL.createObjectURL(new Blob([o],{type:"image/png"})),i=document.createElement("a");i.href=r,i.download=t,i.click(),setTimeout(()=>URL.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)});