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

9 lines
65 KiB
JavaScript

import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Gt}from"./chunks/core-D2IK1U91.js";function bn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},Ue,Et;function kn(){return Et||(Et=1,Ue=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),Ue}var De={},ee={},bt;function se(){if(bt)return ee;bt=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={},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++)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,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<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={},Lt;function Ln(){if(Lt)return je;Lt=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={},Tt;function Tn(){return Tt||(Tt=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 f=0;f<i;f++){l=s=0,d=u=null;for(let g=0;g<i;g++){let p=r.get(f,g);p===d?l++:(l>=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<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 Ne={},_t;function Qt(){if(_t)return Ne;_t=1;const e=dt(),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 Ne.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}},Ne.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}},Ne}var Oe={},pe={},Bt;function _n(){if(Bt)return pe;Bt=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 Rt;function Bn(){return Rt||(Rt=1,(function(e){const t=_n();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 Rn(){if(xt)return Je;xt=1;const e=Bn();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={},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<<t.getBCHDigit(h)-l;return p<<12|h}})(We)),We}var Ge={},Ut;function In(){if(Ut)return Ge;Ut=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 Pn(){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,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<r;o++)n.put(this.data[o],8)},et=t,et}var tt,Vt;function Un(){if(Vt)return tt;Vt=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:{}},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<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 U=["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<U.length;S++){const k=U[S];E[k]&&E[k].node.mode===T.mode?(L[k][b]=g(E[k].lastCount+T.length,T.mode)-g(E[k].lastCount,T.mode),E[k].lastCount+=T.length):(E[k]&&(E[k].lastCount=T.length),L[k][b]=g(T.length,T.mode)+4+t.getCharCountIndicator(T.mode,B))}}U=A}for(let y=0;y<U.length;y++)L[U[y]].end=0;return{map:L,table:E}}function x(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(x(L,null)):L.data&&E.push(x(L.data,L.mode)),E},[])},e.fromString=function(B,E){const L=f(B,l.isKanjiModeEnabled()),U=h(L),y=w(U,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(p(A))},e.rawSplit=function(B){return e.fromArray(f(B,l.isKanjiModeEnabled()))}})(Qe)),Qe}var zt;function Fn(){if(zt)return De;zt=1;const e=se(),t=dt(),n=An(),o=Nn(),r=Sn(),i=Ln(),a=Tn(),l=Qt(),s=Rn(),d=xn(),u=In(),f=ce(),g=qn();function p(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 x(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(),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;_<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),yn=me+1,vt=X-me,Cn=new s(vt);let Ie=0;const Ae=new Array(S),yt=new Array(S);let Pe=0;const En=new Uint8Array(y.buffer);for(let le=0;le<S;le++){const $e=le<_?me:yn;Ae[le]=En.slice(Ie,Ie+$e),yt[le]=Cn.encode(Ae[le]),Ie+=$e,Pe=Math.max(Pe,$e)}const Me=new Uint8Array(v);let Ct=0,J,W;for(J=0;J<Pe;J++)for(W=0;W<S;W++)J<Ae[W].length&&(Me[Ct++]=Ae[W][J]);for(J=0;J<vt;J++)for(W=0;W<S;W++)Me[Ct++]=yt[W][J];return Me}function U(y,N,A,v){let T;if(Array.isArray(y))T=g.fromArray(y);else if(typeof y=="string"){let X=N;if(!X){const me=g.rawSplit(y);X=d.getBestVersionForData(me,A)}T=g.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 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<d;g++)for(let p=0;p<d;p++){let h=(g*d+p)*4,w=i.color.light;if(g>=u&&p>=u&&g<d-u&&p<d-u){const x=Math.floor((g-u)/s),C=Math.floor((p-u)/s);w=f[l[x*a+C]?1:0]}o[h++]=w.r,o[h++]=w.g,o[h++]=w.b,o[h]=w.a}}})(ot)),ot}var Jt;function Vn(){return Jt||(Jt=1,(function(e){const t=en();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),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;f<r.length;f++){const g=Math.floor(f%i),p=Math.floor(f/i);!g&&!d&&(d=!0),r[f]?(u++,f>0&&g>0&&r[f-1]||(l+=d?n("M",g+a,.5+p+a):n("m",s,0),s=0,d=!1),g+1<i&&r[f+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,f=d+s.margin*2,g=s.color.light.a?"<path "+t(s.color.light,"fill")+' d="M0 0h'+f+"v"+f+'H0z"/>':"",p="<path "+t(s.color.dark,"stroke")+' d="'+o(u,d,s.margin)+'"/>',h='viewBox="0 0 '+f+" "+f+'"',x='<svg xmlns="http://www.w3.org/2000/svg" '+(s.width?'width="'+s.width+'" height="'+s.width+'" ':"")+h+' shape-rendering="crispEdges">'+g+p+`</svg>
`;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()<n;){if(await st())return;await new Promise(o=>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<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&&Re(r)}};await Promise.all([o(),o()])}async function gt(e=!1){const t=++ae;if(c("nfts-count").textContent="Loading ownership...",(!R||e)&&await be(),t!==ae||!R)return;const n=e?new Map:new Map(H.map(r=>[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(a<l)throw new Error(`The minimum transaction fee is ${ne(l)}.`);const s=Y(ln(),"Available balance");if(i>s)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<e?0:t-e}function mn(e,t){const n=wt(e,t);return e?n>=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)<he,s=un(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",mn(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(([p,h])=>{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)<he,u=document.createElement("button");u.type="button",u.className="activity-row";const f=document.createElement("span");f.className=`activity-marker ${a.direction}`,f.textContent=d?"...":a.direction==="incoming"?"↑":a.direction==="outgoing"?"↓":"↔";const g=document.createElement("div");g.className="activity-details";const p=document.createElement("strong");p.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",g.append(p,h,w);const x=document.createElement("div");x.className="activity-status";const C=document.createElement("strong");if(C.className=a.direction,C.textContent=a.amount,x.append(C),a.secondary){const E=document.createElement("span");E.textContent=a.secondary,x.append(E)}const B=document.createElement("span");B.className=d?"pending":"confirmed",B.textContent=mn(r.block_height,t),x.append(B),u.append(f,g,x),u.addEventListener("click",()=>{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;o<e.length;o+=32768)t+=String.fromCharCode(...e.subarray(o,o+32768));return btoa(t)}function hn(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 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)});