@tonconnect/ui 2.4.0-beta.7 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/tonconnect-ui.min.js +2 -2
- package/dist/tonconnect-ui.min.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.mjs +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TON_CONNECT_UI={})}(this,function(e){"use strict";var t,n,r,o,i,a,s,l,c=Object.defineProperty,d=Object.defineProperties,u=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,f=(e,t,n)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))p.call(t,n)&&f(e,n,t[n]);if(h)for(var n of h(t))g.call(t,n)&&f(e,n,t[n]);return e},w=(e,t)=>d(e,u(t)),v=(e,t)=>{var n={};for(var r in e)p.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&h)for(var r of h(e))t.indexOf(r)<0&&g.call(e,r)&&(n[r]=e[r]);return n},y=(e,t,n)=>new Promise((r,o)=>{var i=e=>{try{s(n.next(e))}catch(Gr){o(Gr)}},a=e=>{try{s(n.throw(e))}catch(Gr){o(Gr)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(i,a);s((n=n.apply(e,t)).next())});function b(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function C(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if("function"==typeof t){var n=function e(){var n=!1;try{n=this instanceof e}catch(r){}return n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}),n}var x,S,k,_,E={exports:{}};const R=b((x||(x=1,k=E.exports,_=function(){var e={};function t(e){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e))throw new TypeError("invalid encoding")}return e.decodeUTF8=function(e){if("string"!=typeof e)throw new TypeError("expected string");var t,n=unescape(encodeURIComponent(e)),r=new Uint8Array(n.length);for(t=0;t<n.length;t++)r[t]=n.charCodeAt(t);return r},e.encodeUTF8=function(e){var t,n=[];for(t=0;t<e.length;t++)n.push(String.fromCharCode(e[t]));return decodeURIComponent(escape(n.join("")))},"undefined"==typeof atob?void 0!==Buffer.from?(e.encodeBase64=function(e){return Buffer.from(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(Buffer.from(e,"base64"),0))}):(e.encodeBase64=function(e){return new Buffer(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(new Buffer(e,"base64"),0))}):(e.encodeBase64=function(e){var t,n=[],r=e.length;for(t=0;t<r;t++)n.push(String.fromCharCode(e[t]));return btoa(n.join(""))},e.decodeBase64=function(e){t(e);var n,r=atob(e),o=new Uint8Array(r.length);for(n=0;n<r.length;n++)o[n]=r.charCodeAt(n);return o}),e},(S=E).exports?S.exports=_():(k.nacl||(k.nacl={}),k.nacl.util=_())),E.exports));function T(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var I={exports:{}};const O=C(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var M;var A=(M||(M=1,function(e){!function(e){var t=function(e){var t,n=new Float64Array(16);if(e)for(t=0;t<e.length;t++)n[t]=e[t];return n},n=function(){throw new Error("no PRNG")},r=new Uint8Array(16),o=new Uint8Array(32);o[0]=9;var i=t(),a=t([1]),s=t([56129,1]),l=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),c=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),d=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),u=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),h=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function p(e,t,n,r){e[t]=n>>24&255,e[t+1]=n>>16&255,e[t+2]=n>>8&255,e[t+3]=255&n,e[t+4]=r>>24&255,e[t+5]=r>>16&255,e[t+6]=r>>8&255,e[t+7]=255&r}function g(e,t,n,r,o){var i,a=0;for(i=0;i<o;i++)a|=e[t+i]^n[r+i];return(1&a-1>>>8)-1}function f(e,t,n,r){return g(e,t,n,r,16)}function m(e,t,n,r){return g(e,t,n,r,32)}function w(e,t,n,r){!function(e,t,n,r){for(var o,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,c=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,d=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,p=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,g=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,w=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,v=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,y=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,C=i,x=a,S=s,k=l,_=c,E=d,R=u,T=h,I=p,O=g,M=f,A=m,L=w,N=v,W=y,P=b,U=0;U<20;U+=2)C^=(o=(L^=(o=(I^=(o=(_^=(o=C+L|0)<<7|o>>>25)+C|0)<<9|o>>>23)+_|0)<<13|o>>>19)+I|0)<<18|o>>>14,E^=(o=(x^=(o=(N^=(o=(O^=(o=E+x|0)<<7|o>>>25)+E|0)<<9|o>>>23)+O|0)<<13|o>>>19)+N|0)<<18|o>>>14,M^=(o=(R^=(o=(S^=(o=(W^=(o=M+R|0)<<7|o>>>25)+M|0)<<9|o>>>23)+W|0)<<13|o>>>19)+S|0)<<18|o>>>14,P^=(o=(A^=(o=(T^=(o=(k^=(o=P+A|0)<<7|o>>>25)+P|0)<<9|o>>>23)+k|0)<<13|o>>>19)+T|0)<<18|o>>>14,C^=(o=(k^=(o=(S^=(o=(x^=(o=C+k|0)<<7|o>>>25)+C|0)<<9|o>>>23)+x|0)<<13|o>>>19)+S|0)<<18|o>>>14,E^=(o=(_^=(o=(T^=(o=(R^=(o=E+_|0)<<7|o>>>25)+E|0)<<9|o>>>23)+R|0)<<13|o>>>19)+T|0)<<18|o>>>14,M^=(o=(O^=(o=(I^=(o=(A^=(o=M+O|0)<<7|o>>>25)+M|0)<<9|o>>>23)+A|0)<<13|o>>>19)+I|0)<<18|o>>>14,P^=(o=(W^=(o=(N^=(o=(L^=(o=P+W|0)<<7|o>>>25)+P|0)<<9|o>>>23)+L|0)<<13|o>>>19)+N|0)<<18|o>>>14;C=C+i|0,x=x+a|0,S=S+s|0,k=k+l|0,_=_+c|0,E=E+d|0,R=R+u|0,T=T+h|0,I=I+p|0,O=O+g|0,M=M+f|0,A=A+m|0,L=L+w|0,N=N+v|0,W=W+y|0,P=P+b|0,e[0]=C>>>0&255,e[1]=C>>>8&255,e[2]=C>>>16&255,e[3]=C>>>24&255,e[4]=x>>>0&255,e[5]=x>>>8&255,e[6]=x>>>16&255,e[7]=x>>>24&255,e[8]=S>>>0&255,e[9]=S>>>8&255,e[10]=S>>>16&255,e[11]=S>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=E>>>0&255,e[21]=E>>>8&255,e[22]=E>>>16&255,e[23]=E>>>24&255,e[24]=R>>>0&255,e[25]=R>>>8&255,e[26]=R>>>16&255,e[27]=R>>>24&255,e[28]=T>>>0&255,e[29]=T>>>8&255,e[30]=T>>>16&255,e[31]=T>>>24&255,e[32]=I>>>0&255,e[33]=I>>>8&255,e[34]=I>>>16&255,e[35]=I>>>24&255,e[36]=O>>>0&255,e[37]=O>>>8&255,e[38]=O>>>16&255,e[39]=O>>>24&255,e[40]=M>>>0&255,e[41]=M>>>8&255,e[42]=M>>>16&255,e[43]=M>>>24&255,e[44]=A>>>0&255,e[45]=A>>>8&255,e[46]=A>>>16&255,e[47]=A>>>24&255,e[48]=L>>>0&255,e[49]=L>>>8&255,e[50]=L>>>16&255,e[51]=L>>>24&255,e[52]=N>>>0&255,e[53]=N>>>8&255,e[54]=N>>>16&255,e[55]=N>>>24&255,e[56]=W>>>0&255,e[57]=W>>>8&255,e[58]=W>>>16&255,e[59]=W>>>24&255,e[60]=P>>>0&255,e[61]=P>>>8&255,e[62]=P>>>16&255,e[63]=P>>>24&255}(e,t,n,r)}function v(e,t,n,r){!function(e,t,n,r){for(var o,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,c=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,d=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,p=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,g=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,w=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,v=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,y=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,C=0;C<20;C+=2)i^=(o=(w^=(o=(p^=(o=(c^=(o=i+w|0)<<7|o>>>25)+i|0)<<9|o>>>23)+c|0)<<13|o>>>19)+p|0)<<18|o>>>14,d^=(o=(a^=(o=(v^=(o=(g^=(o=d+a|0)<<7|o>>>25)+d|0)<<9|o>>>23)+g|0)<<13|o>>>19)+v|0)<<18|o>>>14,f^=(o=(u^=(o=(s^=(o=(y^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+y|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(m^=(o=(h^=(o=(l^=(o=b+m|0)<<7|o>>>25)+b|0)<<9|o>>>23)+l|0)<<13|o>>>19)+h|0)<<18|o>>>14,i^=(o=(l^=(o=(s^=(o=(a^=(o=i+l|0)<<7|o>>>25)+i|0)<<9|o>>>23)+a|0)<<13|o>>>19)+s|0)<<18|o>>>14,d^=(o=(c^=(o=(h^=(o=(u^=(o=d+c|0)<<7|o>>>25)+d|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(g^=(o=(p^=(o=(m^=(o=f+g|0)<<7|o>>>25)+f|0)<<9|o>>>23)+m|0)<<13|o>>>19)+p|0)<<18|o>>>14,b^=(o=(y^=(o=(v^=(o=(w^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+w|0)<<13|o>>>19)+v|0)<<18|o>>>14;e[0]=i>>>0&255,e[1]=i>>>8&255,e[2]=i>>>16&255,e[3]=i>>>24&255,e[4]=d>>>0&255,e[5]=d>>>8&255,e[6]=d>>>16&255,e[7]=d>>>24&255,e[8]=f>>>0&255,e[9]=f>>>8&255,e[10]=f>>>16&255,e[11]=f>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=u>>>0&255,e[17]=u>>>8&255,e[18]=u>>>16&255,e[19]=u>>>24&255,e[20]=h>>>0&255,e[21]=h>>>8&255,e[22]=h>>>16&255,e[23]=h>>>24&255,e[24]=p>>>0&255,e[25]=p>>>8&255,e[26]=p>>>16&255,e[27]=p>>>24&255,e[28]=g>>>0&255,e[29]=g>>>8&255,e[30]=g>>>16&255,e[31]=g>>>24&255}(e,t,n,r)}var y=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function b(e,t,n,r,o,i,a){var s,l,c=new Uint8Array(16),d=new Uint8Array(64);for(l=0;l<16;l++)c[l]=0;for(l=0;l<8;l++)c[l]=i[l];for(;o>=64;){for(w(d,c,a,y),l=0;l<64;l++)e[t+l]=n[r+l]^d[l];for(s=1,l=8;l<16;l++)s=s+(255&c[l])|0,c[l]=255&s,s>>>=8;o-=64,t+=64,r+=64}if(o>0)for(w(d,c,a,y),l=0;l<o;l++)e[t+l]=n[r+l]^d[l];return 0}function C(e,t,n,r,o){var i,a,s=new Uint8Array(16),l=new Uint8Array(64);for(a=0;a<16;a++)s[a]=0;for(a=0;a<8;a++)s[a]=r[a];for(;n>=64;){for(w(l,s,o,y),a=0;a<64;a++)e[t+a]=l[a];for(i=1,a=8;a<16;a++)i=i+(255&s[a])|0,s[a]=255&i,i>>>=8;n-=64,t+=64}if(n>0)for(w(l,s,o,y),a=0;a<n;a++)e[t+a]=l[a];return 0}function x(e,t,n,r,o){var i=new Uint8Array(32);v(i,r,o,y);for(var a=new Uint8Array(8),s=0;s<8;s++)a[s]=r[s+16];return C(e,t,n,a,i)}function S(e,t,n,r,o,i,a){var s=new Uint8Array(32);v(s,i,a,y);for(var l=new Uint8Array(8),c=0;c<8;c++)l[c]=i[c+16];return b(e,t,n,r,o,l,s)}var k=function(e){var t,n,r,o,i,a,s,l;this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0,t=255&e[0]|(255&e[1])<<8,this.r[0]=8191&t,n=255&e[2]|(255&e[3])<<8,this.r[1]=8191&(t>>>13|n<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(n>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),i=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,a=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(i>>>14|a<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(a>>>11|s<<5),l=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|l<<8),this.r[9]=l>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function _(e,t,n,r,o,i){var a=new k(i);return a.update(n,r,o),a.finish(e,t),0}function E(e,t,n,r,o,i){var a=new Uint8Array(16);return _(a,0,n,r,o,i),f(e,t,a,0)}function R(e,t,n,r,o){var i;if(n<32)return-1;for(S(e,0,t,0,n,r,o),_(e,16,e,32,n-32,e),i=0;i<16;i++)e[i]=0;return 0}function I(e,t,n,r,o){var i,a=new Uint8Array(32);if(n<32)return-1;if(x(a,0,32,r,o),0!==E(t,16,t,32,n-32,a))return-1;for(S(e,0,t,0,n,r,o),i=0;i<32;i++)e[i]=0;return 0}function M(e,t){var n;for(n=0;n<16;n++)e[n]=0|t[n]}function A(e){var t,n,r=1;for(t=0;t<16;t++)n=e[t]+r+65535,r=Math.floor(n/65536),e[t]=n-65536*r;e[0]+=r-1+37*(r-1)}function L(e,t,n){for(var r,o=~(n-1),i=0;i<16;i++)r=o&(e[i]^t[i]),e[i]^=r,t[i]^=r}function N(e,n){var r,o,i,a=t(),s=t();for(r=0;r<16;r++)s[r]=n[r];for(A(s),A(s),A(s),o=0;o<2;o++){for(a[0]=s[0]-65517,r=1;r<15;r++)a[r]=s[r]-65535-(a[r-1]>>16&1),a[r-1]&=65535;a[15]=s[15]-32767-(a[14]>>16&1),i=a[15]>>16&1,a[14]&=65535,L(s,a,1-i)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function W(e,t){var n=new Uint8Array(32),r=new Uint8Array(32);return N(n,e),N(r,t),m(n,0,r,0)}function P(e){var t=new Uint8Array(32);return N(t,e),1&t[0]}function U(e,t){var n;for(n=0;n<16;n++)e[n]=t[2*n]+(t[2*n+1]<<8);e[15]&=32767}function D(e,t,n){for(var r=0;r<16;r++)e[r]=t[r]+n[r]}function j(e,t,n){for(var r=0;r<16;r++)e[r]=t[r]-n[r]}function B(e,t,n){var r,o,i=0,a=0,s=0,l=0,c=0,d=0,u=0,h=0,p=0,g=0,f=0,m=0,w=0,v=0,y=0,b=0,C=0,x=0,S=0,k=0,_=0,E=0,R=0,T=0,I=0,O=0,M=0,A=0,L=0,N=0,W=0,P=n[0],U=n[1],D=n[2],j=n[3],B=n[4],q=n[5],$=n[6],K=n[7],F=n[8],H=n[9],V=n[10],z=n[11],Z=n[12],G=n[13],Y=n[14],Q=n[15];i+=(r=t[0])*P,a+=r*U,s+=r*D,l+=r*j,c+=r*B,d+=r*q,u+=r*$,h+=r*K,p+=r*F,g+=r*H,f+=r*V,m+=r*z,w+=r*Z,v+=r*G,y+=r*Y,b+=r*Q,a+=(r=t[1])*P,s+=r*U,l+=r*D,c+=r*j,d+=r*B,u+=r*q,h+=r*$,p+=r*K,g+=r*F,f+=r*H,m+=r*V,w+=r*z,v+=r*Z,y+=r*G,b+=r*Y,C+=r*Q,s+=(r=t[2])*P,l+=r*U,c+=r*D,d+=r*j,u+=r*B,h+=r*q,p+=r*$,g+=r*K,f+=r*F,m+=r*H,w+=r*V,v+=r*z,y+=r*Z,b+=r*G,C+=r*Y,x+=r*Q,l+=(r=t[3])*P,c+=r*U,d+=r*D,u+=r*j,h+=r*B,p+=r*q,g+=r*$,f+=r*K,m+=r*F,w+=r*H,v+=r*V,y+=r*z,b+=r*Z,C+=r*G,x+=r*Y,S+=r*Q,c+=(r=t[4])*P,d+=r*U,u+=r*D,h+=r*j,p+=r*B,g+=r*q,f+=r*$,m+=r*K,w+=r*F,v+=r*H,y+=r*V,b+=r*z,C+=r*Z,x+=r*G,S+=r*Y,k+=r*Q,d+=(r=t[5])*P,u+=r*U,h+=r*D,p+=r*j,g+=r*B,f+=r*q,m+=r*$,w+=r*K,v+=r*F,y+=r*H,b+=r*V,C+=r*z,x+=r*Z,S+=r*G,k+=r*Y,_+=r*Q,u+=(r=t[6])*P,h+=r*U,p+=r*D,g+=r*j,f+=r*B,m+=r*q,w+=r*$,v+=r*K,y+=r*F,b+=r*H,C+=r*V,x+=r*z,S+=r*Z,k+=r*G,_+=r*Y,E+=r*Q,h+=(r=t[7])*P,p+=r*U,g+=r*D,f+=r*j,m+=r*B,w+=r*q,v+=r*$,y+=r*K,b+=r*F,C+=r*H,x+=r*V,S+=r*z,k+=r*Z,_+=r*G,E+=r*Y,R+=r*Q,p+=(r=t[8])*P,g+=r*U,f+=r*D,m+=r*j,w+=r*B,v+=r*q,y+=r*$,b+=r*K,C+=r*F,x+=r*H,S+=r*V,k+=r*z,_+=r*Z,E+=r*G,R+=r*Y,T+=r*Q,g+=(r=t[9])*P,f+=r*U,m+=r*D,w+=r*j,v+=r*B,y+=r*q,b+=r*$,C+=r*K,x+=r*F,S+=r*H,k+=r*V,_+=r*z,E+=r*Z,R+=r*G,T+=r*Y,I+=r*Q,f+=(r=t[10])*P,m+=r*U,w+=r*D,v+=r*j,y+=r*B,b+=r*q,C+=r*$,x+=r*K,S+=r*F,k+=r*H,_+=r*V,E+=r*z,R+=r*Z,T+=r*G,I+=r*Y,O+=r*Q,m+=(r=t[11])*P,w+=r*U,v+=r*D,y+=r*j,b+=r*B,C+=r*q,x+=r*$,S+=r*K,k+=r*F,_+=r*H,E+=r*V,R+=r*z,T+=r*Z,I+=r*G,O+=r*Y,M+=r*Q,w+=(r=t[12])*P,v+=r*U,y+=r*D,b+=r*j,C+=r*B,x+=r*q,S+=r*$,k+=r*K,_+=r*F,E+=r*H,R+=r*V,T+=r*z,I+=r*Z,O+=r*G,M+=r*Y,A+=r*Q,v+=(r=t[13])*P,y+=r*U,b+=r*D,C+=r*j,x+=r*B,S+=r*q,k+=r*$,_+=r*K,E+=r*F,R+=r*H,T+=r*V,I+=r*z,O+=r*Z,M+=r*G,A+=r*Y,L+=r*Q,y+=(r=t[14])*P,b+=r*U,C+=r*D,x+=r*j,S+=r*B,k+=r*q,_+=r*$,E+=r*K,R+=r*F,T+=r*H,I+=r*V,O+=r*z,M+=r*Z,A+=r*G,L+=r*Y,N+=r*Q,b+=(r=t[15])*P,a+=38*(x+=r*D),s+=38*(S+=r*j),l+=38*(k+=r*B),c+=38*(_+=r*q),d+=38*(E+=r*$),u+=38*(R+=r*K),h+=38*(T+=r*F),p+=38*(I+=r*H),g+=38*(O+=r*V),f+=38*(M+=r*z),m+=38*(A+=r*Z),w+=38*(L+=r*G),v+=38*(N+=r*Y),y+=38*(W+=r*Q),i=(r=(i+=38*(C+=r*U))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),a=(r=a+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),w=(r=w+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),i=(r=(i+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),a=(r=a+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),w=(r=w+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),i+=o-1+37*(o-1),e[0]=i,e[1]=a,e[2]=s,e[3]=l,e[4]=c,e[5]=d,e[6]=u,e[7]=h,e[8]=p,e[9]=g,e[10]=f,e[11]=m,e[12]=w,e[13]=v,e[14]=y,e[15]=b}function q(e,t){B(e,t,t)}function $(e,n){var r,o=t();for(r=0;r<16;r++)o[r]=n[r];for(r=253;r>=0;r--)q(o,o),2!==r&&4!==r&&B(o,o,n);for(r=0;r<16;r++)e[r]=o[r]}function K(e,n){var r,o=t();for(r=0;r<16;r++)o[r]=n[r];for(r=250;r>=0;r--)q(o,o),1!==r&&B(o,o,n);for(r=0;r<16;r++)e[r]=o[r]}function F(e,n,r){var o,i,a=new Uint8Array(32),l=new Float64Array(80),c=t(),d=t(),u=t(),h=t(),p=t(),g=t();for(i=0;i<31;i++)a[i]=n[i];for(a[31]=127&n[31]|64,a[0]&=248,U(l,r),i=0;i<16;i++)d[i]=l[i],h[i]=c[i]=u[i]=0;for(c[0]=h[0]=1,i=254;i>=0;--i)L(c,d,o=a[i>>>3]>>>(7&i)&1),L(u,h,o),D(p,c,u),j(c,c,u),D(u,d,h),j(d,d,h),q(h,p),q(g,c),B(c,u,c),B(u,d,p),D(p,c,u),j(c,c,u),q(d,c),j(u,h,g),B(c,u,s),D(c,c,h),B(u,u,c),B(c,h,g),B(h,d,l),q(d,p),L(c,d,o),L(u,h,o);for(i=0;i<16;i++)l[i+16]=c[i],l[i+32]=u[i],l[i+48]=d[i],l[i+64]=h[i];var f=l.subarray(32),m=l.subarray(16);return $(f,f),B(m,m,f),N(e,m),0}function H(e,t){return F(e,t,o)}function V(e,t){return n(t,32),H(e,t)}function z(e,t,n){var o=new Uint8Array(32);return F(o,n,t),v(e,r,o,y)}k.prototype.blocks=function(e,t,n){for(var r,o,i,a,s,l,c,d,u,h,p,g,f,m,w,v,y,b,C,x=this.fin?0:2048,S=this.h[0],k=this.h[1],_=this.h[2],E=this.h[3],R=this.h[4],T=this.h[5],I=this.h[6],O=this.h[7],M=this.h[8],A=this.h[9],L=this.r[0],N=this.r[1],W=this.r[2],P=this.r[3],U=this.r[4],D=this.r[5],j=this.r[6],B=this.r[7],q=this.r[8],$=this.r[9];n>=16;)h=u=0,h+=(S+=8191&(r=255&e[t+0]|(255&e[t+1])<<8))*L,h+=(k+=8191&(r>>>13|(o=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*$),h+=(_+=8191&(o>>>10|(i=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*q),h+=(E+=8191&(i>>>7|(a=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*B),u=(h+=(R+=8191&(a>>>4|(s=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*j))>>>13,h&=8191,h+=(T+=s>>>1&8191)*(5*D),h+=(I+=8191&(s>>>14|(l=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*U),h+=(O+=8191&(l>>>11|(c=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*P),h+=(M+=8191&(c>>>8|(d=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*W),p=u+=(h+=(A+=d>>>5|x)*(5*N))>>>13,p+=S*N,p+=k*L,p+=_*(5*$),p+=E*(5*q),u=(p+=R*(5*B))>>>13,p&=8191,p+=T*(5*j),p+=I*(5*D),p+=O*(5*U),p+=M*(5*P),u+=(p+=A*(5*W))>>>13,p&=8191,g=u,g+=S*W,g+=k*N,g+=_*L,g+=E*(5*$),u=(g+=R*(5*q))>>>13,g&=8191,g+=T*(5*B),g+=I*(5*j),g+=O*(5*D),g+=M*(5*U),f=u+=(g+=A*(5*P))>>>13,f+=S*P,f+=k*W,f+=_*N,f+=E*L,u=(f+=R*(5*$))>>>13,f&=8191,f+=T*(5*q),f+=I*(5*B),f+=O*(5*j),f+=M*(5*D),m=u+=(f+=A*(5*U))>>>13,m+=S*U,m+=k*P,m+=_*W,m+=E*N,u=(m+=R*L)>>>13,m&=8191,m+=T*(5*$),m+=I*(5*q),m+=O*(5*B),m+=M*(5*j),w=u+=(m+=A*(5*D))>>>13,w+=S*D,w+=k*U,w+=_*P,w+=E*W,u=(w+=R*N)>>>13,w&=8191,w+=T*L,w+=I*(5*$),w+=O*(5*q),w+=M*(5*B),v=u+=(w+=A*(5*j))>>>13,v+=S*j,v+=k*D,v+=_*U,v+=E*P,u=(v+=R*W)>>>13,v&=8191,v+=T*N,v+=I*L,v+=O*(5*$),v+=M*(5*q),y=u+=(v+=A*(5*B))>>>13,y+=S*B,y+=k*j,y+=_*D,y+=E*U,u=(y+=R*P)>>>13,y&=8191,y+=T*W,y+=I*N,y+=O*L,y+=M*(5*$),b=u+=(y+=A*(5*q))>>>13,b+=S*q,b+=k*B,b+=_*j,b+=E*D,u=(b+=R*U)>>>13,b&=8191,b+=T*P,b+=I*W,b+=O*N,b+=M*L,C=u+=(b+=A*(5*$))>>>13,C+=S*$,C+=k*q,C+=_*B,C+=E*j,u=(C+=R*D)>>>13,C&=8191,C+=T*U,C+=I*P,C+=O*W,C+=M*N,S=h=8191&(u=(u=((u+=(C+=A*L)>>>13)<<2)+u|0)+(h&=8191)|0),k=p+=u>>>=13,_=g&=8191,E=f&=8191,R=m&=8191,T=w&=8191,I=v&=8191,O=y&=8191,M=b&=8191,A=C&=8191,t+=16,n-=16;this.h[0]=S,this.h[1]=k,this.h[2]=_,this.h[3]=E,this.h[4]=R,this.h[5]=T,this.h[6]=I,this.h[7]=O,this.h[8]=M,this.h[9]=A},k.prototype.finish=function(e,t){var n,r,o,i,a=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(n=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=n,n=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*n,n=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=n,n=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=n,a[0]=this.h[0]+5,n=a[0]>>>13,a[0]&=8191,i=1;i<10;i++)a[i]=this.h[i]+n,n=a[i]>>>13,a[i]&=8191;for(a[9]-=8192,r=(1^n)-1,i=0;i<10;i++)a[i]&=r;for(r=~r,i=0;i<10;i++)this.h[i]=this.h[i]&r|a[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,n){var r,o;if(this.leftover){for((o=16-this.leftover)>n&&(o=n),r=0;r<o;r++)this.buffer[this.leftover+r]=e[t+r];if(n-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(n>=16&&(o=n-n%16,this.blocks(e,t,o),t+=o,n-=o),n){for(r=0;r<n;r++)this.buffer[this.leftover+r]=e[t+r];this.leftover+=n}};var Z=R,G=I,Y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Q(e,t,n,r){for(var o,i,a,s,l,c,d,u,h,p,g,f,m,w,v,y,b,C,x,S,k,_,E,R,T,I,O=new Int32Array(16),M=new Int32Array(16),A=e[0],L=e[1],N=e[2],W=e[3],P=e[4],U=e[5],D=e[6],j=e[7],B=t[0],q=t[1],$=t[2],K=t[3],F=t[4],H=t[5],V=t[6],z=t[7],Z=0;r>=128;){for(x=0;x<16;x++)S=8*x+Z,O[x]=n[S+0]<<24|n[S+1]<<16|n[S+2]<<8|n[S+3],M[x]=n[S+4]<<24|n[S+5]<<16|n[S+6]<<8|n[S+7];for(x=0;x<80;x++)if(o=A,i=L,a=N,s=W,l=P,c=U,d=D,h=B,p=q,g=$,f=K,m=F,w=H,v=V,E=65535&(_=z),R=_>>>16,T=65535&(k=j),I=k>>>16,E+=65535&(_=(F>>>14|P<<18)^(F>>>18|P<<14)^(P>>>9|F<<23)),R+=_>>>16,T+=65535&(k=(P>>>14|F<<18)^(P>>>18|F<<14)^(F>>>9|P<<23)),I+=k>>>16,E+=65535&(_=F&H^~F&V),R+=_>>>16,T+=65535&(k=P&U^~P&D),I+=k>>>16,E+=65535&(_=Y[2*x+1]),R+=_>>>16,T+=65535&(k=Y[2*x]),I+=k>>>16,k=O[x%16],R+=(_=M[x%16])>>>16,T+=65535&k,I+=k>>>16,T+=(R+=(E+=65535&_)>>>16)>>>16,E=65535&(_=C=65535&E|R<<16),R=_>>>16,T=65535&(k=b=65535&T|(I+=T>>>16)<<16),I=k>>>16,E+=65535&(_=(B>>>28|A<<4)^(A>>>2|B<<30)^(A>>>7|B<<25)),R+=_>>>16,T+=65535&(k=(A>>>28|B<<4)^(B>>>2|A<<30)^(B>>>7|A<<25)),I+=k>>>16,R+=(_=B&q^B&$^q&$)>>>16,T+=65535&(k=A&L^A&N^L&N),I+=k>>>16,u=65535&(T+=(R+=(E+=65535&_)>>>16)>>>16)|(I+=T>>>16)<<16,y=65535&E|R<<16,E=65535&(_=f),R=_>>>16,T=65535&(k=s),I=k>>>16,R+=(_=C)>>>16,T+=65535&(k=b),I+=k>>>16,L=o,N=i,W=a,P=s=65535&(T+=(R+=(E+=65535&_)>>>16)>>>16)|(I+=T>>>16)<<16,U=l,D=c,j=d,A=u,q=h,$=p,K=g,F=f=65535&E|R<<16,H=m,V=w,z=v,B=y,x%16==15)for(S=0;S<16;S++)k=O[S],E=65535&(_=M[S]),R=_>>>16,T=65535&k,I=k>>>16,k=O[(S+9)%16],E+=65535&(_=M[(S+9)%16]),R+=_>>>16,T+=65535&k,I+=k>>>16,b=O[(S+1)%16],E+=65535&(_=((C=M[(S+1)%16])>>>1|b<<31)^(C>>>8|b<<24)^(C>>>7|b<<25)),R+=_>>>16,T+=65535&(k=(b>>>1|C<<31)^(b>>>8|C<<24)^b>>>7),I+=k>>>16,b=O[(S+14)%16],R+=(_=((C=M[(S+14)%16])>>>19|b<<13)^(b>>>29|C<<3)^(C>>>6|b<<26))>>>16,T+=65535&(k=(b>>>19|C<<13)^(C>>>29|b<<3)^b>>>6),I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,O[S]=65535&T|I<<16,M[S]=65535&E|R<<16;E=65535&(_=B),R=_>>>16,T=65535&(k=A),I=k>>>16,k=e[0],R+=(_=t[0])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[0]=A=65535&T|I<<16,t[0]=B=65535&E|R<<16,E=65535&(_=q),R=_>>>16,T=65535&(k=L),I=k>>>16,k=e[1],R+=(_=t[1])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[1]=L=65535&T|I<<16,t[1]=q=65535&E|R<<16,E=65535&(_=$),R=_>>>16,T=65535&(k=N),I=k>>>16,k=e[2],R+=(_=t[2])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[2]=N=65535&T|I<<16,t[2]=$=65535&E|R<<16,E=65535&(_=K),R=_>>>16,T=65535&(k=W),I=k>>>16,k=e[3],R+=(_=t[3])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[3]=W=65535&T|I<<16,t[3]=K=65535&E|R<<16,E=65535&(_=F),R=_>>>16,T=65535&(k=P),I=k>>>16,k=e[4],R+=(_=t[4])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[4]=P=65535&T|I<<16,t[4]=F=65535&E|R<<16,E=65535&(_=H),R=_>>>16,T=65535&(k=U),I=k>>>16,k=e[5],R+=(_=t[5])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[5]=U=65535&T|I<<16,t[5]=H=65535&E|R<<16,E=65535&(_=V),R=_>>>16,T=65535&(k=D),I=k>>>16,k=e[6],R+=(_=t[6])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[6]=D=65535&T|I<<16,t[6]=V=65535&E|R<<16,E=65535&(_=z),R=_>>>16,T=65535&(k=j),I=k>>>16,k=e[7],R+=(_=t[7])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&T|I<<16,t[7]=z=65535&E|R<<16,Z+=128,r-=128}return r}function J(e,t,n){var r,o=new Int32Array(8),i=new Int32Array(8),a=new Uint8Array(256),s=n;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,i[0]=4089235720,i[1]=2227873595,i[2]=4271175723,i[3]=1595750129,i[4]=2917565137,i[5]=725511199,i[6]=4215389547,i[7]=327033209,Q(o,i,t,n),n%=128,r=0;r<n;r++)a[r]=t[s-n+r];for(a[n]=128,a[(n=256-128*(n<112?1:0))-9]=0,p(a,n-8,s/536870912|0,s<<3),Q(o,i,a,n),r=0;r<8;r++)p(e,8*r,o[r],i[r]);return 0}function X(e,n){var r=t(),o=t(),i=t(),a=t(),s=t(),l=t(),d=t(),u=t(),h=t();j(r,e[1],e[0]),j(h,n[1],n[0]),B(r,r,h),D(o,e[0],e[1]),D(h,n[0],n[1]),B(o,o,h),B(i,e[3],n[3]),B(i,i,c),B(a,e[2],n[2]),D(a,a,a),j(s,o,r),j(l,a,i),D(d,a,i),D(u,o,r),B(e[0],s,l),B(e[1],u,d),B(e[2],d,l),B(e[3],s,u)}function ee(e,t,n){var r;for(r=0;r<4;r++)L(e[r],t[r],n)}function te(e,n){var r=t(),o=t(),i=t();$(i,n[2]),B(r,n[0],i),B(o,n[1],i),N(e,o),e[31]^=P(r)<<7}function ne(e,t,n){var r,o;for(M(e[0],i),M(e[1],a),M(e[2],a),M(e[3],i),o=255;o>=0;--o)ee(e,t,r=n[o/8|0]>>(7&o)&1),X(t,e),X(e,e),ee(e,t,r)}function re(e,n){var r=[t(),t(),t(),t()];M(r[0],d),M(r[1],u),M(r[2],a),B(r[3],d,u),ne(e,r,n)}function oe(e,r,o){var i,a=new Uint8Array(64),s=[t(),t(),t(),t()];for(o||n(r,32),J(a,r,32),a[0]&=248,a[31]&=127,a[31]|=64,re(s,a),te(e,s),i=0;i<32;i++)r[i+32]=e[i];return 0}var ie=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,t){var n,r,o,i;for(r=63;r>=32;--r){for(n=0,o=r-32,i=r-12;o<i;++o)t[o]+=n-16*t[r]*ie[o-(r-32)],n=Math.floor((t[o]+128)/256),t[o]-=256*n;t[o]+=n,t[r]=0}for(n=0,o=0;o<32;o++)t[o]+=n-(t[31]>>4)*ie[o],n=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=n*ie[o];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function se(e){var t,n=new Float64Array(64);for(t=0;t<64;t++)n[t]=e[t];for(t=0;t<64;t++)e[t]=0;ae(e,n)}function le(e,n,r,o){var i,a,s=new Uint8Array(64),l=new Uint8Array(64),c=new Uint8Array(64),d=new Float64Array(64),u=[t(),t(),t(),t()];J(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var h=r+64;for(i=0;i<r;i++)e[64+i]=n[i];for(i=0;i<32;i++)e[32+i]=s[32+i];for(J(c,e.subarray(32),r+32),se(c),re(u,c),te(e,u),i=32;i<64;i++)e[i]=o[i];for(J(l,e,r+64),se(l),i=0;i<64;i++)d[i]=0;for(i=0;i<32;i++)d[i]=c[i];for(i=0;i<32;i++)for(a=0;a<32;a++)d[i+a]+=l[i]*s[a];return ae(e.subarray(32),d),h}function ce(e,n,r,o){var s,c=new Uint8Array(32),d=new Uint8Array(64),u=[t(),t(),t(),t()],p=[t(),t(),t(),t()];if(r<64)return-1;if(function(e,n){var r=t(),o=t(),s=t(),c=t(),d=t(),u=t(),p=t();return M(e[2],a),U(e[1],n),q(s,e[1]),B(c,s,l),j(s,s,e[2]),D(c,e[2],c),q(d,c),q(u,d),B(p,u,d),B(r,p,s),B(r,r,c),K(r,r),B(r,r,s),B(r,r,c),B(r,r,c),B(e[0],r,c),q(o,e[0]),B(o,o,c),W(o,s)&&B(e[0],e[0],h),q(o,e[0]),B(o,o,c),W(o,s)?-1:(P(e[0])===n[31]>>7&&j(e[0],i,e[0]),B(e[3],e[0],e[1]),0)}(p,o))return-1;for(s=0;s<r;s++)e[s]=n[s];for(s=0;s<32;s++)e[s+32]=o[s];if(J(d,e,r),se(d),ne(u,p,d),re(p,n.subarray(32)),X(u,p),te(c,u),r-=64,m(n,0,c,0)){for(s=0;s<r;s++)e[s]=0;return-1}for(s=0;s<r;s++)e[s]=n[s+64];return r}var de,ue=16,he=64,pe=32,ge=64;function fe(e,t){if(32!==e.length)throw new Error("bad key size");if(24!==t.length)throw new Error("bad nonce size")}function me(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function we(e){for(var t=0;t<e.length;t++)e[t]=0}e.lowlevel={crypto_core_hsalsa20:v,crypto_stream_xor:S,crypto_stream:x,crypto_stream_salsa20_xor:b,crypto_stream_salsa20:C,crypto_onetimeauth:_,crypto_onetimeauth_verify:E,crypto_verify_16:f,crypto_verify_32:m,crypto_secretbox:R,crypto_secretbox_open:I,crypto_scalarmult:F,crypto_scalarmult_base:H,crypto_box_beforenm:z,crypto_box_afternm:Z,crypto_box:function(e,t,n,r,o,i){var a=new Uint8Array(32);return z(a,o,i),Z(e,t,n,r,a)},crypto_box_open:function(e,t,n,r,o,i){var a=new Uint8Array(32);return z(a,o,i),G(e,t,n,r,a)},crypto_box_keypair:V,crypto_hash:J,crypto_sign:le,crypto_sign_keypair:oe,crypto_sign_open:ce,crypto_secretbox_KEYBYTES:32,crypto_secretbox_NONCEBYTES:24,crypto_secretbox_ZEROBYTES:32,crypto_secretbox_BOXZEROBYTES:ue,crypto_scalarmult_BYTES:32,crypto_scalarmult_SCALARBYTES:32,crypto_box_PUBLICKEYBYTES:32,crypto_box_SECRETKEYBYTES:32,crypto_box_BEFORENMBYTES:32,crypto_box_NONCEBYTES:24,crypto_box_ZEROBYTES:32,crypto_box_BOXZEROBYTES:16,crypto_sign_BYTES:he,crypto_sign_PUBLICKEYBYTES:pe,crypto_sign_SECRETKEYBYTES:ge,crypto_sign_SEEDBYTES:32,crypto_hash_BYTES:64,gf:t,D:l,L:ie,pack25519:N,unpack25519:U,M:B,A:D,S:q,Z:j,pow2523:K,add:X,set25519:M,modL:ae,scalarmult:ne,scalarbase:re},e.randomBytes=function(e){var t=new Uint8Array(e);return n(t,e),t},e.secretbox=function(e,t,n){me(e,t,n),fe(n,t);for(var r=new Uint8Array(32+e.length),o=new Uint8Array(r.length),i=0;i<e.length;i++)r[i+32]=e[i];return R(o,r,r.length,t,n),o.subarray(ue)},e.secretbox.open=function(e,t,n){me(e,t,n),fe(n,t);for(var r=new Uint8Array(ue+e.length),o=new Uint8Array(r.length),i=0;i<e.length;i++)r[i+ue]=e[i];return r.length<32||0!==I(o,r,r.length,t,n)?null:o.subarray(32)},e.secretbox.keyLength=32,e.secretbox.nonceLength=24,e.secretbox.overheadLength=ue,e.scalarMult=function(e,t){if(me(e,t),32!==e.length)throw new Error("bad n size");if(32!==t.length)throw new Error("bad p size");var n=new Uint8Array(32);return F(n,e,t),n},e.scalarMult.base=function(e){if(me(e),32!==e.length)throw new Error("bad n size");var t=new Uint8Array(32);return H(t,e),t},e.scalarMult.scalarLength=32,e.scalarMult.groupElementLength=32,e.box=function(t,n,r,o){var i=e.box.before(r,o);return e.secretbox(t,n,i)},e.box.before=function(e,t){me(e,t),function(e,t){if(32!==e.length)throw new Error("bad public key size");if(32!==t.length)throw new Error("bad secret key size")}(e,t);var n=new Uint8Array(32);return z(n,e,t),n},e.box.after=e.secretbox,e.box.open=function(t,n,r,o){var i=e.box.before(r,o);return e.secretbox.open(t,n,i)},e.box.open.after=e.secretbox.open,e.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return V(e,t),{publicKey:e,secretKey:t}},e.box.keyPair.fromSecretKey=function(e){if(me(e),32!==e.length)throw new Error("bad secret key size");var t=new Uint8Array(32);return H(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},e.box.publicKeyLength=32,e.box.secretKeyLength=32,e.box.sharedKeyLength=32,e.box.nonceLength=24,e.box.overheadLength=e.secretbox.overheadLength,e.sign=function(e,t){if(me(e,t),t.length!==ge)throw new Error("bad secret key size");var n=new Uint8Array(he+e.length);return le(n,e,e.length,t),n},e.sign.open=function(e,t){if(me(e,t),t.length!==pe)throw new Error("bad public key size");var n=new Uint8Array(e.length),r=ce(n,e,e.length,t);if(r<0)return null;for(var o=new Uint8Array(r),i=0;i<o.length;i++)o[i]=n[i];return o},e.sign.detached=function(t,n){for(var r=e.sign(t,n),o=new Uint8Array(he),i=0;i<o.length;i++)o[i]=r[i];return o},e.sign.detached.verify=function(e,t,n){if(me(e,t,n),t.length!==he)throw new Error("bad signature size");if(n.length!==pe)throw new Error("bad public key size");var r,o=new Uint8Array(he+e.length),i=new Uint8Array(he+e.length);for(r=0;r<he;r++)o[r]=t[r];for(r=0;r<e.length;r++)o[r+he]=e[r];return ce(i,o,o.length,n)>=0},e.sign.keyPair=function(){var e=new Uint8Array(pe),t=new Uint8Array(ge);return oe(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(me(e),e.length!==ge)throw new Error("bad secret key size");for(var t=new Uint8Array(pe),n=0;n<t.length;n++)t[n]=e[32+n];return{publicKey:t,secretKey:new Uint8Array(e)}},e.sign.keyPair.fromSeed=function(e){if(me(e),32!==e.length)throw new Error("bad seed size");for(var t=new Uint8Array(pe),n=new Uint8Array(ge),r=0;r<32;r++)n[r]=e[r];return oe(t,n,!0),{publicKey:t,secretKey:n}},e.sign.publicKeyLength=pe,e.sign.secretKeyLength=ge,e.sign.seedLength=32,e.sign.signatureLength=he,e.hash=function(e){me(e);var t=new Uint8Array(64);return J(t,e,e.length),t},e.hash.hashLength=64,e.verify=function(e,t){return me(e,t),0!==e.length&&0!==t.length&&e.length===t.length&&0===g(e,0,t,0,e.length)},e.setPRNG=function(e){n=e},(de="undefined"!=typeof self?self.crypto||self.msCrypto:null)&&de.getRandomValues?e.setPRNG(function(e,t){var n,r=new Uint8Array(t);for(n=0;n<t;n+=65536)de.getRandomValues(r.subarray(n,n+Math.min(t-n,65536)));for(n=0;n<t;n++)e[n]=r[n];we(r)}):void 0!==T&&(de=O)&&de.randomBytes&&e.setPRNG(function(e,t){var n,r=de.randomBytes(t);for(n=0;n<t;n++)e[n]=r[n];we(r)})}(e.exports?e.exports:self.nacl=self.nacl||{})}(I)),I.exports);const L=b(A);var N,W,P,U,D,j,B;e.CONNECT_EVENT_ERROR_CODES=void 0,(N=e.CONNECT_EVENT_ERROR_CODES||(e.CONNECT_EVENT_ERROR_CODES={}))[N.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",N[N.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",N[N.MANIFEST_NOT_FOUND_ERROR=2]="MANIFEST_NOT_FOUND_ERROR",N[N.MANIFEST_CONTENT_ERROR=3]="MANIFEST_CONTENT_ERROR",N[N.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",N[N.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",N[N.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.CONNECT_ITEM_ERROR_CODES=void 0,(W=e.CONNECT_ITEM_ERROR_CODES||(e.CONNECT_ITEM_ERROR_CODES={}))[W.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",W[W.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.SEND_TRANSACTION_ERROR_CODES=void 0,(P=e.SEND_TRANSACTION_ERROR_CODES||(e.SEND_TRANSACTION_ERROR_CODES={}))[P.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",P[P.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",P[P.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",P[P.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",P[P.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.SIGN_DATA_ERROR_CODES=void 0,(U=e.SIGN_DATA_ERROR_CODES||(e.SIGN_DATA_ERROR_CODES={}))[U.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",U[U.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",U[U.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",U[U.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",U[U.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",(j=D||(D={}))[j.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",j[j.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",j[j.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",j[j.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.CHAIN=void 0,(B=e.CHAIN||(e.CHAIN={})).MAINNET="-239",B.TESTNET="-3";const q={encode:function(e,t=!1){let n;return e instanceof Uint8Array?n=e:("string"!=typeof e&&(e=JSON.stringify(e)),n=R.decodeUTF8(e)),function(e,t){const n=R.encodeBase64(e);return t?encodeURIComponent(n):n}(n,t)},decode:function(e,t=!1){const n=function(e,t){return t&&(e=decodeURIComponent(e)),R.decodeBase64(e)}(e,t);return{toString:()=>R.encodeUTF8(n),toObject(){try{return JSON.parse(R.encodeUTF8(n))}catch(e){return null}},toUint8Array:()=>n}}};function $(e){let t="";return e.forEach(e=>{t+=("0"+(255&e).toString(16)).slice(-2)}),t}function K(e){if(e.length%2!=0)throw new Error(`Cannot convert ${e} to bytesArray`);const t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return t}class F{constructor(e){this.nonceLength=24,this.keyPair=e?this.createKeypairFromString(e):this.createKeypair(),this.sessionId=$(this.keyPair.publicKey)}createKeypair(){return L.box.keyPair()}createKeypairFromString(e){return{publicKey:K(e.publicKey),secretKey:K(e.secretKey)}}createNonce(){return L.randomBytes(this.nonceLength)}encrypt(e,t){const n=(new TextEncoder).encode(e),r=this.createNonce();return function(e,t){const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(r,L.box(n,r,t,this.keyPair.secretKey))}decrypt(e,t){const[n,r]=function(e,t){if(t>=e.length)throw new Error("Index is out of buffer");return[e.slice(0,t),e.slice(t)]}(e,this.nonceLength),o=L.box.open(r,n,t,this.keyPair.secretKey);if(!o)throw new Error(`Decryption error: \n message: ${e.toString()} \n sender pubkey: ${t.toString()} \n keypair pubkey: ${this.keyPair.publicKey.toString()} \n keypair secretkey: ${this.keyPair.secretKey.toString()}`);return(new TextDecoder).decode(o)}stringifyKeypair(){return{publicKey:$(this.keyPair.publicKey),secretKey:$(this.keyPair.secretKey)}}}function H(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function V(e,t,n,r){return new(n||(n=Promise))(function(t,o){function i(e){try{s(r.next(e))}catch(t){o(t)}}function a(e){try{s(r.throw(e))}catch(t){o(t)}}function s(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n(function(e){e(r)})).then(i,a)}s((r=r.apply(e,[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class z extends Error{get info(){return""}constructor(e,t){super(e,t),this.message=`${z.prefix} ${this.constructor.name}${this.info?": "+this.info:""}${e?"\n"+e:""}`,Object.setPrototypeOf(this,z.prototype)}}z.prefix="[TON_CONNECT_SDK_ERROR]";class Z extends z{get info(){return"Passed DappMetadata is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,Z.prototype)}}class G extends z{get info(){return"Passed `tonconnect-manifest.json` contains errors. Check format of your manifest. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest"}constructor(...e){super(...e),Object.setPrototypeOf(this,G.prototype)}}class Y extends z{get info(){return"Manifest not found. Make sure you added `tonconnect-manifest.json` to the root of your app or passed correct manifestUrl. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest"}constructor(...e){super(...e),Object.setPrototypeOf(this,Y.prototype)}}class Q extends z{get info(){return"Wallet connection called but wallet already connected. To avoid the error, disconnect the wallet before doing a new connection."}constructor(...e){super(...e),Object.setPrototypeOf(this,Q.prototype)}}class J extends z{get info(){return"Send transaction or other protocol methods called while wallet is not connected."}constructor(...e){super(...e),Object.setPrototypeOf(this,J.prototype)}}class X extends z{get info(){return"There is an attempt to connect to the injected wallet while it is not exists in the webpage."}constructor(...e){super(...e),Object.setPrototypeOf(this,X.prototype)}}class ee extends z{get info(){return"Wallet doesn't support requested feature method."}constructor(e,t){super(e,t),Object.setPrototypeOf(this,ee.prototype)}}class te extends z{get info(){return"Missing required features. You need to update your wallet."}constructor(e,t){super(e,t),Object.setPrototypeOf(this,te.prototype)}}class ne extends z{constructor(e,t){super(e,t),this.name="WalletWrongNetworkError",Object.setPrototypeOf(this,ne.prototype)}}class re extends z{get info(){return"User rejects the action in the wallet."}constructor(...e){super(...e),Object.setPrototypeOf(this,re.prototype)}}class oe extends z{get info(){return"Request to the wallet contains errors."}constructor(...e){super(...e),Object.setPrototypeOf(this,oe.prototype)}}class ie extends z{get info(){return"App tries to send rpc request to the injected wallet while not connected."}constructor(...e){super(...e),Object.setPrototypeOf(this,ie.prototype)}}class ae extends z{get info(){return"Storage was not specified in the `DappMetadata` and default `localStorage` was not detected in the environment."}constructor(...e){super(...e),Object.setPrototypeOf(this,ae.prototype)}}class se extends z{get info(){return"An error occurred while fetching the wallets list."}constructor(...e){super(...e),Object.setPrototypeOf(this,se.prototype)}}class le extends z{get info(){return"Passed address is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,le.prototype)}}class ce extends z{get info(){return"Passed hex is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,ce.prototype)}}class de extends z{constructor(...e){super(...e),Object.setPrototypeOf(this,de.prototype)}}const ue={[e.CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]:de,[e.CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]:ie,[e.CONNECT_EVENT_ERROR_CODES.MANIFEST_NOT_FOUND_ERROR]:Y,[e.CONNECT_EVENT_ERROR_CODES.MANIFEST_CONTENT_ERROR]:G};const he=new class{parseError(e){let t=de;return e.code in ue&&(t=ue[e.code]||de),new t(e.message)}};class pe{isError(e){return"error"in e}}const ge={[e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]:de,[e.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]:ie};const fe=new class extends pe{convertToRpcRequest(e){return{method:"sendTransaction",params:[JSON.stringify(e)]}}parseAndThrowError(e){let t=de;throw e.error.code in ge&&(t=ge[e.error.code]||de),new t(e.error.message)}convertFromRpcResponse(e){return{boc:e.result}}},me={[e.SIGN_DATA_ERROR_CODES.UNKNOWN_ERROR]:de,[e.SIGN_DATA_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.SIGN_DATA_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.SIGN_DATA_ERROR_CODES.UNKNOWN_APP_ERROR]:ie};const we=new class extends pe{convertToRpcRequest(e){return{method:"signData",params:[JSON.stringify(e)]}}parseAndThrowError(e){let t=de;throw e.error.code in me&&(t=me[e.error.code]||de),new t(e.error.message)}convertFromRpcResponse(e){return e.result}};class ve{constructor(e,t){this.storage=e,this.storeKey="ton-connect-storage_http-bridge-gateway::"+t}storeLastEventId(e){return V(this,0,void 0,function*(){return this.storage.setItem(this.storeKey,e)})}removeLastEventId(){return V(this,0,void 0,function*(){return this.storage.removeItem(this.storeKey)})}getLastEventId(){return V(this,0,void 0,function*(){const e=yield this.storage.getItem(this.storeKey);return e||null})}}function ye(e,t){return function(e){return"/"===e.slice(-1)?e.slice(0,-1):e}(e)+"/"+t}function be(e){if(!e)return!1;const t=new URL(e);return"tg:"===t.protocol||"t.me"===t.hostname}function Ce(e){return!!e&&(e.includes("ton_addr")||e.includes("ton--5Faddr"))}function xe(e){return e.replaceAll(".","%2E").replaceAll("-","%2D").replaceAll("_","%5F").replaceAll("&","-").replaceAll("=","__").replaceAll("%","--")}function Se(e){return e.replaceAll("--","%").replaceAll("__","=").replaceAll("-","&").replaceAll("%5F","_").replaceAll("%2D","-").replaceAll("%2E",".")}function ke(e,t){return V(this,0,void 0,function*(){return new Promise((t,n)=>{setTimeout(()=>t(),e)})})}function _e(e){const t=new AbortController;return(null==e?void 0:e.aborted)?t.abort():null==e||e.addEventListener("abort",()=>t.abort(),{once:!0}),t}function Ee(e,t){return V(this,0,void 0,function*(){var n,r;const o=null!==(n=null==t?void 0:t.attempts)&&void 0!==n?n:10,i=null!==(r=null==t?void 0:t.delayMs)&&void 0!==r?r:200,a=_e(null==t?void 0:t.signal);if("function"!=typeof e)throw new z("Expected a function, got "+typeof e);let s,l=0;for(;l<o;){if(a.signal.aborted)throw new z(`Aborted after attempts ${l}`);try{return yield e({signal:a.signal})}catch(c){s=c,l++,l<o&&(yield ke(i))}}throw s})}function Re(...e){try{console.debug("[TON_CONNECT_SDK]",...e)}catch(t){}}function Te(...e){try{console.error("[TON_CONNECT_SDK]",...e)}catch(t){}}class Ie{get isReady(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)===EventSource.OPEN}get isClosed(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)!==EventSource.OPEN}get isConnecting(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)===EventSource.CONNECTING}constructor(e,t,n,r,o,i){this.bridgeUrl=t,this.sessionId=n,this.listener=r,this.errorsListener=o,this.ssePath="events",this.postPath="message",this.heartbeatMessage="heartbeat",this.defaultTtl=300,this.defaultReconnectDelay=2e3,this.defaultResendDelay=5e3,this.eventSource=function(e,t){let n=null,r=null,o=null,i=null,a=null;const s=(s,...l)=>V(this,0,void 0,function*(){if(i=null!=s?s:null,null==a||a.abort(),a=_e(s),a.signal.aborted)throw new z("Resource creation was aborted");r=null!=l?l:null;const c=e(a.signal,...l);o=c;const d=yield c;if(o!==c&&d!==n)throw yield t(d),new z("Resource creation was aborted by a new resource creation");return n=d,n});return{create:s,current:()=>null!=n?n:null,dispose:()=>V(this,0,void 0,function*(){try{const r=n;n=null;const i=o;o=null;try{null==a||a.abort()}catch(e){}yield Promise.allSettled([r?t(r):Promise.resolve(),i?t(yield i):Promise.resolve()])}catch(e){}}),recreate:e=>V(this,0,void 0,function*(){const t=n,a=o,l=r,c=i;if(yield ke(e),t===n&&a===o&&l===r&&c===i)return yield s(i,...null!=l?l:[]);throw new z("Resource recreation was aborted by a new resource creation")})}}((e,t,n)=>V(this,0,void 0,function*(){const r={bridgeUrl:this.bridgeUrl,ssePath:this.ssePath,sessionId:this.sessionId,bridgeGatewayStorage:this.bridgeGatewayStorage,errorHandler:this.errorsHandler.bind(this),messageHandler:this.messagesHandler.bind(this),signal:e,openingDeadlineMS:t,traceId:n};return yield function(e){return V(this,0,void 0,function*(){return yield function(e,t){const n=null==t?void 0:t.timeout,r=_e(null==t?void 0:t.signal);return new Promise((t,o)=>V(this,0,void 0,function*(){if(r.signal.aborted)return void o(new z("Operation aborted"));let i;void 0!==n&&(i=setTimeout(()=>{r.abort(),o(new z(`Timeout after ${n}ms`))},n)),r.signal.addEventListener("abort",()=>{clearTimeout(i),o(new z("Operation aborted"))},{once:!0});const a={timeout:n,abort:r.signal};yield e((...e)=>{clearTimeout(i),t(...e)},()=>{clearTimeout(i),o()},a)}))}((t,n,r)=>V(this,0,void 0,function*(){var o;const i=_e(r.signal).signal;if(i.aborted)return void n(new z("Bridge connection aborted"));const a=new URL(ye(e.bridgeUrl,e.ssePath));a.searchParams.append("client_id",e.sessionId);const s=yield e.bridgeGatewayStorage.getLastEventId();if(s&&a.searchParams.append("last_event_id",s),e.traceId&&a.searchParams.append("trace_id",e.traceId),i.aborted)return void n(new z("Bridge connection aborted"));const l=new EventSource(a.toString());l.onerror=r=>V(this,0,void 0,function*(){if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));try{const n=yield e.errorHandler(l,r);n!==l&&l.close(),n&&n!==l&&t(n)}catch(o){l.close(),n(o)}}),l.onopen=()=>{if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));t(l)},l.onmessage=t=>{if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));e.messageHandler(t)},null===(o=e.signal)||void 0===o||o.addEventListener("abort",()=>{l.close(),n(new z("Bridge connection aborted"))})}),{timeout:e.openingDeadlineMS,signal:e.signal})})}(r)}),e=>V(this,0,void 0,function*(){e.close()})),this.bridgeGatewayStorage=new ve(e,t),this.analytics=null==i?void 0:i.scoped({bridge_url:t,client_id:n})}registerSession(e){return V(this,0,void 0,function*(){var t,n,r;try{null===(t=this.analytics)||void 0===t||t.emitBridgeClientConnectStarted({trace_id:null==e?void 0:e.traceId});const r=Date.now();yield this.eventSource.create(null==e?void 0:e.signal,null==e?void 0:e.openingDeadlineMS,null==e?void 0:e.traceId);const o=Date.now()-r;null===(n=this.analytics)||void 0===n||n.emitBridgeClientConnectEstablished({bridge_connect_duration:o,trace_id:null==e?void 0:e.traceId})}catch(o){throw null===(r=this.analytics)||void 0===r||r.emitBridgeClientConnectError({trace_id:null==e?void 0:e.traceId,error_message:String(o)}),o}})}send(e,t,n,r){return V(this,0,void 0,function*(){var o;const i={};"number"==typeof r?i.ttl=r:(i.ttl=null==r?void 0:r.ttl,i.signal=null==r?void 0:r.signal,i.attempts=null==r?void 0:r.attempts,i.traceId=null==r?void 0:r.traceId);const a=new URL(ye(this.bridgeUrl,this.postPath));a.searchParams.append("client_id",this.sessionId),a.searchParams.append("to",t),a.searchParams.append("ttl",((null==i?void 0:i.ttl)||this.defaultTtl).toString()),a.searchParams.append("topic",n),(null==i?void 0:i.traceId)&&a.searchParams.append("trace_id",i.traceId);const s=q.encode(e);yield Ee(e=>V(this,0,void 0,function*(){const t=yield this.post(a,s,e.signal);if(!t.ok)throw new z(`Bridge send failed, status ${t.status}`)}),{attempts:null!==(o=null==i?void 0:i.attempts)&&void 0!==o?o:Number.MAX_SAFE_INTEGER,delayMs:this.defaultResendDelay,signal:null==i?void 0:i.signal})})}pause(){this.eventSource.dispose().catch(e=>Te(`Bridge pause failed, ${e}`))}unPause(){return V(this,0,void 0,function*(){yield this.eventSource.recreate(0)})}close(){return V(this,0,void 0,function*(){yield this.eventSource.dispose().catch(e=>Te(`Bridge close failed, ${e}`))})}setListener(e){this.listener=e}setErrorsListener(e){this.errorsListener=e}post(e,t,n){return V(this,0,void 0,function*(){const r=yield fetch(e,{method:"post",body:t,signal:n});if(!r.ok)throw new z(`Bridge send failed, status ${r.status}`);return r})}errorsHandler(e,t){return V(this,0,void 0,function*(){if(this.isConnecting)throw e.close(),new z("Bridge error, failed to connect");if(!this.isReady){if(this.isClosed)return e.close(),Re(`Bridge reconnecting, ${this.defaultReconnectDelay}ms delay`),yield this.eventSource.recreate(this.defaultReconnectDelay);throw new z("Bridge error, unknown state")}try{this.errorsListener(t)}catch(n){}})}messagesHandler(e){return V(this,0,void 0,function*(){if(e.data===this.heartbeatMessage)return;if(yield this.bridgeGatewayStorage.storeLastEventId(e.lastEventId),this.isClosed)return;let t;try{const n=JSON.parse(e.data);t={message:n.message,from:n.from,traceId:n.trace_id}}catch(n){throw new z(`Bridge message parse failed, message ${e.data}`)}this.listener(t)})}}function Oe(e){return!("connectEvent"in e)}let Me;const Ae=new Uint8Array(16);function Le(){if(!Me){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Me=crypto.getRandomValues.bind(crypto)}return Me(Ae)}const Ne=[];for(let zp=0;zp<256;++zp)Ne.push((zp+256).toString(16).slice(1));const We={};function Pe(e,t,n){var r,o,i;let a;if(e)a=Ue(null!==(i=null!==(r=e.random)&&void 0!==r?r:null===(o=e.rng)||void 0===o?void 0:o.call(e))&&void 0!==i?i:Le(),e.msecs,e.seq,t,n);else{const e=Date.now(),r=Le();!function(e,t,n){var r,o;null!==(r=e.msecs)&&void 0!==r||(e.msecs=-1/0),null!==(o=e.seq)&&void 0!==o||(e.seq=0),t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(We,e,r),a=Ue(r,We.msecs,We.seq,t,n)}return null!=t?t:function(e,t=0){return(Ne[e[t+0]]+Ne[e[t+1]]+Ne[e[t+2]]+Ne[e[t+3]]+"-"+Ne[e[t+4]]+Ne[e[t+5]]+"-"+Ne[e[t+6]]+Ne[e[t+7]]+"-"+Ne[e[t+8]]+Ne[e[t+9]]+"-"+Ne[e[t+10]]+Ne[e[t+11]]+Ne[e[t+12]]+Ne[e[t+13]]+Ne[e[t+14]]+Ne[e[t+15]]).toLowerCase()}(a)}function Ue(e,t,n,r,o=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(o<0||o+16>r.length)throw new RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`)}else r=new Uint8Array(16),o=0;return null!=t||(t=Date.now()),null!=n||(n=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9]),r[o++]=t/1099511627776&255,r[o++]=t/4294967296&255,r[o++]=t/16777216&255,r[o++]=t/65536&255,r[o++]=t/256&255,r[o++]=255&t,r[o++]=112|n>>>28&15,r[o++]=n>>>20&255,r[o++]=128|n>>>14&63,r[o++]=n>>>6&255,r[o++]=n<<2&255|3&e[10],r[o++]=e[11],r[o++]=e[12],r[o++]=e[13],r[o++]=e[14],r[o++]=e[15],r}class De{static fromStorage(e,t){return V(this,0,void 0,function*(){const n=yield e.getHttpConnection();return Oe(n)?new De(e,n.connectionSource,t):new De(e,{bridgeUrl:n.session.bridgeUrl},t)})}constructor(e,t,n){var r;this.connectionStorage=e,this.walletConnectionSource=t,this.analyticsManager=n,this.type="http",this.standardUniversalLink="tc://",this.pendingRequests=new Map,this.session=null,this.gateway=null,this.pendingGateways=[],this.listeners=[],this.defaultOpeningDeadlineMS=12e3,this.defaultRetryTimeoutMS=2e3,this.optionalOpenGateways=3,this.analytics=null===(r=this.analyticsManager)||void 0===r?void 0:r.scoped()}connect(e,t){var n,r;const o=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe(),i=_e(null==t?void 0:t.signal);null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=i,this.closeGateways();const a=new F;this.session={sessionCrypto:a,bridgeUrl:"bridgeUrl"in this.walletConnectionSource?this.walletConnectionSource.bridgeUrl:""},this.connectionStorage.storeConnection({type:"http",connectionSource:this.walletConnectionSource,sessionCrypto:a}).then(()=>V(this,0,void 0,function*(){i.signal.aborted||(yield Ee(e=>{var n;return this.openGateways(a,{openingDeadlineMS:null!==(n=null==t?void 0:t.openingDeadlineMS)&&void 0!==n?n:this.defaultOpeningDeadlineMS,signal:null==e?void 0:e.signal,traceId:o})},{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:i.signal}))}));const s="universalLink"in this.walletConnectionSource&&this.walletConnectionSource.universalLink?this.walletConnectionSource.universalLink:this.standardUniversalLink;return this.generateUniversalLink(s,e,{traceId:o})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe(),i=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=i,i.signal.aborted)return;this.closeGateways();const a=yield this.connectionStorage.getHttpConnection();if(!a)return;if(i.signal.aborted)return;const s=null!==(r=null==e?void 0:e.openingDeadlineMS)&&void 0!==r?r:this.defaultOpeningDeadlineMS;if(Oe(a))return this.session={sessionCrypto:a.sessionCrypto,bridgeUrl:"bridgeUrl"in this.walletConnectionSource?this.walletConnectionSource.bridgeUrl:""},yield this.openGateways(a.sessionCrypto,{openingDeadlineMS:s,signal:null==i?void 0:i.signal,traceId:null==e?void 0:e.traceId});if(Array.isArray(this.walletConnectionSource))throw new z("Internal error. Connection source is array while WalletConnectionSourceHTTP was expected.");if(this.session=a.session,this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.gateway=new Ie(this.connectionStorage.storage,this.walletConnectionSource.bridgeUrl,a.session.sessionCrypto.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this),this.analyticsManager),!i.signal.aborted){this.listeners.forEach(e=>e(Object.assign(Object.assign({},a.connectEvent),{traceId:o})));try{yield Ee(e=>this.gateway.registerSession({openingDeadlineMS:s,signal:e.signal,traceId:o}),{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:i.signal})}catch(l){return void(yield this.disconnect({signal:i.signal,traceId:o}))}}})}sendRequest(e,t){var n;const r={};return"function"==typeof t?r.onRequestSent=t:(r.onRequestSent=null==t?void 0:t.onRequestSent,r.signal=null==t?void 0:t.signal,r.attempts=null==t?void 0:t.attempts,r.traceId=null==t?void 0:t.traceId),null!==(n=r.traceId)&&void 0!==n||(r.traceId=Pe()),new Promise((t,n)=>V(this,0,void 0,function*(){var o,i;if(!this.gateway||!this.session||!("walletPublicKey"in this.session))throw new z("Trying to send bridge request without session");const a=(yield this.connectionStorage.getNextRpcRequestId()).toString();yield this.connectionStorage.increaseNextRpcRequestId(),Re("Send http-bridge request:",Object.assign(Object.assign({},e),{id:a}));const s=this.session.sessionCrypto.encrypt(JSON.stringify(Object.assign(Object.assign({},e),{id:a})),K(this.session.walletPublicKey));try{null===(o=this.analytics)||void 0===o||o.emitBridgeClientMessageSent({bridge_url:this.gateway.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:this.session.walletPublicKey,message_id:a,request_type:e.method,trace_id:r.traceId}),yield this.gateway.send(s,this.session.walletPublicKey,e.method,{attempts:null==r?void 0:r.attempts,signal:null==r?void 0:r.signal,traceId:r.traceId}),null===(i=null==r?void 0:r.onRequestSent)||void 0===i||i.call(r),this.pendingRequests.set(a.toString(),t)}catch(l){n(l)}}))}closeConnection(){this.closeGateways(),this.listeners=[],this.session=null,this.gateway=null}disconnect(e){return V(this,0,void 0,function*(){var t;const n=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();return new Promise(t=>V(this,0,void 0,function*(){let r=!1,o=null;const i=()=>{r||(r=!0,this.removeBridgeAndSession().then(t))};try{this.closeGateways();const t=_e(null==e?void 0:e.signal);o=setTimeout(()=>{t.abort()},this.defaultOpeningDeadlineMS),yield this.sendRequest({method:"disconnect",params:[]},{onRequestSent:i,signal:t.signal,attempts:1,traceId:n})}catch(a){Re("Disconnect error:",a),r||this.removeBridgeAndSession().then(t)}finally{o&&clearTimeout(o),i()}}))})}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}pause(){var e;null===(e=this.gateway)||void 0===e||e.pause(),this.pendingGateways.forEach(e=>e.pause())}unPause(){return V(this,0,void 0,function*(){const e=this.pendingGateways.map(e=>e.unPause());this.gateway&&e.push(this.gateway.unPause()),yield Promise.all(e)})}pendingGatewaysListener(e,t,n){return V(this,0,void 0,function*(){if(this.pendingGateways.includes(e))return this.closeGateways({except:e}),this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.session.bridgeUrl=t,this.gateway=e,this.gateway.setErrorsListener(this.gatewayErrorsListener.bind(this)),this.gateway.setListener(this.gatewayListener.bind(this)),this.gatewayListener(n);yield e.close()})}gatewayListener(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=e.traceId)&&void 0!==t?t:Pe();let i;try{i=JSON.parse(this.session.sessionCrypto.decrypt(q.decode(e.message).toUint8Array(),K(e.from)))}catch(l){throw null===(n=this.analytics)||void 0===n||n.emitBridgeClientMessageDecodeError({bridge_url:this.session.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:e.from,error_message:String(l),trace_id:null==e?void 0:e.traceId}),l}Re("Wallet message received:",i);const a="event"in i?i.event:"";if(null===(r=this.analytics)||void 0===r||r.emitBridgeClientMessageReceived({bridge_url:this.session.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:e.from,message_id:String(i.id),request_type:a,trace_id:null==e?void 0:e.traceId}),!("event"in i)){const e=i.id.toString(),t=this.pendingRequests.get(e);return t?(t(Object.assign(Object.assign({},i),{traceId:o})),void this.pendingRequests.delete(e)):void Re(`Response id ${e} doesn't match any request's id`)}if(void 0!==i.id){const e=yield this.connectionStorage.getLastWalletEventId();if(void 0!==e&&i.id<=e)return void Te(`Received event id (=${i.id}) must be greater than stored last wallet event id (=${e}) `);"connect"!==i.event&&(yield this.connectionStorage.storeLastWalletEventId(i.id))}const s=this.listeners;"connect"===i.event&&(yield this.updateSession(i,e.from)),"disconnect"===i.event&&(Re("Removing bridge and session: received disconnect event"),yield this.removeBridgeAndSession()),s.forEach(e=>e(Object.assign(Object.assign({},i),{traceId:o})))})}gatewayErrorsListener(e){return V(this,0,void 0,function*(){throw new z(`Bridge error ${JSON.stringify(e)}`)})}updateSession(e,t){return V(this,0,void 0,function*(){this.session=Object.assign(Object.assign({},this.session),{walletPublicKey:t});const n=e.payload.items.find(e=>"ton_addr"===e.name),r=Object.assign(Object.assign({},e),{payload:Object.assign(Object.assign({},e.payload),{items:[n]})});yield this.connectionStorage.storeConnection({type:"http",session:this.session,lastWalletEventId:e.id,connectEvent:r,nextRpcRequestId:0})})}removeBridgeAndSession(){return V(this,0,void 0,function*(){this.closeConnection(),yield this.connectionStorage.removeConnection()})}generateUniversalLink(e,t,n){return be(e)?this.generateTGUniversalLink(e,t,n):this.generateRegularUniversalLink(e,t,n)}generateRegularUniversalLink(e,t,n){const r=new URL(e);return r.searchParams.append("v",2..toString()),r.searchParams.append("id",this.session.sessionCrypto.sessionId),r.searchParams.append("trace_id",n.traceId),r.searchParams.append("r",JSON.stringify(t)),r.toString()}generateTGUniversalLink(e,t,n){const r="tonconnect-"+xe(this.generateRegularUniversalLink("about:blank",t,n).split("?")[1]),o=this.convertToDirectLink(e),i=new URL(o);return i.searchParams.append("startapp",r),i.toString()}convertToDirectLink(e){const t=new URL(e);return t.searchParams.has("attach")&&(t.searchParams.delete("attach"),t.pathname+="/start"),t.toString()}openGateways(e,t){return V(this,0,void 0,function*(){var n;const r=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe();if(Array.isArray(this.walletConnectionSource)){this.pendingGateways.map(e=>e.close().catch()),this.pendingGateways=this.walletConnectionSource.map(t=>{const n=new Ie(this.connectionStorage.storage,t.bridgeUrl,e.sessionId,()=>{},()=>{},this.analyticsManager);return n.setListener(e=>this.pendingGatewaysListener(n,t.bridgeUrl,e)),n});const n=Math.max(this.pendingGateways.length-this.optionalOpenGateways,1);return void(yield function(e,t){return V(this,0,void 0,function*(){if(t<=0)return[];if(t>e.length)throw new RangeError("count cannot be greater than the number of promises");const n=new Array(e.length);let r=0;return new Promise(o=>{e.forEach((e,i)=>{Promise.resolve(e).then(e=>({status:"fulfilled",value:e})).catch(e=>({status:"rejected",reason:e})).then(e=>{n[i]=e,r++,r===t&&o(n)})})})})}(this.pendingGateways.map(e=>Ee(n=>{var o;return this.pendingGateways.some(t=>t===e)?e.registerSession({openingDeadlineMS:null!==(o=null==t?void 0:t.openingDeadlineMS)&&void 0!==o?o:this.defaultOpeningDeadlineMS,signal:n.signal,traceId:r}):e.close()},{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:null==t?void 0:t.signal})),n))}return this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.gateway=new Ie(this.connectionStorage.storage,this.walletConnectionSource.bridgeUrl,e.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this),this.analyticsManager),yield this.gateway.registerSession({openingDeadlineMS:null==t?void 0:t.openingDeadlineMS,signal:null==t?void 0:t.signal,traceId:r})})}closeGateways(e){var t;null===(t=this.gateway)||void 0===t||t.close(),this.pendingGateways.filter(t=>t!==(null==e?void 0:e.except)).forEach(e=>e.close()),this.pendingGateways=[]}}function je(e,t){return Be(e,[t])}function Be(e,t){return!(!e||"object"!=typeof e)&&t.every(t=>t in e)}let qe=class e{static getInstance(){return e.instance||(e.instance=new e),e.instance}constructor(){this.storage={}}get length(){return Object.keys(this.storage).length}clear(){this.storage={}}getItem(e){var t;return null!==(t=this.storage[e])&&void 0!==t?t:null}key(e){var t;const n=Object.keys(this.storage);return e<0||e>=n.length?null:null!==(t=n[e])&&void 0!==t?t:null}removeItem(e){delete this.storage[e]}setItem(e,t){this.storage[e]=t}};function $e(){if("undefined"!=typeof window)return window}function Ke(){if("undefined"!=typeof document)return document}function Fe(){var e,t,n,r;const o=null===(t=null===(e=$e())||void 0===e?void 0:e.location)||void 0===t?void 0:t.origin,i=null===(r=null===(n=$e())||void 0===n?void 0:n.location)||void 0===r?void 0:r.pathname;return o&&i?o+i:""}function He(){if(function(){try{return"undefined"!=typeof localStorage}catch(e){return!1}}())return localStorage;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)throw new z("`localStorage` is unavailable, but it is required for TonConnect. For more details, see https://github.com/ton-connect/sdk/tree/main/packages/sdk#init-connector");return qe.getInstance()}class Ve{static fromStorage(e,t){return V(this,0,void 0,function*(){const n=yield e.getInjectedConnection();return new Ve(e,n.jsBridgeKey,t)})}static isWalletInjected(e){return Ve.isWindowContainsWallet(this.window,e)}static isInsideWalletBrowser(e){return!!Ve.isWindowContainsWallet(this.window,e)&&this.window[e].tonconnect.isWalletBrowser}static getCurrentlyInjectedWallets(){if(!this.window)return[];return function(){const e=$e();if(!e)return[];try{return Object.entries(e)}catch(t){return[]}}().filter(([e,t])=>function(e){try{return!(!je(e,"tonconnect")||!je(e.tonconnect,"walletInfo"))&&Be(e.tonconnect.walletInfo,["name","app_name","image","about_url","platforms"])}catch(t){return!1}}(t)).map(([e,t])=>({name:t.tonconnect.walletInfo.name,appName:t.tonconnect.walletInfo.app_name,aboutUrl:t.tonconnect.walletInfo.about_url,imageUrl:t.tonconnect.walletInfo.image,tondns:t.tonconnect.walletInfo.tondns,jsBridgeKey:e,injected:!0,embedded:t.tonconnect.isWalletBrowser,platforms:t.tonconnect.walletInfo.platforms,features:t.tonconnect.walletInfo.features}))}static isWindowContainsWallet(e,t){return!!e&&t in e&&"object"==typeof e[t]&&"tonconnect"in e[t]}constructor(e,t,n){this.connectionStorage=e,this.injectedWalletKey=t,this.type="injected",this.unsubscribeCallback=null,this.listenSubscriptions=!1,this.listeners=[];const r=Ve.window;if(!Ve.isWindowContainsWallet(r,t))throw new X;this.injectedWallet=r[t].tonconnect,n&&(this.analytics=n.scoped({bridge_key:t,wallet_app_name:this.injectedWallet.deviceInfo.appName,wallet_app_version:this.injectedWallet.deviceInfo.appVersion}))}connect(e,t){this._connect(2,e,t)}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r,o;const i=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();try{Re("Injected Provider restoring connection..."),null===(n=this.analytics)||void 0===n||n.emitJsBridgeCall({js_bridge_method:"restoreConnection",trace_id:i});const e=yield this.injectedWallet.restoreConnection({traceId:i});null===(r=this.analytics)||void 0===r||r.emitJsBridgeResponse({js_bridge_method:"restoreConnection",trace_id:i}),Re("Injected Provider restoring connection response",e),"connect"===e.event?(this.makeSubscriptions({traceId:i}),this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:i})))):yield this.connectionStorage.removeConnection()}catch(a){null===(o=this.analytics)||void 0===o||o.emitJsBridgeError({js_bridge_method:"restoreConnection",error_message:String(a),trace_id:i}),yield this.connectionStorage.removeConnection(),console.error(a)}})}closeConnection(){this.listenSubscriptions&&this.injectedWallet.disconnect(),this.closeAllListeners()}disconnect(e){return V(this,0,void 0,function*(){var t;const n=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();return new Promise(e=>{const t=()=>{this.closeAllListeners(),this.connectionStorage.removeConnection().then(e)};try{this.injectedWallet.disconnect(),t()}catch(r){Re(r),this.sendRequest({method:"disconnect",params:[]},{onRequestSent:t,traceId:n})}})})}closeAllListeners(){var e;this.listenSubscriptions=!1,this.listeners=[],null===(e=this.unsubscribeCallback)||void 0===e||e.call(this)}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}sendRequest(e,t){return V(this,0,void 0,function*(){var n,r,o;const i={};"function"==typeof t?(i.onRequestSent=t,i.traceId=Pe()):(i.onRequestSent=null==t?void 0:t.onRequestSent,i.signal=null==t?void 0:t.signal,i.attempts=null==t?void 0:t.attempts,i.traceId=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe());const a=(yield this.connectionStorage.getNextRpcRequestId()).toString();yield this.connectionStorage.increaseNextRpcRequestId(),Re("Send injected-bridge request:",Object.assign(Object.assign({},e),{id:a})),null===(r=this.analytics)||void 0===r||r.emitJsBridgeCall({js_bridge_method:"send"});const s=this.injectedWallet.send(Object.assign(Object.assign({},e),{id:a}),{traceId:i.traceId});return s.then(e=>{var t;null===(t=this.analytics)||void 0===t||t.emitJsBridgeResponse({js_bridge_method:"send"}),Re("Wallet message received:",e)}).catch(e=>{var t;null===(t=this.analytics)||void 0===t||t.emitJsBridgeError({js_bridge_method:"send",error_message:String(e)})}),null===(o=null==i?void 0:i.onRequestSent)||void 0===o||o.call(i),s})}_connect(e,t,n){return V(this,0,void 0,function*(){var r,o,i,a;const s=null!==(r=null==n?void 0:n.traceId)&&void 0!==r?r:Pe();try{Re(`Injected Provider connect request: protocolVersion: ${e}, message:`,t),null===(o=this.analytics)||void 0===o||o.emitJsBridgeCall({js_bridge_method:"connect",trace_id:s});const n=yield this.injectedWallet.connect(e,t,{traceId:s});null===(i=this.analytics)||void 0===i||i.emitJsBridgeResponse({js_bridge_method:"connect"}),Re("Injected Provider connect response:",n),"connect"===n.event&&(yield this.updateSession(),this.makeSubscriptions({traceId:s})),this.listeners.forEach(e=>e(Object.assign(Object.assign({},n),{traceId:s})))}catch(l){null===(a=this.analytics)||void 0===a||a.emitJsBridgeError({js_bridge_method:"connect",error_message:String(l),trace_id:s}),Re("Injected Provider connect error:",l);const e={event:"connect_error",payload:{code:0,message:null==l?void 0:l.toString()}};this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:s})))}})}makeSubscriptions(e){var t,n,r;this.listenSubscriptions=!0,null===(t=this.analytics)||void 0===t||t.emitJsBridgeCall({js_bridge_method:"listen",trace_id:e.traceId});try{this.unsubscribeCallback=this.injectedWallet.listen(e=>{var t;const n=null!==(t=e.traceId)&&void 0!==t?t:Pe();Re("Wallet message received:",e),this.listenSubscriptions&&this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:n}))),"disconnect"===e.event&&this.disconnect({traceId:n})}),null===(n=this.analytics)||void 0===n||n.emitJsBridgeResponse({js_bridge_method:"listen",trace_id:e.traceId})}catch(o){throw null===(r=this.analytics)||void 0===r||r.emitJsBridgeError({js_bridge_method:"listen",error_message:String(o),trace_id:e.traceId}),o}}updateSession(){return this.connectionStorage.storeConnection({type:"injected",jsBridgeKey:this.injectedWalletKey,nextRpcRequestId:0})}}Ve.window=$e();class ze{constructor(e,t){this.storage=e,this.walletsListManager=t,this.storeKey="ton-connect-storage_bridge-connection"}storeConnection(e){return V(this,0,void 0,function*(){if("injected"===e.type||"wallet-connect"===e.type)return this.storage.setItem(this.storeKey,JSON.stringify(e));if(!Oe(e)){const t={sessionKeyPair:e.session.sessionCrypto.stringifyKeypair(),walletPublicKey:e.session.walletPublicKey,bridgeUrl:e.session.bridgeUrl},n={type:"http",connectEvent:e.connectEvent,session:t,lastWalletEventId:e.lastWalletEventId,nextRpcRequestId:e.nextRpcRequestId};return this.storage.setItem(this.storeKey,JSON.stringify(n))}const t={type:"http",connectionSource:e.connectionSource,sessionCrypto:e.sessionCrypto.stringifyKeypair(),createdAt:Date.now()};return this.storage.setItem(this.storeKey,JSON.stringify(t))})}removeConnection(){return V(this,0,void 0,function*(){return this.storage.removeItem(this.storeKey)})}getConnection(){return V(this,0,void 0,function*(){try{const e=yield this.storage.getItem(this.storeKey);if(!e)return null;const t=JSON.parse(e);if("injected"===t.type||"wallet-connect"===t.type)return t;if(!function(e){return!("connectEvent"in e)}(t)){const e=new F(t.session.sessionKeyPair);return yield this.actualizeBridgeConnection({type:"http",connectEvent:t.connectEvent,lastWalletEventId:t.lastWalletEventId,nextRpcRequestId:t.nextRpcRequestId,session:{sessionCrypto:e,bridgeUrl:t.session.bridgeUrl,walletPublicKey:t.session.walletPublicKey}})}return function(e){var t;return Date.now()-(null!==(t=e.createdAt)&&void 0!==t?t:0)>3e5}(t)?(yield this.removeConnection(),null):{type:"http",sessionCrypto:new F(t.sessionCrypto),connectionSource:t.connectionSource}}catch(e){return Re("Error retrieving connection",e),null}})}getHttpConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read HTTP connection source while nothing is stored");if("http"!==e.type)throw new z(`Trying to read HTTP connection source while ${e.type} connection is stored`);return e})}getHttpPendingConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read HTTP connection source while nothing is stored");if("http"!==e.type)throw new z(`Trying to read HTTP connection source while ${e.type} connection is stored`);if(!Oe(e))throw new z("Trying to read HTTP-pending connection while http connection is stored");return e})}getInjectedConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read Injected bridge connection source while nothing is stored");if("injected"!==(null==e?void 0:e.type))throw new z(`Trying to read Injected bridge connection source while ${e.type} connection is stored`);return e})}getWalletConnectConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read wallet connect bridge connection source while nothing is stored");if("wallet-connect"!==(null==e?void 0:e.type))throw new z(`Trying to read wallet connect bridge connection source while ${e.type} connection is stored`);return e})}storedConnectionType(){return V(this,0,void 0,function*(){const e=yield this.storage.getItem(this.storeKey);if(!e)return null;return JSON.parse(e).type})}storeLastWalletEventId(e){return V(this,0,void 0,function*(){const t=yield this.getConnection();if(t&&"http"===t.type&&!Oe(t))return t.lastWalletEventId=e,this.storeConnection(t)})}getLastWalletEventId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(e&&"lastWalletEventId"in e)return e.lastWalletEventId})}increaseNextRpcRequestId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(e&&"nextRpcRequestId"in e){const t=e.nextRpcRequestId||0;return e.nextRpcRequestId=t+1,this.storeConnection(e)}})}getNextRpcRequestId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();return e&&"nextRpcRequestId"in e&&e.nextRpcRequestId||0})}actualizeBridgeConnection(e){return V(this,0,void 0,function*(){try{const t=e.connectEvent.payload.device.appName,n=yield this.walletsListManager.getRemoteWallet(t);if(n.bridgeUrl===e.session.bridgeUrl)return e;const r=Object.assign(Object.assign({},e),{session:Object.assign(Object.assign({},e.session),{bridgeUrl:n.bridgeUrl})});return yield this.storeConnection(r),r}catch(t){return Re("Failed to actualize bridge connection",t),e}})}}class Ze{constructor(){this.localStorage=He()}getItem(e){return V(this,0,void 0,function*(){return this.localStorage.getItem(e)})}removeItem(e){return V(this,0,void 0,function*(){this.localStorage.removeItem(e)})}setItem(e,t){return V(this,0,void 0,function*(){this.localStorage.setItem(e,t)})}}function Ge(e){return Qe(e)&&e.injected}function Ye(e){return Ge(e)&&e.embedded}function Qe(e){return"jsBridgeKey"in e}function Je(e){return"bridgeUrl"in e}const Xe=[{app_name:"telegram-wallet",name:"Wallet",image:"https://wallet.tg/images/logo-288.png",about_url:"https://wallet.tg/",universal_url:"https://t.me/wallet?attach=wallet",bridge:[{type:"sse",url:"https://walletbot.me/tonconnect-bridge/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"tonkeeper",name:"Tonkeeper",image:"https://tonkeeper.com/assets/tonconnect-icon.png",tondns:"tonkeeper.ton",about_url:"https://tonkeeper.com",universal_url:"https://app.tonkeeper.com/ton-connect",deepLink:"tonkeeper-tc://",bridge:[{type:"sse",url:"https://bridge.tonapi.io/bridge"},{type:"js",key:"tonkeeper"}],platforms:["ios","android","chrome","firefox","macos"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"mytonwallet",name:"MyTonWallet",image:"https://static.mytonwallet.io/icon-256.png",about_url:"https://mytonwallet.io",universal_url:"https://connect.mytonwallet.org",deepLink:"mytonwallet-tc://",bridge:[{type:"js",key:"mytonwallet"},{type:"sse",url:"https://tonconnectbridge.mytonwallet.org/bridge/"}],platforms:["chrome","windows","macos","linux","ios","android","firefox"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"tonhub",name:"Tonhub",image:"https://tonhub.com/tonconnect_logo.png",about_url:"https://tonhub.com",universal_url:"https://tonhub.com/ton-connect",bridge:[{type:"js",key:"tonhub"},{type:"sse",url:"https://connect.tonhubapi.com/tonconnect"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"bitgetTonWallet",name:"Bitget Wallet",image:"https://raw.githubusercontent.com/bitgetwallet/download/refs/heads/main/logo/png/bitget_wallet_logo_288_mini.png",about_url:"https://web3.bitget.com",deepLink:"bitkeep://",bridge:[{type:"js",key:"bitgetTonWallet"},{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","chrome"],universal_url:"https://bkcode.vip/ton-connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"okxMiniWallet",name:"OKX Mini Wallet",image:"https://static.okx.com/cdn/assets/imgs/2411/8BE1A4A434D8F58A.png",about_url:"https://www.okx.com/web3",universal_url:"https://t.me/OKX_WALLET_BOT?attach=wallet",bridge:[{type:"sse",url:"https://www.okx.com/tonbridge/discover/rpc/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"binanceWeb3TonWallet",name:"Binance Wallet",image:"https://public.bnbstatic.com/static/binance-w3w/ton-provider/binancew3w.png",about_url:"https://www.binance.com/en/web3wallet",deepLink:"bnc://app.binance.com/cedefi/ton-connect",bridge:[{type:"js",key:"binancew3w"},{type:"sse",url:"https://wallet.binance.com/tonbridge/bridge"}],platforms:["ios","android","macos","windows","linux"],universal_url:"https://app.binance.com/cedefi/ton-connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"fintopio-tg",name:"Fintopio",image:"https://raw.githubusercontent.com/fintopio/ton-pub/refs/heads/main/logos/tonconnect-icon.png",about_url:"https://fintopio.com",universal_url:"https://t.me/fintopio?attach=wallet",bridge:[{type:"sse",url:"https://wallet-bridge.fintopio.com/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"okxTonWallet",name:"OKX Wallet",image:"https://static.okx.com/cdn/assets/imgs/247/58E63FEA47A2B7D7.png",about_url:"https://www.okx.com/web3",universal_url:"https://www.okx.com/download?appendQuery=true&deeplink=okx://web3/wallet/tonconnect",bridge:[{type:"js",key:"okxTonWallet"},{type:"sse",url:"https://www.okx.com/tonbridge/discover/rpc/bridge"}],platforms:["chrome","safari","firefox","ios","android"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"hot",name:"HOT",image:"https://raw.githubusercontent.com/hot-dao/media/main/logo.png",about_url:"https://hot-labs.org/",universal_url:"https://t.me/herewalletbot?attach=wallet",bridge:[{type:"sse",url:"https://sse-bridge.hot-labs.org"},{type:"js",key:"hotWallet"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"bybitTonWallet",name:"Bybit Wallet",image:"https://raw.githubusercontent.com/bybit-web3/bybit-web3.github.io/main/docs/images/bybit-logo.png",about_url:"https://www.bybit.com/web3",universal_url:"https://app.bybit.com/ton-connect",deepLink:"bybitapp://",bridge:[{type:"js",key:"bybitTonWallet"},{type:"sse",url:"https://api-node.bybit.com/spot/api/web3/bridge/ton/bridge"}],platforms:["ios","android","chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"dewallet",name:"DeWallet",image:"https://raw.githubusercontent.com/delab-team/manifests-images/main/WalletAvatar.png",about_url:"https://delabwallet.com",universal_url:"https://t.me/dewallet?attach=wallet",bridge:[{type:"sse",url:"https://bridge.dewallet.pro/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"safepalwallet",name:"SafePal",image:"https://s.pvcliping.com/web/public_image/SafePal_x288.png",tondns:"",about_url:"https://www.safepal.com",universal_url:"https://link.safepal.io/ton-connect",deepLink:"safepal-tc://",bridge:[{type:"sse",url:"https://ton-bridge.safepal.com/tonbridge/v1/bridge"},{type:"js",key:"safepalwallet"}],platforms:["ios","android","chrome","firefox"],features:[{name:"SendTransaction",maxMessages:1,extraCurrencySupported:!1}]},{app_name:"GateWallet",name:"GateWallet",image:"https://img.gatedataimg.com/prd-ordinal-imgs/036f07bb8730716e/gateio-0925.png",about_url:"https://www.gate.io/",bridge:[{type:"js",key:"gatetonwallet"},{type:"sse",url:"https://dapp.gateio.services/tonbridge_api/bridge/v1"}],platforms:["ios","android"],universal_url:"https://gate.onelink.me/Hls0/web3?gate_web3_wallet_universal_type=ton_connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"openmask",name:"OpenMask",image:"https://raw.githubusercontent.com/OpenProduct/openmask-extension/main/public/openmask-logo-288.png",about_url:"https://www.openmask.app/",bridge:[{type:"js",key:"openmask"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"BitgetWeb3",name:"BitgetWeb3",image:"https://img.bitgetimg.com/image/third/1731638059795.png",about_url:"https://www.bitget.com",universal_url:"https://t.me/BitgetOfficialBot?attach=wallet",bridge:[{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","windows","macos","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"xtonwallet",name:"XTONWallet",image:"https://xtonwallet.com/assets/img/icon-256-back.png",about_url:"https://xtonwallet.com",bridge:[{type:"js",key:"xtonwallet"}],platforms:["chrome","firefox"],features:[{name:"SendTransaction",maxMessages:1,extraCurrencySupported:!1}]},{app_name:"tonwallet",name:"TON Wallet",image:"https://wallet.ton.org/assets/ui/qr-logo.png",about_url:"https://chrome.google.com/webstore/detail/ton-wallet/nphplpgoakhhjchkkhmiggakijnkhfnd",bridge:[{type:"js",key:"tonwallet"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"bitgetWalletLite",name:"Bitget Wallet Lite",image:"https://raw.githubusercontent.com/bitgetwallet/download/refs/heads/main/logo/png/bitget_wallet_lite_logo_288.png",about_url:"https://web3.bitget.com",universal_url:"https://t.me/BitgetWallet_TGBot?attach=wallet",bridge:[{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"tomoWallet",name:"Tomo Wallet",image:"https://pub.tomo.inc/logo.png",about_url:"https://www.tomo.inc/",universal_url:"https://t.me/tomowalletbot?attach=wallet",bridge:[{type:"sse",url:"https://go-bridge.tomo.inc/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"miraiapp-tg",name:"Mirai Mini App",image:"https://cdn.mirailabs.co/miraihub/miraiapp-tg-icon-288.png",about_url:"https://mirai.app",universal_url:"https://t.me/MiraiAppBot?attach=wallet",bridge:[{type:"sse",url:"https://bridge.mirai.app"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"Architec.ton",name:"Architec.ton",image:"https://raw.githubusercontent.com/Architec-Ton/wallet-tma/refs/heads/dev/public/images/arcwallet_logo.png",about_url:"https://architecton.tech",universal_url:"https://t.me/architec_ton_bot?attach=wallet",bridge:[{type:"sse",url:"https://tc.architecton.su/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"tokenpocket",name:"TokenPocket",image:"https://hk.tpstatic.net/logo/tokenpocket.png",about_url:"https://www.tokenpocket.pro",universal_url:"https://tp-lab.tptool.pro/ton-connect/",bridge:[{type:"js",key:"tokenpocket"},{type:"sse",url:"https://ton-connect.mytokenpocket.vip/bridge"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"uxuyWallet",name:"UXUY Wallet",image:"https://chain-cdn.uxuy.com/logo/square_288.png",about_url:"https://docs.uxuy.com",universal_url:"https://t.me/UXUYbot?attach=wallet",bridge:[{type:"sse",url:"https://bridge.uxuy.me/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"tonkeeper-pro",name:"Tonkeeper Pro",image:"https://tonkeeper.com/assets/tonconnect-icon-pro.png",tondns:"tonkeeper.ton",about_url:"https://tonkeeper.com/pro",universal_url:"https://app.tonkeeper.com/pro/ton-connect",deepLink:"tonkeeper-pro-tc://",bridge:[{type:"sse",url:"https://bridge.tonapi.io/bridge"}],platforms:["ios","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"nicegramWallet",name:"Nicegram Wallet",image:"https://static.nicegram.app/icon.png",about_url:"https://nicegram.app",universal_url:"https://nicegram.app/tc",deepLink:"nicegram-tc://",bridge:[{type:"sse",url:"https://tc.nicegram.app/bridge"},{type:"js",key:"nicegramWallet"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"echoooTonWallet",name:"EchoooWallet",image:"https://cdn.echooo.xyz/front-end/source/images/logo/echooo-ton.png",about_url:"https://www.echooo.xyz",universal_url:"https://www.echooo.xyz/ton-connect",deepLink:"echooo://",bridge:[{type:"js",key:"echoooTonWallet"},{type:"sse",url:"https://ton-connect-bridge.echooo.link/bridge"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"blitzwallet",name:"BLITZ wallet",image:"https://blitzwallet.cfd/wallet/public/logo.png",about_url:"https://blitzwallet.cfd",universal_url:"https://t.me/blitz_wallet_bot?attach=wallet",bridge:[{type:"sse",url:"https://blitzwallet.cfd/bridge/"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"koloWeb3Wallet",name:"Kolo",image:"https://raw.githubusercontent.com/onidev1/tc-assets/refs/heads/main/kolo_logo_288.png",about_url:"https://kolo.xyz",universal_url:"https://t.me/kolo?attach=wallet",bridge:[{type:"sse",url:"https://web3-bridge.kolo.in/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"imToken",name:"imToken",image:"https://aws-v2-cdn.token.im/orbit/token-v2/icons/logo-ton-connect.png",about_url:"https://token.im",universal_url:"https://connect.token.im/link/ton-connect",deepLink:"imtokenv2://link/ton-connect",bridge:[{type:"sse",url:"https://connect.token.im/tonbridge"},{type:"js",key:"imToken"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"cactuslink",name:"Cactus Link",image:"https://downloads.mycactus.com/288_cactus_link.png",about_url:"https://www.mycactus.com/defi-connector",bridge:[{type:"js",key:"cactuslink_ton"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1},{name:"SignData",types:["text","binary"]}]},{app_name:"onekey",name:"OneKey",image:"https://uni.onekey-asset.com/static/logo/onekey-x288.png",about_url:"https://onekey.so",bridge:[{type:"js",key:"onekeyTonWallet"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]}];let et=!1,tt=null;function nt(){return et}function rt(){if("undefined"==typeof window)return;if(document.getElementById("ton-connect-qa-banner"))return;const e=document.createElement("div");e.id="ton-connect-qa-banner",e.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: linear-gradient(90deg, #ff6b6b, #ff8e8e);\n color: white;\n padding: 12px 20px;\n text-align: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-weight: 600;\n font-size: 14px;\n z-index: 999999;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n animation: slideDown 0.3s ease-out;\n user-select: none;\n pointer-events: none;\n ",e.innerHTML="\n 🚨 QA Mode Active - Validation Disabled (Unsafe for Production)\n ";const t=document.createElement("style");t.textContent="\n @keyframes slideDown {\n from { transform: translateY(-100%); }\n to { transform: translateY(0); }\n }\n ",document.head.appendChild(t),document.body.appendChild(e),ot()}function ot(){if("undefined"==typeof window)return;if(document.getElementById("ton-connect-qa-mode-styles"))return;const e=document.createElement("style");e.id="ton-connect-qa-mode-styles",e.textContent="\n body.qa-mode-active {\n padding-top: 48px !important;\n }\n \n body.qa-mode-active header {\n margin-top: 48px !important;\n }\n \n body.qa-mode-active .qa-mode-control {\n top: 128px !important;\n }\n ",document.head.appendChild(e),document.body.classList.add("qa-mode-active")}class it{constructor(e){var t;this.walletsListDTOCache=null,this.walletsListDTOCacheCreationTimestamp=null,nt()?this.walletsListSource="https://raw.githubusercontent.com/ton-connect/wallets-list-staging/refs/heads/main/wallets-v2.json":this.walletsListSource=null!==(t=null==e?void 0:e.walletsListSource)&&void 0!==t?t:"https://config.ton.org/wallets-v2.json",this.cacheTTLMs=null==e?void 0:e.cacheTTLMs,this.onDownloadDurationMeasured=null==e?void 0:e.onDownloadDurationMeasured}getWallets(){return V(this,0,void 0,function*(){const[e,t]=yield Promise.all([this.fetchWalletsListDTO(),this.getCurrentlyInjectedWallets()]);return this.mergeWalletsLists(this.walletConfigDTOListToWalletConfigList(e),t)})}getEmbeddedWallet(){return V(this,0,void 0,function*(){const e=(yield this.getWallets()).filter(Ye);return 1===e.length?e[0]:null})}fetchWalletsListDTO(){return V(this,0,void 0,function*(){return this.cacheTTLMs&&this.walletsListDTOCacheCreationTimestamp&&Date.now()>this.walletsListDTOCacheCreationTimestamp+this.cacheTTLMs&&(this.walletsListDTOCache=null),this.walletsListDTOCache||(this.walletsListDTOCache=this.fetchWalletsListFromSource(),this.walletsListDTOCache.then(()=>{this.walletsListDTOCacheCreationTimestamp=Date.now()}).catch(()=>{this.walletsListDTOCache=null,this.walletsListDTOCacheCreationTimestamp=null})),this.walletsListDTOCache})}getRemoteWallet(e){return V(this,0,void 0,function*(){const t=(yield this.getWallets()).find(t=>t.appName===e);if(!t)throw new z(`Wallet info not found for appName: "${e}"`);if(!Je(t))throw new z(`Wallet "${e}" is not remote`);return t})}fetchWalletsListFromSource(){return V(this,0,void 0,function*(){var e,t;let n=[];const r=performance.now();try{const t=yield fetch(this.walletsListSource);if(n=yield t.json(),!Array.isArray(n))throw new se("Wrong wallets list format, wallets list must be an array.");const o=n.filter(e=>!this.isCorrectWalletConfigDTO(e));o.length&&(Te(`Wallet(s) ${o.map(e=>(null==e?void 0:e.name)||"unknown").join(", ")} config format is wrong. They were removed from the wallets list.`),n=n.filter(e=>this.isCorrectWalletConfigDTO(e)));const i=performance.now(),a=Math.round(i-r);null===(e=this.onDownloadDurationMeasured)||void 0===e||e.call(this,a)}catch(o){Te(o),n=Xe,null===(t=this.onDownloadDurationMeasured)||void 0===t||t.call(this,void 0)}return n})}getCurrentlyInjectedWallets(){if(!nt())return[];try{return Ve.getCurrentlyInjectedWallets()}catch(e){return Te(e),[]}}walletConfigDTOListToWalletConfigList(e){return e.map(e=>{const t={name:e.name,appName:e.app_name,imageUrl:e.image,aboutUrl:e.about_url,tondns:e.tondns,platforms:e.platforms,features:e.features};return e.bridge.forEach(n=>{if("sse"===n.type&&(t.bridgeUrl=n.url,t.universalLink=e.universal_url,t.deepLink=e.deepLink),"js"===n.type){const e=n.key;t.jsBridgeKey=e,t.injected=Ve.isWalletInjected(e),t.embedded=Ve.isInsideWalletBrowser(e)}}),t})}mergeWalletsLists(e,t){return[...new Set(e.concat(t).map(e=>e.name)).values()].map(n=>{const r=e.find(e=>e.name===n),o=t.find(e=>e.name===n);return Object.assign(Object.assign({},r&&Object.assign({},r)),o&&Object.assign({},o))})}isCorrectWalletConfigDTO(e){if(!e||"object"!=typeof e)return!1;if(!("name"in e&&"image"in e&&"about_url"in e&&"platforms"in e&&"app_name"in e))return!1;if(!e.platforms||!Array.isArray(e.platforms)||!e.platforms.length)return!1;if(!("bridge"in e)||!Array.isArray(e.bridge)||!e.bridge.length)return!1;const t=e.bridge;if(t.some(e=>!e||"object"!=typeof e||!("type"in e)))return!1;const n=t.find(e=>"sse"===e.type);if(n&&("object"!=typeof n||!("url"in n)||!n.url||!e.universal_url))return!1;const r=t.find(e=>"js"===e.type);return!!(!r||"object"==typeof r&&"key"in r&&r.key)}}function at(e,t){const n=e.includes("SendTransaction"),r=lt(e,"SendTransaction"),o={minMessages:t.requiredMessagesNumber,extraCurrencyRequired:t.requireExtraCurrencies};if(!n&&!r)throw new ee("Wallet doesn't support SendTransaction feature.",{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}});if(t.requireExtraCurrencies&&(!r||!r.extraCurrencySupported))throw new ee("Wallet is not able to handle such SendTransaction request. Extra currencies support is required.",{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}});if(r&&void 0!==r.maxMessages){if(r.maxMessages<t.requiredMessagesNumber)throw new ee(`Wallet is not able to handle such SendTransaction request. Max support messages number is ${r.maxMessages}, but ${t.requiredMessagesNumber} is required.`,{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}})}else!function(...e){try{console.warn("[TON_CONNECT_SDK]",...e)}catch(t){}}("Connected wallet didn't provide information about max allowed messages in the SendTransaction request. Request may be rejected by the wallet.")}function st(e,t){if("object"!=typeof t)return!0;const{sendTransaction:n,signData:r}=t;if(n){const t=lt(e,"SendTransaction");if(!t)return!1;if(!function(e,t){const n=void 0===t.minMessages||t.minMessages<=e.maxMessages,r=!t.extraCurrencyRequired||e.extraCurrencySupported;return!(!n||!r)}(t,n))return!1}if(r){const t=lt(e,"SignData");if(!t)return!1;if(!function(e,t){return t.types.every(t=>e.types.includes(t))}(t,r))return!1}return!0}function lt(e,t){return e.find(e=>e&&"object"==typeof e&&e.name===t)}function ct(){return{type:"request-version"}}function dt(e){return{type:"response-version",version:e}}function ut(e){return{ton_connect_sdk_lib:e.ton_connect_sdk_lib,ton_connect_ui_lib:e.ton_connect_ui_lib}}function ht(e,t,n){var r,o,i,a,s,l,c,d,u,h,p;const g=(null===(r=null==t?void 0:t.connectItems)||void 0===r?void 0:r.tonProof)&&"proof"in t.connectItems.tonProof?"ton_proof":"ton_addr";return{wallet_address:null!==(i=null===(o=null==t?void 0:t.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,wallet_state_init:null!==(a=null==t?void 0:t.account.walletStateInit)&&void 0!==a?a:null,wallet_type:null!==(s=null==t?void 0:t.device.appName)&&void 0!==s?s:null,wallet_version:null!==(l=null==t?void 0:t.device.appVersion)&&void 0!==l?l:null,auth_type:g,custom_data:Object.assign({client_id:null!==(c=null==n?void 0:n.clientId)&&void 0!==c?c:null,wallet_id:null!==(d=null==n?void 0:n.walletId)&&void 0!==d?d:null,chain_id:null!==(h=null===(u=null==t?void 0:t.account)||void 0===u?void 0:u.chain)&&void 0!==h?h:null,provider:null!==(p=null==t?void 0:t.provider)&&void 0!==p?p:null},ut(e))}}function pt(e,t){return{type:"connection-started",custom_data:ut(e),trace_id:null!=t?t:null}}function gt(e,t,n,r){return Object.assign({type:"connection-completed",is_success:!0,trace_id:null!=r?r:null},ht(e,t,n))}function ft(e,t,n,r,o){var i,a;return{type:"connection-error",is_success:!1,error_message:t,error_code:null!=n?n:null,trace_id:null!=o?o:null,custom_data:Object.assign({client_id:null!==(i=null==r?void 0:r.clientId)&&void 0!==i?i:null,wallet_id:null!==(a=null==r?void 0:r.walletId)&&void 0!==a?a:null},ut(e))}}function mt(e,t){return{type:"connection-restoring-started",custom_data:ut(e),trace_id:null!=t?t:null}}function wt(e,t,n,r){return Object.assign({type:"connection-restoring-completed",is_success:!0,trace_id:null!=r?r:null},ht(e,t,n))}function vt(e,t,n){return{type:"connection-restoring-error",is_success:!1,error_message:t,trace_id:null!=n?n:null,custom_data:ut(e)}}function yt(e,t){var n,r,o,i;return{valid_until:null!==(n=String(t.validUntil))&&void 0!==n?n:null,from:null!==(i=null!==(r=t.from)&&void 0!==r?r:null===(o=null==e?void 0:e.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,messages:t.messages.map(e=>{var t,n;return{address:null!==(t=e.address)&&void 0!==t?t:null,amount:null!==(n=e.amount)&&void 0!==n?n:null}})}}function bt(e,t,n,r,o){return Object.assign(Object.assign({type:"transaction-sent-for-signature",trace_id:null!=o?o:null},ht(e,t,r)),yt(t,n))}function Ct(e,t,n,r,o,i){return Object.assign(Object.assign({type:"transaction-signed",is_success:!0,signed_transaction:r.boc,trace_id:null!=i?i:null},ht(e,t,o)),yt(t,n))}function xt(e,t,n,r,o,i,a){return Object.assign(Object.assign({type:"transaction-signing-failed",is_success:!1,error_message:r,error_code:null!=o?o:null,trace_id:null!=a?a:null},ht(e,t,i)),function(e,t){var n,r,o,i;return{valid_until:null!==(n=String(t.validUntil))&&void 0!==n?n:null,from:null!==(i=null!==(r=t.from)&&void 0!==r?r:null===(o=null==e?void 0:e.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,messages:t.messages.map(e=>{var t,n,r,o;return{address:null!==(t=e.address)&&void 0!==t?t:null,amount:null!==(n=e.amount)&&void 0!==n?n:null,payload:null!==(r=e.payload)&&void 0!==r?r:null,state_init:null!==(o=e.stateInit)&&void 0!==o?o:null}})}}(t,n))}function St(e,t,n,r,o){return Object.assign({type:"sign-data-request-initiated",data:n,trace_id:null!=o?o:null},ht(e,t,r))}function kt(e,t,n,r,o,i){return Object.assign({type:"sign-data-request-completed",is_success:!0,data:n,signed_data:r,trace_id:null!=i?i:null},ht(e,t,o))}function _t(e,t,n,r,o,i,a){return Object.assign({type:"sign-data-request-failed",is_success:!1,data:n,error_message:r,error_code:null!=o?o:null,trace_id:null!=a?a:null},ht(e,t,i))}function Et(e,t,n,r,o){return Object.assign({type:"disconnection",scope:n,trace_id:null!=o?o:null},ht(e,t,r))}function Rt(e,t,n,r){return{type:"wallet-modal-opened",visible_wallets:t,client_id:null!=n?n:null,custom_data:e,trace_id:null!=r?r:null}}function Tt(e,t,n,r,o,i,a,s){var l;let c=i;return!c&&o&&(c=be(o)?"tg_link":"external_link"),{type:"selected-wallet",wallets_menu:r,visible_wallets:t,client_id:null!=a?a:null,custom_data:e,trace_id:null!=s?s:null,wallet_redirect_method:c,wallet_redirect_link:o||void 0,wallet_type:null!==(l=null==n?void 0:n.appName)&&void 0!==l?l:null}}class It{get version(){return ut({ton_connect_sdk_lib:this.tonConnectSdkVersion,ton_connect_ui_lib:this.tonConnectUiVersion})}constructor(e){this.eventPrefix="ton-connect-",this.tonConnectUiVersion=null,this.eventDispatcher=null==e?void 0:e.eventDispatcher,this.tonConnectSdkVersion=e.tonConnectSdkVersion,this.init().catch()}init(){return V(this,0,void 0,function*(){try{yield this.setRequestVersionHandler(),this.tonConnectUiVersion=yield this.requestTonConnectUiVersion()}catch(e){}})}setRequestVersionHandler(){return V(this,0,void 0,function*(){yield this.eventDispatcher.addEventListener("ton-connect-request-version",()=>V(this,0,void 0,function*(){yield this.eventDispatcher.dispatchEvent("ton-connect-response-version",dt(this.tonConnectSdkVersion))}))})}requestTonConnectUiVersion(){return V(this,0,void 0,function*(){return new Promise((e,t)=>V(this,0,void 0,function*(){try{yield this.eventDispatcher.addEventListener("ton-connect-ui-response-version",t=>{e(t.detail.version)},{once:!0}),yield this.eventDispatcher.dispatchEvent("ton-connect-ui-request-version",{type:"request-version"})}catch(n){t(n)}}))})}dispatchUserActionEvent(e){try{this.eventDispatcher.dispatchEvent(`${this.eventPrefix}${e.type}`,e).catch()}catch(t){}}trackConnectionStarted(...e){try{const t=pt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionCompleted(...e){try{const t=gt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionError(...e){try{const t=ft(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringStarted(...e){try{const t=mt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringCompleted(...e){try{const t=wt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringError(...e){try{const t=vt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDisconnection(...e){try{const t=Et(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSentForSignature(...e){try{const t=bt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSigned(...e){try{const t=Ct(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSigningFailed(...e){try{const t=xt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSentForSignature(...e){try{const t=St(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSigned(...e){try{const t=kt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSigningFailed(...e){try{const t=_t(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}}const Ot="3.4.0-beta.7";function Mt(e,t=!1){const{wc:n,hex:r}=Nt(e);let o=81;t&&(o|=128);const i=new Int8Array(34);i[0]=o,i[1]=n,i.set(r,2);const a=new Uint8Array(36);return a.set(i),a.set(Wt(i),34),q.encode(a).replace(/\+/g,"-").replace(/\//g,"_")}function At(e){try{return Lt(e),!0}catch(t){return!1}}function Lt(e){const t=e.replace(/-/g,"+").replace(/_/g,"/");let n;try{n=q.decode(t).toUint8Array()}catch(u){throw new le(`Invalid base64 encoding in address: ${e}`)}if(36!==n.length)throw new le(`Invalid address length: ${e}`);const r=n.slice(0,34),o=n.slice(34,36),i=Wt(r);if(!o.every((e,t)=>e===i[t]))throw new le(`Invalid checksum in address: ${e}`);let a=r[0],s=!1,l=!1;if(128&a&&(s=!0,a^=128),17!==a&&81!==a)throw new le(`Unknown address tag: ${a}`);l=17===a;let c=null;c=255===r[1]?-1:r[1];const d=r.slice(2);if(0!==c&&-1!==c)throw new le(`Invalid workchain: ${c}`);return{wc:c,hex:Array.from(d).map(e=>e.toString(16).padStart(2,"0")).join(""),testOnly:s,isBounceable:l}}function Nt(e){if(!e.includes(":"))throw new le(`Wrong address ${e}. Address must include ":".`);const t=e.split(":");if(2!==t.length)throw new le(`Wrong address ${e}. Address must include ":" only once.`);const n=parseInt(t[0]);if(0!==n&&-1!==n)throw new le(`Wrong address ${e}. WC must be eq 0 or -1, but ${n} received.`);const r=t[1];if(64!==(null==r?void 0:r.length))throw new le(`Wrong address ${e}. Hex part must be 64bytes length, but ${null==r?void 0:r.length} received.`);return{wc:n,hex:Ut(r)}}function Wt(e){let t=0;const n=new Uint8Array(e.length+2);n.set(e);for(let r of n){let e=128;for(;e>0;)t<<=1,r&e&&(t+=1),e>>=1,t>65535&&(t&=65535,t^=4129)}return new Uint8Array([Math.floor(t/256),t%256])}const Pt={};for(let zp=0;zp<=255;zp++){let e=zp.toString(16);e.length<2&&(e="0"+e),Pt[e]=zp}function Ut(e){const t=(e=e.toLowerCase()).length;if(t%2!=0)throw new ce("Hex string must have length a multiple of 2: "+e);const n=t/2,r=new Uint8Array(n);for(let o=0;o<n;o++){const t=2*o,n=e.substring(t,t+2);if(!Pt.hasOwnProperty(n))throw new ce("Invalid hex character: "+n);r[o]=Pt[n]}return r}const Dt=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,jt=/^[A-Za-z0-9\-_]+$/,Bt=/^-?\d+$/,qt=/^\d+$/;function $t(e){return"number"==typeof e&&!isNaN(e)}function Kt(e){return"string"==typeof e&&e.length>0}function Ft(e){return Kt(e)&&(function(e){try{return Nt(e),!0}catch(t){return!1}}(e)||At(e))}function Ht(e){return Kt(e)&&/^-?\d+$/.test(e)}function Vt(e){return"string"==typeof e&&(Dt.test(e)||jt.test(e))&&e.startsWith("te6cc")}function zt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Zt(e,t){return Object.keys(e).some(e=>!t.includes(e))}function Gt(e){if(!zt(e))return"Request must be an object";if(Zt(e,["validUntil","network","from","messages"]))return"Request contains extra properties";if(e.validUntil){if(!$t(e.validUntil))return"Incorrect 'validUntil'";const t=Math.floor(Date.now()/1e3),n=t+300;e.validUntil>n&&console.warn(`validUntil (${e.validUntil}) is more than 5 minutes from now (${t})`)}if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from' address format";if(t=e.messages,!Array.isArray(t)||0===e.messages.length)return"'messages' is required";var t;for(let n=0;n<e.messages.length;n++){const t=Yt(e.messages[n],n);if(t)return t}return null}function Yt(e,t){if(!zt(e))return`Message at index ${t} must be an object`;if(Zt(e,["address","amount","stateInit","payload","extraCurrency"]))return`Message at index ${t} contains extra properties`;if(!Kt(e.address))return`'address' is required in message at index ${t}`;if(!At(e.address))return`Wrong 'address' format in message at index ${t}`;if(!Kt(e.amount))return`'amount' is required in message at index ${t}`;if(!/^[0-9]+$/.test(e.amount))return`Incorrect 'amount' in message at index ${t}`;if(!(void 0===e.stateInit||Kt(e.stateInit)&&Vt(e.stateInit)))return`Invalid 'stateInit' in message at index ${t}`;if(!(void 0===e.payload||Kt(e.payload)&&Vt(e.payload)))return`Invalid 'payload' in message at index ${t}`;if(void 0!==e.extraCurrency){if(!zt(e.extraCurrency))return`Invalid 'extraCurrency' in message at index ${t}`;for(const[n,r]of Object.entries(e.extraCurrency))if(!Bt.test(n)||"string"!=typeof r||!qt.test(r))return`Invalid 'extraCurrency' format in message at index ${t}`}return null}function Qt(e){if(!zt(e))return"Request must be an object";if(Zt(e,["tonProof"]))return"Request contains extra properties";if(void 0!==e.tonProof){if("string"!=typeof e.tonProof)return"Invalid 'tonProof'";const t=e.tonProof;if(0===t.length)return"Empty 'tonProof' payload";const n=function(){try{return"undefined"!=typeof window&&window.location?window.location.hostname:null}catch(e){return null}}();if(!n)return null;const r=(new TextEncoder).encode(n).length;if(r>128)return"Current domain exceeds 128 bytes limit";const o=(new TextEncoder).encode(t).length;if(o>128)return"'tonProof' payload exceeds 128 bytes limit";if(r+o>222)return"'tonProof' domain + payload exceeds 222 bytes limit"}return null}function Jt(e){if(!zt(e))return"Payload must be an object";if(!Kt(e.type))return"'type' is required";switch(e.type){case"text":return function(e){if(Zt(e,["type","text","network","from"]))return"Text payload contains extra properties";if(!Kt(e.text))return"'text' is required";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);case"binary":return function(e){if(Zt(e,["type","bytes","network","from"]))return"Binary payload contains extra properties";if(!Kt(e.bytes))return"'bytes' is required";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);case"cell":return function(e){if(Zt(e,["type","schema","cell","network","from"]))return"Cell payload contains extra properties";if(!Kt(e.schema))return"'schema' is required";if(!Kt(e.cell))return"'cell' is required";if(!Vt(e.cell))return"Invalid 'cell' format (must be valid base64)";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);default:return"Invalid 'type' value"}}function Xt(e){if("string"!=typeof e)return;const t=e.length+(4-e.length%4)%4;return e.replace(/-/g,"+").replace(/_/g,"/").padEnd(t,"=")}class en{constructor(e={}){var t,n,r,o,i,a;this.events=[],this.timeoutId=null,this.isProcessing=!1,this.backoff=1,this.shouldSend=!0,this.batchTimeoutMs=null!==(t=e.batchTimeoutMs)&&void 0!==t?t:2e3,this.currentBatchTimeoutMs=this.batchTimeoutMs,this.maxBatchSize=null!==(n=e.maxBatchSize)&&void 0!==n?n:100,this.analyticsUrl=null!==(r=e.analyticsUrl)&&void 0!==r?r:"https://analytics.ton.org/events",this.mode=null!==(o=e.mode)&&void 0!==o?o:"telemetry",this.baseEvent=Object.assign({subsystem:"dapp-sdk",version:Ot,client_environment:null===(a=null===(i=e.environment)||void 0===i?void 0:i.getClientEnvironment)||void 0===a?void 0:a.call(i)},function(){const e={};try{const t=performance.getEntriesByType("navigation");if(t.length>0){const n=t[0];n.responseStart&&n.requestStart&&(e.conn_ttfb=Math.round(n.responseStart-n.requestStart))}}catch(t){}return e}()),this.addWindowFocusAndBlurSubscriptions()}scoped(e){return new Proxy(this,{get(t,n){const r=n.toString();if(r.startsWith("emit")){const n=r.replace("emit",""),o=n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();return function(n){const r=Object.fromEntries(Object.entries(null!=e?e:{}).map(([e,t])=>[e,"function"==typeof t?t():t]));return t.emit(Object.assign(Object.assign({event_name:o},r),n))}}return t[n]}})}emit(e){var t;if("off"===this.mode)return;const n=null!==(t=e.trace_id)&&void 0!==t?t:Pe(),r=function(){const e={};try{const t=navigator,n=t.connection||t.mozConnection||t.webkitConnection;n&&(void 0!==n.rtt&&(e.conn_rtt=n.rtt),n.effectiveType?e.conn_network_type=n.effectiveType:n.type&&(e.conn_network_type=n.type))}catch(t){}return e}(),o=Object.assign(Object.assign(Object.assign(Object.assign({},this.baseEvent),r),e),{event_id:Pe(),client_timestamp:Math.floor(Date.now()/1e3),trace_id:n}),i="telemetry"===this.mode?this.filterFullModeFields(o):o;nt()&&Re(i),this.events.push(i),this.events.length>=this.maxBatchSize?this.flush():this.startTimeout()}startTimeout(){this.timeoutId||this.isProcessing||(this.timeoutId=setTimeout(()=>{this.flush()},this.currentBatchTimeoutMs))}flush(){return V(this,0,void 0,function*(){if(this.isProcessing||0===this.events.length||!this.shouldSend)return;this.clearTimeout(),this.isProcessing=!0;const e=this.extractEventsToSend();try{yield this.processEventsBatch(e),Re("Analytics events sent successfully")}catch(t){this.restoreEvents(e),Te("Failed to send analytics events:",t)}finally{this.isProcessing=!1,this.scheduleNextFlushIfNeeded()}})}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}extractEventsToSend(){const e=this.events.slice(0,this.maxBatchSize);return this.events=this.events.slice(this.maxBatchSize),e}processEventsBatch(e){return V(this,0,void 0,function*(){Re("Sending analytics events...",e.length);try{const t=yield this.sendEvents(e);this.handleResponse(t)}catch(t){this.handleUnknownError(t)}})}handleResponse(e){const{status:t,statusText:n}=e;this.isTooManyRequests(t)?this.handleTooManyRequests(t,n):this.isClientError(t)?this.handleClientError(t,n):this.isServerError(t)&&this.handleUnknownError({status:t,statusText:n})}restoreEvents(e){this.events.unshift(...e)}scheduleNextFlushIfNeeded(){this.events.length>0&&this.startTimeout()}sendEvents(e){return V(this,0,void 0,function*(){return yield fetch(this.analyticsUrl,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Timestamp":Math.floor(Date.now()/1e3).toString()},body:JSON.stringify(e)})})}isClientError(e){return e>=en.HTTP_STATUS.CLIENT_ERROR_START&&e<en.HTTP_STATUS.SERVER_ERROR_START}isServerError(e){return e>=en.HTTP_STATUS.SERVER_ERROR_START}isTooManyRequests(e){return e===en.HTTP_STATUS.TOO_MANY_REQUESTS}handleClientError(e,t){Te("Failed to send analytics events:",new z(`Analytics API error: ${e} ${t}`))}handleUnknownError(e){if(this.backoff<en.MAX_BACKOFF_ATTEMPTS)throw this.backoff++,this.currentBatchTimeoutMs*=en.BACKOFF_MULTIPLIER,new z(`Unknown analytics API error: ${e}`);return this.currentBatchTimeoutMs=this.batchTimeoutMs,void(this.backoff=1)}handleTooManyRequests(e,t){throw new z(`Analytics API error: ${e} ${t}`)}addWindowFocusAndBlurSubscriptions(){const e=Ke();if(e)try{e.addEventListener("visibilitychange",()=>{e.hidden?(this.clearTimeout(),this.shouldSend=!1):(this.shouldSend=!0,this.scheduleNextFlushIfNeeded())})}catch(t){Te("Cannot subscribe to the document.visibilitychange: ",t)}}getMode(){return this.mode}getPendingEventsCount(){return this.events.length}filterFullModeFields(e){const t=Object.assign({},e);for(const r of en.FULL_MODE_FIELDS)delete t[r];const n="event_name"in e?String(e.event_name):"";return!("error_code"in e||"error_message"in e||n.includes("error")||"connection-error"===n||"transaction-signing-failed"===n||"sign-data-request-failed"===n)&&"wallet_address"in t&&delete t.wallet_address,t}setWalletListDownloadDuration(e){this.baseEvent=Object.assign(Object.assign({},this.baseEvent),{wallet_list_download_duration:e})}}en.HTTP_STATUS={TOO_MANY_REQUESTS:429,CLIENT_ERROR_START:400,SERVER_ERROR_START:500},en.MAX_BACKOFF_ATTEMPTS=5,en.BACKOFF_MULTIPLIER=2,en.FULL_MODE_FIELDS=["user_id","tg_id","locale","tma_is_premium"];class tn{constructor(){this.window=$e()}dispatchEvent(e,t){return V(this,0,void 0,function*(){var n;const r=new CustomEvent(e,{detail:t});null===(n=this.window)||void 0===n||n.dispatchEvent(r)})}addEventListener(e,t,n){return V(this,0,void 0,function*(){var r;return null===(r=this.window)||void 0===r||r.addEventListener(e,t,n),()=>{var n;return null===(n=this.window)||void 0===n?void 0:n.removeEventListener(e,t)}})}}function nn(e){return{"@tonconnect/sdk":e.ton_connect_sdk_lib||"","@tonconnect/ui":e.ton_connect_ui_lib||""}}function rn(e){var t,n,r,o,i,a,s,l;return{versions:nn(e.custom_data),network_id:null!==(t=e.custom_data.chain_id)&&void 0!==t?t:"",client_id:null!==(n=e.custom_data.client_id)&&void 0!==n?n:"",wallet_id:null!==(r=e.custom_data.wallet_id)&&void 0!==r?r:"",wallet_address:null!==(o=e.wallet_address)&&void 0!==o?o:"",wallet_app_name:null!==(i=e.wallet_type)&&void 0!==i?i:"",wallet_app_version:null!==(a=e.wallet_version)&&void 0!==a?a:"",wallet_state_init:null!==(s=e.wallet_state_init)&&void 0!==s?s:"",trace_id:null!==(l=e.trace_id)&&void 0!==l?l:void 0}}class on{getClientEnvironment(){return""}getBrowser(){return""}getLocale(){return""}getPlatform(){return""}getTelegramUser(){}}const an={};function sn(){return void 0!==an.UniversalConnectorCls&&void 0!==an.walletConnectOptions}const ln="0";class cn{constructor(e){this.connectionStorage=e,this.type="injected",this.listeners=[],this.connector=void 0;const{projectId:t,metadata:n}=function(){if(void 0===an.walletConnectOptions)throw new z("Wallet Connect is not initialized.");return an.walletConnectOptions}();this.config={networks:[{namespace:"ton",chains:[{id:-239,chainNamespace:"ton",caipNetworkId:"ton:-239",name:"TON",nativeCurrency:{name:"TON",symbol:"TON",decimals:9},rpcUrls:{default:{http:[]}}},{id:-3,chainNamespace:"ton",caipNetworkId:"ton:-3",name:"TON",nativeCurrency:{name:"TON",symbol:"TON",decimals:9},rpcUrls:{default:{http:[]}}}],methods:["ton_sendMessage","ton_signData"],events:[]}],projectId:t,metadata:n}}static fromStorage(e){return V(this,0,void 0,function*(){return new cn(e)})}initialize(){return V(this,0,void 0,function*(){return this.connector||(this.connector=yield function(){if(void 0===an.UniversalConnectorCls)throw new z("Wallet Connect is not initialized.");return an.UniversalConnectorCls}().init(this.config)),this.connector})}connect(e,t){var n,r;const o=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe(),i=_e(null==t?void 0:t.signal);null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=i,this._connect(e,{traceId:o,signal:i.signal,abortController:i}).catch(e=>Re("WalletConnect connect unexpected error",e))}_connect(t,n){return V(this,0,void 0,function*(){var r,o;const i=yield this.initialize();if(null===(r=n.signal)||void 0===r?void 0:r.aborted)return Re("WalletConnect connect aborted before start"),void this.clearAbortController(n.abortController);const a=t.items.find(e=>"ton_proof"===e.name),s=a?[{domain:new URL(this.config.metadata.url).hostname,chains:["ton:-239"],nonce:"",uri:"ton_proof",ttl:0,statement:a.payload}]:void 0;Re("Connecting through this.connector.connect");try{yield i.connect({authentication:s})}catch(l){if(null===(o=n.signal)||void 0===o?void 0:o.aborted)return Re("WalletConnect connect aborted via signal"),void this.clearAbortController(n.abortController);Re("WalletConnect connect error",l);const t={id:0,event:"connect_error",traceId:n.traceId,payload:{code:e.CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR,message:"User declined the connection"}};return Re("WalletConnect connect response:",t),this.emit(t),void this.clearAbortController(n.abortController)}Re("Connected through this.connector.connect");try{yield this.onConnect(i,Object.assign(Object.assign({},n),{includeTonProof:!0}))}catch(l){Re("WalletConnect onConnect error",l),yield this.disconnect({traceId:n.traceId,signal:n.signal})}finally{this.clearAbortController(n.abortController)}})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n;const r=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe(),o=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=o,!o.signal.aborted)try{Re("Restoring WalletConnect connection...");if(!(yield this.connectionStorage.getWalletConnectConnection())||o.signal.aborted)return;const e=yield this.initialize();if(o.signal.aborted)return;yield this.onConnect(e,{includeTonProof:!1,traceId:r,signal:o.signal}),Re("WalletConnect successfully restored.")}catch(i){Re("WalletConnect restore error",i),yield this.disconnect({traceId:r,signal:o.signal})}finally{this.clearAbortController(o)}})}closeConnection(){var e;null===(e=this.abortController)||void 0===e||e.abort(),this.abortController=void 0,this.disconnect()}disconnect(e){return V(this,0,void 0,function*(){var t,n;const r=_e(null==e?void 0:e.signal);if(null===(t=this.abortController)||void 0===t||t.abort(),this.abortController=r,!r.signal.aborted)try{if(yield this.connectionStorage.removeConnection(),r.signal.aborted)return;yield null===(n=this.connector)||void 0===n?void 0:n.disconnect()}catch(o){Re("WalletConnect disconnect error",o)}finally{this.clearAbortController(r)}})}sendRequest(e,t){return V(this,0,void 0,function*(){var n,r,o,i;if(!this.connector)throw new z("Wallet Connect not initialized");const a={};"function"==typeof t?a.onRequestSent=t:(a.onRequestSent=null==t?void 0:t.onRequestSent,a.signal=null==t?void 0:t.signal,a.attempts=null==t?void 0:t.attempts,a.traceId=null==t?void 0:t.traceId),null!==(n=a.traceId)&&void 0!==n||(a.traceId=Pe());try{if(null===(r=a.signal)||void 0===r?void 0:r.aborted)throw new z("WalletConnect request aborted");if(Re("Send wallet-connect request:",Object.assign(Object.assign({},e),{id:ln})),"sendTransaction"===e.method){const t=JSON.parse(e.params[0]),{network:n}=t,r=H(t,["network"]),i=this.connector.request({method:"ton_sendMessage",params:r},`ton:${n}`);null===(o=null==a?void 0:a.onRequestSent)||void 0===o||o.call(a);const s=yield i;return Re("Wallet message received:",{result:s,id:ln}),{result:s,id:ln,traceId:a.traceId}}if("signData"===e.method){const t=JSON.parse(e.params[0]),{network:n}=t,r=H(t,["network"]),o=this.connector.request({method:"ton_signData",params:r},`ton:${n}`);null===(i=null==a?void 0:a.onRequestSent)||void 0===i||i.call(a);const s=yield o;return Re("Wallet message received:",{result:s,id:ln}),{result:s,traceId:a.traceId,id:ln}}if("disconnect"===e.method)return{id:ln,traceId:a.traceId}}catch(s){Re("WalletConnect request error",s,s.stack);const e=yield this.handleWalletConnectError(s,{traceId:a.traceId});return Re("Wallet message received:",e),e}return{id:ln,error:{code:D.UNKNOWN_ERROR,message:"Not implemented."},traceId:a.traceId}})}handleWalletConnectError(t,n){return V(this,0,void 0,function*(){if("object"==typeof t&&null!==t){const r=String("message"in t?t.message:"msg"in t?t.msg:t);return r.toLowerCase().includes("reject")?{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR,message:r}}:r.toLowerCase().includes("tonvalidationerror")?{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR,message:r}}:{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR,message:r}}}return{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR,message:String(t)}}})}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}buildTonProof(e){var t,n,r;const o=null===(t=e.provider.session.authentication)||void 0===t?void 0:t[0],i=null===(n=null==o?void 0:o.p)||void 0===n?void 0:n.iat,a=null===(r=null==o?void 0:o.p)||void 0===r?void 0:r.statement;if(!i||!a)return;const s=o.p.domain;return{name:"ton_proof",proof:{timestamp:Math.floor(new Date(i).getTime()/1e3),domain:{lengthBytes:s.length,value:s},payload:a,signature:o.s.s}}}onConnect(t,n){return V(this,0,void 0,function*(){var r,o,i,a;if(null===(r=n.signal)||void 0===r?void 0:r.aborted)return void Re("WalletConnect onConnect aborted");const s=t.provider.session,l=s.namespaces.ton;if(!(null===(o=null==l?void 0:l.accounts)||void 0===o?void 0:o[0]))return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No TON accounts connected."}));const c=l.accounts[0],[,d,u]=c.split(":",3),h=null===(i=s.sessionProperties)||void 0===i?void 0:i.ton_getPublicKey;if(!h)return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No sessionProperties.ton_getPublicKey provided."}));const p=null===(a=s.sessionProperties)||void 0===a?void 0:a.ton_getStateInit;if(!p)return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No sessionProperties.ton_getStateInit provided."}));t.provider.once("session_delete",()=>V(this,0,void 0,function*(){try{yield this.connectionStorage.removeConnection();const e={event:"disconnect",traceId:Pe(),payload:{}};Re("Wallet message received:",e),this.emit(e)}catch(e){Re("Error while deleting session",e)}}));const g=(null==n?void 0:n.includeTonProof)?this.buildTonProof(t):void 0,f={items:[{name:"ton_addr",address:At(u)?function({wc:e,hex:t}){return`${e}:${t}`}(Lt(u)):u,network:d,publicKey:h,walletStateInit:p},...g?[g]:[]],device:{appName:"wallet_connect",appVersion:"",maxProtocolVersion:2,features:this.buildFeatureList(l.methods),platform:"browser"}};Re("WalletConnect connect response:",{event:"connect",payload:f,id:0}),this.emit({event:"connect",payload:f,traceId:n.traceId}),yield this.storeConnection()})}buildFeatureList(e){const t=[];return e.includes("ton_sendMessage")&&t.push("SendTransaction",{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}),e.includes("ton_signData")&&t.push({name:"SignData",types:["text","binary","cell"]}),t}disconnectWithError(e){return V(this,0,void 0,function*(){yield this.disconnect();const t={code:e.code,message:e.message};Re("WalletConnect connect response:",{event:"connect_error",id:0,payload:t}),this.emit({event:"connect_error",traceId:e.traceId,payload:t})})}clearAbortController(e){this.abortController===e&&(this.abortController=void 0)}emit(e,t){(null!=t?t:this.listeners).forEach(t=>t(e))}storeConnection(){return this.connectionStorage.storeConnection({type:"wallet-connect"})}}class dn{static getWallets(){return this.walletsList.getWallets()}get connected(){return null!==this._wallet}get account(){var e;return(null===(e=this._wallet)||void 0===e?void 0:e.account)||null}get wallet(){return this._wallet}set wallet(e){this._wallet=e,this.statusChangeSubscriptions.forEach(e=>e(this._wallet))}constructor(e){var t,n,r;this._wallet=null,this.provider=null,this.statusChangeSubscriptions=[],this.statusChangeErrorSubscriptions=[];const o=(null==e?void 0:e.manifestUrl)||function(){var e;const t=null===(e=$e())||void 0===e?void 0:e.location.origin;return t?t+"/tonconnect-manifest.json":""}();this.dappSettings={manifestUrl:o,storage:(null==e?void 0:e.storage)||new Ze},this.walletsRequiredFeatures=null==e?void 0:e.walletsRequiredFeatures,this.environment=null!==(t=null==e?void 0:e.environment)&&void 0!==t?t:new on,this.walletsList=new it({walletsListSource:null==e?void 0:e.walletsListSource,cacheTTLMs:null==e?void 0:e.walletsListCacheTTLMs,onDownloadDurationMeasured:e=>{var t;null===(t=this.analytics)||void 0===t||t.setWalletListDownloadDuration(e)}});const i=null!==(n=null==e?void 0:e.eventDispatcher)&&void 0!==n?n:new tn;if(this.tracker=new It({eventDispatcher:i,tonConnectSdkVersion:Ot}),this.environment=null!==(r=null==e?void 0:e.environment)&&void 0!==r?r:new on,this.initAnalytics(o,i,e),!this.dappSettings.manifestUrl)throw new Z("Dapp tonconnect-manifest.json must be specified if window.location.origin is undefined. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest");this.bridgeConnectionStorage=new ze(this.dappSettings.storage,this.walletsList),(null==e?void 0:e.disableAutoPauseConnection)||this.addWindowFocusAndBlurSubscriptions()}getWallets(){return this.walletsList.getWallets()}onStatusChange(e,t){return this.statusChangeSubscriptions.push(e),t&&this.statusChangeErrorSubscriptions.push(t),()=>{this.statusChangeSubscriptions=this.statusChangeSubscriptions.filter(t=>t!==e),t&&(this.statusChangeErrorSubscriptions=this.statusChangeErrorSubscriptions.filter(e=>e!==t))}}connect(e,t,n){var r,o,i;const a=Object.assign({},n);if("object"==typeof t&&null!==t&&"tonProof"in t&&(a.request=t),"object"==typeof t&&null!==t&&("openingDeadlineMS"in t||"signal"in t||"request"in t||"traceId"in t)&&(a.request=null==t?void 0:t.request,a.openingDeadlineMS=null==t?void 0:t.openingDeadlineMS,a.signal=null==t?void 0:t.signal),a.request){const e=Qt(a.request);if(e){if(!nt())throw new z("ConnectAdditionalRequest validation failed: "+e);console.error("ConnectAdditionalRequest validation failed: "+e)}}if(this.connected)throw new Q;const s=_e(null==a?void 0:a.signal);if(null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=s,s.signal.aborted)throw new z("Connection was aborted");null===(o=this.provider)||void 0===o||o.closeConnection(),this.provider=this.createProvider(e),s.signal.addEventListener("abort",()=>{var e;null===(e=this.provider)||void 0===e||e.closeConnection(),this.provider=null});const l=null!==(i=null==a?void 0:a.traceId)&&void 0!==i?i:Pe();return this.tracker.trackConnectionStarted(l),this.provider.connect(this.createConnectRequest(null==a?void 0:a.request),{openingDeadlineMS:null==a?void 0:a.openingDeadlineMS,signal:s.signal,traceId:l})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();this.tracker.trackConnectionRestoringStarted(o);const i=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=i,i.signal.aborted)return void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);const[a,s]=yield Promise.all([this.bridgeConnectionStorage.storedConnectionType(),this.walletsList.getEmbeddedWallet()]);if(i.signal.aborted)return void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);let l=null;try{switch(a){case"http":l=yield De.fromStorage(this.bridgeConnectionStorage,this.analytics);break;case"injected":l=yield Ve.fromStorage(this.bridgeConnectionStorage,this.analytics);break;case"wallet-connect":l=yield cn.fromStorage(this.bridgeConnectionStorage);break;default:if(!s)return;l=this.createProvider(s)}}catch(h){return Re("Provider is not restored",h),this.tracker.trackConnectionRestoringError("Provider is not restored",o),yield this.bridgeConnectionStorage.removeConnection(),null==l||l.closeConnection(),void(l=null)}if(i.signal.aborted)return null==l||l.closeConnection(),void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);if(!l)return Te("Provider is not restored"),void this.tracker.trackConnectionRestoringError("Provider is not restored",o);null===(r=this.provider)||void 0===r||r.closeConnection(),this.provider=l,l.listen(this.walletEventsListener.bind(this));const c=()=>{this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o),null==l||l.closeConnection(),l=null};i.signal.addEventListener("abort",c);const d=Ee(t=>V(this,0,void 0,function*(){if(yield null==l?void 0:l.restoreConnection({openingDeadlineMS:null==e?void 0:e.openingDeadlineMS,signal:t.signal,traceId:o}),i.signal.removeEventListener("abort",c),this.connected){const e=this.getSessionInfo();this.tracker.trackConnectionRestoringCompleted(this.wallet,e,o)}else this.tracker.trackConnectionRestoringError("Connection restoring failed",o)}),{attempts:Number.MAX_SAFE_INTEGER,delayMs:2e3,signal:null==e?void 0:e.signal}),u=new Promise(e=>setTimeout(()=>e(),12e3));return Promise.race([d,u])})}sendTransaction(e,t){return V(this,0,void 0,function*(){var n,r,o,i;const a={};"function"==typeof t?a.onRequestSent=t:(a.onRequestSent=null==t?void 0:t.onRequestSent,a.signal=null==t?void 0:t.signal,a.traceId=null==t?void 0:t.traceId);const s=Gt(e);if(s){if(!nt())throw new z("SendTransactionRequest validation failed: "+s);console.error("SendTransactionRequest validation failed: "+s)}const l=_e(null==a?void 0:a.signal);if(l.signal.aborted)throw new z("Transaction sending was aborted");this.checkConnection();const c=e.messages.length,d=e.messages.some(e=>e.extraCurrency&&Object.keys(e.extraCurrency).length>0);at(this.wallet.device.features,{requiredMessagesNumber:c,requireExtraCurrencies:d});const u=this.getSessionInfo(),h=null!==(n=null==a?void 0:a.traceId)&&void 0!==n?n:Pe();this.tracker.trackTransactionSentForSignature(this.wallet,e,u,h);const{validUntil:p,messages:g}=e,f=H(e,["validUntil","messages"]),m=e.from||this.account.address,w=e.network||this.account.chain;if((null===(r=this.wallet)||void 0===r?void 0:r.account.chain)&&w!==this.wallet.account.chain){if(!nt())throw new ne("Wallet connected to a wrong network",{cause:{expectedChainId:null===(o=this.wallet)||void 0===o?void 0:o.account.chain,actualChainId:w}});console.error("Wallet connected to a wrong network",{expectedChainId:null===(i=this.wallet)||void 0===i?void 0:i.account.chain,actualChainId:w})}const v=yield this.provider.sendRequest(fe.convertToRpcRequest(Object.assign(Object.assign({},f),{from:m,network:w,valid_until:p,messages:g.map(e=>{var{extraCurrency:t,payload:n,stateInit:r}=e,o=H(e,["extraCurrency","payload","stateInit"]);return Object.assign(Object.assign({},o),{payload:Xt(n),stateInit:Xt(r),extra_currency:t})})})),{onRequestSent:a.onRequestSent,signal:l.signal,traceId:h});if(fe.isError(v))return this.tracker.trackTransactionSigningFailed(this.wallet,e,v.error.message,v.error.code,u,h),fe.parseAndThrowError(v);const y=fe.convertFromRpcResponse(v);return this.tracker.trackTransactionSigned(this.wallet,e,y,u,h),Object.assign(Object.assign({},y),{traceId:v.traceId})})}signData(e,t){return V(this,0,void 0,function*(){var n,r,o,i;const a=_e(null==t?void 0:t.signal);if(a.signal.aborted)throw new z("data sending was aborted");const s=Jt(e);if(s){if(!nt())throw new z("SignDataPayload validation failed: "+s);console.error("SignDataPayload validation failed: "+s)}this.checkConnection(),function(e,t){const n=e.find(e=>e&&"object"==typeof e&&"SignData"===e.name);if(!n)throw new ee("Wallet doesn't support SignData feature.",{cause:{requiredFeature:{featureName:"SignData",value:{types:t.requiredTypes}}}});const r=t.requiredTypes.filter(e=>!n.types.includes(e));if(r.length)throw new ee(`Wallet doesn't support required SignData types: ${r.join(", ")}.`,{cause:{requiredFeature:{featureName:"SignData",value:{types:r}}}})}(this.wallet.device.features,{requiredTypes:[e.type]});const l=this.getSessionInfo(),c=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe();this.tracker.trackDataSentForSignature(this.wallet,e,l,c);const d=e.from||this.account.address,u=e.network||this.account.chain;if((null===(r=this.wallet)||void 0===r?void 0:r.account.chain)&&u!==this.wallet.account.chain){if(!nt())throw new ne("Wallet connected to a wrong network",{cause:{expectedChainId:null===(o=this.wallet)||void 0===o?void 0:o.account.chain,actualChainId:u}});console.error("Wallet connected to a wrong network",{expectedChainId:null===(i=this.wallet)||void 0===i?void 0:i.account.chain,actualChainId:u})}const h=yield this.provider.sendRequest(we.convertToRpcRequest(Object.assign(Object.assign(Object.assign({},e),"cell"===e.type?{cell:Xt(e.cell)}:{}),{from:d,network:u})),{onRequestSent:null==t?void 0:t.onRequestSent,signal:a.signal,traceId:c});if(we.isError(h))return this.tracker.trackDataSigningFailed(this.wallet,e,h.error.message,h.error.code,l,c),we.parseAndThrowError(h);const p=we.convertFromRpcResponse(h);return this.tracker.trackDataSigned(this.wallet,e,p,l,c),Object.assign(Object.assign({},p),{traceId:c})})}setConnectionNetwork(e){if(this.connected)throw new z("Cannot change network while wallet is connected");this.desiredChainId=e}disconnect(e){return V(this,0,void 0,function*(){var t,n;if(!this.connected)throw new J;const r=_e(null==e?void 0:e.signal),o=this.abortController;if(this.abortController=r,r.signal.aborted)throw new z("Disconnect was aborted");const i=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();this.onWalletDisconnected("dapp",{traceId:i}),yield null===(n=this.provider)||void 0===n?void 0:n.disconnect({signal:r.signal,traceId:i}),null==o||o.abort()})}getSessionId(){return V(this,0,void 0,function*(){if(!this.provider)return null;try{const e=yield this.bridgeConnectionStorage.getConnection();return e&&"http"===e.type?"sessionCrypto"in e?e.sessionCrypto.sessionId:e.session.sessionCrypto.sessionId:null}catch(e){return null}})}getSessionInfo(){var e;if("http"!==(null===(e=this.provider)||void 0===e?void 0:e.type))return null;if(!("session"in this.provider))return null;try{const e=this.provider.session;if(!e)return null;const t=e.sessionCrypto.sessionId;let n=null;return"walletPublicKey"in e&&(n=e.walletPublicKey),{clientId:t,walletId:n}}catch(t){return null}}pauseConnection(){var e;"http"===(null===(e=this.provider)||void 0===e?void 0:e.type)&&this.provider.pause()}unPauseConnection(){var e;return"http"!==(null===(e=this.provider)||void 0===e?void 0:e.type)?Promise.resolve():this.provider.unPause()}addWindowFocusAndBlurSubscriptions(){const e=Ke();if(e)try{e.addEventListener("visibilitychange",()=>{e.hidden?this.pauseConnection():this.unPauseConnection().catch(()=>{})})}catch(t){Te("Cannot subscribe to the document.visibilitychange: ",t)}}initAnalytics(e,t,n){var r;const o=null==n?void 0:n.analytics,i=null!==(r=null==o?void 0:o.mode)&&void 0!==r?r:"telemetry";if("off"===i)return;const a=new en({environment:this.environment,mode:i});this.analytics=a;const s=this.environment.getTelegramUser(),l={browser:this.environment.getBrowser(),platform:this.environment.getPlatform(),manifest_json_url:e,origin_url:Fe,locale:this.environment.getLocale()};s&&(l.tg_id=s.id,l.tma_is_premium=s.isPremium),function(e,t){e.addEventListener("ton-connect-ui-wallet-modal-opened",e=>{var n;const{detail:r}=e;t.emitConnectionStarted({client_id:r.client_id||"",versions:nn(r.custom_data),main_screen:r.visible_wallets,trace_id:null!==(n=r.trace_id)&&void 0!==n?n:void 0})}),e.addEventListener("ton-connect-ui-selected-wallet",e=>{var n,r;const{detail:o}=e;t.emitConnectionSelectedWallet({client_id:o.client_id||"",versions:nn(o.custom_data),main_screen:o.visible_wallets,wallets_menu:o.wallets_menu,trace_id:null!==(n=o.trace_id)&&void 0!==n?n:void 0,wallet_app_name:null!==(r=o.wallet_type)&&void 0!==r?r:"",wallet_redirect_method:o.wallet_redirect_method,wallet_redirect_link:o.wallet_redirect_link})}),e.addEventListener("ton-connect-connection-completed",e=>{const{detail:n}=e;t.emitConnectionCompleted(rn(n))}),e.addEventListener("ton-connect-connection-error",e=>{var n,r;const{detail:o}=e;t.emitConnectionError({client_id:o.custom_data.client_id||"",wallet_id:o.custom_data.wallet_id||"",error_code:null!==(n=o.error_code)&&void 0!==n?n:0,error_message:o.error_message,trace_id:null!==(r=o.trace_id)&&void 0!==r?r:void 0})}),e.addEventListener("ton-connect-disconnection",e=>{const{detail:n}=e;t.emitDisconnection(rn(n))}),e.addEventListener("ton-connect-transaction-sent-for-signature",e=>{const{detail:n}=e;t.emitTransactionSent(rn(n))}),e.addEventListener("ton-connect-transaction-signed",e=>{const{detail:n}=e;t.emitTransactionSigned(Object.assign(Object.assign({},rn(n)),{signed_boc:e.detail.signed_transaction}))}),e.addEventListener("ton-connect-transaction-signing-failed",e=>{var n;const{detail:r}=e;t.emitTransactionSigningFailed(Object.assign(Object.assign({},rn(r)),{valid_until:Number(r.valid_until),messages:r.messages.map(e=>{var t,n,r,o;return{address:null!==(t=e.address)&&void 0!==t?t:"",amount:null!==(n=e.amount)&&void 0!==n?n:"",payload:null!==(r=e.payload)&&void 0!==r?r:"",state_init:null!==(o=e.state_init)&&void 0!==o?o:""}}),error_message:r.error_message,error_code:null!==(n=r.error_code)&&void 0!==n?n:0}))}),e.addEventListener("ton-connect-sign-data-request-initiated",e=>{const{detail:n}=e;null==t||t.emitSignDataRequestInitiated(rn(n))}),e.addEventListener("ton-connect-sign-data-request-completed",e=>{const{detail:n}=e;null==t||t.emitSignDataRequestCompleted(rn(n))}),e.addEventListener("ton-connect-sign-data-request-failed",e=>{var n;const{detail:r}=e;let o,i="";"text"===r.data.type&&(i=r.data.text),"cell"===r.data.type&&(i=r.data.cell,o=r.data.schema),"binary"===r.data.type&&(i=r.data.bytes),null==t||t.emitSignDataRequestFailed(Object.assign(Object.assign({},rn(r)),{sign_data_type:r.data.type,sign_data_value:i,sign_data_schema:o,error_code:null!==(n=r.error_code)&&void 0!==n?n:0,error_message:r.error_message}))})}(t,a.scoped(l))}createProvider(e){let t;return t=!Array.isArray(e)&&"jsBridgeKey"in e?new Ve(this.bridgeConnectionStorage,e.jsBridgeKey,this.analytics):!Array.isArray(e)&&function(e){return"type"in e&&"wallet-connect"===e.type}(e)?new cn(this.bridgeConnectionStorage):new De(this.bridgeConnectionStorage,e,this.analytics),t.listen(this.walletEventsListener.bind(this)),t}walletEventsListener(e){switch(e.event){case"connect":this.onWalletConnected(e.payload,{traceId:e.traceId});break;case"connect_error":this.tracker.trackConnectionError(e.payload.message,e.payload.code,this.getSessionInfo(),e.traceId);const t=he.parseError(e.payload);this.onWalletConnectError(t);break;case"disconnect":this.onWalletDisconnected("wallet",{traceId:e.traceId})}}onWalletConnected(t,n){var r,o;const i=t.items.find(e=>"ton_addr"===e.name),a=t.items.find(e=>"ton_proof"===e.name);if(!i)throw new z("ton_addr connection item was not found");if(!st(t.device.features,this.walletsRequiredFeatures))return null===(r=this.provider)||void 0===r||r.disconnect(),void this.onWalletConnectError(new te("Wallet does not support required features",{cause:{connectEvent:t}}));const s={device:t.device,provider:this.provider.type,account:{address:i.address,chain:i.network,walletStateInit:i.walletStateInit,publicKey:i.publicKey}};if(this.desiredChainId&&s.account.chain!==this.desiredChainId){const e=this.desiredChainId,t=s.account.chain;return null===(o=this.provider)||void 0===o||o.disconnect(),void this.onWalletConnectError(new ne("Wallet connected to a wrong network",{cause:{expectedChainId:e,actualChainId:t}}))}if(a){const t=function(e){if(!zt(e))return"ton_proof item must be an object";if(Zt(e,["error","proof","name"]))return"ton_proof item contains extra properties";const t=Object.prototype.hasOwnProperty.call(e,"proof"),n=Object.prototype.hasOwnProperty.call(e,"error");if(!t&&!n)return"'ton_proof' item must contain either 'proof' or 'error'";if(t&&n)return"'ton_proof' item must contain either 'proof' or 'error', not both";if(t){const t=e.proof;if(!zt(t))return"Invalid 'proof' object";if(!$t(t.timestamp))return"Invalid 'proof.timestamp'";const n=t.domain;if(!zt(n))return"Invalid 'proof.domain'";if(!$t(n.lengthBytes))return"Invalid 'proof.domain.lengthBytes'";if(!Kt(n.value))return"Invalid 'proof.domain.value'";try{if(("undefined"!=typeof TextEncoder?(new TextEncoder).encode(n.value).length:n.value.length)!==n.lengthBytes)return"'proof.domain.lengthBytes' does not match 'proof.domain.value'"}catch(r){}if(!Kt(t.payload))return"Invalid 'proof.payload'";if(!Kt(t.signature)||!Dt.test(t.signature))return"Invalid 'proof.signature' format"}if(n){const t=e.error;if(!zt(t))return"Invalid 'error' object";if(Zt(t,["code","message"]))return"ton_proof error contains extra properties";if(!$t(t.code))return"Invalid 'error.code'";if(!Kt(t.message))return"Invalid 'error.message'"}return null}(a);let n;if(t)nt()&&console.error("TonProofItem validation failed: "+t),n={name:"ton_proof",error:{code:e.CONNECT_ITEM_ERROR_CODES.UNKNOWN_ERROR,message:t}};else try{if("proof"in a)n={name:"ton_proof",proof:{timestamp:a.proof.timestamp,domain:{lengthBytes:a.proof.domain.lengthBytes,value:a.proof.domain.value},payload:a.proof.payload,signature:a.proof.signature}};else{if(!("error"in a))throw new z("Invalid data format");n={name:"ton_proof",error:{code:a.error.code,message:a.error.message}}}}catch(c){n={name:"ton_proof",error:{code:e.CONNECT_ITEM_ERROR_CODES.UNKNOWN_ERROR,message:"Invalid data format"}}}s.connectItems={tonProof:n}}this.wallet=s;const l=this.getSessionInfo();this.tracker.trackConnectionCompleted(s,l,null==n?void 0:n.traceId)}onWalletConnectError(e){if(this.statusChangeErrorSubscriptions.forEach(t=>t(e)),Re(e),e instanceof Y||e instanceof G)throw Te(e),e}onWalletDisconnected(e,t){const n=this.getSessionInfo();this.tracker.trackDisconnection(this.wallet,e,n,null==t?void 0:t.traceId),this.wallet=null}checkConnection(){if(!this.connected)throw new J}createConnectRequest(e){const t=[Object.assign({name:"ton_addr"},this.desiredChainId?{network:this.desiredChainId}:{})];return(null==e?void 0:e.tonProof)&&t.push({name:"ton_proof",payload:e.tonProof}),{manifestUrl:this.dappSettings.manifestUrl,items:t}}}dn.walletsList=new it,dn.isWalletInjected=e=>Ve.isWalletInjected(e),dn.isInsideWalletBrowser=e=>Ve.isInsideWalletBrowser(e);const un=Symbol("solid-proxy"),hn="function"==typeof Proxy,pn=Symbol("solid-track"),gn={equals:(e,t)=>e===t};let fn=er;const mn=1,wn=2,vn={owned:null,cleanups:null,context:null,owner:null},yn={};var bn=null;let Cn=null,xn=null,Sn=null,kn=null,_n=0;function En(e,t){const n=xn,r=bn,o=0===e.length,i=void 0===t?r:t,a=o?vn:{owned:null,cleanups:null,context:i?i.context:null,owner:i},s=o?e:()=>e(()=>Nn(()=>or(a)));bn=a,xn=null;try{return Xn(s,!0)}finally{xn=n,bn=r}}function Rn(e,t){const n={value:e,observers:null,observerSlots:null,comparator:(t=t?Object.assign({},gn,t):gn).equals||void 0};return[Zn.bind(n),e=>("function"==typeof e&&(e=e(n.value)),Gn(n,e))]}function Tn(e,t,n){Yn(Qn(e,t,!0,mn))}function In(e,t,n){Yn(Qn(e,t,!1,mn))}function On(e,t,n){fn=tr;const r=Qn(e,t,!1,mn);n&&n.render||(r.user=!0),kn?kn.push(r):Yn(r)}function Mn(e,t,n){n=n?Object.assign({},gn,n):gn;const r=Qn(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,Yn(r),Zn.bind(r)}function An(e,t,n){let r,o,i;r=!0,o=e,i={};let a=null,s=yn,l=!1,c="initialValue"in i,d=!1;const u=new Set,[h,p]=(i.storage||Rn)(i.initialValue),[g,f]=Rn(void 0),[m,w]=Rn(void 0,{equals:!1}),[v,y]=Rn(c?"ready":"unresolved");function b(e,t,n,r){return a===e&&(a=null,void 0!==r&&(c=!0),e!==s&&t!==s||!i.onHydrated||queueMicrotask(()=>i.onHydrated(r,{value:t})),s=yn,function(e,t){Xn(()=>{void 0===t&&p(()=>e),y(void 0!==t?"errored":c?"ready":"unresolved"),f(t);for(const e of u.keys())e.decrement();u.clear()},!1)}(t,n)),t}function C(){const e=h(),t=g();if(void 0!==t&&!a)throw t;return xn&&xn.user,e}function x(e=!0){if(!1!==e&&l)return;l=!1;const t=d?d():r;if(null==t||!1===t)return void b(a,Nn(h));let n;const i=s!==yn?s:Nn(()=>{try{return o(t,{value:h(),refetching:e})}catch(r){n=r}});var u;if(void 0===n)return(u=i)&&"object"==typeof u&&"then"in u?(a=i,"v"in i?(1===i.s?b(a,i.v,void 0,t):b(a,void 0,ir(i.v),t),i):(l=!0,queueMicrotask(()=>l=!1),Xn(()=>{y(c?"refreshing":"pending"),w()},!1),i.then(e=>b(i,e,void 0,t),e=>b(i,void 0,ir(e),t)))):(b(a,i,void 0,t),i);b(a,void 0,ir(n),t)}Object.defineProperties(C,{state:{get:()=>v()},error:{get:()=>g()},loading:{get(){const e=v();return"pending"===e||"refreshing"===e}},latest:{get(){if(!c)return C();const e=g();if(e&&!a)throw e;return h()}}});let S=bn;return d?Tn(()=>(S=bn,x(!1))):x(!1),[C,{refetch:e=>Bn(S,()=>x(e)),mutate:p}]}function Ln(e){return Xn(e,!1)}function Nn(e){if(null===xn)return e();const t=xn;xn=null;try{return e()}finally{xn=t}}function Wn(e,t,n){const r=Array.isArray(e);let o;return n=>{let i;if(r){i=Array(e.length);for(let t=0;t<e.length;t++)i[t]=e[t]()}else i=e();const a=Nn(()=>t(i,o,n));return o=i,a}}function Pn(e){On(()=>Nn(e))}function Un(e){return null===bn||(null===bn.cleanups?bn.cleanups=[e]:bn.cleanups.push(e)),e}function Dn(){return xn}function jn(){return bn}function Bn(e,t){const n=bn,r=xn;bn=e,xn=null;try{return Xn(t,!0)}catch(o){ar(o)}finally{bn=n,xn=r}}function qn(e){const t=xn,n=bn;return Promise.resolve().then(()=>{xn=t,bn=n,Xn(e,!1),xn=bn=null})}const[$n,Kn]=Rn(!1);function Fn(){return[$n,qn]}function Hn(e,t){const n=Symbol("context");return{id:n,Provider:lr(n),defaultValue:e}}function Vn(e){let t;return bn&&bn.context&&void 0!==(t=bn.context[e.id])?t:e.defaultValue}function zn(e){const t=Mn(e),n=Mn(()=>sr(t()));return n.toArray=()=>{const e=n();return Array.isArray(e)?e:null!=e?[e]:[]},n}function Zn(){if(this.sources&&this.state)if(this.state===mn)Yn(this);else{const e=Sn;Sn=null,Xn(()=>nr(this),!1),Sn=e}if(xn){const e=this.observers?this.observers.length:0;xn.sources?(xn.sources.push(this),xn.sourceSlots.push(e)):(xn.sources=[this],xn.sourceSlots=[e]),this.observers?(this.observers.push(xn),this.observerSlots.push(xn.sources.length-1)):(this.observers=[xn],this.observerSlots=[xn.sources.length-1])}return this.value}function Gn(e,t,n){let r=e.value;return e.comparator&&e.comparator(r,t)||(e.value=t,e.observers&&e.observers.length&&Xn(()=>{for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t],r=Cn&&Cn.running;r&&Cn.disposed.has(n),(r?n.tState:n.state)||(n.pure?Sn.push(n):kn.push(n),n.observers&&rr(n)),r||(n.state=mn)}if(Sn.length>1e6)throw Sn=[],new Error},!1)),t}function Yn(e){if(!e.fn)return;or(e);const t=_n;!function(e,t,n){let r;const o=bn,i=xn;xn=bn=e;try{r=e.fn(t)}catch(a){return e.pure&&(e.state=mn,e.owned&&e.owned.forEach(or),e.owned=null),e.updatedAt=n+1,ar(a)}finally{xn=i,bn=o}(!e.updatedAt||e.updatedAt<=n)&&(null!=e.updatedAt&&"observers"in e?Gn(e,r):e.value=r,e.updatedAt=n)}(e,e.value,t)}function Qn(e,t,n,r=mn,o){const i={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:bn,context:bn?bn.context:null,pure:n};return null===bn||bn!==vn&&(bn.owned?bn.owned.push(i):bn.owned=[i]),i}function Jn(e){if(0===e.state)return;if(e.state===wn)return nr(e);if(e.suspense&&Nn(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<_n);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if((e=t[n]).state===mn)Yn(e);else if(e.state===wn){const n=Sn;Sn=null,Xn(()=>nr(e,t[0]),!1),Sn=n}}function Xn(e,t){if(Sn)return e();let n=!1;t||(Sn=[]),kn?n=!0:kn=[],_n++;try{const t=e();return function(e){Sn&&(er(Sn),Sn=null);if(e)return;const t=kn;kn=null,t.length&&Xn(()=>fn(t),!1)}(n),t}catch(r){n||(kn=null),Sn=null,ar(r)}}function er(e){for(let t=0;t<e.length;t++)Jn(e[t])}function tr(e){let t,n=0;for(t=0;t<e.length;t++){const r=e[t];r.user?e[n++]=r:Jn(r)}for(t=0;t<n;t++)Jn(e[t])}function nr(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const r=e.sources[n];if(r.sources){const e=r.state;e===mn?r!==t&&(!r.updatedAt||r.updatedAt<_n)&&Jn(r):e===wn&&nr(r,t)}}}function rr(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=wn,n.pure?Sn.push(n):kn.push(n),n.observers&&rr(n))}}function or(e){let t;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){const e=r.pop(),o=t.observerSlots.pop();n<r.length&&(e.sourceSlots[o]=n,r[n]=e,t.observerSlots[n]=o)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)or(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)or(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function ir(e){return e instanceof Error?e:new Error("string"==typeof e?e:"Unknown error",{cause:e})}function ar(e,t=bn){throw ir(e)}function sr(e){if("function"==typeof e&&!e.length)return sr(e());if(Array.isArray(e)){const t=[];for(let n=0;n<e.length;n++){const r=sr(e[n]);Array.isArray(r)?t.push.apply(t,r):t.push(r)}return t}return e}function lr(e,t){return function(t){let n;return In(()=>n=Nn(()=>(bn.context=w(m({},bn.context),{[e]:t.value}),zn(()=>t.children))),void 0),n}}const cr=Symbol("fallback");function dr(e){for(let t=0;t<e.length;t++)e[t]()}function ur(e,t){return Nn(()=>e(t||{}))}function hr(){return!0}const pr={get:(e,t,n)=>t===un?n:e.get(t),has:(e,t)=>t===un||e.has(t),set:hr,deleteProperty:hr,getOwnPropertyDescriptor:(e,t)=>({configurable:!0,enumerable:!0,get:()=>e.get(t),set:hr,deleteProperty:hr}),ownKeys:e=>e.keys()};function gr(e){return(e="function"==typeof e?e():e)?e:{}}function fr(){for(let e=0,t=this.length;e<t;++e){const t=this[e]();if(void 0!==t)return t}}function mr(...e){let t=!1;for(let a=0;a<e.length;a++){const n=e[a];t=t||!!n&&un in n,e[a]="function"==typeof n?(t=!0,Mn(n)):n}if(hn&&t)return new Proxy({get(t){for(let n=e.length-1;n>=0;n--){const r=gr(e[n])[t];if(void 0!==r)return r}},has(t){for(let n=e.length-1;n>=0;n--)if(t in gr(e[n]))return!0;return!1},keys(){const t=[];for(let n=0;n<e.length;n++)t.push(...Object.keys(gr(e[n])));return[...new Set(t)]}},pr);const n={},r=Object.create(null);for(let a=e.length-1;a>=0;a--){const t=e[a];if(!t)continue;const o=Object.getOwnPropertyNames(t);for(let e=o.length-1;e>=0;e--){const i=o[e];if("__proto__"===i||"constructor"===i)continue;const a=Object.getOwnPropertyDescriptor(t,i);if(r[i]){const e=n[i];e&&(a.get?e.push(a.get.bind(t)):void 0!==a.value&&e.push(()=>a.value))}else r[i]=a.get?{enumerable:!0,configurable:!0,get:fr.bind(n[i]=[a.get.bind(t)])}:void 0!==a.value?a:void 0}}const o={},i=Object.keys(r);for(let a=i.length-1;a>=0;a--){const e=i[a],t=r[e];t&&t.get?Object.defineProperty(o,e,t):o[e]=t?t.value:void 0}return o}function wr(e,...t){if(hn&&un in e){const n=new Set(t.length>1?t.flat():t[0]),r=t.map(t=>new Proxy({get:n=>t.includes(n)?e[n]:void 0,has:n=>t.includes(n)&&n in e,keys:()=>t.filter(t=>t in e)},pr));return r.push(new Proxy({get:t=>n.has(t)?void 0:e[t],has:t=>!n.has(t)&&t in e,keys:()=>Object.keys(e).filter(e=>!n.has(e))},pr)),r}const n={},r=t.map(()=>({}));for(const o of Object.getOwnPropertyNames(e)){const i=Object.getOwnPropertyDescriptor(e,o),a=!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable;let s=!1,l=0;for(const e of t)e.includes(o)&&(s=!0,a?r[l][o]=i.value:Object.defineProperty(r[l],o,i)),++l;s||(a?n[o]=i.value:Object.defineProperty(n,o,i))}return[...r,n]}const vr=e=>`Stale read from <${e}>.`;function yr(e){const t="fallback"in e&&{fallback:()=>e.fallback};return Mn(function(e,t,n={}){let r=[],o=[],i=[],a=0,s=t.length>1?[]:null;return Un(()=>dr(i)),()=>{let l,c,d=e()||[],u=d.length;return d[pn],Nn(()=>{let e,t,p,g,f,m,w,v,y;if(0===u)0!==a&&(dr(i),i=[],r=[],o=[],a=0,s&&(s=[])),n.fallback&&(r=[cr],o[0]=En(e=>(i[0]=e,n.fallback())),a=1);else if(0===a){for(o=new Array(u),c=0;c<u;c++)r[c]=d[c],o[c]=En(h);a=u}else{for(p=new Array(u),g=new Array(u),s&&(f=new Array(u)),m=0,w=Math.min(a,u);m<w&&r[m]===d[m];m++);for(w=a-1,v=u-1;w>=m&&v>=m&&r[w]===d[v];w--,v--)p[v]=o[w],g[v]=i[w],s&&(f[v]=s[w]);for(e=new Map,t=new Array(v+1),c=v;c>=m;c--)y=d[c],l=e.get(y),t[c]=void 0===l?-1:l,e.set(y,c);for(l=m;l<=w;l++)y=r[l],c=e.get(y),void 0!==c&&-1!==c?(p[c]=o[l],g[c]=i[l],s&&(f[c]=s[l]),c=t[c],e.set(y,c)):i[l]();for(c=m;c<u;c++)c in p?(o[c]=p[c],i[c]=g[c],s&&(s[c]=f[c],s[c](c))):o[c]=En(h);o=o.slice(0,a=u),r=d.slice(0)}return o});function h(e){if(i[c]=e,s){const[e,n]=Rn(c);return s[c]=n,t(d[c],e)}return t(d[c])}}}(()=>e.each,e.children,t||void 0))}function br(e){const t=e.keyed,n=Mn(()=>e.when,void 0,void 0),r=t?n:Mn(n,void 0,{equals:(e,t)=>!e==!t});return Mn(()=>{const o=r();if(o){const i=e.children;return"function"==typeof i&&i.length>0?Nn(()=>i(t?o:()=>{if(!Nn(r))throw vr("Show");return n()})):i}return e.fallback},void 0,void 0)}function Cr(e){const t=zn(()=>e.children),n=Mn(()=>{const e=t(),n=Array.isArray(e)?e:[e];let r=()=>{};for(let t=0;t<n.length;t++){const e=t,o=n[t],i=r,a=Mn(()=>i()?void 0:o.when,void 0,void 0),s=o.keyed?a:Mn(a,void 0,{equals:(e,t)=>!e==!t});r=()=>i()||(s()?[e,a,o]:void 0)}return r});return Mn(()=>{const t=n()();if(!t)return e.fallback;const[r,o,i]=t,a=i.children;return"function"==typeof a&&a.length>0?Nn(()=>a(i.keyed?o():()=>{var e;if((null==(e=Nn(n)())?void 0:e[0])!==r)throw vr("Match");return o()})):a},void 0,void 0)}function xr(e){return e}const Sr=new Set(["className","value","readOnly","noValidate","formNoValidate","isMap","noModule","playsInline","allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"]),kr=new Set(["innerHTML","textContent","innerText","children"]),_r=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),Er=Object.assign(Object.create(null),{class:"className",novalidate:{$:"noValidate",FORM:1},formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});const Rr=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),Tr=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),Ir={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},Or=e=>Mn(()=>e());const Mr="_$DX_DELEGATE";function Ar(e,t,n,r){let o;const i=()=>{const t=r?document.createElementNS("http://www.w3.org/1998/Math/MathML","template"):document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},a=t?()=>Nn(()=>document.importNode(o||(o=i()),!0)):()=>(o||(o=i())).cloneNode(!0);return a.cloneNode=a,a}function Lr(e,t,n){null==n?e.removeAttribute(t):e.setAttribute(t,n)}function Nr(e,t){null==t?e.removeAttribute("class"):e.className=t}function Wr(e,t={},n,r){const o={};return In(()=>o.children=qr(e,t.children,o.children)),In(()=>"function"==typeof t.ref&&Pr(t.ref,e)),In(()=>function(e,t,n,r,o={},i=!1){t||(t={});for(const a in o)if(!(a in t)){if("children"===a)continue;o[a]=jr(e,a,null,o[a],n,i,t)}for(const a in t){if("children"===a)continue;const r=t[a];o[a]=jr(e,a,r,o[a],n,i,t)}}(e,t,n,0,o,!0)),o}function Pr(e,t,n){return Nn(()=>e(t,n))}function Ur(e,t,n,r){if(void 0===n||r||(r=[]),"function"!=typeof t)return qr(e,t,r,n);In(r=>qr(e,t(),r,n),r)}function Dr(e,t,n){const r=t.trim().split(/\s+/);for(let o=0,i=r.length;o<i;o++)e.classList.toggle(r[o],n)}function jr(e,t,n,r,o,i,a){let s,l,c,d,u;if("style"===t)return function(e,t,n){if(!t)return n?Lr(e,"style"):t;const r=e.style;if("string"==typeof t)return r.cssText=t;let o,i;for(i in"string"==typeof n&&(r.cssText=n=void 0),n||(n={}),t||(t={}),n)null==t[i]&&r.removeProperty(i),delete n[i];for(i in t)o=t[i],o!==n[i]&&(r.setProperty(i,o),n[i]=o);return n}(e,n,r);if("classList"===t)return function(e,t,n={}){const r=Object.keys(t||{}),o=Object.keys(n);let i,a;for(i=0,a=o.length;i<a;i++){const r=o[i];r&&"undefined"!==r&&!t[r]&&(Dr(e,r,!1),delete n[r])}for(i=0,a=r.length;i<a;i++){const o=r[i],a=!!t[o];o&&"undefined"!==o&&n[o]!==a&&a&&(Dr(e,o,!0),n[o]=a)}return n}(e,n,r);if(n===r)return r;if("ref"===t)i||n(e);else if("on:"===t.slice(0,3)){const o=t.slice(3);r&&e.removeEventListener(o,r,"function"!=typeof r&&r),n&&e.addEventListener(o,n,"function"!=typeof n&&n)}else if("oncapture:"===t.slice(0,10)){const o=t.slice(10);r&&e.removeEventListener(o,r,!0),n&&e.addEventListener(o,n,!0)}else if("on"===t.slice(0,2)){const o=t.slice(2).toLowerCase(),i=Rr.has(o);if(!i&&r){const t=Array.isArray(r)?r[0]:r;e.removeEventListener(o,t)}(i||n)&&(function(e,t,n,r){if(r)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){const r=n[0];e.addEventListener(t,n[0]=t=>r.call(e,n[1],t))}else e.addEventListener(t,n,"function"!=typeof n&&n)}(e,o,n,i),i&&function(e,t=window.document){const n=t[Mr]||(t[Mr]=new Set);for(let r=0,o=e.length;r<o;r++){const o=e[r];n.has(o)||(n.add(o),t.addEventListener(o,Br))}}([o]))}else if("attr:"===t.slice(0,5))Lr(e,t.slice(5),n);else if("bool:"===t.slice(0,5))!function(e,t,n){n?e.setAttribute(t,""):e.removeAttribute(t)}(e,t.slice(5),n);else if((u="prop:"===t.slice(0,5))||(c=kr.has(t))||!o&&((d=function(e,t){const n=Er[e];return"object"==typeof n?n[t]?n.$:void 0:n}(t,e.tagName))||(l=Sr.has(t)))||(s=e.nodeName.includes("-")||"is"in a))u&&(t=t.slice(5),l=!0),"class"===t||"className"===t?Nr(e,n):!s||l||c?e[d||t]=n:e[(h=t,h.toLowerCase().replace(/-([a-z])/g,(e,t)=>t.toUpperCase()))]=n;else{const r=o&&t.indexOf(":")>-1&&Ir[t.split(":")[0]];r?function(e,t,n,r){null==r?e.removeAttributeNS(t,n):e.setAttributeNS(t,n,r)}(e,r,t,n):Lr(e,_r[t]||t,n)}var h;return n}function Br(e){let t=e.target;const n=`$$${e.type}`,r=e.target,o=e.currentTarget,i=t=>Object.defineProperty(e,"target",{configurable:!0,value:t}),a=()=>{const r=t[n];if(r&&!t.disabled){const o=t[`${n}Data`];if(void 0!==o?r.call(t,o,e):r.call(t,e),e.cancelBubble)return}return t.host&&"string"!=typeof t.host&&!t.host._$host&&t.contains(e.target)&&i(t.host),!0},s=()=>{for(;a()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get:()=>t||document}),e.composedPath){const n=e.composedPath();i(n[0]);for(let e=0;e<n.length-2&&(t=n[e],a());e++){if(t._$host){t=t._$host,s();break}if(t.parentNode===o)break}}else s();i(r)}function qr(e,t,n,r,o){for(;"function"==typeof n;)n=n();if(t===n)return n;const i=typeof t,a=void 0!==r;if(e=a&&n[0]&&n[0].parentNode||e,"string"===i||"number"===i){if("number"===i&&(t=t.toString())===n)return n;if(a){let o=n[0];o&&3===o.nodeType?o.data!==t&&(o.data=t):o=document.createTextNode(t),n=Fr(e,n,r,o)}else n=""!==n&&"string"==typeof n?e.firstChild.data=t:e.textContent=t}else if(null==t||"boolean"===i)n=Fr(e,n,r);else{if("function"===i)return In(()=>{let o=t();for(;"function"==typeof o;)o=o();n=qr(e,o,n,r)}),()=>n;if(Array.isArray(t)){const i=[],s=n&&Array.isArray(n);if($r(i,t,n,o))return In(()=>n=qr(e,i,n,r,!0)),()=>n;if(0===i.length){if(n=Fr(e,n,r),a)return n}else s?0===n.length?Kr(e,i,r):function(e,t,n){let r=n.length,o=t.length,i=r,a=0,s=0,l=t[o-1].nextSibling,c=null;for(;a<o||s<i;)if(t[a]!==n[s]){for(;t[o-1]===n[i-1];)o--,i--;if(o===a){const t=i<r?s?n[s-1].nextSibling:n[i-s]:l;for(;s<i;)e.insertBefore(n[s++],t)}else if(i===s)for(;a<o;)c&&c.has(t[a])||t[a].remove(),a++;else if(t[a]===n[i-1]&&n[s]===t[o-1]){const r=t[--o].nextSibling;e.insertBefore(n[s++],t[a++].nextSibling),e.insertBefore(n[--i],r),t[o]=n[i]}else{if(!c){c=new Map;let e=s;for(;e<i;)c.set(n[e],e++)}const r=c.get(t[a]);if(null!=r)if(s<r&&r<i){let l,d=a,u=1;for(;++d<o&&d<i&&null!=(l=c.get(t[d]))&&l===r+u;)u++;if(u>r-s){const o=t[a];for(;s<r;)e.insertBefore(n[s++],o)}else e.replaceChild(n[s++],t[a++])}else a++;else t[a++].remove()}}else a++,s++}(e,n,i):(n&&Fr(e),Kr(e,i));n=i}else if(t.nodeType){if(Array.isArray(n)){if(a)return n=Fr(e,n,r,t);Fr(e,n,null,t)}else null!=n&&""!==n&&e.firstChild?e.replaceChild(t,e.firstChild):e.appendChild(t);n=t}}return n}function $r(e,t,n,r){let o=!1;for(let i=0,a=t.length;i<a;i++){let a,s=t[i],l=n&&n[e.length];if(null==s||!0===s||!1===s);else if("object"==(a=typeof s)&&s.nodeType)e.push(s);else if(Array.isArray(s))o=$r(e,s,l)||o;else if("function"===a)if(r){for(;"function"==typeof s;)s=s();o=$r(e,Array.isArray(s)?s:[s],Array.isArray(l)?l:[l])||o}else e.push(s),o=!0;else{const t=String(s);l&&3===l.nodeType&&l.data===t?e.push(l):e.push(document.createTextNode(t))}}return o}function Kr(e,t,n=null){for(let r=0,o=t.length;r<o;r++)e.insertBefore(t[r],n)}function Fr(e,t,n,r){if(void 0===n)return e.textContent="";const o=r||document.createTextNode("");if(t.length){let r=!1;for(let i=t.length-1;i>=0;i--){const a=t[i];if(o!==a){const t=a.parentNode===e;r||i?t&&a.remove():t?e.replaceChild(o,a):e.insertBefore(o,n)}else r=!0}}else e.insertBefore(o,n);return[o]}function Hr(e,t=!1){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}function Vr(e){const{useShadow:t}=e,n=document.createTextNode(""),r=jn();let o;return On(()=>{o||(o=Bn(r,()=>Mn(()=>e.children)));const i=e.mount||document.body;if(i instanceof HTMLHeadElement){const[e,t]=Rn(!1),n=()=>t(!0);En(t=>Ur(i,()=>e()?t():o(),null)),Un(n)}else{const r=Hr(e.isSVG?"g":"div",e.isSVG),a=t&&r.attachShadow?r.attachShadow({mode:"open"}):r;Object.defineProperty(r,"_$host",{get:()=>n.parentNode,configurable:!0}),Ur(a,o),i.appendChild(r),e.ref&&e.ref(r),Un(()=>i.removeChild(r))}},void 0,{render:!0}),n}function zr(e){const[,t]=wr(e,["component"]);return function(e,t){const n=Mn(e);return Mn(()=>{const e=n();switch(typeof e){case"function":return Nn(()=>e(t));case"string":const n=Tr.has(e),r=Hr(e,n);return Wr(r,t,n),r}})}(()=>e.component,t)}var Zr=(e=>(e.DARK="DARK",e.LIGHT="LIGHT",e))(Zr||{});let Gr={data:""},Yr=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Qr=/\/\*[^]*?\*\/| +/g,Jr=/\n+/g,Xr=(e,t)=>{let n="",r="",o="";for(let i in e){let a=e[i];"@"==i[0]?"i"==i[1]?n=i+" "+a+";":r+="f"==i[1]?Xr(a,i):i+"{"+Xr(a,"k"==i[1]?"":t)+"}":"object"==typeof a?r+=Xr(a,t?t.replace(/([^,])+/g,e=>i.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):i):null!=a&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),o+=Xr.p?Xr.p(i,a):i+":"+a+";")}return n+(t&&o?t+"{"+o+"}":o)+r},eo={},to=e=>{if("object"==typeof e){let t="";for(let n in e)t+=n+to(e[n]);return t}return e};function no(e){let t=this||{},n=e.call?e(t.p):e;return((e,t,n,r,o)=>{let i=to(e),a=eo[i]||(eo[i]=(e=>{let t=0,n=11;for(;t<e.length;)n=101*n+e.charCodeAt(t++)>>>0;return"go"+n})(i));if(!eo[a]){let t=i!==e?e:(e=>{let t,n,r=[{}];for(;t=Yr.exec(e.replace(Qr,""));)t[4]?r.shift():t[3]?(n=t[3].replace(Jr," ").trim(),r.unshift(r[0][n]=r[0][n]||{})):r[0][t[1]]=t[2].replace(Jr," ").trim();return r[0]})(e);eo[a]=Xr(o?{["@keyframes "+a]:t}:t,n?"":"."+a)}let s=n&&eo.g?eo.g:null;return n&&(eo.g=eo[a]),l=eo[a],c=t,d=r,(u=s)?c.data=c.data.replace(u,l):-1===c.data.indexOf(l)&&(c.data=d?l+c.data:c.data+l),a;var l,c,d,u})(n.unshift?n.raw?((e,t,n)=>e.reduce((e,r,o)=>{let i=t[o];if(i&&i.call){let e=i(n),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;i=t?"."+t:e&&"object"==typeof e?e.props?"":Xr(e,""):!1===e?"":e}return e+r+(null==i?"":i)},""))(n,[].slice.call(arguments,1),t.p):n.reduce((e,n)=>Object.assign(e,n&&n.call?n(t.p):n),{}):n,(r=t.target,"object"==typeof window?((r?r.querySelector("#_goober"):window._goober)||Object.assign((r||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:r||Gr),t.g,t.o,t.k);var r}no.bind({g:1});let ro=no.bind({k:1});const oo=Hn();function io(e){return ur(oo.Provider,{value:e.theme,get children(){return e.children}})}function ao(){return Vn(oo)}function so(e){let t=this||{};return(...n)=>{const r=r=>{const o=mr(r,{theme:Vn(oo)}),i=mr(o,{get class(){const e=o.class,r="class"in o&&/^go[0-9]+/.test(e);return[e,no.apply({target:t.target,o:r,p:o,g:t.g},n)].filter(Boolean).join(" ")}}),[a,s]=wr(i,["as","theme"]),l=s,c=a.as||e;let d;return"function"==typeof c?d=c(l):1==t.g?(d=document.createElement(c),Wr(d,l)):d=zr(mr({component:c},l)),d};return r.class=e=>Nn(()=>no.apply({target:t.target,p:e,g:t.g},n)),r}}const lo=new Proxy(so,{get:(e,t)=>e(t)});function co(){const e=so.call({g:1},"div").apply(null,arguments);return function(t){return e(t),null}}const uo="tc-root",ho="tc-disable-scroll",po="tc-using-mouse",go=()=>{document.body.addEventListener("mousedown",()=>document.body.classList.add(po)),document.body.addEventListener("keydown",e=>{"Tab"===e.key&&document.body.classList.remove(po)});return ur(co`
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TON_CONNECT_UI={})}(this,function(e){"use strict";var t,n,r,o,i,a,s,l,c=Object.defineProperty,d=Object.defineProperties,u=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable,f=(e,t,n)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))p.call(t,n)&&f(e,n,t[n]);if(h)for(var n of h(t))g.call(t,n)&&f(e,n,t[n]);return e},w=(e,t)=>d(e,u(t)),v=(e,t)=>{var n={};for(var r in e)p.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&h)for(var r of h(e))t.indexOf(r)<0&&g.call(e,r)&&(n[r]=e[r]);return n},y=(e,t,n)=>new Promise((r,o)=>{var i=e=>{try{s(n.next(e))}catch(Gr){o(Gr)}},a=e=>{try{s(n.throw(e))}catch(Gr){o(Gr)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(i,a);s((n=n.apply(e,t)).next())});function b(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function C(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if("function"==typeof t){var n=function e(){var n=!1;try{n=this instanceof e}catch(r){}return n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}),n}var x,S,k,_,E={exports:{}};const R=b((x||(x=1,k=E.exports,_=function(){var e={};function t(e){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e))throw new TypeError("invalid encoding")}return e.decodeUTF8=function(e){if("string"!=typeof e)throw new TypeError("expected string");var t,n=unescape(encodeURIComponent(e)),r=new Uint8Array(n.length);for(t=0;t<n.length;t++)r[t]=n.charCodeAt(t);return r},e.encodeUTF8=function(e){var t,n=[];for(t=0;t<e.length;t++)n.push(String.fromCharCode(e[t]));return decodeURIComponent(escape(n.join("")))},"undefined"==typeof atob?void 0!==Buffer.from?(e.encodeBase64=function(e){return Buffer.from(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(Buffer.from(e,"base64"),0))}):(e.encodeBase64=function(e){return new Buffer(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(new Buffer(e,"base64"),0))}):(e.encodeBase64=function(e){var t,n=[],r=e.length;for(t=0;t<r;t++)n.push(String.fromCharCode(e[t]));return btoa(n.join(""))},e.decodeBase64=function(e){t(e);var n,r=atob(e),o=new Uint8Array(r.length);for(n=0;n<r.length;n++)o[n]=r.charCodeAt(n);return o}),e},(S=E).exports?S.exports=_():(k.nacl||(k.nacl={}),k.nacl.util=_())),E.exports));function T(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var I={exports:{}};const O=C(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var M;var A=(M||(M=1,function(e){!function(e){var t=function(e){var t,n=new Float64Array(16);if(e)for(t=0;t<e.length;t++)n[t]=e[t];return n},n=function(){throw new Error("no PRNG")},r=new Uint8Array(16),o=new Uint8Array(32);o[0]=9;var i=t(),a=t([1]),s=t([56129,1]),l=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),c=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),d=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),u=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),h=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function p(e,t,n,r){e[t]=n>>24&255,e[t+1]=n>>16&255,e[t+2]=n>>8&255,e[t+3]=255&n,e[t+4]=r>>24&255,e[t+5]=r>>16&255,e[t+6]=r>>8&255,e[t+7]=255&r}function g(e,t,n,r,o){var i,a=0;for(i=0;i<o;i++)a|=e[t+i]^n[r+i];return(1&a-1>>>8)-1}function f(e,t,n,r){return g(e,t,n,r,16)}function m(e,t,n,r){return g(e,t,n,r,32)}function w(e,t,n,r){!function(e,t,n,r){for(var o,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,c=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,d=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,p=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,g=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,w=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,v=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,y=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,C=i,x=a,S=s,k=l,_=c,E=d,R=u,T=h,I=p,O=g,M=f,A=m,L=w,N=v,W=y,P=b,U=0;U<20;U+=2)C^=(o=(L^=(o=(I^=(o=(_^=(o=C+L|0)<<7|o>>>25)+C|0)<<9|o>>>23)+_|0)<<13|o>>>19)+I|0)<<18|o>>>14,E^=(o=(x^=(o=(N^=(o=(O^=(o=E+x|0)<<7|o>>>25)+E|0)<<9|o>>>23)+O|0)<<13|o>>>19)+N|0)<<18|o>>>14,M^=(o=(R^=(o=(S^=(o=(W^=(o=M+R|0)<<7|o>>>25)+M|0)<<9|o>>>23)+W|0)<<13|o>>>19)+S|0)<<18|o>>>14,P^=(o=(A^=(o=(T^=(o=(k^=(o=P+A|0)<<7|o>>>25)+P|0)<<9|o>>>23)+k|0)<<13|o>>>19)+T|0)<<18|o>>>14,C^=(o=(k^=(o=(S^=(o=(x^=(o=C+k|0)<<7|o>>>25)+C|0)<<9|o>>>23)+x|0)<<13|o>>>19)+S|0)<<18|o>>>14,E^=(o=(_^=(o=(T^=(o=(R^=(o=E+_|0)<<7|o>>>25)+E|0)<<9|o>>>23)+R|0)<<13|o>>>19)+T|0)<<18|o>>>14,M^=(o=(O^=(o=(I^=(o=(A^=(o=M+O|0)<<7|o>>>25)+M|0)<<9|o>>>23)+A|0)<<13|o>>>19)+I|0)<<18|o>>>14,P^=(o=(W^=(o=(N^=(o=(L^=(o=P+W|0)<<7|o>>>25)+P|0)<<9|o>>>23)+L|0)<<13|o>>>19)+N|0)<<18|o>>>14;C=C+i|0,x=x+a|0,S=S+s|0,k=k+l|0,_=_+c|0,E=E+d|0,R=R+u|0,T=T+h|0,I=I+p|0,O=O+g|0,M=M+f|0,A=A+m|0,L=L+w|0,N=N+v|0,W=W+y|0,P=P+b|0,e[0]=C>>>0&255,e[1]=C>>>8&255,e[2]=C>>>16&255,e[3]=C>>>24&255,e[4]=x>>>0&255,e[5]=x>>>8&255,e[6]=x>>>16&255,e[7]=x>>>24&255,e[8]=S>>>0&255,e[9]=S>>>8&255,e[10]=S>>>16&255,e[11]=S>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=_>>>0&255,e[17]=_>>>8&255,e[18]=_>>>16&255,e[19]=_>>>24&255,e[20]=E>>>0&255,e[21]=E>>>8&255,e[22]=E>>>16&255,e[23]=E>>>24&255,e[24]=R>>>0&255,e[25]=R>>>8&255,e[26]=R>>>16&255,e[27]=R>>>24&255,e[28]=T>>>0&255,e[29]=T>>>8&255,e[30]=T>>>16&255,e[31]=T>>>24&255,e[32]=I>>>0&255,e[33]=I>>>8&255,e[34]=I>>>16&255,e[35]=I>>>24&255,e[36]=O>>>0&255,e[37]=O>>>8&255,e[38]=O>>>16&255,e[39]=O>>>24&255,e[40]=M>>>0&255,e[41]=M>>>8&255,e[42]=M>>>16&255,e[43]=M>>>24&255,e[44]=A>>>0&255,e[45]=A>>>8&255,e[46]=A>>>16&255,e[47]=A>>>24&255,e[48]=L>>>0&255,e[49]=L>>>8&255,e[50]=L>>>16&255,e[51]=L>>>24&255,e[52]=N>>>0&255,e[53]=N>>>8&255,e[54]=N>>>16&255,e[55]=N>>>24&255,e[56]=W>>>0&255,e[57]=W>>>8&255,e[58]=W>>>16&255,e[59]=W>>>24&255,e[60]=P>>>0&255,e[61]=P>>>8&255,e[62]=P>>>16&255,e[63]=P>>>24&255}(e,t,n,r)}function v(e,t,n,r){!function(e,t,n,r){for(var o,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,c=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,d=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,p=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,g=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,f=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,m=255&n[16]|(255&n[17])<<8|(255&n[18])<<16|(255&n[19])<<24,w=255&n[20]|(255&n[21])<<8|(255&n[22])<<16|(255&n[23])<<24,v=255&n[24]|(255&n[25])<<8|(255&n[26])<<16|(255&n[27])<<24,y=255&n[28]|(255&n[29])<<8|(255&n[30])<<16|(255&n[31])<<24,b=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,C=0;C<20;C+=2)i^=(o=(w^=(o=(p^=(o=(c^=(o=i+w|0)<<7|o>>>25)+i|0)<<9|o>>>23)+c|0)<<13|o>>>19)+p|0)<<18|o>>>14,d^=(o=(a^=(o=(v^=(o=(g^=(o=d+a|0)<<7|o>>>25)+d|0)<<9|o>>>23)+g|0)<<13|o>>>19)+v|0)<<18|o>>>14,f^=(o=(u^=(o=(s^=(o=(y^=(o=f+u|0)<<7|o>>>25)+f|0)<<9|o>>>23)+y|0)<<13|o>>>19)+s|0)<<18|o>>>14,b^=(o=(m^=(o=(h^=(o=(l^=(o=b+m|0)<<7|o>>>25)+b|0)<<9|o>>>23)+l|0)<<13|o>>>19)+h|0)<<18|o>>>14,i^=(o=(l^=(o=(s^=(o=(a^=(o=i+l|0)<<7|o>>>25)+i|0)<<9|o>>>23)+a|0)<<13|o>>>19)+s|0)<<18|o>>>14,d^=(o=(c^=(o=(h^=(o=(u^=(o=d+c|0)<<7|o>>>25)+d|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,f^=(o=(g^=(o=(p^=(o=(m^=(o=f+g|0)<<7|o>>>25)+f|0)<<9|o>>>23)+m|0)<<13|o>>>19)+p|0)<<18|o>>>14,b^=(o=(y^=(o=(v^=(o=(w^=(o=b+y|0)<<7|o>>>25)+b|0)<<9|o>>>23)+w|0)<<13|o>>>19)+v|0)<<18|o>>>14;e[0]=i>>>0&255,e[1]=i>>>8&255,e[2]=i>>>16&255,e[3]=i>>>24&255,e[4]=d>>>0&255,e[5]=d>>>8&255,e[6]=d>>>16&255,e[7]=d>>>24&255,e[8]=f>>>0&255,e[9]=f>>>8&255,e[10]=f>>>16&255,e[11]=f>>>24&255,e[12]=b>>>0&255,e[13]=b>>>8&255,e[14]=b>>>16&255,e[15]=b>>>24&255,e[16]=u>>>0&255,e[17]=u>>>8&255,e[18]=u>>>16&255,e[19]=u>>>24&255,e[20]=h>>>0&255,e[21]=h>>>8&255,e[22]=h>>>16&255,e[23]=h>>>24&255,e[24]=p>>>0&255,e[25]=p>>>8&255,e[26]=p>>>16&255,e[27]=p>>>24&255,e[28]=g>>>0&255,e[29]=g>>>8&255,e[30]=g>>>16&255,e[31]=g>>>24&255}(e,t,n,r)}var y=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function b(e,t,n,r,o,i,a){var s,l,c=new Uint8Array(16),d=new Uint8Array(64);for(l=0;l<16;l++)c[l]=0;for(l=0;l<8;l++)c[l]=i[l];for(;o>=64;){for(w(d,c,a,y),l=0;l<64;l++)e[t+l]=n[r+l]^d[l];for(s=1,l=8;l<16;l++)s=s+(255&c[l])|0,c[l]=255&s,s>>>=8;o-=64,t+=64,r+=64}if(o>0)for(w(d,c,a,y),l=0;l<o;l++)e[t+l]=n[r+l]^d[l];return 0}function C(e,t,n,r,o){var i,a,s=new Uint8Array(16),l=new Uint8Array(64);for(a=0;a<16;a++)s[a]=0;for(a=0;a<8;a++)s[a]=r[a];for(;n>=64;){for(w(l,s,o,y),a=0;a<64;a++)e[t+a]=l[a];for(i=1,a=8;a<16;a++)i=i+(255&s[a])|0,s[a]=255&i,i>>>=8;n-=64,t+=64}if(n>0)for(w(l,s,o,y),a=0;a<n;a++)e[t+a]=l[a];return 0}function x(e,t,n,r,o){var i=new Uint8Array(32);v(i,r,o,y);for(var a=new Uint8Array(8),s=0;s<8;s++)a[s]=r[s+16];return C(e,t,n,a,i)}function S(e,t,n,r,o,i,a){var s=new Uint8Array(32);v(s,i,a,y);for(var l=new Uint8Array(8),c=0;c<8;c++)l[c]=i[c+16];return b(e,t,n,r,o,l,s)}var k=function(e){var t,n,r,o,i,a,s,l;this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0,t=255&e[0]|(255&e[1])<<8,this.r[0]=8191&t,n=255&e[2]|(255&e[3])<<8,this.r[1]=8191&(t>>>13|n<<3),r=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(n>>>10|r<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(r>>>7|o<<9),i=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,a=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(i>>>14|a<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(a>>>11|s<<5),l=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|l<<8),this.r[9]=l>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function _(e,t,n,r,o,i){var a=new k(i);return a.update(n,r,o),a.finish(e,t),0}function E(e,t,n,r,o,i){var a=new Uint8Array(16);return _(a,0,n,r,o,i),f(e,t,a,0)}function R(e,t,n,r,o){var i;if(n<32)return-1;for(S(e,0,t,0,n,r,o),_(e,16,e,32,n-32,e),i=0;i<16;i++)e[i]=0;return 0}function I(e,t,n,r,o){var i,a=new Uint8Array(32);if(n<32)return-1;if(x(a,0,32,r,o),0!==E(t,16,t,32,n-32,a))return-1;for(S(e,0,t,0,n,r,o),i=0;i<32;i++)e[i]=0;return 0}function M(e,t){var n;for(n=0;n<16;n++)e[n]=0|t[n]}function A(e){var t,n,r=1;for(t=0;t<16;t++)n=e[t]+r+65535,r=Math.floor(n/65536),e[t]=n-65536*r;e[0]+=r-1+37*(r-1)}function L(e,t,n){for(var r,o=~(n-1),i=0;i<16;i++)r=o&(e[i]^t[i]),e[i]^=r,t[i]^=r}function N(e,n){var r,o,i,a=t(),s=t();for(r=0;r<16;r++)s[r]=n[r];for(A(s),A(s),A(s),o=0;o<2;o++){for(a[0]=s[0]-65517,r=1;r<15;r++)a[r]=s[r]-65535-(a[r-1]>>16&1),a[r-1]&=65535;a[15]=s[15]-32767-(a[14]>>16&1),i=a[15]>>16&1,a[14]&=65535,L(s,a,1-i)}for(r=0;r<16;r++)e[2*r]=255&s[r],e[2*r+1]=s[r]>>8}function W(e,t){var n=new Uint8Array(32),r=new Uint8Array(32);return N(n,e),N(r,t),m(n,0,r,0)}function P(e){var t=new Uint8Array(32);return N(t,e),1&t[0]}function U(e,t){var n;for(n=0;n<16;n++)e[n]=t[2*n]+(t[2*n+1]<<8);e[15]&=32767}function D(e,t,n){for(var r=0;r<16;r++)e[r]=t[r]+n[r]}function j(e,t,n){for(var r=0;r<16;r++)e[r]=t[r]-n[r]}function B(e,t,n){var r,o,i=0,a=0,s=0,l=0,c=0,d=0,u=0,h=0,p=0,g=0,f=0,m=0,w=0,v=0,y=0,b=0,C=0,x=0,S=0,k=0,_=0,E=0,R=0,T=0,I=0,O=0,M=0,A=0,L=0,N=0,W=0,P=n[0],U=n[1],D=n[2],j=n[3],B=n[4],q=n[5],$=n[6],K=n[7],F=n[8],H=n[9],V=n[10],z=n[11],Z=n[12],G=n[13],Y=n[14],Q=n[15];i+=(r=t[0])*P,a+=r*U,s+=r*D,l+=r*j,c+=r*B,d+=r*q,u+=r*$,h+=r*K,p+=r*F,g+=r*H,f+=r*V,m+=r*z,w+=r*Z,v+=r*G,y+=r*Y,b+=r*Q,a+=(r=t[1])*P,s+=r*U,l+=r*D,c+=r*j,d+=r*B,u+=r*q,h+=r*$,p+=r*K,g+=r*F,f+=r*H,m+=r*V,w+=r*z,v+=r*Z,y+=r*G,b+=r*Y,C+=r*Q,s+=(r=t[2])*P,l+=r*U,c+=r*D,d+=r*j,u+=r*B,h+=r*q,p+=r*$,g+=r*K,f+=r*F,m+=r*H,w+=r*V,v+=r*z,y+=r*Z,b+=r*G,C+=r*Y,x+=r*Q,l+=(r=t[3])*P,c+=r*U,d+=r*D,u+=r*j,h+=r*B,p+=r*q,g+=r*$,f+=r*K,m+=r*F,w+=r*H,v+=r*V,y+=r*z,b+=r*Z,C+=r*G,x+=r*Y,S+=r*Q,c+=(r=t[4])*P,d+=r*U,u+=r*D,h+=r*j,p+=r*B,g+=r*q,f+=r*$,m+=r*K,w+=r*F,v+=r*H,y+=r*V,b+=r*z,C+=r*Z,x+=r*G,S+=r*Y,k+=r*Q,d+=(r=t[5])*P,u+=r*U,h+=r*D,p+=r*j,g+=r*B,f+=r*q,m+=r*$,w+=r*K,v+=r*F,y+=r*H,b+=r*V,C+=r*z,x+=r*Z,S+=r*G,k+=r*Y,_+=r*Q,u+=(r=t[6])*P,h+=r*U,p+=r*D,g+=r*j,f+=r*B,m+=r*q,w+=r*$,v+=r*K,y+=r*F,b+=r*H,C+=r*V,x+=r*z,S+=r*Z,k+=r*G,_+=r*Y,E+=r*Q,h+=(r=t[7])*P,p+=r*U,g+=r*D,f+=r*j,m+=r*B,w+=r*q,v+=r*$,y+=r*K,b+=r*F,C+=r*H,x+=r*V,S+=r*z,k+=r*Z,_+=r*G,E+=r*Y,R+=r*Q,p+=(r=t[8])*P,g+=r*U,f+=r*D,m+=r*j,w+=r*B,v+=r*q,y+=r*$,b+=r*K,C+=r*F,x+=r*H,S+=r*V,k+=r*z,_+=r*Z,E+=r*G,R+=r*Y,T+=r*Q,g+=(r=t[9])*P,f+=r*U,m+=r*D,w+=r*j,v+=r*B,y+=r*q,b+=r*$,C+=r*K,x+=r*F,S+=r*H,k+=r*V,_+=r*z,E+=r*Z,R+=r*G,T+=r*Y,I+=r*Q,f+=(r=t[10])*P,m+=r*U,w+=r*D,v+=r*j,y+=r*B,b+=r*q,C+=r*$,x+=r*K,S+=r*F,k+=r*H,_+=r*V,E+=r*z,R+=r*Z,T+=r*G,I+=r*Y,O+=r*Q,m+=(r=t[11])*P,w+=r*U,v+=r*D,y+=r*j,b+=r*B,C+=r*q,x+=r*$,S+=r*K,k+=r*F,_+=r*H,E+=r*V,R+=r*z,T+=r*Z,I+=r*G,O+=r*Y,M+=r*Q,w+=(r=t[12])*P,v+=r*U,y+=r*D,b+=r*j,C+=r*B,x+=r*q,S+=r*$,k+=r*K,_+=r*F,E+=r*H,R+=r*V,T+=r*z,I+=r*Z,O+=r*G,M+=r*Y,A+=r*Q,v+=(r=t[13])*P,y+=r*U,b+=r*D,C+=r*j,x+=r*B,S+=r*q,k+=r*$,_+=r*K,E+=r*F,R+=r*H,T+=r*V,I+=r*z,O+=r*Z,M+=r*G,A+=r*Y,L+=r*Q,y+=(r=t[14])*P,b+=r*U,C+=r*D,x+=r*j,S+=r*B,k+=r*q,_+=r*$,E+=r*K,R+=r*F,T+=r*H,I+=r*V,O+=r*z,M+=r*Z,A+=r*G,L+=r*Y,N+=r*Q,b+=(r=t[15])*P,a+=38*(x+=r*D),s+=38*(S+=r*j),l+=38*(k+=r*B),c+=38*(_+=r*q),d+=38*(E+=r*$),u+=38*(R+=r*K),h+=38*(T+=r*F),p+=38*(I+=r*H),g+=38*(O+=r*V),f+=38*(M+=r*z),m+=38*(A+=r*Z),w+=38*(L+=r*G),v+=38*(N+=r*Y),y+=38*(W+=r*Q),i=(r=(i+=38*(C+=r*U))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),a=(r=a+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),w=(r=w+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),i=(r=(i+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(r/65536)),a=(r=a+o+65535)-65536*(o=Math.floor(r/65536)),s=(r=s+o+65535)-65536*(o=Math.floor(r/65536)),l=(r=l+o+65535)-65536*(o=Math.floor(r/65536)),c=(r=c+o+65535)-65536*(o=Math.floor(r/65536)),d=(r=d+o+65535)-65536*(o=Math.floor(r/65536)),u=(r=u+o+65535)-65536*(o=Math.floor(r/65536)),h=(r=h+o+65535)-65536*(o=Math.floor(r/65536)),p=(r=p+o+65535)-65536*(o=Math.floor(r/65536)),g=(r=g+o+65535)-65536*(o=Math.floor(r/65536)),f=(r=f+o+65535)-65536*(o=Math.floor(r/65536)),m=(r=m+o+65535)-65536*(o=Math.floor(r/65536)),w=(r=w+o+65535)-65536*(o=Math.floor(r/65536)),v=(r=v+o+65535)-65536*(o=Math.floor(r/65536)),y=(r=y+o+65535)-65536*(o=Math.floor(r/65536)),b=(r=b+o+65535)-65536*(o=Math.floor(r/65536)),i+=o-1+37*(o-1),e[0]=i,e[1]=a,e[2]=s,e[3]=l,e[4]=c,e[5]=d,e[6]=u,e[7]=h,e[8]=p,e[9]=g,e[10]=f,e[11]=m,e[12]=w,e[13]=v,e[14]=y,e[15]=b}function q(e,t){B(e,t,t)}function $(e,n){var r,o=t();for(r=0;r<16;r++)o[r]=n[r];for(r=253;r>=0;r--)q(o,o),2!==r&&4!==r&&B(o,o,n);for(r=0;r<16;r++)e[r]=o[r]}function K(e,n){var r,o=t();for(r=0;r<16;r++)o[r]=n[r];for(r=250;r>=0;r--)q(o,o),1!==r&&B(o,o,n);for(r=0;r<16;r++)e[r]=o[r]}function F(e,n,r){var o,i,a=new Uint8Array(32),l=new Float64Array(80),c=t(),d=t(),u=t(),h=t(),p=t(),g=t();for(i=0;i<31;i++)a[i]=n[i];for(a[31]=127&n[31]|64,a[0]&=248,U(l,r),i=0;i<16;i++)d[i]=l[i],h[i]=c[i]=u[i]=0;for(c[0]=h[0]=1,i=254;i>=0;--i)L(c,d,o=a[i>>>3]>>>(7&i)&1),L(u,h,o),D(p,c,u),j(c,c,u),D(u,d,h),j(d,d,h),q(h,p),q(g,c),B(c,u,c),B(u,d,p),D(p,c,u),j(c,c,u),q(d,c),j(u,h,g),B(c,u,s),D(c,c,h),B(u,u,c),B(c,h,g),B(h,d,l),q(d,p),L(c,d,o),L(u,h,o);for(i=0;i<16;i++)l[i+16]=c[i],l[i+32]=u[i],l[i+48]=d[i],l[i+64]=h[i];var f=l.subarray(32),m=l.subarray(16);return $(f,f),B(m,m,f),N(e,m),0}function H(e,t){return F(e,t,o)}function V(e,t){return n(t,32),H(e,t)}function z(e,t,n){var o=new Uint8Array(32);return F(o,n,t),v(e,r,o,y)}k.prototype.blocks=function(e,t,n){for(var r,o,i,a,s,l,c,d,u,h,p,g,f,m,w,v,y,b,C,x=this.fin?0:2048,S=this.h[0],k=this.h[1],_=this.h[2],E=this.h[3],R=this.h[4],T=this.h[5],I=this.h[6],O=this.h[7],M=this.h[8],A=this.h[9],L=this.r[0],N=this.r[1],W=this.r[2],P=this.r[3],U=this.r[4],D=this.r[5],j=this.r[6],B=this.r[7],q=this.r[8],$=this.r[9];n>=16;)h=u=0,h+=(S+=8191&(r=255&e[t+0]|(255&e[t+1])<<8))*L,h+=(k+=8191&(r>>>13|(o=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*$),h+=(_+=8191&(o>>>10|(i=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*q),h+=(E+=8191&(i>>>7|(a=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*B),u=(h+=(R+=8191&(a>>>4|(s=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*j))>>>13,h&=8191,h+=(T+=s>>>1&8191)*(5*D),h+=(I+=8191&(s>>>14|(l=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*U),h+=(O+=8191&(l>>>11|(c=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*P),h+=(M+=8191&(c>>>8|(d=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*W),p=u+=(h+=(A+=d>>>5|x)*(5*N))>>>13,p+=S*N,p+=k*L,p+=_*(5*$),p+=E*(5*q),u=(p+=R*(5*B))>>>13,p&=8191,p+=T*(5*j),p+=I*(5*D),p+=O*(5*U),p+=M*(5*P),u+=(p+=A*(5*W))>>>13,p&=8191,g=u,g+=S*W,g+=k*N,g+=_*L,g+=E*(5*$),u=(g+=R*(5*q))>>>13,g&=8191,g+=T*(5*B),g+=I*(5*j),g+=O*(5*D),g+=M*(5*U),f=u+=(g+=A*(5*P))>>>13,f+=S*P,f+=k*W,f+=_*N,f+=E*L,u=(f+=R*(5*$))>>>13,f&=8191,f+=T*(5*q),f+=I*(5*B),f+=O*(5*j),f+=M*(5*D),m=u+=(f+=A*(5*U))>>>13,m+=S*U,m+=k*P,m+=_*W,m+=E*N,u=(m+=R*L)>>>13,m&=8191,m+=T*(5*$),m+=I*(5*q),m+=O*(5*B),m+=M*(5*j),w=u+=(m+=A*(5*D))>>>13,w+=S*D,w+=k*U,w+=_*P,w+=E*W,u=(w+=R*N)>>>13,w&=8191,w+=T*L,w+=I*(5*$),w+=O*(5*q),w+=M*(5*B),v=u+=(w+=A*(5*j))>>>13,v+=S*j,v+=k*D,v+=_*U,v+=E*P,u=(v+=R*W)>>>13,v&=8191,v+=T*N,v+=I*L,v+=O*(5*$),v+=M*(5*q),y=u+=(v+=A*(5*B))>>>13,y+=S*B,y+=k*j,y+=_*D,y+=E*U,u=(y+=R*P)>>>13,y&=8191,y+=T*W,y+=I*N,y+=O*L,y+=M*(5*$),b=u+=(y+=A*(5*q))>>>13,b+=S*q,b+=k*B,b+=_*j,b+=E*D,u=(b+=R*U)>>>13,b&=8191,b+=T*P,b+=I*W,b+=O*N,b+=M*L,C=u+=(b+=A*(5*$))>>>13,C+=S*$,C+=k*q,C+=_*B,C+=E*j,u=(C+=R*D)>>>13,C&=8191,C+=T*U,C+=I*P,C+=O*W,C+=M*N,S=h=8191&(u=(u=((u+=(C+=A*L)>>>13)<<2)+u|0)+(h&=8191)|0),k=p+=u>>>=13,_=g&=8191,E=f&=8191,R=m&=8191,T=w&=8191,I=v&=8191,O=y&=8191,M=b&=8191,A=C&=8191,t+=16,n-=16;this.h[0]=S,this.h[1]=k,this.h[2]=_,this.h[3]=E,this.h[4]=R,this.h[5]=T,this.h[6]=I,this.h[7]=O,this.h[8]=M,this.h[9]=A},k.prototype.finish=function(e,t){var n,r,o,i,a=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(n=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=n,n=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*n,n=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=n,n=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=n,a[0]=this.h[0]+5,n=a[0]>>>13,a[0]&=8191,i=1;i<10;i++)a[i]=this.h[i]+n,n=a[i]>>>13,a[i]&=8191;for(a[9]-=8192,r=(1^n)-1,i=0;i<10;i++)a[i]&=r;for(r=~r,i=0;i<10;i++)this.h[i]=this.h[i]&r|a[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,n){var r,o;if(this.leftover){for((o=16-this.leftover)>n&&(o=n),r=0;r<o;r++)this.buffer[this.leftover+r]=e[t+r];if(n-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(n>=16&&(o=n-n%16,this.blocks(e,t,o),t+=o,n-=o),n){for(r=0;r<n;r++)this.buffer[this.leftover+r]=e[t+r];this.leftover+=n}};var Z=R,G=I,Y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Q(e,t,n,r){for(var o,i,a,s,l,c,d,u,h,p,g,f,m,w,v,y,b,C,x,S,k,_,E,R,T,I,O=new Int32Array(16),M=new Int32Array(16),A=e[0],L=e[1],N=e[2],W=e[3],P=e[4],U=e[5],D=e[6],j=e[7],B=t[0],q=t[1],$=t[2],K=t[3],F=t[4],H=t[5],V=t[6],z=t[7],Z=0;r>=128;){for(x=0;x<16;x++)S=8*x+Z,O[x]=n[S+0]<<24|n[S+1]<<16|n[S+2]<<8|n[S+3],M[x]=n[S+4]<<24|n[S+5]<<16|n[S+6]<<8|n[S+7];for(x=0;x<80;x++)if(o=A,i=L,a=N,s=W,l=P,c=U,d=D,h=B,p=q,g=$,f=K,m=F,w=H,v=V,E=65535&(_=z),R=_>>>16,T=65535&(k=j),I=k>>>16,E+=65535&(_=(F>>>14|P<<18)^(F>>>18|P<<14)^(P>>>9|F<<23)),R+=_>>>16,T+=65535&(k=(P>>>14|F<<18)^(P>>>18|F<<14)^(F>>>9|P<<23)),I+=k>>>16,E+=65535&(_=F&H^~F&V),R+=_>>>16,T+=65535&(k=P&U^~P&D),I+=k>>>16,E+=65535&(_=Y[2*x+1]),R+=_>>>16,T+=65535&(k=Y[2*x]),I+=k>>>16,k=O[x%16],R+=(_=M[x%16])>>>16,T+=65535&k,I+=k>>>16,T+=(R+=(E+=65535&_)>>>16)>>>16,E=65535&(_=C=65535&E|R<<16),R=_>>>16,T=65535&(k=b=65535&T|(I+=T>>>16)<<16),I=k>>>16,E+=65535&(_=(B>>>28|A<<4)^(A>>>2|B<<30)^(A>>>7|B<<25)),R+=_>>>16,T+=65535&(k=(A>>>28|B<<4)^(B>>>2|A<<30)^(B>>>7|A<<25)),I+=k>>>16,R+=(_=B&q^B&$^q&$)>>>16,T+=65535&(k=A&L^A&N^L&N),I+=k>>>16,u=65535&(T+=(R+=(E+=65535&_)>>>16)>>>16)|(I+=T>>>16)<<16,y=65535&E|R<<16,E=65535&(_=f),R=_>>>16,T=65535&(k=s),I=k>>>16,R+=(_=C)>>>16,T+=65535&(k=b),I+=k>>>16,L=o,N=i,W=a,P=s=65535&(T+=(R+=(E+=65535&_)>>>16)>>>16)|(I+=T>>>16)<<16,U=l,D=c,j=d,A=u,q=h,$=p,K=g,F=f=65535&E|R<<16,H=m,V=w,z=v,B=y,x%16==15)for(S=0;S<16;S++)k=O[S],E=65535&(_=M[S]),R=_>>>16,T=65535&k,I=k>>>16,k=O[(S+9)%16],E+=65535&(_=M[(S+9)%16]),R+=_>>>16,T+=65535&k,I+=k>>>16,b=O[(S+1)%16],E+=65535&(_=((C=M[(S+1)%16])>>>1|b<<31)^(C>>>8|b<<24)^(C>>>7|b<<25)),R+=_>>>16,T+=65535&(k=(b>>>1|C<<31)^(b>>>8|C<<24)^b>>>7),I+=k>>>16,b=O[(S+14)%16],R+=(_=((C=M[(S+14)%16])>>>19|b<<13)^(b>>>29|C<<3)^(C>>>6|b<<26))>>>16,T+=65535&(k=(b>>>19|C<<13)^(C>>>29|b<<3)^b>>>6),I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,O[S]=65535&T|I<<16,M[S]=65535&E|R<<16;E=65535&(_=B),R=_>>>16,T=65535&(k=A),I=k>>>16,k=e[0],R+=(_=t[0])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[0]=A=65535&T|I<<16,t[0]=B=65535&E|R<<16,E=65535&(_=q),R=_>>>16,T=65535&(k=L),I=k>>>16,k=e[1],R+=(_=t[1])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[1]=L=65535&T|I<<16,t[1]=q=65535&E|R<<16,E=65535&(_=$),R=_>>>16,T=65535&(k=N),I=k>>>16,k=e[2],R+=(_=t[2])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[2]=N=65535&T|I<<16,t[2]=$=65535&E|R<<16,E=65535&(_=K),R=_>>>16,T=65535&(k=W),I=k>>>16,k=e[3],R+=(_=t[3])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[3]=W=65535&T|I<<16,t[3]=K=65535&E|R<<16,E=65535&(_=F),R=_>>>16,T=65535&(k=P),I=k>>>16,k=e[4],R+=(_=t[4])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[4]=P=65535&T|I<<16,t[4]=F=65535&E|R<<16,E=65535&(_=H),R=_>>>16,T=65535&(k=U),I=k>>>16,k=e[5],R+=(_=t[5])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[5]=U=65535&T|I<<16,t[5]=H=65535&E|R<<16,E=65535&(_=V),R=_>>>16,T=65535&(k=D),I=k>>>16,k=e[6],R+=(_=t[6])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[6]=D=65535&T|I<<16,t[6]=V=65535&E|R<<16,E=65535&(_=z),R=_>>>16,T=65535&(k=j),I=k>>>16,k=e[7],R+=(_=t[7])>>>16,T+=65535&k,I+=k>>>16,I+=(T+=(R+=(E+=65535&_)>>>16)>>>16)>>>16,e[7]=j=65535&T|I<<16,t[7]=z=65535&E|R<<16,Z+=128,r-=128}return r}function J(e,t,n){var r,o=new Int32Array(8),i=new Int32Array(8),a=new Uint8Array(256),s=n;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,i[0]=4089235720,i[1]=2227873595,i[2]=4271175723,i[3]=1595750129,i[4]=2917565137,i[5]=725511199,i[6]=4215389547,i[7]=327033209,Q(o,i,t,n),n%=128,r=0;r<n;r++)a[r]=t[s-n+r];for(a[n]=128,a[(n=256-128*(n<112?1:0))-9]=0,p(a,n-8,s/536870912|0,s<<3),Q(o,i,a,n),r=0;r<8;r++)p(e,8*r,o[r],i[r]);return 0}function X(e,n){var r=t(),o=t(),i=t(),a=t(),s=t(),l=t(),d=t(),u=t(),h=t();j(r,e[1],e[0]),j(h,n[1],n[0]),B(r,r,h),D(o,e[0],e[1]),D(h,n[0],n[1]),B(o,o,h),B(i,e[3],n[3]),B(i,i,c),B(a,e[2],n[2]),D(a,a,a),j(s,o,r),j(l,a,i),D(d,a,i),D(u,o,r),B(e[0],s,l),B(e[1],u,d),B(e[2],d,l),B(e[3],s,u)}function ee(e,t,n){var r;for(r=0;r<4;r++)L(e[r],t[r],n)}function te(e,n){var r=t(),o=t(),i=t();$(i,n[2]),B(r,n[0],i),B(o,n[1],i),N(e,o),e[31]^=P(r)<<7}function ne(e,t,n){var r,o;for(M(e[0],i),M(e[1],a),M(e[2],a),M(e[3],i),o=255;o>=0;--o)ee(e,t,r=n[o/8|0]>>(7&o)&1),X(t,e),X(e,e),ee(e,t,r)}function re(e,n){var r=[t(),t(),t(),t()];M(r[0],d),M(r[1],u),M(r[2],a),B(r[3],d,u),ne(e,r,n)}function oe(e,r,o){var i,a=new Uint8Array(64),s=[t(),t(),t(),t()];for(o||n(r,32),J(a,r,32),a[0]&=248,a[31]&=127,a[31]|=64,re(s,a),te(e,s),i=0;i<32;i++)r[i+32]=e[i];return 0}var ie=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,t){var n,r,o,i;for(r=63;r>=32;--r){for(n=0,o=r-32,i=r-12;o<i;++o)t[o]+=n-16*t[r]*ie[o-(r-32)],n=Math.floor((t[o]+128)/256),t[o]-=256*n;t[o]+=n,t[r]=0}for(n=0,o=0;o<32;o++)t[o]+=n-(t[31]>>4)*ie[o],n=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=n*ie[o];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function se(e){var t,n=new Float64Array(64);for(t=0;t<64;t++)n[t]=e[t];for(t=0;t<64;t++)e[t]=0;ae(e,n)}function le(e,n,r,o){var i,a,s=new Uint8Array(64),l=new Uint8Array(64),c=new Uint8Array(64),d=new Float64Array(64),u=[t(),t(),t(),t()];J(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var h=r+64;for(i=0;i<r;i++)e[64+i]=n[i];for(i=0;i<32;i++)e[32+i]=s[32+i];for(J(c,e.subarray(32),r+32),se(c),re(u,c),te(e,u),i=32;i<64;i++)e[i]=o[i];for(J(l,e,r+64),se(l),i=0;i<64;i++)d[i]=0;for(i=0;i<32;i++)d[i]=c[i];for(i=0;i<32;i++)for(a=0;a<32;a++)d[i+a]+=l[i]*s[a];return ae(e.subarray(32),d),h}function ce(e,n,r,o){var s,c=new Uint8Array(32),d=new Uint8Array(64),u=[t(),t(),t(),t()],p=[t(),t(),t(),t()];if(r<64)return-1;if(function(e,n){var r=t(),o=t(),s=t(),c=t(),d=t(),u=t(),p=t();return M(e[2],a),U(e[1],n),q(s,e[1]),B(c,s,l),j(s,s,e[2]),D(c,e[2],c),q(d,c),q(u,d),B(p,u,d),B(r,p,s),B(r,r,c),K(r,r),B(r,r,s),B(r,r,c),B(r,r,c),B(e[0],r,c),q(o,e[0]),B(o,o,c),W(o,s)&&B(e[0],e[0],h),q(o,e[0]),B(o,o,c),W(o,s)?-1:(P(e[0])===n[31]>>7&&j(e[0],i,e[0]),B(e[3],e[0],e[1]),0)}(p,o))return-1;for(s=0;s<r;s++)e[s]=n[s];for(s=0;s<32;s++)e[s+32]=o[s];if(J(d,e,r),se(d),ne(u,p,d),re(p,n.subarray(32)),X(u,p),te(c,u),r-=64,m(n,0,c,0)){for(s=0;s<r;s++)e[s]=0;return-1}for(s=0;s<r;s++)e[s]=n[s+64];return r}var de,ue=16,he=64,pe=32,ge=64;function fe(e,t){if(32!==e.length)throw new Error("bad key size");if(24!==t.length)throw new Error("bad nonce size")}function me(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function we(e){for(var t=0;t<e.length;t++)e[t]=0}e.lowlevel={crypto_core_hsalsa20:v,crypto_stream_xor:S,crypto_stream:x,crypto_stream_salsa20_xor:b,crypto_stream_salsa20:C,crypto_onetimeauth:_,crypto_onetimeauth_verify:E,crypto_verify_16:f,crypto_verify_32:m,crypto_secretbox:R,crypto_secretbox_open:I,crypto_scalarmult:F,crypto_scalarmult_base:H,crypto_box_beforenm:z,crypto_box_afternm:Z,crypto_box:function(e,t,n,r,o,i){var a=new Uint8Array(32);return z(a,o,i),Z(e,t,n,r,a)},crypto_box_open:function(e,t,n,r,o,i){var a=new Uint8Array(32);return z(a,o,i),G(e,t,n,r,a)},crypto_box_keypair:V,crypto_hash:J,crypto_sign:le,crypto_sign_keypair:oe,crypto_sign_open:ce,crypto_secretbox_KEYBYTES:32,crypto_secretbox_NONCEBYTES:24,crypto_secretbox_ZEROBYTES:32,crypto_secretbox_BOXZEROBYTES:ue,crypto_scalarmult_BYTES:32,crypto_scalarmult_SCALARBYTES:32,crypto_box_PUBLICKEYBYTES:32,crypto_box_SECRETKEYBYTES:32,crypto_box_BEFORENMBYTES:32,crypto_box_NONCEBYTES:24,crypto_box_ZEROBYTES:32,crypto_box_BOXZEROBYTES:16,crypto_sign_BYTES:he,crypto_sign_PUBLICKEYBYTES:pe,crypto_sign_SECRETKEYBYTES:ge,crypto_sign_SEEDBYTES:32,crypto_hash_BYTES:64,gf:t,D:l,L:ie,pack25519:N,unpack25519:U,M:B,A:D,S:q,Z:j,pow2523:K,add:X,set25519:M,modL:ae,scalarmult:ne,scalarbase:re},e.randomBytes=function(e){var t=new Uint8Array(e);return n(t,e),t},e.secretbox=function(e,t,n){me(e,t,n),fe(n,t);for(var r=new Uint8Array(32+e.length),o=new Uint8Array(r.length),i=0;i<e.length;i++)r[i+32]=e[i];return R(o,r,r.length,t,n),o.subarray(ue)},e.secretbox.open=function(e,t,n){me(e,t,n),fe(n,t);for(var r=new Uint8Array(ue+e.length),o=new Uint8Array(r.length),i=0;i<e.length;i++)r[i+ue]=e[i];return r.length<32||0!==I(o,r,r.length,t,n)?null:o.subarray(32)},e.secretbox.keyLength=32,e.secretbox.nonceLength=24,e.secretbox.overheadLength=ue,e.scalarMult=function(e,t){if(me(e,t),32!==e.length)throw new Error("bad n size");if(32!==t.length)throw new Error("bad p size");var n=new Uint8Array(32);return F(n,e,t),n},e.scalarMult.base=function(e){if(me(e),32!==e.length)throw new Error("bad n size");var t=new Uint8Array(32);return H(t,e),t},e.scalarMult.scalarLength=32,e.scalarMult.groupElementLength=32,e.box=function(t,n,r,o){var i=e.box.before(r,o);return e.secretbox(t,n,i)},e.box.before=function(e,t){me(e,t),function(e,t){if(32!==e.length)throw new Error("bad public key size");if(32!==t.length)throw new Error("bad secret key size")}(e,t);var n=new Uint8Array(32);return z(n,e,t),n},e.box.after=e.secretbox,e.box.open=function(t,n,r,o){var i=e.box.before(r,o);return e.secretbox.open(t,n,i)},e.box.open.after=e.secretbox.open,e.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return V(e,t),{publicKey:e,secretKey:t}},e.box.keyPair.fromSecretKey=function(e){if(me(e),32!==e.length)throw new Error("bad secret key size");var t=new Uint8Array(32);return H(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},e.box.publicKeyLength=32,e.box.secretKeyLength=32,e.box.sharedKeyLength=32,e.box.nonceLength=24,e.box.overheadLength=e.secretbox.overheadLength,e.sign=function(e,t){if(me(e,t),t.length!==ge)throw new Error("bad secret key size");var n=new Uint8Array(he+e.length);return le(n,e,e.length,t),n},e.sign.open=function(e,t){if(me(e,t),t.length!==pe)throw new Error("bad public key size");var n=new Uint8Array(e.length),r=ce(n,e,e.length,t);if(r<0)return null;for(var o=new Uint8Array(r),i=0;i<o.length;i++)o[i]=n[i];return o},e.sign.detached=function(t,n){for(var r=e.sign(t,n),o=new Uint8Array(he),i=0;i<o.length;i++)o[i]=r[i];return o},e.sign.detached.verify=function(e,t,n){if(me(e,t,n),t.length!==he)throw new Error("bad signature size");if(n.length!==pe)throw new Error("bad public key size");var r,o=new Uint8Array(he+e.length),i=new Uint8Array(he+e.length);for(r=0;r<he;r++)o[r]=t[r];for(r=0;r<e.length;r++)o[r+he]=e[r];return ce(i,o,o.length,n)>=0},e.sign.keyPair=function(){var e=new Uint8Array(pe),t=new Uint8Array(ge);return oe(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(me(e),e.length!==ge)throw new Error("bad secret key size");for(var t=new Uint8Array(pe),n=0;n<t.length;n++)t[n]=e[32+n];return{publicKey:t,secretKey:new Uint8Array(e)}},e.sign.keyPair.fromSeed=function(e){if(me(e),32!==e.length)throw new Error("bad seed size");for(var t=new Uint8Array(pe),n=new Uint8Array(ge),r=0;r<32;r++)n[r]=e[r];return oe(t,n,!0),{publicKey:t,secretKey:n}},e.sign.publicKeyLength=pe,e.sign.secretKeyLength=ge,e.sign.seedLength=32,e.sign.signatureLength=he,e.hash=function(e){me(e);var t=new Uint8Array(64);return J(t,e,e.length),t},e.hash.hashLength=64,e.verify=function(e,t){return me(e,t),0!==e.length&&0!==t.length&&e.length===t.length&&0===g(e,0,t,0,e.length)},e.setPRNG=function(e){n=e},(de="undefined"!=typeof self?self.crypto||self.msCrypto:null)&&de.getRandomValues?e.setPRNG(function(e,t){var n,r=new Uint8Array(t);for(n=0;n<t;n+=65536)de.getRandomValues(r.subarray(n,n+Math.min(t-n,65536)));for(n=0;n<t;n++)e[n]=r[n];we(r)}):void 0!==T&&(de=O)&&de.randomBytes&&e.setPRNG(function(e,t){var n,r=de.randomBytes(t);for(n=0;n<t;n++)e[n]=r[n];we(r)})}(e.exports?e.exports:self.nacl=self.nacl||{})}(I)),I.exports);const L=b(A);var N,W,P,U,D,j,B;e.CONNECT_EVENT_ERROR_CODES=void 0,(N=e.CONNECT_EVENT_ERROR_CODES||(e.CONNECT_EVENT_ERROR_CODES={}))[N.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",N[N.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",N[N.MANIFEST_NOT_FOUND_ERROR=2]="MANIFEST_NOT_FOUND_ERROR",N[N.MANIFEST_CONTENT_ERROR=3]="MANIFEST_CONTENT_ERROR",N[N.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",N[N.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",N[N.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.CONNECT_ITEM_ERROR_CODES=void 0,(W=e.CONNECT_ITEM_ERROR_CODES||(e.CONNECT_ITEM_ERROR_CODES={}))[W.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",W[W.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.SEND_TRANSACTION_ERROR_CODES=void 0,(P=e.SEND_TRANSACTION_ERROR_CODES||(e.SEND_TRANSACTION_ERROR_CODES={}))[P.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",P[P.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",P[P.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",P[P.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",P[P.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.SIGN_DATA_ERROR_CODES=void 0,(U=e.SIGN_DATA_ERROR_CODES||(e.SIGN_DATA_ERROR_CODES={}))[U.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",U[U.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",U[U.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",U[U.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",U[U.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",(j=D||(D={}))[j.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",j[j.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",j[j.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",j[j.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",e.CHAIN=void 0,(B=e.CHAIN||(e.CHAIN={})).MAINNET="-239",B.TESTNET="-3";const q={encode:function(e,t=!1){let n;return e instanceof Uint8Array?n=e:("string"!=typeof e&&(e=JSON.stringify(e)),n=R.decodeUTF8(e)),function(e,t){const n=R.encodeBase64(e);return t?encodeURIComponent(n):n}(n,t)},decode:function(e,t=!1){const n=function(e,t){return t&&(e=decodeURIComponent(e)),R.decodeBase64(e)}(e,t);return{toString:()=>R.encodeUTF8(n),toObject(){try{return JSON.parse(R.encodeUTF8(n))}catch(e){return null}},toUint8Array:()=>n}}};function $(e){let t="";return e.forEach(e=>{t+=("0"+(255&e).toString(16)).slice(-2)}),t}function K(e){if(e.length%2!=0)throw new Error(`Cannot convert ${e} to bytesArray`);const t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return t}class F{constructor(e){this.nonceLength=24,this.keyPair=e?this.createKeypairFromString(e):this.createKeypair(),this.sessionId=$(this.keyPair.publicKey)}createKeypair(){return L.box.keyPair()}createKeypairFromString(e){return{publicKey:K(e.publicKey),secretKey:K(e.secretKey)}}createNonce(){return L.randomBytes(this.nonceLength)}encrypt(e,t){const n=(new TextEncoder).encode(e),r=this.createNonce();return function(e,t){const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(r,L.box(n,r,t,this.keyPair.secretKey))}decrypt(e,t){const[n,r]=function(e,t){if(t>=e.length)throw new Error("Index is out of buffer");return[e.slice(0,t),e.slice(t)]}(e,this.nonceLength),o=L.box.open(r,n,t,this.keyPair.secretKey);if(!o)throw new Error(`Decryption error: \n message: ${e.toString()} \n sender pubkey: ${t.toString()} \n keypair pubkey: ${this.keyPair.publicKey.toString()} \n keypair secretkey: ${this.keyPair.secretKey.toString()}`);return(new TextDecoder).decode(o)}stringifyKeypair(){return{publicKey:$(this.keyPair.publicKey),secretKey:$(this.keyPair.secretKey)}}}function H(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function V(e,t,n,r){return new(n||(n=Promise))(function(t,o){function i(e){try{s(r.next(e))}catch(t){o(t)}}function a(e){try{s(r.throw(e))}catch(t){o(t)}}function s(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n(function(e){e(r)})).then(i,a)}s((r=r.apply(e,[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class z extends Error{get info(){return""}constructor(e,t){super(e,t),this.message=`${z.prefix} ${this.constructor.name}${this.info?": "+this.info:""}${e?"\n"+e:""}`,Object.setPrototypeOf(this,z.prototype)}}z.prefix="[TON_CONNECT_SDK_ERROR]";class Z extends z{get info(){return"Passed DappMetadata is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,Z.prototype)}}class G extends z{get info(){return"Passed `tonconnect-manifest.json` contains errors. Check format of your manifest. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest"}constructor(...e){super(...e),Object.setPrototypeOf(this,G.prototype)}}class Y extends z{get info(){return"Manifest not found. Make sure you added `tonconnect-manifest.json` to the root of your app or passed correct manifestUrl. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest"}constructor(...e){super(...e),Object.setPrototypeOf(this,Y.prototype)}}class Q extends z{get info(){return"Wallet connection called but wallet already connected. To avoid the error, disconnect the wallet before doing a new connection."}constructor(...e){super(...e),Object.setPrototypeOf(this,Q.prototype)}}class J extends z{get info(){return"Send transaction or other protocol methods called while wallet is not connected."}constructor(...e){super(...e),Object.setPrototypeOf(this,J.prototype)}}class X extends z{get info(){return"There is an attempt to connect to the injected wallet while it is not exists in the webpage."}constructor(...e){super(...e),Object.setPrototypeOf(this,X.prototype)}}class ee extends z{get info(){return"Wallet doesn't support requested feature method."}constructor(e,t){super(e,t),Object.setPrototypeOf(this,ee.prototype)}}class te extends z{get info(){return"Missing required features. You need to update your wallet."}constructor(e,t){super(e,t),Object.setPrototypeOf(this,te.prototype)}}class ne extends z{constructor(e,t){super(e,t),this.name="WalletWrongNetworkError",Object.setPrototypeOf(this,ne.prototype)}}class re extends z{get info(){return"User rejects the action in the wallet."}constructor(...e){super(...e),Object.setPrototypeOf(this,re.prototype)}}class oe extends z{get info(){return"Request to the wallet contains errors."}constructor(...e){super(...e),Object.setPrototypeOf(this,oe.prototype)}}class ie extends z{get info(){return"App tries to send rpc request to the injected wallet while not connected."}constructor(...e){super(...e),Object.setPrototypeOf(this,ie.prototype)}}class ae extends z{get info(){return"Storage was not specified in the `DappMetadata` and default `localStorage` was not detected in the environment."}constructor(...e){super(...e),Object.setPrototypeOf(this,ae.prototype)}}class se extends z{get info(){return"An error occurred while fetching the wallets list."}constructor(...e){super(...e),Object.setPrototypeOf(this,se.prototype)}}class le extends z{get info(){return"Passed address is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,le.prototype)}}class ce extends z{get info(){return"Passed hex is in incorrect format."}constructor(...e){super(...e),Object.setPrototypeOf(this,ce.prototype)}}class de extends z{constructor(...e){super(...e),Object.setPrototypeOf(this,de.prototype)}}const ue={[e.CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]:de,[e.CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]:ie,[e.CONNECT_EVENT_ERROR_CODES.MANIFEST_NOT_FOUND_ERROR]:Y,[e.CONNECT_EVENT_ERROR_CODES.MANIFEST_CONTENT_ERROR]:G};const he=new class{parseError(e){let t=de;return e.code in ue&&(t=ue[e.code]||de),new t(e.message)}};class pe{isError(e){return"error"in e}}const ge={[e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]:de,[e.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]:ie};const fe=new class extends pe{convertToRpcRequest(e){return{method:"sendTransaction",params:[JSON.stringify(e)]}}parseAndThrowError(e){let t=de;throw e.error.code in ge&&(t=ge[e.error.code]||de),new t(e.error.message)}convertFromRpcResponse(e){return{boc:e.result}}},me={[e.SIGN_DATA_ERROR_CODES.UNKNOWN_ERROR]:de,[e.SIGN_DATA_ERROR_CODES.USER_REJECTS_ERROR]:re,[e.SIGN_DATA_ERROR_CODES.BAD_REQUEST_ERROR]:oe,[e.SIGN_DATA_ERROR_CODES.UNKNOWN_APP_ERROR]:ie};const we=new class extends pe{convertToRpcRequest(e){return{method:"signData",params:[JSON.stringify(e)]}}parseAndThrowError(e){let t=de;throw e.error.code in me&&(t=me[e.error.code]||de),new t(e.error.message)}convertFromRpcResponse(e){return e.result}};class ve{constructor(e,t){this.storage=e,this.storeKey="ton-connect-storage_http-bridge-gateway::"+t}storeLastEventId(e){return V(this,0,void 0,function*(){return this.storage.setItem(this.storeKey,e)})}removeLastEventId(){return V(this,0,void 0,function*(){return this.storage.removeItem(this.storeKey)})}getLastEventId(){return V(this,0,void 0,function*(){const e=yield this.storage.getItem(this.storeKey);return e||null})}}function ye(e,t){return function(e){return"/"===e.slice(-1)?e.slice(0,-1):e}(e)+"/"+t}function be(e){if(!e)return!1;const t=new URL(e);return"tg:"===t.protocol||"t.me"===t.hostname}function Ce(e){return!!e&&(e.includes("ton_addr")||e.includes("ton--5Faddr"))}function xe(e){return e.replaceAll(".","%2E").replaceAll("-","%2D").replaceAll("_","%5F").replaceAll("&","-").replaceAll("=","__").replaceAll("%","--")}function Se(e){return e.replaceAll("--","%").replaceAll("__","=").replaceAll("-","&").replaceAll("%5F","_").replaceAll("%2D","-").replaceAll("%2E",".")}function ke(e,t){return V(this,0,void 0,function*(){return new Promise((t,n)=>{setTimeout(()=>t(),e)})})}function _e(e){const t=new AbortController;return(null==e?void 0:e.aborted)?t.abort():null==e||e.addEventListener("abort",()=>t.abort(),{once:!0}),t}function Ee(e,t){return V(this,0,void 0,function*(){var n,r;const o=null!==(n=null==t?void 0:t.attempts)&&void 0!==n?n:10,i=null!==(r=null==t?void 0:t.delayMs)&&void 0!==r?r:200,a=_e(null==t?void 0:t.signal);if("function"!=typeof e)throw new z("Expected a function, got "+typeof e);let s,l=0;for(;l<o;){if(a.signal.aborted)throw new z(`Aborted after attempts ${l}`);try{return yield e({signal:a.signal})}catch(c){s=c,l++,l<o&&(yield ke(i))}}throw s})}function Re(...e){try{console.debug("[TON_CONNECT_SDK]",...e)}catch(t){}}function Te(...e){try{console.error("[TON_CONNECT_SDK]",...e)}catch(t){}}class Ie{get isReady(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)===EventSource.OPEN}get isClosed(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)!==EventSource.OPEN}get isConnecting(){const e=this.eventSource.current();return(null==e?void 0:e.readyState)===EventSource.CONNECTING}constructor(e,t,n,r,o,i){this.bridgeUrl=t,this.sessionId=n,this.listener=r,this.errorsListener=o,this.ssePath="events",this.postPath="message",this.heartbeatMessage="heartbeat",this.defaultTtl=300,this.defaultReconnectDelay=2e3,this.defaultResendDelay=5e3,this.eventSource=function(e,t){let n=null,r=null,o=null,i=null,a=null;const s=(s,...l)=>V(this,0,void 0,function*(){if(i=null!=s?s:null,null==a||a.abort(),a=_e(s),a.signal.aborted)throw new z("Resource creation was aborted");r=null!=l?l:null;const c=e(a.signal,...l);o=c;const d=yield c;if(o!==c&&d!==n)throw yield t(d),new z("Resource creation was aborted by a new resource creation");return n=d,n});return{create:s,current:()=>null!=n?n:null,dispose:()=>V(this,0,void 0,function*(){try{const r=n;n=null;const i=o;o=null;try{null==a||a.abort()}catch(e){}yield Promise.allSettled([r?t(r):Promise.resolve(),i?t(yield i):Promise.resolve()])}catch(e){}}),recreate:e=>V(this,0,void 0,function*(){const t=n,a=o,l=r,c=i;if(yield ke(e),t===n&&a===o&&l===r&&c===i)return yield s(i,...null!=l?l:[]);throw new z("Resource recreation was aborted by a new resource creation")})}}((e,t,n)=>V(this,0,void 0,function*(){const r={bridgeUrl:this.bridgeUrl,ssePath:this.ssePath,sessionId:this.sessionId,bridgeGatewayStorage:this.bridgeGatewayStorage,errorHandler:this.errorsHandler.bind(this),messageHandler:this.messagesHandler.bind(this),signal:e,openingDeadlineMS:t,traceId:n};return yield function(e){return V(this,0,void 0,function*(){return yield function(e,t){const n=null==t?void 0:t.timeout,r=_e(null==t?void 0:t.signal);return new Promise((t,o)=>V(this,0,void 0,function*(){if(r.signal.aborted)return void o(new z("Operation aborted"));let i;void 0!==n&&(i=setTimeout(()=>{r.abort(),o(new z(`Timeout after ${n}ms`))},n)),r.signal.addEventListener("abort",()=>{clearTimeout(i),o(new z("Operation aborted"))},{once:!0});const a={timeout:n,abort:r.signal};yield e((...e)=>{clearTimeout(i),t(...e)},()=>{clearTimeout(i),o()},a)}))}((t,n,r)=>V(this,0,void 0,function*(){var o;const i=_e(r.signal).signal;if(i.aborted)return void n(new z("Bridge connection aborted"));const a=new URL(ye(e.bridgeUrl,e.ssePath));a.searchParams.append("client_id",e.sessionId);const s=yield e.bridgeGatewayStorage.getLastEventId();if(s&&a.searchParams.append("last_event_id",s),e.traceId&&a.searchParams.append("trace_id",e.traceId),i.aborted)return void n(new z("Bridge connection aborted"));const l=new EventSource(a.toString());l.onerror=r=>V(this,0,void 0,function*(){if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));try{const n=yield e.errorHandler(l,r);n!==l&&l.close(),n&&n!==l&&t(n)}catch(o){l.close(),n(o)}}),l.onopen=()=>{if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));t(l)},l.onmessage=t=>{if(i.aborted)return l.close(),void n(new z("Bridge connection aborted"));e.messageHandler(t)},null===(o=e.signal)||void 0===o||o.addEventListener("abort",()=>{l.close(),n(new z("Bridge connection aborted"))})}),{timeout:e.openingDeadlineMS,signal:e.signal})})}(r)}),e=>V(this,0,void 0,function*(){e.close()})),this.bridgeGatewayStorage=new ve(e,t),this.analytics=null==i?void 0:i.scoped({bridge_url:t,client_id:n})}registerSession(e){return V(this,0,void 0,function*(){var t,n,r;try{null===(t=this.analytics)||void 0===t||t.emitBridgeClientConnectStarted({trace_id:null==e?void 0:e.traceId});const r=Date.now();yield this.eventSource.create(null==e?void 0:e.signal,null==e?void 0:e.openingDeadlineMS,null==e?void 0:e.traceId);const o=Date.now()-r;null===(n=this.analytics)||void 0===n||n.emitBridgeClientConnectEstablished({bridge_connect_duration:o,trace_id:null==e?void 0:e.traceId})}catch(o){throw null===(r=this.analytics)||void 0===r||r.emitBridgeClientConnectError({trace_id:null==e?void 0:e.traceId,error_message:String(o)}),o}})}send(e,t,n,r){return V(this,0,void 0,function*(){var o;const i={};"number"==typeof r?i.ttl=r:(i.ttl=null==r?void 0:r.ttl,i.signal=null==r?void 0:r.signal,i.attempts=null==r?void 0:r.attempts,i.traceId=null==r?void 0:r.traceId);const a=new URL(ye(this.bridgeUrl,this.postPath));a.searchParams.append("client_id",this.sessionId),a.searchParams.append("to",t),a.searchParams.append("ttl",((null==i?void 0:i.ttl)||this.defaultTtl).toString()),a.searchParams.append("topic",n),(null==i?void 0:i.traceId)&&a.searchParams.append("trace_id",i.traceId);const s=q.encode(e);yield Ee(e=>V(this,0,void 0,function*(){const t=yield this.post(a,s,e.signal);if(!t.ok)throw new z(`Bridge send failed, status ${t.status}`)}),{attempts:null!==(o=null==i?void 0:i.attempts)&&void 0!==o?o:Number.MAX_SAFE_INTEGER,delayMs:this.defaultResendDelay,signal:null==i?void 0:i.signal})})}pause(){this.eventSource.dispose().catch(e=>Te(`Bridge pause failed, ${e}`))}unPause(){return V(this,0,void 0,function*(){yield this.eventSource.recreate(0)})}close(){return V(this,0,void 0,function*(){yield this.eventSource.dispose().catch(e=>Te(`Bridge close failed, ${e}`))})}setListener(e){this.listener=e}setErrorsListener(e){this.errorsListener=e}post(e,t,n){return V(this,0,void 0,function*(){const r=yield fetch(e,{method:"post",body:t,signal:n});if(!r.ok)throw new z(`Bridge send failed, status ${r.status}`);return r})}errorsHandler(e,t){return V(this,0,void 0,function*(){if(this.isConnecting)throw e.close(),new z("Bridge error, failed to connect");if(!this.isReady){if(this.isClosed)return e.close(),Re(`Bridge reconnecting, ${this.defaultReconnectDelay}ms delay`),yield this.eventSource.recreate(this.defaultReconnectDelay);throw new z("Bridge error, unknown state")}try{this.errorsListener(t)}catch(n){}})}messagesHandler(e){return V(this,0,void 0,function*(){if(e.data===this.heartbeatMessage)return;if(yield this.bridgeGatewayStorage.storeLastEventId(e.lastEventId),this.isClosed)return;let t;try{const n=JSON.parse(e.data);t={message:n.message,from:n.from,traceId:n.trace_id}}catch(n){throw new z(`Bridge message parse failed, message ${e.data}`)}this.listener(t)})}}function Oe(e){return!("connectEvent"in e)}let Me;const Ae=new Uint8Array(16);function Le(){if(!Me){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Me=crypto.getRandomValues.bind(crypto)}return Me(Ae)}const Ne=[];for(let zp=0;zp<256;++zp)Ne.push((zp+256).toString(16).slice(1));const We={};function Pe(e,t,n){var r,o,i;let a;if(e)a=Ue(null!==(i=null!==(r=e.random)&&void 0!==r?r:null===(o=e.rng)||void 0===o?void 0:o.call(e))&&void 0!==i?i:Le(),e.msecs,e.seq,t,n);else{const e=Date.now(),r=Le();!function(e,t,n){var r,o;null!==(r=e.msecs)&&void 0!==r||(e.msecs=-1/0),null!==(o=e.seq)&&void 0!==o||(e.seq=0),t>e.msecs?(e.seq=n[6]<<23|n[7]<<16|n[8]<<8|n[9],e.msecs=t):(e.seq=e.seq+1|0,0===e.seq&&e.msecs++)}(We,e,r),a=Ue(r,We.msecs,We.seq,t,n)}return null!=t?t:function(e,t=0){return(Ne[e[t+0]]+Ne[e[t+1]]+Ne[e[t+2]]+Ne[e[t+3]]+"-"+Ne[e[t+4]]+Ne[e[t+5]]+"-"+Ne[e[t+6]]+Ne[e[t+7]]+"-"+Ne[e[t+8]]+Ne[e[t+9]]+"-"+Ne[e[t+10]]+Ne[e[t+11]]+Ne[e[t+12]]+Ne[e[t+13]]+Ne[e[t+14]]+Ne[e[t+15]]).toLowerCase()}(a)}function Ue(e,t,n,r,o=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(r){if(o<0||o+16>r.length)throw new RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`)}else r=new Uint8Array(16),o=0;return null!=t||(t=Date.now()),null!=n||(n=127*e[6]<<24|e[7]<<16|e[8]<<8|e[9]),r[o++]=t/1099511627776&255,r[o++]=t/4294967296&255,r[o++]=t/16777216&255,r[o++]=t/65536&255,r[o++]=t/256&255,r[o++]=255&t,r[o++]=112|n>>>28&15,r[o++]=n>>>20&255,r[o++]=128|n>>>14&63,r[o++]=n>>>6&255,r[o++]=n<<2&255|3&e[10],r[o++]=e[11],r[o++]=e[12],r[o++]=e[13],r[o++]=e[14],r[o++]=e[15],r}class De{static fromStorage(e,t){return V(this,0,void 0,function*(){const n=yield e.getHttpConnection();return Oe(n)?new De(e,n.connectionSource,t):new De(e,{bridgeUrl:n.session.bridgeUrl},t)})}constructor(e,t,n){var r;this.connectionStorage=e,this.walletConnectionSource=t,this.analyticsManager=n,this.type="http",this.standardUniversalLink="tc://",this.pendingRequests=new Map,this.session=null,this.gateway=null,this.pendingGateways=[],this.listeners=[],this.defaultOpeningDeadlineMS=12e3,this.defaultRetryTimeoutMS=2e3,this.optionalOpenGateways=3,this.analytics=null===(r=this.analyticsManager)||void 0===r?void 0:r.scoped()}connect(e,t){var n,r;const o=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe(),i=_e(null==t?void 0:t.signal);null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=i,this.closeGateways();const a=new F;this.session={sessionCrypto:a,bridgeUrl:"bridgeUrl"in this.walletConnectionSource?this.walletConnectionSource.bridgeUrl:""},this.connectionStorage.storeConnection({type:"http",connectionSource:this.walletConnectionSource,sessionCrypto:a}).then(()=>V(this,0,void 0,function*(){i.signal.aborted||(yield Ee(e=>{var n;return this.openGateways(a,{openingDeadlineMS:null!==(n=null==t?void 0:t.openingDeadlineMS)&&void 0!==n?n:this.defaultOpeningDeadlineMS,signal:null==e?void 0:e.signal,traceId:o})},{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:i.signal}))}));const s="universalLink"in this.walletConnectionSource&&this.walletConnectionSource.universalLink?this.walletConnectionSource.universalLink:this.standardUniversalLink;return this.generateUniversalLink(s,e,{traceId:o})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe(),i=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=i,i.signal.aborted)return;this.closeGateways();const a=yield this.connectionStorage.getHttpConnection();if(!a)return;if(i.signal.aborted)return;const s=null!==(r=null==e?void 0:e.openingDeadlineMS)&&void 0!==r?r:this.defaultOpeningDeadlineMS;if(Oe(a))return this.session={sessionCrypto:a.sessionCrypto,bridgeUrl:"bridgeUrl"in this.walletConnectionSource?this.walletConnectionSource.bridgeUrl:""},yield this.openGateways(a.sessionCrypto,{openingDeadlineMS:s,signal:null==i?void 0:i.signal,traceId:null==e?void 0:e.traceId});if(Array.isArray(this.walletConnectionSource))throw new z("Internal error. Connection source is array while WalletConnectionSourceHTTP was expected.");if(this.session=a.session,this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.gateway=new Ie(this.connectionStorage.storage,this.walletConnectionSource.bridgeUrl,a.session.sessionCrypto.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this),this.analyticsManager),!i.signal.aborted){this.listeners.forEach(e=>e(Object.assign(Object.assign({},a.connectEvent),{traceId:o})));try{yield Ee(e=>this.gateway.registerSession({openingDeadlineMS:s,signal:e.signal,traceId:o}),{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:i.signal})}catch(l){return void(yield this.disconnect({signal:i.signal,traceId:o}))}}})}sendRequest(e,t){var n;const r={};return"function"==typeof t?r.onRequestSent=t:(r.onRequestSent=null==t?void 0:t.onRequestSent,r.signal=null==t?void 0:t.signal,r.attempts=null==t?void 0:t.attempts,r.traceId=null==t?void 0:t.traceId),null!==(n=r.traceId)&&void 0!==n||(r.traceId=Pe()),new Promise((t,n)=>V(this,0,void 0,function*(){var o,i;if(!this.gateway||!this.session||!("walletPublicKey"in this.session))throw new z("Trying to send bridge request without session");const a=(yield this.connectionStorage.getNextRpcRequestId()).toString();yield this.connectionStorage.increaseNextRpcRequestId(),Re("Send http-bridge request:",Object.assign(Object.assign({},e),{id:a}));const s=this.session.sessionCrypto.encrypt(JSON.stringify(Object.assign(Object.assign({},e),{id:a})),K(this.session.walletPublicKey));try{null===(o=this.analytics)||void 0===o||o.emitBridgeClientMessageSent({bridge_url:this.gateway.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:this.session.walletPublicKey,message_id:a,request_type:e.method,trace_id:r.traceId}),yield this.gateway.send(s,this.session.walletPublicKey,e.method,{attempts:null==r?void 0:r.attempts,signal:null==r?void 0:r.signal,traceId:r.traceId}),null===(i=null==r?void 0:r.onRequestSent)||void 0===i||i.call(r),this.pendingRequests.set(a.toString(),t)}catch(l){n(l)}}))}closeConnection(){this.closeGateways(),this.listeners=[],this.session=null,this.gateway=null}disconnect(e){return V(this,0,void 0,function*(){var t;const n=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();return new Promise(t=>V(this,0,void 0,function*(){let r=!1,o=null;const i=()=>{r||(r=!0,this.removeBridgeAndSession().then(t))};try{this.closeGateways();const t=_e(null==e?void 0:e.signal);o=setTimeout(()=>{t.abort()},this.defaultOpeningDeadlineMS),yield this.sendRequest({method:"disconnect",params:[]},{onRequestSent:i,signal:t.signal,attempts:1,traceId:n})}catch(a){Re("Disconnect error:",a),r||this.removeBridgeAndSession().then(t)}finally{o&&clearTimeout(o),i()}}))})}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}pause(){var e;null===(e=this.gateway)||void 0===e||e.pause(),this.pendingGateways.forEach(e=>e.pause())}unPause(){return V(this,0,void 0,function*(){const e=this.pendingGateways.map(e=>e.unPause());this.gateway&&e.push(this.gateway.unPause()),yield Promise.all(e)})}pendingGatewaysListener(e,t,n){return V(this,0,void 0,function*(){if(this.pendingGateways.includes(e))return this.closeGateways({except:e}),this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.session.bridgeUrl=t,this.gateway=e,this.gateway.setErrorsListener(this.gatewayErrorsListener.bind(this)),this.gateway.setListener(this.gatewayListener.bind(this)),this.gatewayListener(n);yield e.close()})}gatewayListener(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=e.traceId)&&void 0!==t?t:Pe();let i;try{i=JSON.parse(this.session.sessionCrypto.decrypt(q.decode(e.message).toUint8Array(),K(e.from)))}catch(l){throw null===(n=this.analytics)||void 0===n||n.emitBridgeClientMessageDecodeError({bridge_url:this.session.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:e.from,error_message:String(l),trace_id:null==e?void 0:e.traceId}),l}Re("Wallet message received:",i);const a="event"in i?i.event:"";if(null===(r=this.analytics)||void 0===r||r.emitBridgeClientMessageReceived({bridge_url:this.session.bridgeUrl,client_id:this.session.sessionCrypto.sessionId,wallet_id:e.from,message_id:String(i.id),request_type:a,trace_id:null==e?void 0:e.traceId}),!("event"in i)){const e=i.id.toString(),t=this.pendingRequests.get(e);return t?(t(Object.assign(Object.assign({},i),{traceId:o})),void this.pendingRequests.delete(e)):void Re(`Response id ${e} doesn't match any request's id`)}if(void 0!==i.id){const e=yield this.connectionStorage.getLastWalletEventId();if(void 0!==e&&i.id<=e)return void Te(`Received event id (=${i.id}) must be greater than stored last wallet event id (=${e}) `);"connect"!==i.event&&(yield this.connectionStorage.storeLastWalletEventId(i.id))}const s=this.listeners;"connect"===i.event&&(yield this.updateSession(i,e.from)),"disconnect"===i.event&&(Re("Removing bridge and session: received disconnect event"),yield this.removeBridgeAndSession()),s.forEach(e=>e(Object.assign(Object.assign({},i),{traceId:o})))})}gatewayErrorsListener(e){return V(this,0,void 0,function*(){throw new z(`Bridge error ${JSON.stringify(e)}`)})}updateSession(e,t){return V(this,0,void 0,function*(){this.session=Object.assign(Object.assign({},this.session),{walletPublicKey:t});const n=e.payload.items.find(e=>"ton_addr"===e.name),r=Object.assign(Object.assign({},e),{payload:Object.assign(Object.assign({},e.payload),{items:[n]})});yield this.connectionStorage.storeConnection({type:"http",session:this.session,lastWalletEventId:e.id,connectEvent:r,nextRpcRequestId:0})})}removeBridgeAndSession(){return V(this,0,void 0,function*(){this.closeConnection(),yield this.connectionStorage.removeConnection()})}generateUniversalLink(e,t,n){return be(e)?this.generateTGUniversalLink(e,t,n):this.generateRegularUniversalLink(e,t,n)}generateRegularUniversalLink(e,t,n){const r=new URL(e);return r.searchParams.append("v",2..toString()),r.searchParams.append("id",this.session.sessionCrypto.sessionId),r.searchParams.append("trace_id",n.traceId),r.searchParams.append("r",JSON.stringify(t)),r.toString()}generateTGUniversalLink(e,t,n){const r="tonconnect-"+xe(this.generateRegularUniversalLink("about:blank",t,n).split("?")[1]),o=this.convertToDirectLink(e),i=new URL(o);return i.searchParams.append("startapp",r),i.toString()}convertToDirectLink(e){const t=new URL(e);return t.searchParams.has("attach")&&(t.searchParams.delete("attach"),t.pathname+="/start"),t.toString()}openGateways(e,t){return V(this,0,void 0,function*(){var n;const r=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe();if(Array.isArray(this.walletConnectionSource)){this.pendingGateways.map(e=>e.close().catch()),this.pendingGateways=this.walletConnectionSource.map(t=>{const n=new Ie(this.connectionStorage.storage,t.bridgeUrl,e.sessionId,()=>{},()=>{},this.analyticsManager);return n.setListener(e=>this.pendingGatewaysListener(n,t.bridgeUrl,e)),n});const n=Math.max(this.pendingGateways.length-this.optionalOpenGateways,1);return void(yield function(e,t){return V(this,0,void 0,function*(){if(t<=0)return[];if(t>e.length)throw new RangeError("count cannot be greater than the number of promises");const n=new Array(e.length);let r=0;return new Promise(o=>{e.forEach((e,i)=>{Promise.resolve(e).then(e=>({status:"fulfilled",value:e})).catch(e=>({status:"rejected",reason:e})).then(e=>{n[i]=e,r++,r===t&&o(n)})})})})}(this.pendingGateways.map(e=>Ee(n=>{var o;return this.pendingGateways.some(t=>t===e)?e.registerSession({openingDeadlineMS:null!==(o=null==t?void 0:t.openingDeadlineMS)&&void 0!==o?o:this.defaultOpeningDeadlineMS,signal:n.signal,traceId:r}):e.close()},{attempts:Number.MAX_SAFE_INTEGER,delayMs:this.defaultRetryTimeoutMS,signal:null==t?void 0:t.signal})),n))}return this.gateway&&(Re("Gateway is already opened, closing previous gateway"),yield this.gateway.close()),this.gateway=new Ie(this.connectionStorage.storage,this.walletConnectionSource.bridgeUrl,e.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this),this.analyticsManager),yield this.gateway.registerSession({openingDeadlineMS:null==t?void 0:t.openingDeadlineMS,signal:null==t?void 0:t.signal,traceId:r})})}closeGateways(e){var t;null===(t=this.gateway)||void 0===t||t.close(),this.pendingGateways.filter(t=>t!==(null==e?void 0:e.except)).forEach(e=>e.close()),this.pendingGateways=[]}}function je(e,t){return Be(e,[t])}function Be(e,t){return!(!e||"object"!=typeof e)&&t.every(t=>t in e)}let qe=class e{static getInstance(){return e.instance||(e.instance=new e),e.instance}constructor(){this.storage={}}get length(){return Object.keys(this.storage).length}clear(){this.storage={}}getItem(e){var t;return null!==(t=this.storage[e])&&void 0!==t?t:null}key(e){var t;const n=Object.keys(this.storage);return e<0||e>=n.length?null:null!==(t=n[e])&&void 0!==t?t:null}removeItem(e){delete this.storage[e]}setItem(e,t){this.storage[e]=t}};function $e(){if("undefined"!=typeof window)return window}function Ke(){if("undefined"!=typeof document)return document}function Fe(){var e,t,n,r;const o=null===(t=null===(e=$e())||void 0===e?void 0:e.location)||void 0===t?void 0:t.origin,i=null===(r=null===(n=$e())||void 0===n?void 0:n.location)||void 0===r?void 0:r.pathname;return o&&i?o+i:""}function He(){if(function(){try{return"undefined"!=typeof localStorage}catch(e){return!1}}())return localStorage;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)throw new z("`localStorage` is unavailable, but it is required for TonConnect. For more details, see https://github.com/ton-connect/sdk/tree/main/packages/sdk#init-connector");return qe.getInstance()}class Ve{static fromStorage(e,t){return V(this,0,void 0,function*(){const n=yield e.getInjectedConnection();return new Ve(e,n.jsBridgeKey,t)})}static isWalletInjected(e){return Ve.isWindowContainsWallet(this.window,e)}static isInsideWalletBrowser(e){return!!Ve.isWindowContainsWallet(this.window,e)&&this.window[e].tonconnect.isWalletBrowser}static getCurrentlyInjectedWallets(){if(!this.window)return[];return function(){const e=$e();if(!e)return[];try{return Object.entries(e)}catch(t){return[]}}().filter(([e,t])=>function(e){try{return!(!je(e,"tonconnect")||!je(e.tonconnect,"walletInfo"))&&Be(e.tonconnect.walletInfo,["name","app_name","image","about_url","platforms"])}catch(t){return!1}}(t)).map(([e,t])=>({name:t.tonconnect.walletInfo.name,appName:t.tonconnect.walletInfo.app_name,aboutUrl:t.tonconnect.walletInfo.about_url,imageUrl:t.tonconnect.walletInfo.image,tondns:t.tonconnect.walletInfo.tondns,jsBridgeKey:e,injected:!0,embedded:t.tonconnect.isWalletBrowser,platforms:t.tonconnect.walletInfo.platforms,features:t.tonconnect.walletInfo.features}))}static isWindowContainsWallet(e,t){return!!e&&t in e&&"object"==typeof e[t]&&"tonconnect"in e[t]}constructor(e,t,n){this.connectionStorage=e,this.injectedWalletKey=t,this.type="injected",this.unsubscribeCallback=null,this.listenSubscriptions=!1,this.listeners=[];const r=Ve.window;if(!Ve.isWindowContainsWallet(r,t))throw new X;this.injectedWallet=r[t].tonconnect,n&&(this.analytics=n.scoped({bridge_key:t,wallet_app_name:this.injectedWallet.deviceInfo.appName,wallet_app_version:this.injectedWallet.deviceInfo.appVersion}))}connect(e,t){this._connect(2,e,t)}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r,o;const i=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();try{Re("Injected Provider restoring connection..."),null===(n=this.analytics)||void 0===n||n.emitJsBridgeCall({js_bridge_method:"restoreConnection",trace_id:i});const e=yield this.injectedWallet.restoreConnection();null===(r=this.analytics)||void 0===r||r.emitJsBridgeResponse({js_bridge_method:"restoreConnection",trace_id:i}),Re("Injected Provider restoring connection response",e),"connect"===e.event?(this.makeSubscriptions({traceId:i}),this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:i})))):yield this.connectionStorage.removeConnection()}catch(a){null===(o=this.analytics)||void 0===o||o.emitJsBridgeError({js_bridge_method:"restoreConnection",error_message:String(a),trace_id:i}),yield this.connectionStorage.removeConnection(),console.error(a)}})}closeConnection(){this.listenSubscriptions&&this.injectedWallet.disconnect(),this.closeAllListeners()}disconnect(e){return V(this,0,void 0,function*(){var t;const n=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();return new Promise(e=>{const t=()=>{this.closeAllListeners(),this.connectionStorage.removeConnection().then(e)};try{this.injectedWallet.disconnect(),t()}catch(r){Re(r),this.sendRequest({method:"disconnect",params:[]},{onRequestSent:t,traceId:n})}})})}closeAllListeners(){var e;this.listenSubscriptions=!1,this.listeners=[],null===(e=this.unsubscribeCallback)||void 0===e||e.call(this)}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}sendRequest(e,t){return V(this,0,void 0,function*(){var n,r,o;const i={};"function"==typeof t?(i.onRequestSent=t,i.traceId=Pe()):(i.onRequestSent=null==t?void 0:t.onRequestSent,i.signal=null==t?void 0:t.signal,i.attempts=null==t?void 0:t.attempts,i.traceId=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe());const a=(yield this.connectionStorage.getNextRpcRequestId()).toString();yield this.connectionStorage.increaseNextRpcRequestId(),Re("Send injected-bridge request:",Object.assign(Object.assign({},e),{id:a})),null===(r=this.analytics)||void 0===r||r.emitJsBridgeCall({js_bridge_method:"send"});const s=this.injectedWallet.send(Object.assign(Object.assign({},e),{id:a}));return s.then(e=>{var t;null===(t=this.analytics)||void 0===t||t.emitJsBridgeResponse({js_bridge_method:"send"}),Re("Wallet message received:",e)}).catch(e=>{var t;null===(t=this.analytics)||void 0===t||t.emitJsBridgeError({js_bridge_method:"send",error_message:String(e)})}),null===(o=null==i?void 0:i.onRequestSent)||void 0===o||o.call(i),s})}_connect(e,t,n){return V(this,0,void 0,function*(){var r,o,i,a;const s=null!==(r=null==n?void 0:n.traceId)&&void 0!==r?r:Pe();try{Re(`Injected Provider connect request: protocolVersion: ${e}, message:`,t),null===(o=this.analytics)||void 0===o||o.emitJsBridgeCall({js_bridge_method:"connect",trace_id:s});const n=yield this.injectedWallet.connect(e,t);null===(i=this.analytics)||void 0===i||i.emitJsBridgeResponse({js_bridge_method:"connect"}),Re("Injected Provider connect response:",n),"connect"===n.event&&(yield this.updateSession(),this.makeSubscriptions({traceId:s})),this.listeners.forEach(e=>e(Object.assign(Object.assign({},n),{traceId:s})))}catch(l){null===(a=this.analytics)||void 0===a||a.emitJsBridgeError({js_bridge_method:"connect",error_message:String(l),trace_id:s}),Re("Injected Provider connect error:",l);const e={event:"connect_error",payload:{code:0,message:null==l?void 0:l.toString()}};this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:s})))}})}makeSubscriptions(e){var t,n,r;this.listenSubscriptions=!0,null===(t=this.analytics)||void 0===t||t.emitJsBridgeCall({js_bridge_method:"listen",trace_id:e.traceId});try{this.unsubscribeCallback=this.injectedWallet.listen(e=>{var t;const n=null!==(t=e.traceId)&&void 0!==t?t:Pe();Re("Wallet message received:",e),this.listenSubscriptions&&this.listeners.forEach(t=>t(Object.assign(Object.assign({},e),{traceId:n}))),"disconnect"===e.event&&this.disconnect({traceId:n})}),null===(n=this.analytics)||void 0===n||n.emitJsBridgeResponse({js_bridge_method:"listen",trace_id:e.traceId})}catch(o){throw null===(r=this.analytics)||void 0===r||r.emitJsBridgeError({js_bridge_method:"listen",error_message:String(o),trace_id:e.traceId}),o}}updateSession(){return this.connectionStorage.storeConnection({type:"injected",jsBridgeKey:this.injectedWalletKey,nextRpcRequestId:0})}}Ve.window=$e();class ze{constructor(e,t){this.storage=e,this.walletsListManager=t,this.storeKey="ton-connect-storage_bridge-connection"}storeConnection(e){return V(this,0,void 0,function*(){if("injected"===e.type||"wallet-connect"===e.type)return this.storage.setItem(this.storeKey,JSON.stringify(e));if(!Oe(e)){const t={sessionKeyPair:e.session.sessionCrypto.stringifyKeypair(),walletPublicKey:e.session.walletPublicKey,bridgeUrl:e.session.bridgeUrl},n={type:"http",connectEvent:e.connectEvent,session:t,lastWalletEventId:e.lastWalletEventId,nextRpcRequestId:e.nextRpcRequestId};return this.storage.setItem(this.storeKey,JSON.stringify(n))}const t={type:"http",connectionSource:e.connectionSource,sessionCrypto:e.sessionCrypto.stringifyKeypair(),createdAt:Date.now()};return this.storage.setItem(this.storeKey,JSON.stringify(t))})}removeConnection(){return V(this,0,void 0,function*(){return this.storage.removeItem(this.storeKey)})}getConnection(){return V(this,0,void 0,function*(){try{const e=yield this.storage.getItem(this.storeKey);if(!e)return null;const t=JSON.parse(e);if("injected"===t.type||"wallet-connect"===t.type)return t;if(!function(e){return!("connectEvent"in e)}(t)){const e=new F(t.session.sessionKeyPair);return yield this.actualizeBridgeConnection({type:"http",connectEvent:t.connectEvent,lastWalletEventId:t.lastWalletEventId,nextRpcRequestId:t.nextRpcRequestId,session:{sessionCrypto:e,bridgeUrl:t.session.bridgeUrl,walletPublicKey:t.session.walletPublicKey}})}return function(e){var t;return Date.now()-(null!==(t=e.createdAt)&&void 0!==t?t:0)>3e5}(t)?(yield this.removeConnection(),null):{type:"http",sessionCrypto:new F(t.sessionCrypto),connectionSource:t.connectionSource}}catch(e){return Re("Error retrieving connection",e),null}})}getHttpConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read HTTP connection source while nothing is stored");if("http"!==e.type)throw new z(`Trying to read HTTP connection source while ${e.type} connection is stored`);return e})}getHttpPendingConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read HTTP connection source while nothing is stored");if("http"!==e.type)throw new z(`Trying to read HTTP connection source while ${e.type} connection is stored`);if(!Oe(e))throw new z("Trying to read HTTP-pending connection while http connection is stored");return e})}getInjectedConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read Injected bridge connection source while nothing is stored");if("injected"!==(null==e?void 0:e.type))throw new z(`Trying to read Injected bridge connection source while ${e.type} connection is stored`);return e})}getWalletConnectConnection(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(!e)throw new z("Trying to read wallet connect bridge connection source while nothing is stored");if("wallet-connect"!==(null==e?void 0:e.type))throw new z(`Trying to read wallet connect bridge connection source while ${e.type} connection is stored`);return e})}storedConnectionType(){return V(this,0,void 0,function*(){const e=yield this.storage.getItem(this.storeKey);if(!e)return null;return JSON.parse(e).type})}storeLastWalletEventId(e){return V(this,0,void 0,function*(){const t=yield this.getConnection();if(t&&"http"===t.type&&!Oe(t))return t.lastWalletEventId=e,this.storeConnection(t)})}getLastWalletEventId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(e&&"lastWalletEventId"in e)return e.lastWalletEventId})}increaseNextRpcRequestId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();if(e&&"nextRpcRequestId"in e){const t=e.nextRpcRequestId||0;return e.nextRpcRequestId=t+1,this.storeConnection(e)}})}getNextRpcRequestId(){return V(this,0,void 0,function*(){const e=yield this.getConnection();return e&&"nextRpcRequestId"in e&&e.nextRpcRequestId||0})}actualizeBridgeConnection(e){return V(this,0,void 0,function*(){try{const t=e.connectEvent.payload.device.appName,n=yield this.walletsListManager.getRemoteWallet(t);if(n.bridgeUrl===e.session.bridgeUrl)return e;const r=Object.assign(Object.assign({},e),{session:Object.assign(Object.assign({},e.session),{bridgeUrl:n.bridgeUrl})});return yield this.storeConnection(r),r}catch(t){return Re("Failed to actualize bridge connection",t),e}})}}class Ze{constructor(){this.localStorage=He()}getItem(e){return V(this,0,void 0,function*(){return this.localStorage.getItem(e)})}removeItem(e){return V(this,0,void 0,function*(){this.localStorage.removeItem(e)})}setItem(e,t){return V(this,0,void 0,function*(){this.localStorage.setItem(e,t)})}}function Ge(e){return Qe(e)&&e.injected}function Ye(e){return Ge(e)&&e.embedded}function Qe(e){return"jsBridgeKey"in e}function Je(e){return"bridgeUrl"in e}const Xe=[{app_name:"telegram-wallet",name:"Wallet",image:"https://wallet.tg/images/logo-288.png",about_url:"https://wallet.tg/",universal_url:"https://t.me/wallet?attach=wallet",bridge:[{type:"sse",url:"https://walletbot.me/tonconnect-bridge/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"tonkeeper",name:"Tonkeeper",image:"https://tonkeeper.com/assets/tonconnect-icon.png",tondns:"tonkeeper.ton",about_url:"https://tonkeeper.com",universal_url:"https://app.tonkeeper.com/ton-connect",deepLink:"tonkeeper-tc://",bridge:[{type:"sse",url:"https://bridge.tonapi.io/bridge"},{type:"js",key:"tonkeeper"}],platforms:["ios","android","chrome","firefox","macos"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"mytonwallet",name:"MyTonWallet",image:"https://static.mytonwallet.io/icon-256.png",about_url:"https://mytonwallet.io",universal_url:"https://connect.mytonwallet.org",deepLink:"mytonwallet-tc://",bridge:[{type:"js",key:"mytonwallet"},{type:"sse",url:"https://tonconnectbridge.mytonwallet.org/bridge/"}],platforms:["chrome","windows","macos","linux","ios","android","firefox"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"tonhub",name:"Tonhub",image:"https://tonhub.com/tonconnect_logo.png",about_url:"https://tonhub.com",universal_url:"https://tonhub.com/ton-connect",bridge:[{type:"js",key:"tonhub"},{type:"sse",url:"https://connect.tonhubapi.com/tonconnect"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"bitgetTonWallet",name:"Bitget Wallet",image:"https://raw.githubusercontent.com/bitgetwallet/download/refs/heads/main/logo/png/bitget_wallet_logo_288_mini.png",about_url:"https://web3.bitget.com",deepLink:"bitkeep://",bridge:[{type:"js",key:"bitgetTonWallet"},{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","chrome"],universal_url:"https://bkcode.vip/ton-connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"okxMiniWallet",name:"OKX Mini Wallet",image:"https://static.okx.com/cdn/assets/imgs/2411/8BE1A4A434D8F58A.png",about_url:"https://www.okx.com/web3",universal_url:"https://t.me/OKX_WALLET_BOT?attach=wallet",bridge:[{type:"sse",url:"https://www.okx.com/tonbridge/discover/rpc/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"binanceWeb3TonWallet",name:"Binance Wallet",image:"https://public.bnbstatic.com/static/binance-w3w/ton-provider/binancew3w.png",about_url:"https://www.binance.com/en/web3wallet",deepLink:"bnc://app.binance.com/cedefi/ton-connect",bridge:[{type:"js",key:"binancew3w"},{type:"sse",url:"https://wallet.binance.com/tonbridge/bridge"}],platforms:["ios","android","macos","windows","linux"],universal_url:"https://app.binance.com/cedefi/ton-connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"fintopio-tg",name:"Fintopio",image:"https://raw.githubusercontent.com/fintopio/ton-pub/refs/heads/main/logos/tonconnect-icon.png",about_url:"https://fintopio.com",universal_url:"https://t.me/fintopio?attach=wallet",bridge:[{type:"sse",url:"https://wallet-bridge.fintopio.com/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"okxTonWallet",name:"OKX Wallet",image:"https://static.okx.com/cdn/assets/imgs/247/58E63FEA47A2B7D7.png",about_url:"https://www.okx.com/web3",universal_url:"https://www.okx.com/download?appendQuery=true&deeplink=okx://web3/wallet/tonconnect",bridge:[{type:"js",key:"okxTonWallet"},{type:"sse",url:"https://www.okx.com/tonbridge/discover/rpc/bridge"}],platforms:["chrome","safari","firefox","ios","android"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"hot",name:"HOT",image:"https://raw.githubusercontent.com/hot-dao/media/main/logo.png",about_url:"https://hot-labs.org/",universal_url:"https://t.me/herewalletbot?attach=wallet",bridge:[{type:"sse",url:"https://sse-bridge.hot-labs.org"},{type:"js",key:"hotWallet"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"bybitTonWallet",name:"Bybit Wallet",image:"https://raw.githubusercontent.com/bybit-web3/bybit-web3.github.io/main/docs/images/bybit-logo.png",about_url:"https://www.bybit.com/web3",universal_url:"https://app.bybit.com/ton-connect",deepLink:"bybitapp://",bridge:[{type:"js",key:"bybitTonWallet"},{type:"sse",url:"https://api-node.bybit.com/spot/api/web3/bridge/ton/bridge"}],platforms:["ios","android","chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"dewallet",name:"DeWallet",image:"https://raw.githubusercontent.com/delab-team/manifests-images/main/WalletAvatar.png",about_url:"https://delabwallet.com",universal_url:"https://t.me/dewallet?attach=wallet",bridge:[{type:"sse",url:"https://bridge.dewallet.pro/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"safepalwallet",name:"SafePal",image:"https://s.pvcliping.com/web/public_image/SafePal_x288.png",tondns:"",about_url:"https://www.safepal.com",universal_url:"https://link.safepal.io/ton-connect",deepLink:"safepal-tc://",bridge:[{type:"sse",url:"https://ton-bridge.safepal.com/tonbridge/v1/bridge"},{type:"js",key:"safepalwallet"}],platforms:["ios","android","chrome","firefox"],features:[{name:"SendTransaction",maxMessages:1,extraCurrencySupported:!1}]},{app_name:"GateWallet",name:"GateWallet",image:"https://img.gatedataimg.com/prd-ordinal-imgs/036f07bb8730716e/gateio-0925.png",about_url:"https://www.gate.io/",bridge:[{type:"js",key:"gatetonwallet"},{type:"sse",url:"https://dapp.gateio.services/tonbridge_api/bridge/v1"}],platforms:["ios","android"],universal_url:"https://gate.onelink.me/Hls0/web3?gate_web3_wallet_universal_type=ton_connect",features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"openmask",name:"OpenMask",image:"https://raw.githubusercontent.com/OpenProduct/openmask-extension/main/public/openmask-logo-288.png",about_url:"https://www.openmask.app/",bridge:[{type:"js",key:"openmask"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"BitgetWeb3",name:"BitgetWeb3",image:"https://img.bitgetimg.com/image/third/1731638059795.png",about_url:"https://www.bitget.com",universal_url:"https://t.me/BitgetOfficialBot?attach=wallet",bridge:[{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","windows","macos","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"xtonwallet",name:"XTONWallet",image:"https://xtonwallet.com/assets/img/icon-256-back.png",about_url:"https://xtonwallet.com",bridge:[{type:"js",key:"xtonwallet"}],platforms:["chrome","firefox"],features:[{name:"SendTransaction",maxMessages:1,extraCurrencySupported:!1}]},{app_name:"tonwallet",name:"TON Wallet",image:"https://wallet.ton.org/assets/ui/qr-logo.png",about_url:"https://chrome.google.com/webstore/detail/ton-wallet/nphplpgoakhhjchkkhmiggakijnkhfnd",bridge:[{type:"js",key:"tonwallet"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"bitgetWalletLite",name:"Bitget Wallet Lite",image:"https://raw.githubusercontent.com/bitgetwallet/download/refs/heads/main/logo/png/bitget_wallet_lite_logo_288.png",about_url:"https://web3.bitget.com",universal_url:"https://t.me/BitgetWallet_TGBot?attach=wallet",bridge:[{type:"sse",url:"https://ton-connect-bridge.bgwapi.io/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"tomoWallet",name:"Tomo Wallet",image:"https://pub.tomo.inc/logo.png",about_url:"https://www.tomo.inc/",universal_url:"https://t.me/tomowalletbot?attach=wallet",bridge:[{type:"sse",url:"https://go-bridge.tomo.inc/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"miraiapp-tg",name:"Mirai Mini App",image:"https://cdn.mirailabs.co/miraihub/miraiapp-tg-icon-288.png",about_url:"https://mirai.app",universal_url:"https://t.me/MiraiAppBot?attach=wallet",bridge:[{type:"sse",url:"https://bridge.mirai.app"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"Architec.ton",name:"Architec.ton",image:"https://raw.githubusercontent.com/Architec-Ton/wallet-tma/refs/heads/dev/public/images/arcwallet_logo.png",about_url:"https://architecton.tech",universal_url:"https://t.me/architec_ton_bot?attach=wallet",bridge:[{type:"sse",url:"https://tc.architecton.su/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"tokenpocket",name:"TokenPocket",image:"https://hk.tpstatic.net/logo/tokenpocket.png",about_url:"https://www.tokenpocket.pro",universal_url:"https://tp-lab.tptool.pro/ton-connect/",bridge:[{type:"js",key:"tokenpocket"},{type:"sse",url:"https://ton-connect.mytokenpocket.vip/bridge"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"uxuyWallet",name:"UXUY Wallet",image:"https://chain-cdn.uxuy.com/logo/square_288.png",about_url:"https://docs.uxuy.com",universal_url:"https://t.me/UXUYbot?attach=wallet",bridge:[{type:"sse",url:"https://bridge.uxuy.me/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"tonkeeper-pro",name:"Tonkeeper Pro",image:"https://tonkeeper.com/assets/tonconnect-icon-pro.png",tondns:"tonkeeper.ton",about_url:"https://tonkeeper.com/pro",universal_url:"https://app.tonkeeper.com/pro/ton-connect",deepLink:"tonkeeper-pro-tc://",bridge:[{type:"sse",url:"https://bridge.tonapi.io/bridge"}],platforms:["ios","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!0},{name:"SignData",types:["text","binary","cell"]}]},{app_name:"nicegramWallet",name:"Nicegram Wallet",image:"https://static.nicegram.app/icon.png",about_url:"https://nicegram.app",universal_url:"https://nicegram.app/tc",deepLink:"nicegram-tc://",bridge:[{type:"sse",url:"https://tc.nicegram.app/bridge"},{type:"js",key:"nicegramWallet"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"echoooTonWallet",name:"EchoooWallet",image:"https://cdn.echooo.xyz/front-end/source/images/logo/echooo-ton.png",about_url:"https://www.echooo.xyz",universal_url:"https://www.echooo.xyz/ton-connect",deepLink:"echooo://",bridge:[{type:"js",key:"echoooTonWallet"},{type:"sse",url:"https://ton-connect-bridge.echooo.link/bridge"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"blitzwallet",name:"BLITZ wallet",image:"https://blitzwallet.cfd/wallet/public/logo.png",about_url:"https://blitzwallet.cfd",universal_url:"https://t.me/blitz_wallet_bot?attach=wallet",bridge:[{type:"sse",url:"https://blitzwallet.cfd/bridge/"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]},{app_name:"koloWeb3Wallet",name:"Kolo",image:"https://raw.githubusercontent.com/onidev1/tc-assets/refs/heads/main/kolo_logo_288.png",about_url:"https://kolo.xyz",universal_url:"https://t.me/kolo?attach=wallet",bridge:[{type:"sse",url:"https://web3-bridge.kolo.in/bridge"}],platforms:["ios","android","macos","windows","linux"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"imToken",name:"imToken",image:"https://aws-v2-cdn.token.im/orbit/token-v2/icons/logo-ton-connect.png",about_url:"https://token.im",universal_url:"https://connect.token.im/link/ton-connect",deepLink:"imtokenv2://link/ton-connect",bridge:[{type:"sse",url:"https://connect.token.im/tonbridge"},{type:"js",key:"imToken"}],platforms:["ios","android"],features:[{name:"SendTransaction",maxMessages:255,extraCurrencySupported:!1}]},{app_name:"cactuslink",name:"Cactus Link",image:"https://downloads.mycactus.com/288_cactus_link.png",about_url:"https://www.mycactus.com/defi-connector",bridge:[{type:"js",key:"cactuslink_ton"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1},{name:"SignData",types:["text","binary"]}]},{app_name:"onekey",name:"OneKey",image:"https://uni.onekey-asset.com/static/logo/onekey-x288.png",about_url:"https://onekey.so",bridge:[{type:"js",key:"onekeyTonWallet"}],platforms:["chrome"],features:[{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}]}];let et=!1,tt=null;function nt(){return et}function rt(){if("undefined"==typeof window)return;if(document.getElementById("ton-connect-qa-banner"))return;const e=document.createElement("div");e.id="ton-connect-qa-banner",e.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: linear-gradient(90deg, #ff6b6b, #ff8e8e);\n color: white;\n padding: 12px 20px;\n text-align: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-weight: 600;\n font-size: 14px;\n z-index: 999999;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n animation: slideDown 0.3s ease-out;\n user-select: none;\n pointer-events: none;\n ",e.innerHTML="\n 🚨 QA Mode Active - Validation Disabled (Unsafe for Production)\n ";const t=document.createElement("style");t.textContent="\n @keyframes slideDown {\n from { transform: translateY(-100%); }\n to { transform: translateY(0); }\n }\n ",document.head.appendChild(t),document.body.appendChild(e),ot()}function ot(){if("undefined"==typeof window)return;if(document.getElementById("ton-connect-qa-mode-styles"))return;const e=document.createElement("style");e.id="ton-connect-qa-mode-styles",e.textContent="\n body.qa-mode-active {\n padding-top: 48px !important;\n }\n \n body.qa-mode-active header {\n margin-top: 48px !important;\n }\n \n body.qa-mode-active .qa-mode-control {\n top: 128px !important;\n }\n ",document.head.appendChild(e),document.body.classList.add("qa-mode-active")}class it{constructor(e){var t;this.walletsListDTOCache=null,this.walletsListDTOCacheCreationTimestamp=null,nt()?this.walletsListSource="https://raw.githubusercontent.com/ton-connect/wallets-list-staging/refs/heads/main/wallets-v2.json":this.walletsListSource=null!==(t=null==e?void 0:e.walletsListSource)&&void 0!==t?t:"https://config.ton.org/wallets-v2.json",this.cacheTTLMs=null==e?void 0:e.cacheTTLMs,this.onDownloadDurationMeasured=null==e?void 0:e.onDownloadDurationMeasured}getWallets(){return V(this,0,void 0,function*(){const[e,t]=yield Promise.all([this.fetchWalletsListDTO(),this.getCurrentlyInjectedWallets()]);return this.mergeWalletsLists(this.walletConfigDTOListToWalletConfigList(e),t)})}getEmbeddedWallet(){return V(this,0,void 0,function*(){const e=(yield this.getWallets()).filter(Ye);return 1===e.length?e[0]:null})}fetchWalletsListDTO(){return V(this,0,void 0,function*(){return this.cacheTTLMs&&this.walletsListDTOCacheCreationTimestamp&&Date.now()>this.walletsListDTOCacheCreationTimestamp+this.cacheTTLMs&&(this.walletsListDTOCache=null),this.walletsListDTOCache||(this.walletsListDTOCache=this.fetchWalletsListFromSource(),this.walletsListDTOCache.then(()=>{this.walletsListDTOCacheCreationTimestamp=Date.now()}).catch(()=>{this.walletsListDTOCache=null,this.walletsListDTOCacheCreationTimestamp=null})),this.walletsListDTOCache})}getRemoteWallet(e){return V(this,0,void 0,function*(){const t=(yield this.getWallets()).find(t=>t.appName===e);if(!t)throw new z(`Wallet info not found for appName: "${e}"`);if(!Je(t))throw new z(`Wallet "${e}" is not remote`);return t})}fetchWalletsListFromSource(){return V(this,0,void 0,function*(){var e,t;let n=[];const r=performance.now();try{const t=yield fetch(this.walletsListSource);if(n=yield t.json(),!Array.isArray(n))throw new se("Wrong wallets list format, wallets list must be an array.");const o=n.filter(e=>!this.isCorrectWalletConfigDTO(e));o.length&&(Te(`Wallet(s) ${o.map(e=>(null==e?void 0:e.name)||"unknown").join(", ")} config format is wrong. They were removed from the wallets list.`),n=n.filter(e=>this.isCorrectWalletConfigDTO(e)));const i=performance.now(),a=Math.round(i-r);null===(e=this.onDownloadDurationMeasured)||void 0===e||e.call(this,a)}catch(o){Te(o),n=Xe,null===(t=this.onDownloadDurationMeasured)||void 0===t||t.call(this,void 0)}return n})}getCurrentlyInjectedWallets(){if(!nt())return[];try{return Ve.getCurrentlyInjectedWallets()}catch(e){return Te(e),[]}}walletConfigDTOListToWalletConfigList(e){return e.map(e=>{const t={name:e.name,appName:e.app_name,imageUrl:e.image,aboutUrl:e.about_url,tondns:e.tondns,platforms:e.platforms,features:e.features};return e.bridge.forEach(n=>{if("sse"===n.type&&(t.bridgeUrl=n.url,t.universalLink=e.universal_url,t.deepLink=e.deepLink),"js"===n.type){const e=n.key;t.jsBridgeKey=e,t.injected=Ve.isWalletInjected(e),t.embedded=Ve.isInsideWalletBrowser(e)}}),t})}mergeWalletsLists(e,t){return[...new Set(e.concat(t).map(e=>e.name)).values()].map(n=>{const r=e.find(e=>e.name===n),o=t.find(e=>e.name===n);return Object.assign(Object.assign({},r&&Object.assign({},r)),o&&Object.assign({},o))})}isCorrectWalletConfigDTO(e){if(!e||"object"!=typeof e)return!1;if(!("name"in e&&"image"in e&&"about_url"in e&&"platforms"in e&&"app_name"in e))return!1;if(!e.platforms||!Array.isArray(e.platforms)||!e.platforms.length)return!1;if(!("bridge"in e)||!Array.isArray(e.bridge)||!e.bridge.length)return!1;const t=e.bridge;if(t.some(e=>!e||"object"!=typeof e||!("type"in e)))return!1;const n=t.find(e=>"sse"===e.type);if(n&&("object"!=typeof n||!("url"in n)||!n.url||!e.universal_url))return!1;const r=t.find(e=>"js"===e.type);return!!(!r||"object"==typeof r&&"key"in r&&r.key)}}function at(e,t){const n=e.includes("SendTransaction"),r=lt(e,"SendTransaction"),o={minMessages:t.requiredMessagesNumber,extraCurrencyRequired:t.requireExtraCurrencies};if(!n&&!r)throw new ee("Wallet doesn't support SendTransaction feature.",{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}});if(t.requireExtraCurrencies&&(!r||!r.extraCurrencySupported))throw new ee("Wallet is not able to handle such SendTransaction request. Extra currencies support is required.",{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}});if(r&&void 0!==r.maxMessages){if(r.maxMessages<t.requiredMessagesNumber)throw new ee(`Wallet is not able to handle such SendTransaction request. Max support messages number is ${r.maxMessages}, but ${t.requiredMessagesNumber} is required.`,{cause:{requiredFeature:{featureName:"SendTransaction",value:o}}})}else!function(...e){try{console.warn("[TON_CONNECT_SDK]",...e)}catch(t){}}("Connected wallet didn't provide information about max allowed messages in the SendTransaction request. Request may be rejected by the wallet.")}function st(e,t){if("object"!=typeof t)return!0;const{sendTransaction:n,signData:r}=t;if(n){const t=lt(e,"SendTransaction");if(!t)return!1;if(!function(e,t){const n=void 0===t.minMessages||t.minMessages<=e.maxMessages,r=!t.extraCurrencyRequired||e.extraCurrencySupported;return!(!n||!r)}(t,n))return!1}if(r){const t=lt(e,"SignData");if(!t)return!1;if(!function(e,t){return t.types.every(t=>e.types.includes(t))}(t,r))return!1}return!0}function lt(e,t){return e.find(e=>e&&"object"==typeof e&&e.name===t)}function ct(){return{type:"request-version"}}function dt(e){return{type:"response-version",version:e}}function ut(e){return{ton_connect_sdk_lib:e.ton_connect_sdk_lib,ton_connect_ui_lib:e.ton_connect_ui_lib}}function ht(e,t,n){var r,o,i,a,s,l,c,d,u,h,p;const g=(null===(r=null==t?void 0:t.connectItems)||void 0===r?void 0:r.tonProof)&&"proof"in t.connectItems.tonProof?"ton_proof":"ton_addr";return{wallet_address:null!==(i=null===(o=null==t?void 0:t.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,wallet_state_init:null!==(a=null==t?void 0:t.account.walletStateInit)&&void 0!==a?a:null,wallet_type:null!==(s=null==t?void 0:t.device.appName)&&void 0!==s?s:null,wallet_version:null!==(l=null==t?void 0:t.device.appVersion)&&void 0!==l?l:null,auth_type:g,custom_data:Object.assign({client_id:null!==(c=null==n?void 0:n.clientId)&&void 0!==c?c:null,wallet_id:null!==(d=null==n?void 0:n.walletId)&&void 0!==d?d:null,chain_id:null!==(h=null===(u=null==t?void 0:t.account)||void 0===u?void 0:u.chain)&&void 0!==h?h:null,provider:null!==(p=null==t?void 0:t.provider)&&void 0!==p?p:null},ut(e))}}function pt(e,t){return{type:"connection-started",custom_data:ut(e),trace_id:null!=t?t:null}}function gt(e,t,n,r){return Object.assign({type:"connection-completed",is_success:!0,trace_id:null!=r?r:null},ht(e,t,n))}function ft(e,t,n,r,o){var i,a;return{type:"connection-error",is_success:!1,error_message:t,error_code:null!=n?n:null,trace_id:null!=o?o:null,custom_data:Object.assign({client_id:null!==(i=null==r?void 0:r.clientId)&&void 0!==i?i:null,wallet_id:null!==(a=null==r?void 0:r.walletId)&&void 0!==a?a:null},ut(e))}}function mt(e,t){return{type:"connection-restoring-started",custom_data:ut(e),trace_id:null!=t?t:null}}function wt(e,t,n,r){return Object.assign({type:"connection-restoring-completed",is_success:!0,trace_id:null!=r?r:null},ht(e,t,n))}function vt(e,t,n){return{type:"connection-restoring-error",is_success:!1,error_message:t,trace_id:null!=n?n:null,custom_data:ut(e)}}function yt(e,t){var n,r,o,i;return{valid_until:null!==(n=String(t.validUntil))&&void 0!==n?n:null,from:null!==(i=null!==(r=t.from)&&void 0!==r?r:null===(o=null==e?void 0:e.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,messages:t.messages.map(e=>{var t,n;return{address:null!==(t=e.address)&&void 0!==t?t:null,amount:null!==(n=e.amount)&&void 0!==n?n:null}})}}function bt(e,t,n,r,o){return Object.assign(Object.assign({type:"transaction-sent-for-signature",trace_id:null!=o?o:null},ht(e,t,r)),yt(t,n))}function Ct(e,t,n,r,o,i){return Object.assign(Object.assign({type:"transaction-signed",is_success:!0,signed_transaction:r.boc,trace_id:null!=i?i:null},ht(e,t,o)),yt(t,n))}function xt(e,t,n,r,o,i,a){return Object.assign(Object.assign({type:"transaction-signing-failed",is_success:!1,error_message:r,error_code:null!=o?o:null,trace_id:null!=a?a:null},ht(e,t,i)),function(e,t){var n,r,o,i;return{valid_until:null!==(n=String(t.validUntil))&&void 0!==n?n:null,from:null!==(i=null!==(r=t.from)&&void 0!==r?r:null===(o=null==e?void 0:e.account)||void 0===o?void 0:o.address)&&void 0!==i?i:null,messages:t.messages.map(e=>{var t,n,r,o;return{address:null!==(t=e.address)&&void 0!==t?t:null,amount:null!==(n=e.amount)&&void 0!==n?n:null,payload:null!==(r=e.payload)&&void 0!==r?r:null,state_init:null!==(o=e.stateInit)&&void 0!==o?o:null}})}}(t,n))}function St(e,t,n,r,o){return Object.assign({type:"sign-data-request-initiated",data:n,trace_id:null!=o?o:null},ht(e,t,r))}function kt(e,t,n,r,o,i){return Object.assign({type:"sign-data-request-completed",is_success:!0,data:n,signed_data:r,trace_id:null!=i?i:null},ht(e,t,o))}function _t(e,t,n,r,o,i,a){return Object.assign({type:"sign-data-request-failed",is_success:!1,data:n,error_message:r,error_code:null!=o?o:null,trace_id:null!=a?a:null},ht(e,t,i))}function Et(e,t,n,r,o){return Object.assign({type:"disconnection",scope:n,trace_id:null!=o?o:null},ht(e,t,r))}function Rt(e,t,n,r){return{type:"wallet-modal-opened",visible_wallets:t,client_id:null!=n?n:null,custom_data:e,trace_id:null!=r?r:null}}function Tt(e,t,n,r,o,i,a,s){var l;let c=i;return!c&&o&&(c=be(o)?"tg_link":"external_link"),{type:"selected-wallet",wallets_menu:r,visible_wallets:t,client_id:null!=a?a:null,custom_data:e,trace_id:null!=s?s:null,wallet_redirect_method:c,wallet_redirect_link:o||void 0,wallet_type:null!==(l=null==n?void 0:n.appName)&&void 0!==l?l:null}}class It{get version(){return ut({ton_connect_sdk_lib:this.tonConnectSdkVersion,ton_connect_ui_lib:this.tonConnectUiVersion})}constructor(e){this.eventPrefix="ton-connect-",this.tonConnectUiVersion=null,this.eventDispatcher=null==e?void 0:e.eventDispatcher,this.tonConnectSdkVersion=e.tonConnectSdkVersion,this.init().catch()}init(){return V(this,0,void 0,function*(){try{yield this.setRequestVersionHandler(),this.tonConnectUiVersion=yield this.requestTonConnectUiVersion()}catch(e){}})}setRequestVersionHandler(){return V(this,0,void 0,function*(){yield this.eventDispatcher.addEventListener("ton-connect-request-version",()=>V(this,0,void 0,function*(){yield this.eventDispatcher.dispatchEvent("ton-connect-response-version",dt(this.tonConnectSdkVersion))}))})}requestTonConnectUiVersion(){return V(this,0,void 0,function*(){return new Promise((e,t)=>V(this,0,void 0,function*(){try{yield this.eventDispatcher.addEventListener("ton-connect-ui-response-version",t=>{e(t.detail.version)},{once:!0}),yield this.eventDispatcher.dispatchEvent("ton-connect-ui-request-version",{type:"request-version"})}catch(n){t(n)}}))})}dispatchUserActionEvent(e){try{this.eventDispatcher.dispatchEvent(`${this.eventPrefix}${e.type}`,e).catch()}catch(t){}}trackConnectionStarted(...e){try{const t=pt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionCompleted(...e){try{const t=gt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionError(...e){try{const t=ft(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringStarted(...e){try{const t=mt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringCompleted(...e){try{const t=wt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackConnectionRestoringError(...e){try{const t=vt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDisconnection(...e){try{const t=Et(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSentForSignature(...e){try{const t=bt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSigned(...e){try{const t=Ct(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackTransactionSigningFailed(...e){try{const t=xt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSentForSignature(...e){try{const t=St(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSigned(...e){try{const t=kt(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}trackDataSigningFailed(...e){try{const t=_t(this.version,...e);this.dispatchUserActionEvent(t)}catch(t){}}}const Ot="3.4.1";function Mt(e,t=!1){const{wc:n,hex:r}=Nt(e);let o=81;t&&(o|=128);const i=new Int8Array(34);i[0]=o,i[1]=n,i.set(r,2);const a=new Uint8Array(36);return a.set(i),a.set(Wt(i),34),q.encode(a).replace(/\+/g,"-").replace(/\//g,"_")}function At(e){try{return Lt(e),!0}catch(t){return!1}}function Lt(e){const t=e.replace(/-/g,"+").replace(/_/g,"/");let n;try{n=q.decode(t).toUint8Array()}catch(u){throw new le(`Invalid base64 encoding in address: ${e}`)}if(36!==n.length)throw new le(`Invalid address length: ${e}`);const r=n.slice(0,34),o=n.slice(34,36),i=Wt(r);if(!o.every((e,t)=>e===i[t]))throw new le(`Invalid checksum in address: ${e}`);let a=r[0],s=!1,l=!1;if(128&a&&(s=!0,a^=128),17!==a&&81!==a)throw new le(`Unknown address tag: ${a}`);l=17===a;let c=null;c=255===r[1]?-1:r[1];const d=r.slice(2);if(0!==c&&-1!==c)throw new le(`Invalid workchain: ${c}`);return{wc:c,hex:Array.from(d).map(e=>e.toString(16).padStart(2,"0")).join(""),testOnly:s,isBounceable:l}}function Nt(e){if(!e.includes(":"))throw new le(`Wrong address ${e}. Address must include ":".`);const t=e.split(":");if(2!==t.length)throw new le(`Wrong address ${e}. Address must include ":" only once.`);const n=parseInt(t[0]);if(0!==n&&-1!==n)throw new le(`Wrong address ${e}. WC must be eq 0 or -1, but ${n} received.`);const r=t[1];if(64!==(null==r?void 0:r.length))throw new le(`Wrong address ${e}. Hex part must be 64bytes length, but ${null==r?void 0:r.length} received.`);return{wc:n,hex:Ut(r)}}function Wt(e){let t=0;const n=new Uint8Array(e.length+2);n.set(e);for(let r of n){let e=128;for(;e>0;)t<<=1,r&e&&(t+=1),e>>=1,t>65535&&(t&=65535,t^=4129)}return new Uint8Array([Math.floor(t/256),t%256])}const Pt={};for(let zp=0;zp<=255;zp++){let e=zp.toString(16);e.length<2&&(e="0"+e),Pt[e]=zp}function Ut(e){const t=(e=e.toLowerCase()).length;if(t%2!=0)throw new ce("Hex string must have length a multiple of 2: "+e);const n=t/2,r=new Uint8Array(n);for(let o=0;o<n;o++){const t=2*o,n=e.substring(t,t+2);if(!Pt.hasOwnProperty(n))throw new ce("Invalid hex character: "+n);r[o]=Pt[n]}return r}const Dt=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,jt=/^[A-Za-z0-9\-_]+$/,Bt=/^-?\d+$/,qt=/^\d+$/;function $t(e){return"number"==typeof e&&!isNaN(e)}function Kt(e){return"string"==typeof e&&e.length>0}function Ft(e){return Kt(e)&&(function(e){try{return Nt(e),!0}catch(t){return!1}}(e)||At(e))}function Ht(e){return Kt(e)&&/^-?\d+$/.test(e)}function Vt(e){return"string"==typeof e&&(Dt.test(e)||jt.test(e))&&e.startsWith("te6cc")}function zt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Zt(e,t){return Object.keys(e).some(e=>!t.includes(e))}function Gt(e){if(!zt(e))return"Request must be an object";if(Zt(e,["validUntil","network","from","messages"]))return"Request contains extra properties";if(e.validUntil){if(!$t(e.validUntil))return"Incorrect 'validUntil'";const t=Math.floor(Date.now()/1e3),n=t+300;e.validUntil>n&&console.warn(`validUntil (${e.validUntil}) is more than 5 minutes from now (${t})`)}if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from' address format";if(t=e.messages,!Array.isArray(t)||0===e.messages.length)return"'messages' is required";var t;for(let n=0;n<e.messages.length;n++){const t=Yt(e.messages[n],n);if(t)return t}return null}function Yt(e,t){if(!zt(e))return`Message at index ${t} must be an object`;if(Zt(e,["address","amount","stateInit","payload","extraCurrency"]))return`Message at index ${t} contains extra properties`;if(!Kt(e.address))return`'address' is required in message at index ${t}`;if(!At(e.address))return`Wrong 'address' format in message at index ${t}`;if(!Kt(e.amount))return`'amount' is required in message at index ${t}`;if(!/^[0-9]+$/.test(e.amount))return`Incorrect 'amount' in message at index ${t}`;if(!(void 0===e.stateInit||Kt(e.stateInit)&&Vt(e.stateInit)))return`Invalid 'stateInit' in message at index ${t}`;if(!(void 0===e.payload||Kt(e.payload)&&Vt(e.payload)))return`Invalid 'payload' in message at index ${t}`;if(void 0!==e.extraCurrency){if(!zt(e.extraCurrency))return`Invalid 'extraCurrency' in message at index ${t}`;for(const[n,r]of Object.entries(e.extraCurrency))if(!Bt.test(n)||"string"!=typeof r||!qt.test(r))return`Invalid 'extraCurrency' format in message at index ${t}`}return null}function Qt(e){if(!zt(e))return"Request must be an object";if(Zt(e,["tonProof"]))return"Request contains extra properties";if(void 0!==e.tonProof){if("string"!=typeof e.tonProof)return"Invalid 'tonProof'";const t=e.tonProof;if(0===t.length)return"Empty 'tonProof' payload";const n=function(){try{return"undefined"!=typeof window&&window.location?window.location.hostname:null}catch(e){return null}}();if(!n)return null;const r=(new TextEncoder).encode(n).length;if(r>128)return"Current domain exceeds 128 bytes limit";const o=(new TextEncoder).encode(t).length;if(o>128)return"'tonProof' payload exceeds 128 bytes limit";if(r+o>222)return"'tonProof' domain + payload exceeds 222 bytes limit"}return null}function Jt(e){if(!zt(e))return"Payload must be an object";if(!Kt(e.type))return"'type' is required";switch(e.type){case"text":return function(e){if(Zt(e,["type","text","network","from"]))return"Text payload contains extra properties";if(!Kt(e.text))return"'text' is required";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);case"binary":return function(e){if(Zt(e,["type","bytes","network","from"]))return"Binary payload contains extra properties";if(!Kt(e.bytes))return"'bytes' is required";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);case"cell":return function(e){if(Zt(e,["type","schema","cell","network","from"]))return"Cell payload contains extra properties";if(!Kt(e.schema))return"'schema' is required";if(!Kt(e.cell))return"'cell' is required";if(!Vt(e.cell))return"Invalid 'cell' format (must be valid base64)";if(void 0!==e.network&&!Ht(e.network))return"Invalid 'network' format";if(void 0!==e.from&&!Ft(e.from))return"Invalid 'from'";return null}(e);default:return"Invalid 'type' value"}}function Xt(e){if("string"!=typeof e)return;const t=e.length+(4-e.length%4)%4;return e.replace(/-/g,"+").replace(/_/g,"/").padEnd(t,"=")}class en{constructor(e={}){var t,n,r,o,i,a;this.events=[],this.timeoutId=null,this.isProcessing=!1,this.backoff=1,this.shouldSend=!0,this.batchTimeoutMs=null!==(t=e.batchTimeoutMs)&&void 0!==t?t:2e3,this.currentBatchTimeoutMs=this.batchTimeoutMs,this.maxBatchSize=null!==(n=e.maxBatchSize)&&void 0!==n?n:100,this.analyticsUrl=null!==(r=e.analyticsUrl)&&void 0!==r?r:"https://analytics.ton.org/events",this.mode=null!==(o=e.mode)&&void 0!==o?o:"telemetry",this.baseEvent=Object.assign({subsystem:"dapp-sdk",version:Ot,client_environment:null===(a=null===(i=e.environment)||void 0===i?void 0:i.getClientEnvironment)||void 0===a?void 0:a.call(i)},function(){const e={};try{const t=performance.getEntriesByType("navigation");if(t.length>0){const n=t[0];n.responseStart&&n.requestStart&&(e.conn_ttfb=Math.round(n.responseStart-n.requestStart))}}catch(t){}return e}()),this.addWindowFocusAndBlurSubscriptions()}scoped(e){return new Proxy(this,{get(t,n){const r=n.toString();if(r.startsWith("emit")){const n=r.replace("emit",""),o=n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();return function(n){const r=Object.fromEntries(Object.entries(null!=e?e:{}).map(([e,t])=>[e,"function"==typeof t?t():t]));return t.emit(Object.assign(Object.assign({event_name:o},r),n))}}return t[n]}})}emit(e){var t;if("off"===this.mode)return;const n=null!==(t=e.trace_id)&&void 0!==t?t:Pe(),r=function(){const e={};try{const t=navigator,n=t.connection||t.mozConnection||t.webkitConnection;n&&(void 0!==n.rtt&&(e.conn_rtt=n.rtt),n.effectiveType?e.conn_network_type=n.effectiveType:n.type&&(e.conn_network_type=n.type))}catch(t){}return e}(),o=Object.assign(Object.assign(Object.assign(Object.assign({},this.baseEvent),r),e),{event_id:Pe(),client_timestamp:Math.floor(Date.now()/1e3),trace_id:n}),i="telemetry"===this.mode?this.filterFullModeFields(o):o;nt()&&Re(i),this.events.push(i),this.events.length>=this.maxBatchSize?this.flush():this.startTimeout()}startTimeout(){this.timeoutId||this.isProcessing||(this.timeoutId=setTimeout(()=>{this.flush()},this.currentBatchTimeoutMs))}flush(){return V(this,0,void 0,function*(){if(this.isProcessing||0===this.events.length||!this.shouldSend)return;this.clearTimeout(),this.isProcessing=!0;const e=this.extractEventsToSend();try{yield this.processEventsBatch(e),Re("Analytics events sent successfully")}catch(t){this.restoreEvents(e),Te("Failed to send analytics events:",t)}finally{this.isProcessing=!1,this.scheduleNextFlushIfNeeded()}})}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}extractEventsToSend(){const e=this.events.slice(0,this.maxBatchSize);return this.events=this.events.slice(this.maxBatchSize),e}processEventsBatch(e){return V(this,0,void 0,function*(){Re("Sending analytics events...",e.length);try{const t=yield this.sendEvents(e);this.handleResponse(t)}catch(t){this.handleUnknownError(t)}})}handleResponse(e){const{status:t,statusText:n}=e;this.isTooManyRequests(t)?this.handleTooManyRequests(t,n):this.isClientError(t)?this.handleClientError(t,n):this.isServerError(t)&&this.handleUnknownError({status:t,statusText:n})}restoreEvents(e){this.events.unshift(...e)}scheduleNextFlushIfNeeded(){this.events.length>0&&this.startTimeout()}sendEvents(e){return V(this,0,void 0,function*(){return yield fetch(this.analyticsUrl,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Timestamp":Math.floor(Date.now()/1e3).toString()},body:JSON.stringify(e)})})}isClientError(e){return e>=en.HTTP_STATUS.CLIENT_ERROR_START&&e<en.HTTP_STATUS.SERVER_ERROR_START}isServerError(e){return e>=en.HTTP_STATUS.SERVER_ERROR_START}isTooManyRequests(e){return e===en.HTTP_STATUS.TOO_MANY_REQUESTS}handleClientError(e,t){Te("Failed to send analytics events:",new z(`Analytics API error: ${e} ${t}`))}handleUnknownError(e){if(this.backoff<en.MAX_BACKOFF_ATTEMPTS)throw this.backoff++,this.currentBatchTimeoutMs*=en.BACKOFF_MULTIPLIER,new z(`Unknown analytics API error: ${e}`);return this.currentBatchTimeoutMs=this.batchTimeoutMs,void(this.backoff=1)}handleTooManyRequests(e,t){throw new z(`Analytics API error: ${e} ${t}`)}addWindowFocusAndBlurSubscriptions(){const e=Ke();if(e)try{e.addEventListener("visibilitychange",()=>{e.hidden?(this.clearTimeout(),this.shouldSend=!1):(this.shouldSend=!0,this.scheduleNextFlushIfNeeded())})}catch(t){Te("Cannot subscribe to the document.visibilitychange: ",t)}}getMode(){return this.mode}getPendingEventsCount(){return this.events.length}filterFullModeFields(e){const t=Object.assign({},e);for(const r of en.FULL_MODE_FIELDS)delete t[r];const n="event_name"in e?String(e.event_name):"";return!("error_code"in e||"error_message"in e||n.includes("error")||"connection-error"===n||"transaction-signing-failed"===n||"sign-data-request-failed"===n)&&"wallet_address"in t&&delete t.wallet_address,t}setWalletListDownloadDuration(e){this.baseEvent=Object.assign(Object.assign({},this.baseEvent),{wallet_list_download_duration:e})}}en.HTTP_STATUS={TOO_MANY_REQUESTS:429,CLIENT_ERROR_START:400,SERVER_ERROR_START:500},en.MAX_BACKOFF_ATTEMPTS=5,en.BACKOFF_MULTIPLIER=2,en.FULL_MODE_FIELDS=["user_id","tg_id","locale","tma_is_premium"];class tn{constructor(){this.window=$e()}dispatchEvent(e,t){return V(this,0,void 0,function*(){var n;const r=new CustomEvent(e,{detail:t});null===(n=this.window)||void 0===n||n.dispatchEvent(r)})}addEventListener(e,t,n){return V(this,0,void 0,function*(){var r;return null===(r=this.window)||void 0===r||r.addEventListener(e,t,n),()=>{var n;return null===(n=this.window)||void 0===n?void 0:n.removeEventListener(e,t)}})}}function nn(e){return{"@tonconnect/sdk":e.ton_connect_sdk_lib||"","@tonconnect/ui":e.ton_connect_ui_lib||""}}function rn(e){var t,n,r,o,i,a,s,l;return{versions:nn(e.custom_data),network_id:null!==(t=e.custom_data.chain_id)&&void 0!==t?t:"",client_id:null!==(n=e.custom_data.client_id)&&void 0!==n?n:"",wallet_id:null!==(r=e.custom_data.wallet_id)&&void 0!==r?r:"",wallet_address:null!==(o=e.wallet_address)&&void 0!==o?o:"",wallet_app_name:null!==(i=e.wallet_type)&&void 0!==i?i:"",wallet_app_version:null!==(a=e.wallet_version)&&void 0!==a?a:"",wallet_state_init:null!==(s=e.wallet_state_init)&&void 0!==s?s:"",trace_id:null!==(l=e.trace_id)&&void 0!==l?l:void 0}}class on{getClientEnvironment(){return""}getBrowser(){return""}getLocale(){return""}getPlatform(){return""}getTelegramUser(){}}const an={};function sn(){return void 0!==an.UniversalConnectorCls&&void 0!==an.walletConnectOptions}const ln="0";class cn{constructor(e){this.connectionStorage=e,this.type="injected",this.listeners=[],this.connector=void 0;const{projectId:t,metadata:n}=function(){if(void 0===an.walletConnectOptions)throw new z("Wallet Connect is not initialized.");return an.walletConnectOptions}();this.config={networks:[{namespace:"ton",chains:[{id:-239,chainNamespace:"ton",caipNetworkId:"ton:-239",name:"TON",nativeCurrency:{name:"TON",symbol:"TON",decimals:9},rpcUrls:{default:{http:[]}}},{id:-3,chainNamespace:"ton",caipNetworkId:"ton:-3",name:"TON",nativeCurrency:{name:"TON",symbol:"TON",decimals:9},rpcUrls:{default:{http:[]}}}],methods:["ton_sendMessage","ton_signData"],events:[]}],projectId:t,metadata:n}}static fromStorage(e){return V(this,0,void 0,function*(){return new cn(e)})}initialize(){return V(this,0,void 0,function*(){return this.connector||(this.connector=yield function(){if(void 0===an.UniversalConnectorCls)throw new z("Wallet Connect is not initialized.");return an.UniversalConnectorCls}().init(this.config)),this.connector})}connect(e,t){var n,r;const o=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe(),i=_e(null==t?void 0:t.signal);null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=i,this._connect(e,{traceId:o,signal:i.signal,abortController:i}).catch(e=>Re("WalletConnect connect unexpected error",e))}_connect(t,n){return V(this,0,void 0,function*(){var r,o;const i=yield this.initialize();if(null===(r=n.signal)||void 0===r?void 0:r.aborted)return Re("WalletConnect connect aborted before start"),void this.clearAbortController(n.abortController);const a=t.items.find(e=>"ton_proof"===e.name),s=a?[{domain:new URL(this.config.metadata.url).hostname,chains:["ton:-239"],nonce:"",uri:"ton_proof",ttl:0,statement:a.payload}]:void 0;Re("Connecting through this.connector.connect");try{yield i.connect({authentication:s})}catch(l){if(null===(o=n.signal)||void 0===o?void 0:o.aborted)return Re("WalletConnect connect aborted via signal"),void this.clearAbortController(n.abortController);Re("WalletConnect connect error",l);const t={id:0,event:"connect_error",traceId:n.traceId,payload:{code:e.CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR,message:"User declined the connection"}};return Re("WalletConnect connect response:",t),this.emit(t),void this.clearAbortController(n.abortController)}Re("Connected through this.connector.connect");try{yield this.onConnect(i,Object.assign(Object.assign({},n),{includeTonProof:!0}))}catch(l){Re("WalletConnect onConnect error",l),yield this.disconnect({traceId:n.traceId,signal:n.signal})}finally{this.clearAbortController(n.abortController)}})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n;const r=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe(),o=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=o,!o.signal.aborted)try{Re("Restoring WalletConnect connection...");if(!(yield this.connectionStorage.getWalletConnectConnection())||o.signal.aborted)return;const e=yield this.initialize();if(o.signal.aborted)return;yield this.onConnect(e,{includeTonProof:!1,traceId:r,signal:o.signal}),Re("WalletConnect successfully restored.")}catch(i){Re("WalletConnect restore error",i),yield this.disconnect({traceId:r,signal:o.signal})}finally{this.clearAbortController(o)}})}closeConnection(){var e;null===(e=this.abortController)||void 0===e||e.abort(),this.abortController=void 0,this.disconnect()}disconnect(e){return V(this,0,void 0,function*(){var t,n;const r=_e(null==e?void 0:e.signal);if(null===(t=this.abortController)||void 0===t||t.abort(),this.abortController=r,!r.signal.aborted)try{if(yield this.connectionStorage.removeConnection(),r.signal.aborted)return;yield null===(n=this.connector)||void 0===n?void 0:n.disconnect()}catch(o){Re("WalletConnect disconnect error",o)}finally{this.clearAbortController(r)}})}sendRequest(e,t){return V(this,0,void 0,function*(){var n,r,o,i;if(!this.connector)throw new z("Wallet Connect not initialized");const a={};"function"==typeof t?a.onRequestSent=t:(a.onRequestSent=null==t?void 0:t.onRequestSent,a.signal=null==t?void 0:t.signal,a.attempts=null==t?void 0:t.attempts,a.traceId=null==t?void 0:t.traceId),null!==(n=a.traceId)&&void 0!==n||(a.traceId=Pe());try{if(null===(r=a.signal)||void 0===r?void 0:r.aborted)throw new z("WalletConnect request aborted");if(Re("Send wallet-connect request:",Object.assign(Object.assign({},e),{id:ln})),"sendTransaction"===e.method){const t=JSON.parse(e.params[0]),{network:n}=t,r=H(t,["network"]),i=this.connector.request({method:"ton_sendMessage",params:r},`ton:${n}`);null===(o=null==a?void 0:a.onRequestSent)||void 0===o||o.call(a);const s=yield i;return Re("Wallet message received:",{result:s,id:ln}),{result:s,id:ln,traceId:a.traceId}}if("signData"===e.method){const t=JSON.parse(e.params[0]),{network:n}=t,r=H(t,["network"]),o=this.connector.request({method:"ton_signData",params:r},`ton:${n}`);null===(i=null==a?void 0:a.onRequestSent)||void 0===i||i.call(a);const s=yield o;return Re("Wallet message received:",{result:s,id:ln}),{result:s,traceId:a.traceId,id:ln}}if("disconnect"===e.method)return{id:ln,traceId:a.traceId}}catch(s){Re("WalletConnect request error",s,s.stack);const e=yield this.handleWalletConnectError(s,{traceId:a.traceId});return Re("Wallet message received:",e),e}return{id:ln,error:{code:D.UNKNOWN_ERROR,message:"Not implemented."},traceId:a.traceId}})}handleWalletConnectError(t,n){return V(this,0,void 0,function*(){if("object"==typeof t&&null!==t){const r=String("message"in t?t.message:"msg"in t?t.msg:t);return r.toLowerCase().includes("reject")?{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR,message:r}}:r.toLowerCase().includes("tonvalidationerror")?{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR,message:r}}:{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR,message:r}}}return{id:ln,traceId:n.traceId,error:{code:e.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR,message:String(t)}}})}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter(t=>t!==e)}buildTonProof(e){var t,n,r;const o=null===(t=e.provider.session.authentication)||void 0===t?void 0:t[0],i=null===(n=null==o?void 0:o.p)||void 0===n?void 0:n.iat,a=null===(r=null==o?void 0:o.p)||void 0===r?void 0:r.statement;if(!i||!a)return;const s=o.p.domain;return{name:"ton_proof",proof:{timestamp:Math.floor(new Date(i).getTime()/1e3),domain:{lengthBytes:s.length,value:s},payload:a,signature:o.s.s}}}onConnect(t,n){return V(this,0,void 0,function*(){var r,o,i,a;if(null===(r=n.signal)||void 0===r?void 0:r.aborted)return void Re("WalletConnect onConnect aborted");const s=t.provider.session,l=s.namespaces.ton;if(!(null===(o=null==l?void 0:l.accounts)||void 0===o?void 0:o[0]))return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No TON accounts connected."}));const c=l.accounts[0],[,d,u]=c.split(":",3),h=null===(i=s.sessionProperties)||void 0===i?void 0:i.ton_getPublicKey;if(!h)return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No sessionProperties.ton_getPublicKey provided."}));const p=null===(a=s.sessionProperties)||void 0===a?void 0:a.ton_getStateInit;if(!p)return void(yield this.disconnectWithError({traceId:n.traceId,code:e.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR,message:"Connection error. No sessionProperties.ton_getStateInit provided."}));t.provider.once("session_delete",()=>V(this,0,void 0,function*(){try{yield this.connectionStorage.removeConnection();const e={event:"disconnect",traceId:Pe(),payload:{}};Re("Wallet message received:",e),this.emit(e)}catch(e){Re("Error while deleting session",e)}}));const g=(null==n?void 0:n.includeTonProof)?this.buildTonProof(t):void 0,f={items:[{name:"ton_addr",address:At(u)?function({wc:e,hex:t}){return`${e}:${t}`}(Lt(u)):u,network:d,publicKey:h,walletStateInit:p},...g?[g]:[]],device:{appName:"wallet_connect",appVersion:"",maxProtocolVersion:2,features:this.buildFeatureList(l.methods),platform:"browser"}};Re("WalletConnect connect response:",{event:"connect",payload:f,id:0}),this.emit({event:"connect",payload:f,traceId:n.traceId}),yield this.storeConnection()})}buildFeatureList(e){const t=[];return e.includes("ton_sendMessage")&&t.push("SendTransaction",{name:"SendTransaction",maxMessages:4,extraCurrencySupported:!1}),e.includes("ton_signData")&&t.push({name:"SignData",types:["text","binary","cell"]}),t}disconnectWithError(e){return V(this,0,void 0,function*(){yield this.disconnect();const t={code:e.code,message:e.message};Re("WalletConnect connect response:",{event:"connect_error",id:0,payload:t}),this.emit({event:"connect_error",traceId:e.traceId,payload:t})})}clearAbortController(e){this.abortController===e&&(this.abortController=void 0)}emit(e,t){(null!=t?t:this.listeners).forEach(t=>t(e))}storeConnection(){return this.connectionStorage.storeConnection({type:"wallet-connect"})}}class dn{static getWallets(){return this.walletsList.getWallets()}get connected(){return null!==this._wallet}get account(){var e;return(null===(e=this._wallet)||void 0===e?void 0:e.account)||null}get wallet(){return this._wallet}set wallet(e){this._wallet=e,this.statusChangeSubscriptions.forEach(e=>e(this._wallet))}constructor(e){var t,n,r;this._wallet=null,this.provider=null,this.statusChangeSubscriptions=[],this.statusChangeErrorSubscriptions=[];const o=(null==e?void 0:e.manifestUrl)||function(){var e;const t=null===(e=$e())||void 0===e?void 0:e.location.origin;return t?t+"/tonconnect-manifest.json":""}();this.dappSettings={manifestUrl:o,storage:(null==e?void 0:e.storage)||new Ze},this.walletsRequiredFeatures=null==e?void 0:e.walletsRequiredFeatures,this.environment=null!==(t=null==e?void 0:e.environment)&&void 0!==t?t:new on,this.walletsList=new it({walletsListSource:null==e?void 0:e.walletsListSource,cacheTTLMs:null==e?void 0:e.walletsListCacheTTLMs,onDownloadDurationMeasured:e=>{var t;null===(t=this.analytics)||void 0===t||t.setWalletListDownloadDuration(e)}});const i=null!==(n=null==e?void 0:e.eventDispatcher)&&void 0!==n?n:new tn;if(this.tracker=new It({eventDispatcher:i,tonConnectSdkVersion:Ot}),this.environment=null!==(r=null==e?void 0:e.environment)&&void 0!==r?r:new on,this.initAnalytics(o,i,e),!this.dappSettings.manifestUrl)throw new Z("Dapp tonconnect-manifest.json must be specified if window.location.origin is undefined. See more https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest");this.bridgeConnectionStorage=new ze(this.dappSettings.storage,this.walletsList),(null==e?void 0:e.disableAutoPauseConnection)||this.addWindowFocusAndBlurSubscriptions()}getWallets(){return this.walletsList.getWallets()}onStatusChange(e,t){return this.statusChangeSubscriptions.push(e),t&&this.statusChangeErrorSubscriptions.push(t),()=>{this.statusChangeSubscriptions=this.statusChangeSubscriptions.filter(t=>t!==e),t&&(this.statusChangeErrorSubscriptions=this.statusChangeErrorSubscriptions.filter(e=>e!==t))}}connect(e,t,n){var r,o,i;const a=Object.assign({},n);if("object"==typeof t&&null!==t&&"tonProof"in t&&(a.request=t),"object"==typeof t&&null!==t&&("openingDeadlineMS"in t||"signal"in t||"request"in t||"traceId"in t)&&(a.request=null==t?void 0:t.request,a.openingDeadlineMS=null==t?void 0:t.openingDeadlineMS,a.signal=null==t?void 0:t.signal),a.request){const e=Qt(a.request);if(e){if(!nt())throw new z("ConnectAdditionalRequest validation failed: "+e);console.error("ConnectAdditionalRequest validation failed: "+e)}}if(this.connected)throw new Q;const s=_e(null==a?void 0:a.signal);if(null===(r=this.abortController)||void 0===r||r.abort(),this.abortController=s,s.signal.aborted)throw new z("Connection was aborted");null===(o=this.provider)||void 0===o||o.closeConnection(),this.provider=this.createProvider(e),s.signal.addEventListener("abort",()=>{var e;null===(e=this.provider)||void 0===e||e.closeConnection(),this.provider=null});const l=null!==(i=null==a?void 0:a.traceId)&&void 0!==i?i:Pe();return this.tracker.trackConnectionStarted(l),this.provider.connect(this.createConnectRequest(null==a?void 0:a.request),{openingDeadlineMS:null==a?void 0:a.openingDeadlineMS,signal:s.signal,traceId:l})}restoreConnection(e){return V(this,0,void 0,function*(){var t,n,r;const o=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();this.tracker.trackConnectionRestoringStarted(o);const i=_e(null==e?void 0:e.signal);if(null===(n=this.abortController)||void 0===n||n.abort(),this.abortController=i,i.signal.aborted)return void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);const[a,s]=yield Promise.all([this.bridgeConnectionStorage.storedConnectionType(),this.walletsList.getEmbeddedWallet()]);if(i.signal.aborted)return void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);let l=null;try{switch(a){case"http":l=yield De.fromStorage(this.bridgeConnectionStorage,this.analytics);break;case"injected":l=yield Ve.fromStorage(this.bridgeConnectionStorage,this.analytics);break;case"wallet-connect":l=yield cn.fromStorage(this.bridgeConnectionStorage);break;default:if(!s)return;l=this.createProvider(s)}}catch(h){return Re("Provider is not restored",h),this.tracker.trackConnectionRestoringError("Provider is not restored",o),yield this.bridgeConnectionStorage.removeConnection(),null==l||l.closeConnection(),void(l=null)}if(i.signal.aborted)return null==l||l.closeConnection(),void this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o);if(!l)return Te("Provider is not restored"),void this.tracker.trackConnectionRestoringError("Provider is not restored",o);null===(r=this.provider)||void 0===r||r.closeConnection(),this.provider=l,l.listen(this.walletEventsListener.bind(this));const c=()=>{this.tracker.trackConnectionRestoringError("Connection restoring was aborted",o),null==l||l.closeConnection(),l=null};i.signal.addEventListener("abort",c);const d=Ee(t=>V(this,0,void 0,function*(){if(yield null==l?void 0:l.restoreConnection({openingDeadlineMS:null==e?void 0:e.openingDeadlineMS,signal:t.signal,traceId:o}),i.signal.removeEventListener("abort",c),this.connected){const e=this.getSessionInfo();this.tracker.trackConnectionRestoringCompleted(this.wallet,e,o)}else this.tracker.trackConnectionRestoringError("Connection restoring failed",o)}),{attempts:Number.MAX_SAFE_INTEGER,delayMs:2e3,signal:null==e?void 0:e.signal}),u=new Promise(e=>setTimeout(()=>e(),12e3));return Promise.race([d,u])})}sendTransaction(e,t){return V(this,0,void 0,function*(){var n,r,o,i;const a={};"function"==typeof t?a.onRequestSent=t:(a.onRequestSent=null==t?void 0:t.onRequestSent,a.signal=null==t?void 0:t.signal,a.traceId=null==t?void 0:t.traceId);const s=Gt(e);if(s){if(!nt())throw new z("SendTransactionRequest validation failed: "+s);console.error("SendTransactionRequest validation failed: "+s)}const l=_e(null==a?void 0:a.signal);if(l.signal.aborted)throw new z("Transaction sending was aborted");this.checkConnection();const c=e.messages.length,d=e.messages.some(e=>e.extraCurrency&&Object.keys(e.extraCurrency).length>0);at(this.wallet.device.features,{requiredMessagesNumber:c,requireExtraCurrencies:d});const u=this.getSessionInfo(),h=null!==(n=null==a?void 0:a.traceId)&&void 0!==n?n:Pe();this.tracker.trackTransactionSentForSignature(this.wallet,e,u,h);const{validUntil:p,messages:g}=e,f=H(e,["validUntil","messages"]),m=e.from||this.account.address,w=e.network||this.account.chain;if((null===(r=this.wallet)||void 0===r?void 0:r.account.chain)&&w!==this.wallet.account.chain){if(!nt())throw new ne("Wallet connected to a wrong network",{cause:{expectedChainId:null===(o=this.wallet)||void 0===o?void 0:o.account.chain,actualChainId:w}});console.error("Wallet connected to a wrong network",{expectedChainId:null===(i=this.wallet)||void 0===i?void 0:i.account.chain,actualChainId:w})}const v=yield this.provider.sendRequest(fe.convertToRpcRequest(Object.assign(Object.assign({},f),{from:m,network:w,valid_until:p,messages:g.map(e=>{var{extraCurrency:t,payload:n,stateInit:r}=e,o=H(e,["extraCurrency","payload","stateInit"]);return Object.assign(Object.assign({},o),{payload:Xt(n),stateInit:Xt(r),extra_currency:t})})})),{onRequestSent:a.onRequestSent,signal:l.signal,traceId:h});if(fe.isError(v))return this.tracker.trackTransactionSigningFailed(this.wallet,e,v.error.message,v.error.code,u,h),fe.parseAndThrowError(v);const y=fe.convertFromRpcResponse(v);return this.tracker.trackTransactionSigned(this.wallet,e,y,u,h),Object.assign(Object.assign({},y),{traceId:v.traceId})})}signData(e,t){return V(this,0,void 0,function*(){var n,r,o,i;const a=_e(null==t?void 0:t.signal);if(a.signal.aborted)throw new z("data sending was aborted");const s=Jt(e);if(s){if(!nt())throw new z("SignDataPayload validation failed: "+s);console.error("SignDataPayload validation failed: "+s)}this.checkConnection(),function(e,t){const n=e.find(e=>e&&"object"==typeof e&&"SignData"===e.name);if(!n)throw new ee("Wallet doesn't support SignData feature.",{cause:{requiredFeature:{featureName:"SignData",value:{types:t.requiredTypes}}}});const r=t.requiredTypes.filter(e=>!n.types.includes(e));if(r.length)throw new ee(`Wallet doesn't support required SignData types: ${r.join(", ")}.`,{cause:{requiredFeature:{featureName:"SignData",value:{types:r}}}})}(this.wallet.device.features,{requiredTypes:[e.type]});const l=this.getSessionInfo(),c=null!==(n=null==t?void 0:t.traceId)&&void 0!==n?n:Pe();this.tracker.trackDataSentForSignature(this.wallet,e,l,c);const d=e.from||this.account.address,u=e.network||this.account.chain;if((null===(r=this.wallet)||void 0===r?void 0:r.account.chain)&&u!==this.wallet.account.chain){if(!nt())throw new ne("Wallet connected to a wrong network",{cause:{expectedChainId:null===(o=this.wallet)||void 0===o?void 0:o.account.chain,actualChainId:u}});console.error("Wallet connected to a wrong network",{expectedChainId:null===(i=this.wallet)||void 0===i?void 0:i.account.chain,actualChainId:u})}const h=yield this.provider.sendRequest(we.convertToRpcRequest(Object.assign(Object.assign(Object.assign({},e),"cell"===e.type?{cell:Xt(e.cell)}:{}),{from:d,network:u})),{onRequestSent:null==t?void 0:t.onRequestSent,signal:a.signal,traceId:c});if(we.isError(h))return this.tracker.trackDataSigningFailed(this.wallet,e,h.error.message,h.error.code,l,c),we.parseAndThrowError(h);const p=we.convertFromRpcResponse(h);return this.tracker.trackDataSigned(this.wallet,e,p,l,c),Object.assign(Object.assign({},p),{traceId:c})})}setConnectionNetwork(e){if(this.connected)throw new z("Cannot change network while wallet is connected");this.desiredChainId=e}disconnect(e){return V(this,0,void 0,function*(){var t,n;if(!this.connected)throw new J;const r=_e(null==e?void 0:e.signal),o=this.abortController;if(this.abortController=r,r.signal.aborted)throw new z("Disconnect was aborted");const i=null!==(t=null==e?void 0:e.traceId)&&void 0!==t?t:Pe();this.onWalletDisconnected("dapp",{traceId:i}),yield null===(n=this.provider)||void 0===n?void 0:n.disconnect({signal:r.signal,traceId:i}),null==o||o.abort()})}getSessionId(){return V(this,0,void 0,function*(){if(!this.provider)return null;try{const e=yield this.bridgeConnectionStorage.getConnection();return e&&"http"===e.type?"sessionCrypto"in e?e.sessionCrypto.sessionId:e.session.sessionCrypto.sessionId:null}catch(e){return null}})}getSessionInfo(){var e;if("http"!==(null===(e=this.provider)||void 0===e?void 0:e.type))return null;if(!("session"in this.provider))return null;try{const e=this.provider.session;if(!e)return null;const t=e.sessionCrypto.sessionId;let n=null;return"walletPublicKey"in e&&(n=e.walletPublicKey),{clientId:t,walletId:n}}catch(t){return null}}pauseConnection(){var e;"http"===(null===(e=this.provider)||void 0===e?void 0:e.type)&&this.provider.pause()}unPauseConnection(){var e;return"http"!==(null===(e=this.provider)||void 0===e?void 0:e.type)?Promise.resolve():this.provider.unPause()}addWindowFocusAndBlurSubscriptions(){const e=Ke();if(e)try{e.addEventListener("visibilitychange",()=>{e.hidden?this.pauseConnection():this.unPauseConnection().catch(()=>{})})}catch(t){Te("Cannot subscribe to the document.visibilitychange: ",t)}}initAnalytics(e,t,n){var r;const o=null==n?void 0:n.analytics,i=null!==(r=null==o?void 0:o.mode)&&void 0!==r?r:"telemetry";if("off"===i)return;const a=new en({environment:this.environment,mode:i});this.analytics=a;const s=this.environment.getTelegramUser(),l={browser:this.environment.getBrowser(),platform:this.environment.getPlatform(),manifest_json_url:e,origin_url:Fe,locale:this.environment.getLocale()};s&&(l.tg_id=s.id,l.tma_is_premium=s.isPremium),function(e,t){e.addEventListener("ton-connect-ui-wallet-modal-opened",e=>{var n;const{detail:r}=e;t.emitConnectionStarted({client_id:r.client_id||"",versions:nn(r.custom_data),main_screen:r.visible_wallets,trace_id:null!==(n=r.trace_id)&&void 0!==n?n:void 0})}),e.addEventListener("ton-connect-ui-selected-wallet",e=>{var n,r;const{detail:o}=e;t.emitConnectionSelectedWallet({client_id:o.client_id||"",versions:nn(o.custom_data),main_screen:o.visible_wallets,wallets_menu:o.wallets_menu,trace_id:null!==(n=o.trace_id)&&void 0!==n?n:void 0,wallet_app_name:null!==(r=o.wallet_type)&&void 0!==r?r:"",wallet_redirect_method:o.wallet_redirect_method,wallet_redirect_link:o.wallet_redirect_link})}),e.addEventListener("ton-connect-connection-completed",e=>{const{detail:n}=e;t.emitConnectionCompleted(rn(n))}),e.addEventListener("ton-connect-connection-error",e=>{var n,r;const{detail:o}=e;t.emitConnectionError({client_id:o.custom_data.client_id||"",wallet_id:o.custom_data.wallet_id||"",error_code:null!==(n=o.error_code)&&void 0!==n?n:0,error_message:o.error_message,trace_id:null!==(r=o.trace_id)&&void 0!==r?r:void 0})}),e.addEventListener("ton-connect-disconnection",e=>{const{detail:n}=e;t.emitDisconnection(rn(n))}),e.addEventListener("ton-connect-transaction-sent-for-signature",e=>{const{detail:n}=e;t.emitTransactionSent(rn(n))}),e.addEventListener("ton-connect-transaction-signed",e=>{const{detail:n}=e;t.emitTransactionSigned(Object.assign(Object.assign({},rn(n)),{signed_boc:e.detail.signed_transaction}))}),e.addEventListener("ton-connect-transaction-signing-failed",e=>{var n;const{detail:r}=e;t.emitTransactionSigningFailed(Object.assign(Object.assign({},rn(r)),{valid_until:Number(r.valid_until),messages:r.messages.map(e=>{var t,n,r,o;return{address:null!==(t=e.address)&&void 0!==t?t:"",amount:null!==(n=e.amount)&&void 0!==n?n:"",payload:null!==(r=e.payload)&&void 0!==r?r:"",state_init:null!==(o=e.state_init)&&void 0!==o?o:""}}),error_message:r.error_message,error_code:null!==(n=r.error_code)&&void 0!==n?n:0}))}),e.addEventListener("ton-connect-sign-data-request-initiated",e=>{const{detail:n}=e;null==t||t.emitSignDataRequestInitiated(rn(n))}),e.addEventListener("ton-connect-sign-data-request-completed",e=>{const{detail:n}=e;null==t||t.emitSignDataRequestCompleted(rn(n))}),e.addEventListener("ton-connect-sign-data-request-failed",e=>{var n;const{detail:r}=e;let o,i="";"text"===r.data.type&&(i=r.data.text),"cell"===r.data.type&&(i=r.data.cell,o=r.data.schema),"binary"===r.data.type&&(i=r.data.bytes),null==t||t.emitSignDataRequestFailed(Object.assign(Object.assign({},rn(r)),{sign_data_type:r.data.type,sign_data_value:i,sign_data_schema:o,error_code:null!==(n=r.error_code)&&void 0!==n?n:0,error_message:r.error_message}))})}(t,a.scoped(l))}createProvider(e){let t;return t=!Array.isArray(e)&&"jsBridgeKey"in e?new Ve(this.bridgeConnectionStorage,e.jsBridgeKey,this.analytics):!Array.isArray(e)&&function(e){return"type"in e&&"wallet-connect"===e.type}(e)?new cn(this.bridgeConnectionStorage):new De(this.bridgeConnectionStorage,e,this.analytics),t.listen(this.walletEventsListener.bind(this)),t}walletEventsListener(e){switch(e.event){case"connect":this.onWalletConnected(e.payload,{traceId:e.traceId});break;case"connect_error":this.tracker.trackConnectionError(e.payload.message,e.payload.code,this.getSessionInfo(),e.traceId);const t=he.parseError(e.payload);this.onWalletConnectError(t);break;case"disconnect":this.onWalletDisconnected("wallet",{traceId:e.traceId})}}onWalletConnected(t,n){var r,o;const i=t.items.find(e=>"ton_addr"===e.name),a=t.items.find(e=>"ton_proof"===e.name);if(!i)throw new z("ton_addr connection item was not found");if(!st(t.device.features,this.walletsRequiredFeatures))return null===(r=this.provider)||void 0===r||r.disconnect(),void this.onWalletConnectError(new te("Wallet does not support required features",{cause:{connectEvent:t}}));const s={device:t.device,provider:this.provider.type,account:{address:i.address,chain:i.network,walletStateInit:i.walletStateInit,publicKey:i.publicKey}};if(this.desiredChainId&&s.account.chain!==this.desiredChainId){const e=this.desiredChainId,t=s.account.chain;return null===(o=this.provider)||void 0===o||o.disconnect(),void this.onWalletConnectError(new ne("Wallet connected to a wrong network",{cause:{expectedChainId:e,actualChainId:t}}))}if(a){const t=function(e){if(!zt(e))return"ton_proof item must be an object";if(Zt(e,["error","proof","name"]))return"ton_proof item contains extra properties";const t=Object.prototype.hasOwnProperty.call(e,"proof"),n=Object.prototype.hasOwnProperty.call(e,"error");if(!t&&!n)return"'ton_proof' item must contain either 'proof' or 'error'";if(t&&n)return"'ton_proof' item must contain either 'proof' or 'error', not both";if(t){const t=e.proof;if(!zt(t))return"Invalid 'proof' object";if(!$t(t.timestamp))return"Invalid 'proof.timestamp'";const n=t.domain;if(!zt(n))return"Invalid 'proof.domain'";if(!$t(n.lengthBytes))return"Invalid 'proof.domain.lengthBytes'";if(!Kt(n.value))return"Invalid 'proof.domain.value'";try{if(("undefined"!=typeof TextEncoder?(new TextEncoder).encode(n.value).length:n.value.length)!==n.lengthBytes)return"'proof.domain.lengthBytes' does not match 'proof.domain.value'"}catch(r){}if(!Kt(t.payload))return"Invalid 'proof.payload'";if(!Kt(t.signature)||!Dt.test(t.signature))return"Invalid 'proof.signature' format"}if(n){const t=e.error;if(!zt(t))return"Invalid 'error' object";if(Zt(t,["code","message"]))return"ton_proof error contains extra properties";if(!$t(t.code))return"Invalid 'error.code'";if(!Kt(t.message))return"Invalid 'error.message'"}return null}(a);let n;if(t)nt()&&console.error("TonProofItem validation failed: "+t),n={name:"ton_proof",error:{code:e.CONNECT_ITEM_ERROR_CODES.UNKNOWN_ERROR,message:t}};else try{if("proof"in a)n={name:"ton_proof",proof:{timestamp:a.proof.timestamp,domain:{lengthBytes:a.proof.domain.lengthBytes,value:a.proof.domain.value},payload:a.proof.payload,signature:a.proof.signature}};else{if(!("error"in a))throw new z("Invalid data format");n={name:"ton_proof",error:{code:a.error.code,message:a.error.message}}}}catch(c){n={name:"ton_proof",error:{code:e.CONNECT_ITEM_ERROR_CODES.UNKNOWN_ERROR,message:"Invalid data format"}}}s.connectItems={tonProof:n}}this.wallet=s;const l=this.getSessionInfo();this.tracker.trackConnectionCompleted(s,l,null==n?void 0:n.traceId)}onWalletConnectError(e){if(this.statusChangeErrorSubscriptions.forEach(t=>t(e)),Re(e),e instanceof Y||e instanceof G)throw Te(e),e}onWalletDisconnected(e,t){const n=this.getSessionInfo();this.tracker.trackDisconnection(this.wallet,e,n,null==t?void 0:t.traceId),this.wallet=null}checkConnection(){if(!this.connected)throw new J}createConnectRequest(e){const t=[Object.assign({name:"ton_addr"},this.desiredChainId?{network:this.desiredChainId}:{})];return(null==e?void 0:e.tonProof)&&t.push({name:"ton_proof",payload:e.tonProof}),{manifestUrl:this.dappSettings.manifestUrl,items:t}}}dn.walletsList=new it,dn.isWalletInjected=e=>Ve.isWalletInjected(e),dn.isInsideWalletBrowser=e=>Ve.isInsideWalletBrowser(e);const un=Symbol("solid-proxy"),hn="function"==typeof Proxy,pn=Symbol("solid-track"),gn={equals:(e,t)=>e===t};let fn=er;const mn=1,wn=2,vn={owned:null,cleanups:null,context:null,owner:null},yn={};var bn=null;let Cn=null,xn=null,Sn=null,kn=null,_n=0;function En(e,t){const n=xn,r=bn,o=0===e.length,i=void 0===t?r:t,a=o?vn:{owned:null,cleanups:null,context:i?i.context:null,owner:i},s=o?e:()=>e(()=>Nn(()=>or(a)));bn=a,xn=null;try{return Xn(s,!0)}finally{xn=n,bn=r}}function Rn(e,t){const n={value:e,observers:null,observerSlots:null,comparator:(t=t?Object.assign({},gn,t):gn).equals||void 0};return[Zn.bind(n),e=>("function"==typeof e&&(e=e(n.value)),Gn(n,e))]}function Tn(e,t,n){Yn(Qn(e,t,!0,mn))}function In(e,t,n){Yn(Qn(e,t,!1,mn))}function On(e,t,n){fn=tr;const r=Qn(e,t,!1,mn);n&&n.render||(r.user=!0),kn?kn.push(r):Yn(r)}function Mn(e,t,n){n=n?Object.assign({},gn,n):gn;const r=Qn(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,Yn(r),Zn.bind(r)}function An(e,t,n){let r,o,i;r=!0,o=e,i={};let a=null,s=yn,l=!1,c="initialValue"in i,d=!1;const u=new Set,[h,p]=(i.storage||Rn)(i.initialValue),[g,f]=Rn(void 0),[m,w]=Rn(void 0,{equals:!1}),[v,y]=Rn(c?"ready":"unresolved");function b(e,t,n,r){return a===e&&(a=null,void 0!==r&&(c=!0),e!==s&&t!==s||!i.onHydrated||queueMicrotask(()=>i.onHydrated(r,{value:t})),s=yn,function(e,t){Xn(()=>{void 0===t&&p(()=>e),y(void 0!==t?"errored":c?"ready":"unresolved"),f(t);for(const e of u.keys())e.decrement();u.clear()},!1)}(t,n)),t}function C(){const e=h(),t=g();if(void 0!==t&&!a)throw t;return xn&&xn.user,e}function x(e=!0){if(!1!==e&&l)return;l=!1;const t=d?d():r;if(null==t||!1===t)return void b(a,Nn(h));let n;const i=s!==yn?s:Nn(()=>{try{return o(t,{value:h(),refetching:e})}catch(r){n=r}});var u;if(void 0===n)return(u=i)&&"object"==typeof u&&"then"in u?(a=i,"v"in i?(1===i.s?b(a,i.v,void 0,t):b(a,void 0,ir(i.v),t),i):(l=!0,queueMicrotask(()=>l=!1),Xn(()=>{y(c?"refreshing":"pending"),w()},!1),i.then(e=>b(i,e,void 0,t),e=>b(i,void 0,ir(e),t)))):(b(a,i,void 0,t),i);b(a,void 0,ir(n),t)}Object.defineProperties(C,{state:{get:()=>v()},error:{get:()=>g()},loading:{get(){const e=v();return"pending"===e||"refreshing"===e}},latest:{get(){if(!c)return C();const e=g();if(e&&!a)throw e;return h()}}});let S=bn;return d?Tn(()=>(S=bn,x(!1))):x(!1),[C,{refetch:e=>Bn(S,()=>x(e)),mutate:p}]}function Ln(e){return Xn(e,!1)}function Nn(e){if(null===xn)return e();const t=xn;xn=null;try{return e()}finally{xn=t}}function Wn(e,t,n){const r=Array.isArray(e);let o;return n=>{let i;if(r){i=Array(e.length);for(let t=0;t<e.length;t++)i[t]=e[t]()}else i=e();const a=Nn(()=>t(i,o,n));return o=i,a}}function Pn(e){On(()=>Nn(e))}function Un(e){return null===bn||(null===bn.cleanups?bn.cleanups=[e]:bn.cleanups.push(e)),e}function Dn(){return xn}function jn(){return bn}function Bn(e,t){const n=bn,r=xn;bn=e,xn=null;try{return Xn(t,!0)}catch(o){ar(o)}finally{bn=n,xn=r}}function qn(e){const t=xn,n=bn;return Promise.resolve().then(()=>{xn=t,bn=n,Xn(e,!1),xn=bn=null})}const[$n,Kn]=Rn(!1);function Fn(){return[$n,qn]}function Hn(e,t){const n=Symbol("context");return{id:n,Provider:lr(n),defaultValue:e}}function Vn(e){let t;return bn&&bn.context&&void 0!==(t=bn.context[e.id])?t:e.defaultValue}function zn(e){const t=Mn(e),n=Mn(()=>sr(t()));return n.toArray=()=>{const e=n();return Array.isArray(e)?e:null!=e?[e]:[]},n}function Zn(){if(this.sources&&this.state)if(this.state===mn)Yn(this);else{const e=Sn;Sn=null,Xn(()=>nr(this),!1),Sn=e}if(xn){const e=this.observers?this.observers.length:0;xn.sources?(xn.sources.push(this),xn.sourceSlots.push(e)):(xn.sources=[this],xn.sourceSlots=[e]),this.observers?(this.observers.push(xn),this.observerSlots.push(xn.sources.length-1)):(this.observers=[xn],this.observerSlots=[xn.sources.length-1])}return this.value}function Gn(e,t,n){let r=e.value;return e.comparator&&e.comparator(r,t)||(e.value=t,e.observers&&e.observers.length&&Xn(()=>{for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t],r=Cn&&Cn.running;r&&Cn.disposed.has(n),(r?n.tState:n.state)||(n.pure?Sn.push(n):kn.push(n),n.observers&&rr(n)),r||(n.state=mn)}if(Sn.length>1e6)throw Sn=[],new Error},!1)),t}function Yn(e){if(!e.fn)return;or(e);const t=_n;!function(e,t,n){let r;const o=bn,i=xn;xn=bn=e;try{r=e.fn(t)}catch(a){return e.pure&&(e.state=mn,e.owned&&e.owned.forEach(or),e.owned=null),e.updatedAt=n+1,ar(a)}finally{xn=i,bn=o}(!e.updatedAt||e.updatedAt<=n)&&(null!=e.updatedAt&&"observers"in e?Gn(e,r):e.value=r,e.updatedAt=n)}(e,e.value,t)}function Qn(e,t,n,r=mn,o){const i={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:bn,context:bn?bn.context:null,pure:n};return null===bn||bn!==vn&&(bn.owned?bn.owned.push(i):bn.owned=[i]),i}function Jn(e){if(0===e.state)return;if(e.state===wn)return nr(e);if(e.suspense&&Nn(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<_n);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if((e=t[n]).state===mn)Yn(e);else if(e.state===wn){const n=Sn;Sn=null,Xn(()=>nr(e,t[0]),!1),Sn=n}}function Xn(e,t){if(Sn)return e();let n=!1;t||(Sn=[]),kn?n=!0:kn=[],_n++;try{const t=e();return function(e){Sn&&(er(Sn),Sn=null);if(e)return;const t=kn;kn=null,t.length&&Xn(()=>fn(t),!1)}(n),t}catch(r){n||(kn=null),Sn=null,ar(r)}}function er(e){for(let t=0;t<e.length;t++)Jn(e[t])}function tr(e){let t,n=0;for(t=0;t<e.length;t++){const r=e[t];r.user?e[n++]=r:Jn(r)}for(t=0;t<n;t++)Jn(e[t])}function nr(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const r=e.sources[n];if(r.sources){const e=r.state;e===mn?r!==t&&(!r.updatedAt||r.updatedAt<_n)&&Jn(r):e===wn&&nr(r,t)}}}function rr(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=wn,n.pure?Sn.push(n):kn.push(n),n.observers&&rr(n))}}function or(e){let t;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){const e=r.pop(),o=t.observerSlots.pop();n<r.length&&(e.sourceSlots[o]=n,r[n]=e,t.observerSlots[n]=o)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)or(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)or(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function ir(e){return e instanceof Error?e:new Error("string"==typeof e?e:"Unknown error",{cause:e})}function ar(e,t=bn){throw ir(e)}function sr(e){if("function"==typeof e&&!e.length)return sr(e());if(Array.isArray(e)){const t=[];for(let n=0;n<e.length;n++){const r=sr(e[n]);Array.isArray(r)?t.push.apply(t,r):t.push(r)}return t}return e}function lr(e,t){return function(t){let n;return In(()=>n=Nn(()=>(bn.context=w(m({},bn.context),{[e]:t.value}),zn(()=>t.children))),void 0),n}}const cr=Symbol("fallback");function dr(e){for(let t=0;t<e.length;t++)e[t]()}function ur(e,t){return Nn(()=>e(t||{}))}function hr(){return!0}const pr={get:(e,t,n)=>t===un?n:e.get(t),has:(e,t)=>t===un||e.has(t),set:hr,deleteProperty:hr,getOwnPropertyDescriptor:(e,t)=>({configurable:!0,enumerable:!0,get:()=>e.get(t),set:hr,deleteProperty:hr}),ownKeys:e=>e.keys()};function gr(e){return(e="function"==typeof e?e():e)?e:{}}function fr(){for(let e=0,t=this.length;e<t;++e){const t=this[e]();if(void 0!==t)return t}}function mr(...e){let t=!1;for(let a=0;a<e.length;a++){const n=e[a];t=t||!!n&&un in n,e[a]="function"==typeof n?(t=!0,Mn(n)):n}if(hn&&t)return new Proxy({get(t){for(let n=e.length-1;n>=0;n--){const r=gr(e[n])[t];if(void 0!==r)return r}},has(t){for(let n=e.length-1;n>=0;n--)if(t in gr(e[n]))return!0;return!1},keys(){const t=[];for(let n=0;n<e.length;n++)t.push(...Object.keys(gr(e[n])));return[...new Set(t)]}},pr);const n={},r=Object.create(null);for(let a=e.length-1;a>=0;a--){const t=e[a];if(!t)continue;const o=Object.getOwnPropertyNames(t);for(let e=o.length-1;e>=0;e--){const i=o[e];if("__proto__"===i||"constructor"===i)continue;const a=Object.getOwnPropertyDescriptor(t,i);if(r[i]){const e=n[i];e&&(a.get?e.push(a.get.bind(t)):void 0!==a.value&&e.push(()=>a.value))}else r[i]=a.get?{enumerable:!0,configurable:!0,get:fr.bind(n[i]=[a.get.bind(t)])}:void 0!==a.value?a:void 0}}const o={},i=Object.keys(r);for(let a=i.length-1;a>=0;a--){const e=i[a],t=r[e];t&&t.get?Object.defineProperty(o,e,t):o[e]=t?t.value:void 0}return o}function wr(e,...t){if(hn&&un in e){const n=new Set(t.length>1?t.flat():t[0]),r=t.map(t=>new Proxy({get:n=>t.includes(n)?e[n]:void 0,has:n=>t.includes(n)&&n in e,keys:()=>t.filter(t=>t in e)},pr));return r.push(new Proxy({get:t=>n.has(t)?void 0:e[t],has:t=>!n.has(t)&&t in e,keys:()=>Object.keys(e).filter(e=>!n.has(e))},pr)),r}const n={},r=t.map(()=>({}));for(const o of Object.getOwnPropertyNames(e)){const i=Object.getOwnPropertyDescriptor(e,o),a=!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable;let s=!1,l=0;for(const e of t)e.includes(o)&&(s=!0,a?r[l][o]=i.value:Object.defineProperty(r[l],o,i)),++l;s||(a?n[o]=i.value:Object.defineProperty(n,o,i))}return[...r,n]}const vr=e=>`Stale read from <${e}>.`;function yr(e){const t="fallback"in e&&{fallback:()=>e.fallback};return Mn(function(e,t,n={}){let r=[],o=[],i=[],a=0,s=t.length>1?[]:null;return Un(()=>dr(i)),()=>{let l,c,d=e()||[],u=d.length;return d[pn],Nn(()=>{let e,t,p,g,f,m,w,v,y;if(0===u)0!==a&&(dr(i),i=[],r=[],o=[],a=0,s&&(s=[])),n.fallback&&(r=[cr],o[0]=En(e=>(i[0]=e,n.fallback())),a=1);else if(0===a){for(o=new Array(u),c=0;c<u;c++)r[c]=d[c],o[c]=En(h);a=u}else{for(p=new Array(u),g=new Array(u),s&&(f=new Array(u)),m=0,w=Math.min(a,u);m<w&&r[m]===d[m];m++);for(w=a-1,v=u-1;w>=m&&v>=m&&r[w]===d[v];w--,v--)p[v]=o[w],g[v]=i[w],s&&(f[v]=s[w]);for(e=new Map,t=new Array(v+1),c=v;c>=m;c--)y=d[c],l=e.get(y),t[c]=void 0===l?-1:l,e.set(y,c);for(l=m;l<=w;l++)y=r[l],c=e.get(y),void 0!==c&&-1!==c?(p[c]=o[l],g[c]=i[l],s&&(f[c]=s[l]),c=t[c],e.set(y,c)):i[l]();for(c=m;c<u;c++)c in p?(o[c]=p[c],i[c]=g[c],s&&(s[c]=f[c],s[c](c))):o[c]=En(h);o=o.slice(0,a=u),r=d.slice(0)}return o});function h(e){if(i[c]=e,s){const[e,n]=Rn(c);return s[c]=n,t(d[c],e)}return t(d[c])}}}(()=>e.each,e.children,t||void 0))}function br(e){const t=e.keyed,n=Mn(()=>e.when,void 0,void 0),r=t?n:Mn(n,void 0,{equals:(e,t)=>!e==!t});return Mn(()=>{const o=r();if(o){const i=e.children;return"function"==typeof i&&i.length>0?Nn(()=>i(t?o:()=>{if(!Nn(r))throw vr("Show");return n()})):i}return e.fallback},void 0,void 0)}function Cr(e){const t=zn(()=>e.children),n=Mn(()=>{const e=t(),n=Array.isArray(e)?e:[e];let r=()=>{};for(let t=0;t<n.length;t++){const e=t,o=n[t],i=r,a=Mn(()=>i()?void 0:o.when,void 0,void 0),s=o.keyed?a:Mn(a,void 0,{equals:(e,t)=>!e==!t});r=()=>i()||(s()?[e,a,o]:void 0)}return r});return Mn(()=>{const t=n()();if(!t)return e.fallback;const[r,o,i]=t,a=i.children;return"function"==typeof a&&a.length>0?Nn(()=>a(i.keyed?o():()=>{var e;if((null==(e=Nn(n)())?void 0:e[0])!==r)throw vr("Match");return o()})):a},void 0,void 0)}function xr(e){return e}const Sr=new Set(["className","value","readOnly","noValidate","formNoValidate","isMap","noModule","playsInline","allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"]),kr=new Set(["innerHTML","textContent","innerText","children"]),_r=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),Er=Object.assign(Object.create(null),{class:"className",novalidate:{$:"noValidate",FORM:1},formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});const Rr=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),Tr=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),Ir={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},Or=e=>Mn(()=>e());const Mr="_$DX_DELEGATE";function Ar(e,t,n,r){let o;const i=()=>{const t=r?document.createElementNS("http://www.w3.org/1998/Math/MathML","template"):document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},a=t?()=>Nn(()=>document.importNode(o||(o=i()),!0)):()=>(o||(o=i())).cloneNode(!0);return a.cloneNode=a,a}function Lr(e,t,n){null==n?e.removeAttribute(t):e.setAttribute(t,n)}function Nr(e,t){null==t?e.removeAttribute("class"):e.className=t}function Wr(e,t={},n,r){const o={};return In(()=>o.children=qr(e,t.children,o.children)),In(()=>"function"==typeof t.ref&&Pr(t.ref,e)),In(()=>function(e,t,n,r,o={},i=!1){t||(t={});for(const a in o)if(!(a in t)){if("children"===a)continue;o[a]=jr(e,a,null,o[a],n,i,t)}for(const a in t){if("children"===a)continue;const r=t[a];o[a]=jr(e,a,r,o[a],n,i,t)}}(e,t,n,0,o,!0)),o}function Pr(e,t,n){return Nn(()=>e(t,n))}function Ur(e,t,n,r){if(void 0===n||r||(r=[]),"function"!=typeof t)return qr(e,t,r,n);In(r=>qr(e,t(),r,n),r)}function Dr(e,t,n){const r=t.trim().split(/\s+/);for(let o=0,i=r.length;o<i;o++)e.classList.toggle(r[o],n)}function jr(e,t,n,r,o,i,a){let s,l,c,d,u;if("style"===t)return function(e,t,n){if(!t)return n?Lr(e,"style"):t;const r=e.style;if("string"==typeof t)return r.cssText=t;let o,i;for(i in"string"==typeof n&&(r.cssText=n=void 0),n||(n={}),t||(t={}),n)null==t[i]&&r.removeProperty(i),delete n[i];for(i in t)o=t[i],o!==n[i]&&(r.setProperty(i,o),n[i]=o);return n}(e,n,r);if("classList"===t)return function(e,t,n={}){const r=Object.keys(t||{}),o=Object.keys(n);let i,a;for(i=0,a=o.length;i<a;i++){const r=o[i];r&&"undefined"!==r&&!t[r]&&(Dr(e,r,!1),delete n[r])}for(i=0,a=r.length;i<a;i++){const o=r[i],a=!!t[o];o&&"undefined"!==o&&n[o]!==a&&a&&(Dr(e,o,!0),n[o]=a)}return n}(e,n,r);if(n===r)return r;if("ref"===t)i||n(e);else if("on:"===t.slice(0,3)){const o=t.slice(3);r&&e.removeEventListener(o,r,"function"!=typeof r&&r),n&&e.addEventListener(o,n,"function"!=typeof n&&n)}else if("oncapture:"===t.slice(0,10)){const o=t.slice(10);r&&e.removeEventListener(o,r,!0),n&&e.addEventListener(o,n,!0)}else if("on"===t.slice(0,2)){const o=t.slice(2).toLowerCase(),i=Rr.has(o);if(!i&&r){const t=Array.isArray(r)?r[0]:r;e.removeEventListener(o,t)}(i||n)&&(function(e,t,n,r){if(r)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){const r=n[0];e.addEventListener(t,n[0]=t=>r.call(e,n[1],t))}else e.addEventListener(t,n,"function"!=typeof n&&n)}(e,o,n,i),i&&function(e,t=window.document){const n=t[Mr]||(t[Mr]=new Set);for(let r=0,o=e.length;r<o;r++){const o=e[r];n.has(o)||(n.add(o),t.addEventListener(o,Br))}}([o]))}else if("attr:"===t.slice(0,5))Lr(e,t.slice(5),n);else if("bool:"===t.slice(0,5))!function(e,t,n){n?e.setAttribute(t,""):e.removeAttribute(t)}(e,t.slice(5),n);else if((u="prop:"===t.slice(0,5))||(c=kr.has(t))||!o&&((d=function(e,t){const n=Er[e];return"object"==typeof n?n[t]?n.$:void 0:n}(t,e.tagName))||(l=Sr.has(t)))||(s=e.nodeName.includes("-")||"is"in a))u&&(t=t.slice(5),l=!0),"class"===t||"className"===t?Nr(e,n):!s||l||c?e[d||t]=n:e[(h=t,h.toLowerCase().replace(/-([a-z])/g,(e,t)=>t.toUpperCase()))]=n;else{const r=o&&t.indexOf(":")>-1&&Ir[t.split(":")[0]];r?function(e,t,n,r){null==r?e.removeAttributeNS(t,n):e.setAttributeNS(t,n,r)}(e,r,t,n):Lr(e,_r[t]||t,n)}var h;return n}function Br(e){let t=e.target;const n=`$$${e.type}`,r=e.target,o=e.currentTarget,i=t=>Object.defineProperty(e,"target",{configurable:!0,value:t}),a=()=>{const r=t[n];if(r&&!t.disabled){const o=t[`${n}Data`];if(void 0!==o?r.call(t,o,e):r.call(t,e),e.cancelBubble)return}return t.host&&"string"!=typeof t.host&&!t.host._$host&&t.contains(e.target)&&i(t.host),!0},s=()=>{for(;a()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get:()=>t||document}),e.composedPath){const n=e.composedPath();i(n[0]);for(let e=0;e<n.length-2&&(t=n[e],a());e++){if(t._$host){t=t._$host,s();break}if(t.parentNode===o)break}}else s();i(r)}function qr(e,t,n,r,o){for(;"function"==typeof n;)n=n();if(t===n)return n;const i=typeof t,a=void 0!==r;if(e=a&&n[0]&&n[0].parentNode||e,"string"===i||"number"===i){if("number"===i&&(t=t.toString())===n)return n;if(a){let o=n[0];o&&3===o.nodeType?o.data!==t&&(o.data=t):o=document.createTextNode(t),n=Fr(e,n,r,o)}else n=""!==n&&"string"==typeof n?e.firstChild.data=t:e.textContent=t}else if(null==t||"boolean"===i)n=Fr(e,n,r);else{if("function"===i)return In(()=>{let o=t();for(;"function"==typeof o;)o=o();n=qr(e,o,n,r)}),()=>n;if(Array.isArray(t)){const i=[],s=n&&Array.isArray(n);if($r(i,t,n,o))return In(()=>n=qr(e,i,n,r,!0)),()=>n;if(0===i.length){if(n=Fr(e,n,r),a)return n}else s?0===n.length?Kr(e,i,r):function(e,t,n){let r=n.length,o=t.length,i=r,a=0,s=0,l=t[o-1].nextSibling,c=null;for(;a<o||s<i;)if(t[a]!==n[s]){for(;t[o-1]===n[i-1];)o--,i--;if(o===a){const t=i<r?s?n[s-1].nextSibling:n[i-s]:l;for(;s<i;)e.insertBefore(n[s++],t)}else if(i===s)for(;a<o;)c&&c.has(t[a])||t[a].remove(),a++;else if(t[a]===n[i-1]&&n[s]===t[o-1]){const r=t[--o].nextSibling;e.insertBefore(n[s++],t[a++].nextSibling),e.insertBefore(n[--i],r),t[o]=n[i]}else{if(!c){c=new Map;let e=s;for(;e<i;)c.set(n[e],e++)}const r=c.get(t[a]);if(null!=r)if(s<r&&r<i){let l,d=a,u=1;for(;++d<o&&d<i&&null!=(l=c.get(t[d]))&&l===r+u;)u++;if(u>r-s){const o=t[a];for(;s<r;)e.insertBefore(n[s++],o)}else e.replaceChild(n[s++],t[a++])}else a++;else t[a++].remove()}}else a++,s++}(e,n,i):(n&&Fr(e),Kr(e,i));n=i}else if(t.nodeType){if(Array.isArray(n)){if(a)return n=Fr(e,n,r,t);Fr(e,n,null,t)}else null!=n&&""!==n&&e.firstChild?e.replaceChild(t,e.firstChild):e.appendChild(t);n=t}}return n}function $r(e,t,n,r){let o=!1;for(let i=0,a=t.length;i<a;i++){let a,s=t[i],l=n&&n[e.length];if(null==s||!0===s||!1===s);else if("object"==(a=typeof s)&&s.nodeType)e.push(s);else if(Array.isArray(s))o=$r(e,s,l)||o;else if("function"===a)if(r){for(;"function"==typeof s;)s=s();o=$r(e,Array.isArray(s)?s:[s],Array.isArray(l)?l:[l])||o}else e.push(s),o=!0;else{const t=String(s);l&&3===l.nodeType&&l.data===t?e.push(l):e.push(document.createTextNode(t))}}return o}function Kr(e,t,n=null){for(let r=0,o=t.length;r<o;r++)e.insertBefore(t[r],n)}function Fr(e,t,n,r){if(void 0===n)return e.textContent="";const o=r||document.createTextNode("");if(t.length){let r=!1;for(let i=t.length-1;i>=0;i--){const a=t[i];if(o!==a){const t=a.parentNode===e;r||i?t&&a.remove():t?e.replaceChild(o,a):e.insertBefore(o,n)}else r=!0}}else e.insertBefore(o,n);return[o]}function Hr(e,t=!1){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}function Vr(e){const{useShadow:t}=e,n=document.createTextNode(""),r=jn();let o;return On(()=>{o||(o=Bn(r,()=>Mn(()=>e.children)));const i=e.mount||document.body;if(i instanceof HTMLHeadElement){const[e,t]=Rn(!1),n=()=>t(!0);En(t=>Ur(i,()=>e()?t():o(),null)),Un(n)}else{const r=Hr(e.isSVG?"g":"div",e.isSVG),a=t&&r.attachShadow?r.attachShadow({mode:"open"}):r;Object.defineProperty(r,"_$host",{get:()=>n.parentNode,configurable:!0}),Ur(a,o),i.appendChild(r),e.ref&&e.ref(r),Un(()=>i.removeChild(r))}},void 0,{render:!0}),n}function zr(e){const[,t]=wr(e,["component"]);return function(e,t){const n=Mn(e);return Mn(()=>{const e=n();switch(typeof e){case"function":return Nn(()=>e(t));case"string":const n=Tr.has(e),r=Hr(e,n);return Wr(r,t,n),r}})}(()=>e.component,t)}var Zr=(e=>(e.DARK="DARK",e.LIGHT="LIGHT",e))(Zr||{});let Gr={data:""},Yr=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Qr=/\/\*[^]*?\*\/| +/g,Jr=/\n+/g,Xr=(e,t)=>{let n="",r="",o="";for(let i in e){let a=e[i];"@"==i[0]?"i"==i[1]?n=i+" "+a+";":r+="f"==i[1]?Xr(a,i):i+"{"+Xr(a,"k"==i[1]?"":t)+"}":"object"==typeof a?r+=Xr(a,t?t.replace(/([^,])+/g,e=>i.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):i):null!=a&&(i=/^--/.test(i)?i:i.replace(/[A-Z]/g,"-$&").toLowerCase(),o+=Xr.p?Xr.p(i,a):i+":"+a+";")}return n+(t&&o?t+"{"+o+"}":o)+r},eo={},to=e=>{if("object"==typeof e){let t="";for(let n in e)t+=n+to(e[n]);return t}return e};function no(e){let t=this||{},n=e.call?e(t.p):e;return((e,t,n,r,o)=>{let i=to(e),a=eo[i]||(eo[i]=(e=>{let t=0,n=11;for(;t<e.length;)n=101*n+e.charCodeAt(t++)>>>0;return"go"+n})(i));if(!eo[a]){let t=i!==e?e:(e=>{let t,n,r=[{}];for(;t=Yr.exec(e.replace(Qr,""));)t[4]?r.shift():t[3]?(n=t[3].replace(Jr," ").trim(),r.unshift(r[0][n]=r[0][n]||{})):r[0][t[1]]=t[2].replace(Jr," ").trim();return r[0]})(e);eo[a]=Xr(o?{["@keyframes "+a]:t}:t,n?"":"."+a)}let s=n&&eo.g?eo.g:null;return n&&(eo.g=eo[a]),l=eo[a],c=t,d=r,(u=s)?c.data=c.data.replace(u,l):-1===c.data.indexOf(l)&&(c.data=d?l+c.data:c.data+l),a;var l,c,d,u})(n.unshift?n.raw?((e,t,n)=>e.reduce((e,r,o)=>{let i=t[o];if(i&&i.call){let e=i(n),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;i=t?"."+t:e&&"object"==typeof e?e.props?"":Xr(e,""):!1===e?"":e}return e+r+(null==i?"":i)},""))(n,[].slice.call(arguments,1),t.p):n.reduce((e,n)=>Object.assign(e,n&&n.call?n(t.p):n),{}):n,(r=t.target,"object"==typeof window?((r?r.querySelector("#_goober"):window._goober)||Object.assign((r||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:r||Gr),t.g,t.o,t.k);var r}no.bind({g:1});let ro=no.bind({k:1});const oo=Hn();function io(e){return ur(oo.Provider,{value:e.theme,get children(){return e.children}})}function ao(){return Vn(oo)}function so(e){let t=this||{};return(...n)=>{const r=r=>{const o=mr(r,{theme:Vn(oo)}),i=mr(o,{get class(){const e=o.class,r="class"in o&&/^go[0-9]+/.test(e);return[e,no.apply({target:t.target,o:r,p:o,g:t.g},n)].filter(Boolean).join(" ")}}),[a,s]=wr(i,["as","theme"]),l=s,c=a.as||e;let d;return"function"==typeof c?d=c(l):1==t.g?(d=document.createElement(c),Wr(d,l)):d=zr(mr({component:c},l)),d};return r.class=e=>Nn(()=>no.apply({target:t.target,p:e,g:t.g},n)),r}}const lo=new Proxy(so,{get:(e,t)=>e(t)});function co(){const e=so.call({g:1},"div").apply(null,arguments);return function(t){return e(t),null}}const uo="tc-root",ho="tc-disable-scroll",po="tc-using-mouse",go=()=>{document.body.addEventListener("mousedown",()=>document.body.classList.add(po)),document.body.addEventListener("keydown",e=>{"Tab"===e.key&&document.body.classList.remove(po)});return ur(co`
|
|
2
2
|
${uo} * {
|
|
3
3
|
margin: 0;
|
|
4
4
|
padding: 0;
|
|
@@ -1187,5 +1187,5 @@
|
|
|
1187
1187
|
width: 16px;
|
|
1188
1188
|
`,Ip=lo(aa)`
|
|
1189
1189
|
margin-top: 32px;
|
|
1190
|
-
`,Op=e=>{const t=ia(e),n=Vn(Yl),[r,o]=Rn(!0),[i,a]=Rn(!1),[s,l]=Rn(!1),[c,d]=Rn(!1);let u,h;On(()=>{const e=Qo();a(!!e&&("sent"in e&&e.sent||"transaction-sent"===e.name)),l(!!e&&("signed"in e&&e.signed||"data-signed"===e.name)),d(!!e&&("transaction-canceled"===e.name||"sign-data-canceled"===e.name))}),(null==n?void 0:n.wallet)&&"universalLink"in n.wallet&&("universal-link"===n.wallet.openMethod||be(n.wallet.universalLink)&&$i())&&(u=n.wallet.universalLink),(null==n?void 0:n.wallet)&&"deepLink"in n.wallet&&("custom-deeplink"===n.wallet.openMethod||be(n.wallet.deepLink)&&$i())&&(h=n.wallet.deepLink);const p=()=>{const e=Qo(),t="returnStrategy"in e?e.returnStrategy:au.returnStrategy,n=!r();o(!1);const i=Gu(u,{sessionId:e.sessionId,traceId:e.traceId});be(u)?zu(i,{returnStrategy:t,twaReturnUrl:"twaReturnUrl"in e?e.twaReturnUrl:au.twaReturnUrl,forceRedirect:n}):Zu(i,h,{returnStrategy:t,forceRedirect:n},()=>{})};return ur(kp,mr(t,{get children(){return[Or(()=>e.icon),ur(_p,{get translationKey(){return e.headerTranslationKey},get translationValues(){return e.headerTranslationValues}}),ur(Ep,{get translationKey(){return e.textTranslationKey},get translationValues(){return e.textTranslationValues}}),ur(br,{get when(){return!i()&&!s()&&!c()&&("open-wallet"===e.showButton&&u||"open-wallet"!==e.showButton)},get children(){return ur(Rp,{disabled:!0,"data-tc-connect-button-loading":"true",get children(){return ur(Tp,{})}})}}),ur(br,{get when(){return i()||s()},get children(){return[ur(br,{get when(){return"open-wallet"!==e.showButton},get children(){return ur(Ip,{onClick:()=>e.onClose(),get children(){return ur(Hu,{translationKey:"common.close",children:"Close"})}})}}),ur(br,{get when(){return"open-wallet"===e.showButton&&u},get children(){return ur(Ip,{onClick:p,get children(){return ur(Hu,{translationKey:"common.openWallet",children:"Open wallet"})}})}})]}})]}}))},Mp=e=>{const t=Vn(Yl),[n]=bs();return ur(Op,{headerTranslationKey:"actionModal.confirmTransaction.header",get headerTranslationValues(){return{name:t.wallet&&"name"in t.wallet?t.wallet.name:n("common.yourWallet",{},"Your wallet")}},textTranslationKey:"actionModal.confirmTransaction.text",get icon(){return ur(tl,{size:"m"})},onClose:()=>e.onClose(),showButton:"open-wallet","data-tc-confirm-modal":"true"})},Ap=e=>ur(Op,{headerTranslationKey:"actionModal.transactionCanceled.header",textTranslationKey:"actionModal.transactionCanceled.text",get icon(){return ur(Qs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-transaction-canceled-modal":"true"}),Lp=e=>ur(Op,{headerTranslationKey:"actionModal.transactionSent.header",textTranslationKey:"actionModal.transactionSent.text",get icon(){return ur(zs,{size:"m"})},showButton:"open-wallet",onClose:()=>e.onClose(),"data-tc-transaction-sent-modal":"true"}),Np=e=>{const t=Vn(Yl),[n]=bs();return ur(Op,{headerTranslationKey:"actionModal.signData.header",get headerTranslationValues(){return{name:t.wallet&&"name"in t.wallet?t.wallet.name:n("common.yourWallet",{},"Your wallet")}},textTranslationKey:"actionModal.signData.text",get icon(){return ur(tl,{size:"m"})},onClose:()=>e.onClose(),showButton:"open-wallet","data-tc-sign-data-confirm-modal":"true"})},Wp=e=>ur(Op,{headerTranslationKey:"actionModal.signDataCanceled.header",get icon(){return ur(Qs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-sign-data-canceled-modal":"true"}),Pp=e=>ur(Op,{headerTranslationKey:"actionModal.dataSigned.header",get icon(){return ur(zs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-data-signed-modal":"true"}),Up=()=>ur(Ga,{get opened(){var e;return Or(()=>null!==Qo())()&&!0===(null==(e=Qo())?void 0:e.openModal)},get enableAndroidBackHandler(){return au.enableAndroidBackHandler},onClose:()=>Jo(null),showFooter:!1,"data-tc-actions-modal-container":"true",get children(){return ur(Cr,{get children(){return[ur(xr,{get when(){return"transaction-sent"===Qo().name},get children(){return ur(Lp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"transaction-canceled"===Qo().name},get children(){return ur(Ap,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"confirm-transaction"===Qo().name},get children(){return ur(Mp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"data-signed"===Qo().name},get children(){return ur(Pp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"sign-data-canceled"===Qo().name},get children(){return ur(Wp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"confirm-sign-data"===Qo().name},get children(){return ur(Np,{onClose:()=>Jo(null)})}})]}})}}),Dp=()=>{const{locale:e}=bs()[1];On(()=>e(au.language)),On(()=>{Ho()&&Vl()});const t=Vn(ai),n=Vn(Yl),[r,o]=Rn(!1),i=()=>{var e;return"loading"===(null==(e=au.connectRequestParameters)?void 0:e.state)},a=Mn(()=>{var e;if(!i())return null==(e=au.connectRequestParameters)?void 0:e.value}),s=e=>{n.closeSingleWalletModal(e)};return Un(t.onStatusChange(e=>{e&&s("wallet-selected")})),Un(()=>{o(!1)}),ur(ru,{get opened(){return Ho()},get enableAndroidBackHandler(){return au.enableAndroidBackHandler},onClose:()=>s("action-cancelled"),onClickQuestion:()=>o(e=>!e),showFooter:!0,"data-tc-wallets-modal-container":"true",get children(){return[ur(br,{get when(){return r()},get children(){return ur(ch,{onBackClick:()=>o(!1)})}}),ur(br,{get when(){return!r()},get children(){return[ur(br,{get when(){return i()},get children(){return[ur(ou,{translationKey:"walletModal.loading",children:"Wallets list is loading"}),ur(iu,{get children(){return ur(tl,{size:"m"})}})]}}),ur(br,{get when(){return!i()},get children(){return ur(zr,{get component(){return Fl()?Th:Xu},get wallet(){return Vo()},get additionalRequest(){return a()},onBackClick:()=>{},backDisabled:!0})}})]}})]}})},jp=e=>{const t=vs(oi,au.language);return customElements.get("tc-root")||customElements.define(uo,class extends HTMLElement{}),document.body.hasAttribute("ontouchstart")||document.body.setAttribute("ontouchstart",""),ur(ys.Provider,{value:t,get children(){return ur(Yl.Provider,{get value(){return e.tonConnectUI},get children(){return ur(ai.Provider,{get value(){return au.connector},get children(){return[ur(go,{}),ur(io,{theme:Ii,get children(){return[ur(br,{get when(){return au.buttonRootId},get children(){return ur(Vr,{get mount(){return document.getElementById(au.buttonRootId)},get children(){return ur(nu,{})}})}}),ur(zr,{component:uo,get children(){return[ur(Sp,{}),ur(Dp,{}),ur(Up,{})]}})]}})]}})}})}})},Bp={openWalletsModal:e=>{setTimeout(()=>qo(t=>{var n;return{status:"opened",traceId:null!=(n=null==e?void 0:e.traceId)?n:null==t?void 0:t.traceId,closeReason:null}}))},closeWalletsModal:e=>{setTimeout(()=>qo({status:"closed",closeReason:e}))},openSingleWalletModal:e=>{setTimeout(()=>Fo({status:"opened",closeReason:null,walletInfo:e}))},closeSingleWalletModal:e=>{setTimeout(()=>Fo({status:"closed",closeReason:e}))},openWalletNotSupportFeatureModal:(e,t)=>{setTimeout(()=>qo({status:"opened",traceId:t.traceId,closeReason:null,type:"wallet-not-support-feature",requiredFeature:e.requiredFeature}))},setAction:e=>{setTimeout(()=>Jo(e))},clearAction:()=>{setTimeout(()=>Jo(null))},getSelectedWalletInfo:()=>Zo(),getLastVisibleWallets:()=>Xo(),removeSelectedWalletInfo:()=>Yo(null),renderApp:(e,t)=>function(e,t,n,r={}){let o;return En(r=>{o=r,t===document?e():Ur(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{o(),t.textContent=""}}(()=>ur(jp,{tonConnectUI:t}),document.getElementById(e))};class qp{constructor(e){this.consumers=[],this.state=Bo(),this.connector=e.connector,this.tracker=e.tracker,this.setConnectRequestParametersCallback=e.setConnectRequestParametersCallback,On(()=>{const e=Bo();this.state=e,this.consumers.forEach(t=>t(e))}),On(Wn(Zo,(e,t)=>y(this,null,function*(){try{const{wallets:n,walletsMenu:r}=Bp.getLastVisibleWallets();if(e&&"appName"in e){if(t&&"appName"in t&&t.appName===e.appName)return;const o=yield this.connector.getSessionId();this.tracker.trackSelectedWallet(n.map(e=>e.name),e,r,"",void 0,o,this.state.traceId)}}catch(n){_o(n)}}))),On(Wn(ti,e=>y(this,null,function*(){try{const{wallets:t,walletsMenu:n}=Bp.getLastVisibleWallets();if(Ce(e.link)){const r=Zo(),o=yield this.connector.getSessionId();this.tracker.trackSelectedWallet(t.map(e=>e.name),r&&"appName"in r?r:null,n,e.link,e.type,o,this.state.traceId)}}catch(t){_o(t)}})))}open(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();this.tracker.trackConnectionStarted();const r=(yield this.connector.getWallets()).find(Ye);return r?this.connectEmbeddedWallet(r,{traceId:n}):this.openWalletsModal({traceId:n})})}close(e="action-cancelled"){"action-cancelled"===e&&this.tracker.trackConnectionError("Connection was cancelled"),Bp.closeWalletsModal(e)}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}connectEmbeddedWallet(e,t){const n=n=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},n,{traceId:t.traceId})},r=au.connectRequestParameters;"loading"===(null==r?void 0:r.state)?this.setConnectRequestParametersCallback(n):n(null==r?void 0:r.value)}openWalletsModal(e){return y(this,null,function*(){return $i()&&Fi(),Bp.openWalletsModal({traceId:e.traceId}),new Promise(e=>{const t=this.onStateChange(n=>{const{status:r}=n;"opened"===r&&(t(),e())})})})}}class $p{constructor(e){this.consumers=[],this.connector=e.connector,On(()=>{const e=Qo();this.consumers.forEach(t=>t(e))})}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}}class Kp{constructor(e){this.consumers=[],this.state=Ko(),this.connector=e.connector,this.tracker=e.tracker,this.setConnectRequestParametersCallback=e.setConnectRequestParametersCallback,On(()=>{const e=Ko();this.state=e,this.consumers.forEach(t=>t(e))})}open(e){return y(this,null,function*(){this.tracker.trackConnectionStarted();const t=cu(yield this.connector.getWallets(),au.walletsListConfiguration),n=t.find(Ye);if(!!n)return this.connectEmbeddedWallet(n);const r=t.filter(Je).find(t=>pu(t,e));if(!!r)return this.openSingleWalletModal(r);const o=`Trying to open modal window with unknown wallet "${e}".`;throw this.tracker.trackConnectionError(o),new So(o)})}close(e="action-cancelled"){"action-cancelled"===e&&this.tracker.trackConnectionError("Connection was cancelled"),Bp.closeSingleWalletModal("action-cancelled")}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}connectEmbeddedWallet(e){const t=t=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},t)},n=au.connectRequestParameters;"loading"===(null==n?void 0:n.state)?this.setConnectRequestParametersCallback(t):t(null==n?void 0:n.value)}openSingleWalletModal(e){return y(this,null,function*(){return $i()&&Fi(),Bp.openSingleWalletModal(e),new Promise(e=>{const t=this.onStateChange(n=>{const{status:r}=n;"opened"===r&&(t(),e())})})})}}class Fp{constructor(e){this.eventPrefix="ton-connect-ui-",this.tonConnectSdkVersion=null,this.eventDispatcher=null==e?void 0:e.eventDispatcher,this.tonConnectUiVersion=e.tonConnectUiVersion,this.init().catch()}get version(){return ut({ton_connect_sdk_lib:this.tonConnectSdkVersion,ton_connect_ui_lib:this.tonConnectUiVersion})}init(){return y(this,null,function*(){try{yield this.setRequestVersionHandler(),this.tonConnectSdkVersion=yield this.requestTonConnectSdkVersion()}catch(Vp){}})}setRequestVersionHandler(){return y(this,null,function*(){yield this.eventDispatcher.addEventListener("ton-connect-ui-request-version",()=>y(this,null,function*(){yield this.eventDispatcher.dispatchEvent("ton-connect-ui-response-version",dt(this.tonConnectUiVersion))}))})}requestTonConnectSdkVersion(){return y(this,null,function*(){return new Promise((e,t)=>y(this,null,function*(){try{yield this.eventDispatcher.addEventListener("ton-connect-response-version",t=>{e(t.detail.version)},{once:!0}),yield this.eventDispatcher.dispatchEvent("ton-connect-request-version",{type:"request-version"})}catch(Vp){t(Vp)}}))})}dispatchUserActionEvent(e){var t;try{null==(t=this.eventDispatcher)||t.dispatchEvent(`${this.eventPrefix}${e.type}`,e).catch()}catch(Vp){}}trackWalletModalOpened(...e){try{const t=Rt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackSelectedWallet(...e){try{const t=Tt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){_o(Vp)}}trackConnectionStarted(...e){try{const t=pt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionCompleted(...e){try{const t=gt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionError(...e){try{const t=ft(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringStarted(...e){try{const t=mt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringCompleted(...e){try{const t=wt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringError(...e){try{const t=vt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDisconnection(...e){try{const t=Et(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSentForSignature(...e){try{const t=bt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSigned(...e){try{const t=Ct(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSigningFailed(...e){try{const t=xt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSentForSignature(...e){try{const t=St(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSigned(...e){try{const t=kt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSigningFailed(...e){try{const t=_t(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}}class Hp{constructor(){this.userAgent=Lo()}getLocale(){var e;return(null==(e=navigator.languages)?void 0:e[0])||navigator.language||""}getBrowser(){var e;return null!=(e=this.userAgent.browser)?e:""}getPlatform(){var e;return null!=(e=this.userAgent.os)?e:""}getTelegramUser(){return Bi}getClientEnvironment(){return $i()?"miniapp":"web"}}e.BadRequestError=oe,e.BrowserEventDispatcher=tn,e.FetchWalletsError=se,e.LocalstorageNotFoundError=ae,e.ParseHexError=ce,e.SessionCrypto=F,e.THEME=Zr,e.TonConnect=dn,e.TonConnectError=z,e.TonConnectUI=class{constructor(e){var t;this.walletInfoStorage=new Uo,this.preferredWalletStorage=new Do,this.walletInfo=null,this.systemThemeChangeUnsubscribe=null,this.connectionRestored=Promise.resolve(!1);let n=null!=(t=null==e?void 0:e.eventDispatcher)?t:new tn;if(e&&"connector"in e&&e.connector)this.connector=e.connector;else{if(!(e&&"manifestUrl"in e&&e.manifestUrl))throw new So("You have to specify a `manifestUrl` or a `connector` in the options.");this.connector=new dn({manifestUrl:e.manifestUrl,eventDispatcher:n,walletsRequiredFeatures:e.walletsRequiredFeatures,environment:new Hp,analytics:e.analytics})}this.tracker=new Fp({eventDispatcher:n,tonConnectUiVersion:"2.4.0-beta.7"}),this.modal=new qp({connector:this.connector,tracker:this.tracker,setConnectRequestParametersCallback:e=>{this.connectRequestParametersCallback=e}}),this.singleWalletModal=new Kp({connector:this.connector,tracker:this.tracker,setConnectRequestParametersCallback:e=>{this.connectRequestParametersCallback=e}}),this.transactionModal=new $p({connector:this.connector}),this._walletsRequiredFeatures=e.walletsRequiredFeatures,this._walletsPreferredFeatures=e.walletsPreferredFeatures,this.walletsList=this.getWallets(),this.walletsList.then(e=>{return Oo((t=e.map(e=>e.imageUrl),[...new Set(t)]));var t});const r=this.normalizeWidgetRoot(null==e?void 0:e.widgetRootId);this.subscribeToWalletChange(),!1!==(null==e?void 0:e.restoreConnection)&&(this.connectionRestored=function(e){return y(this,null,function*(){return yield new Promise(e=>requestAnimationFrame(e)),e()})}(()=>y(this,null,function*(){return this.tracker.trackConnectionRestoringStarted(),yield this.connector.restoreConnection(),this.connector.connected?this.tracker.trackConnectionRestoringCompleted(this.wallet):(this.tracker.trackConnectionRestoringError("Connection was not restored"),this.walletInfoStorage.removeWalletInfo()),this.connector.connected}))),this.uiOptions=Ti(e,{uiPreferences:{theme:"SYSTEM"}});const o=this.preferredWalletStorage.getPreferredWalletAppName();su({connector:this.connector,preferredWalletAppName:o}),Bp.renderApp(r,this)}static getWallets(){return dn.getWallets()}get walletsRequiredFeatures(){return this._walletsRequiredFeatures}get walletsPreferredFeatures(){return this._walletsPreferredFeatures}get connected(){return this.connector.connected}get account(){return this.connector.account}get wallet(){return this.connector.wallet?m(m({},this.connector.wallet),this.walletInfo):null}set uiOptions(e){var t,n,r,o,i,a,s;this.checkButtonRootExist(e.buttonRootId),this.actionsConfiguration=e.actionsConfiguration,"walletsRequiredFeatures"in e&&(this._walletsRequiredFeatures=e.walletsRequiredFeatures),"walletsPreferredFeatures"in e&&(this._walletsPreferredFeatures=e.walletsPreferredFeatures),(null==(t=e.uiPreferences)?void 0:t.theme)?"SYSTEM"!==(null==(n=e.uiPreferences)?void 0:n.theme)?(null==(r=this.systemThemeChangeUnsubscribe)||r.call(this),Li(e.uiPreferences.theme,e.uiPreferences.colorsSet)):(Li(window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?Zr.LIGHT:Zr.DARK,e.uiPreferences.colorsSet),this.systemThemeChangeUnsubscribe||(this.systemThemeChangeUnsubscribe=function(e){const t=t=>e(t.matches?Zr.DARK:Zr.LIGHT);return window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t),()=>window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",t)}(Li))):(null==(o=e.uiPreferences)?void 0:o.colorsSet)&&(a=e.uiPreferences.colorsSet,Ai[Zr.DARK]=Ti(a[Zr.DARK],Ai[Zr.DARK]),Ai[Zr.LIGHT]=Ti(a[Zr.LIGHT],Ai[Zr.LIGHT]),Oi(e=>({colors:Ti(Ai[e.theme],Mi[e.theme])}))),(null==(i=e.uiPreferences)?void 0:i.borderRadius)&&(s=e.uiPreferences.borderRadius,Oi({borderRadius:s})),su(t=>{var n,r;const o=Ti(m(m(m(m({},e.language&&{language:e.language}),!!(null==(n=e.actionsConfiguration)?void 0:n.returnStrategy)&&{returnStrategy:e.actionsConfiguration.returnStrategy}),!!(null==(r=e.actionsConfiguration)?void 0:r.twaReturnUrl)&&{twaReturnUrl:e.actionsConfiguration.twaReturnUrl}),!!e.walletsListConfiguration&&{walletsListConfiguration:e.walletsListConfiguration}),pi(t));return void 0!==e.buttonRootId&&(o.buttonRootId=e.buttonRootId),void 0!==e.enableAndroidBackHandler&&(o.enableAndroidBackHandler=e.enableAndroidBackHandler),o})}setConnectRequestParameters(e){var t;su({connectRequestParameters:e}),"ready"!==(null==e?void 0:e.state)&&e||null==(t=this.connectRequestParametersCallback)||t.call(this,null==e?void 0:e.value)}setConnectionNetwork(e){this.connector.setConnectionNetwork(e)}getWallets(){return y(this,null,function*(){return this.connector.getWallets()})}onStatusChange(e,t){return this.connector.onStatusChange(t=>y(this,null,function*(){if(t){const n=yield this.getSelectedWalletInfo(t);e(m(m({},t),n||this.walletInfoStorage.getWalletInfo()))}else e(t)}),t)}openModal(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();yield this.modal.open({traceId:n});const r=yield this.getSessionId(),o=Bp.getLastVisibleWallets();this.tracker.trackWalletModalOpened(o.wallets.map(e=>e.name),r,null==e?void 0:e.traceId)})}closeModal(e){this.modal.close(e)}onModalStateChange(e){return this.modal.onStateChange(e)}get modalState(){return this.modal.state}openSingleWalletModal(e){return y(this,null,function*(){return this.singleWalletModal.open(e)})}closeSingleWalletModal(e){this.singleWalletModal.close(e)}onSingleWalletModalStateChange(e){return this.singleWalletModal.onStateChange(e)}get singleWalletModalState(){return this.singleWalletModal.state}connectWallet(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe(),r=(yield this.getWallets()).find(Ye);return r?yield this.connectEmbeddedWallet(r,{traceId:n}):yield this.connectExternalWallet({traceId:n})})}disconnect(e){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();return this.tracker.trackDisconnection(this.wallet,"dapp"),Bp.clearAction(),Bp.removeSelectedWalletInfo(),this.walletInfoStorage.removeWalletInfo(),this.connector.disconnect({traceId:n})}sendTransaction(e,t){return y(this,null,function*(){var n;const r=null!=(n=null==t?void 0:t.traceId)?n:Pe();if(this.tracker.trackTransactionSentForSignature(this.wallet,e),!this.connected)throw this.tracker.trackTransactionSigningFailed(this.wallet,e,"Wallet was not connected"),new So("Connect wallet to send a transaction.");$i()&&Fi();const{notifications:o,modals:i,returnStrategy:a,twaReturnUrl:s}=this.getModalsAndNotificationsConfiguration(t),l=yield this.getSessionId();Bp.setAction({name:"confirm-transaction",showNotification:o.includes("before"),openModal:i.includes("before"),sent:!1,sessionId:l||void 0,traceId:r});const c=new AbortController,d=()=>{var e;if(c.signal.aborted)return;Bp.setAction({name:"confirm-transaction",showNotification:o.includes("before"),openModal:i.includes("before"),sent:!0,sessionId:l||void 0,traceId:r}),this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,sessionId:l||void 0,traceId:r});let n=!0;null==(e=null==t?void 0:t.onRequestSent)||e.call(t,()=>y(this,null,function*(){if(c.signal.aborted)return;const e=!n;n=!1,yield this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,forceRedirect:e,sessionId:l||void 0,traceId:r})}))},u=this.onTransactionModalStateChange(e=>{(null==e?void 0:e.openModal)||(u(),e||c.abort())});try{const t=yield this.waitForSendTransaction({transaction:e,signal:c.signal,traceId:r},d);return this.tracker.trackTransactionSigned(this.wallet,e,t),Bp.setAction({name:"transaction-sent",showNotification:o.includes("success"),openModal:i.includes("success"),traceId:r}),t}catch(Vp){if(Vp instanceof ee)throw Bp.clearAction(),Bp.openWalletNotSupportFeatureModal(Vp.cause,{traceId:r}),Vp;throw Bp.setAction({name:"transaction-canceled",showNotification:o.includes("error"),openModal:i.includes("error"),traceId:r}),Vp instanceof z?Vp:(console.error(Vp),new So("Unhandled error:"+Vp))}finally{u()}})}signData(e,t){return y(this,null,function*(){var n;const r=null!=(n=null==t?void 0:t.traceId)?n:Pe();if(this.tracker.trackDataSentForSignature(this.wallet,e),!this.connected)throw this.tracker.trackDataSigningFailed(this.wallet,e,"Wallet was not connected"),new So("Connect wallet to send a transaction.");$i()&&Fi();const{notifications:o,modals:i,returnStrategy:a,twaReturnUrl:s}=this.getModalsAndNotificationsConfiguration(),l=yield this.getSessionId();Bp.setAction({name:"confirm-sign-data",showNotification:o.includes("before"),openModal:i.includes("before"),signed:!1,sessionId:l||void 0,traceId:r});const c=new AbortController,d=()=>{var e;if(c.signal.aborted)return;Bp.setAction({name:"confirm-sign-data",showNotification:o.includes("before"),openModal:i.includes("before"),signed:!0,sessionId:l||void 0,traceId:r}),this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,sessionId:l||void 0,traceId:r});let n=!0;null==(e=null==t?void 0:t.onRequestSent)||e.call(t,()=>{if(c.signal.aborted)return;const e=!n;n=!1,this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,forceRedirect:e,sessionId:l||void 0,traceId:r})})},u=this.onTransactionModalStateChange(e=>{(null==e?void 0:e.openModal)||(u(),e||c.abort())});try{const t=yield this.waitForSignData({data:e,signal:(new AbortController).signal,traceId:r},d);return this.tracker.trackDataSigned(this.wallet,e,t),Bp.setAction({name:"data-signed",showNotification:o.includes("success"),openModal:i.includes("success"),traceId:r}),t}catch(Vp){if(Vp instanceof ee)throw Bp.clearAction(),Bp.openWalletNotSupportFeatureModal(Vp.cause,{traceId:r}),Vp;throw Bp.setAction({name:"sign-data-canceled",showNotification:o.includes("error"),openModal:i.includes("error"),traceId:r}),Vp instanceof z?Vp:(console.error(Vp),new So("Unhandled error:"+Vp))}finally{u()}})}getSessionId(){return y(this,null,function*(){var e,t;try{const n=null==(e=this.connector.dappSettings)?void 0:e.storage;if(n){const e=yield n.getItem("ton-connect-storage_bridge-connection");if(e){const n=JSON.parse(e);if("http"===n.type&&n.sessionCrypto){const e=new F(n.sessionCrypto);return e.sessionId}if("http"===n.type&&(null==(t=n.session)?void 0:t.sessionKeyPair)){const e=new F(n.session.sessionKeyPair);return e.sessionId}}}}catch(Vp){}return null})}redirectAfterRequestSent({returnStrategy:e,twaReturnUrl:t,forceRedirect:n,sessionId:r,traceId:o}){if(this.walletInfo&&"universalLink"in this.walletInfo&&("universal-link"===this.walletInfo.openMethod||"custom-deeplink"===this.walletInfo.openMethod)){const i=Gu(this.walletInfo.universalLink,{sessionId:r,traceId:o});be(this.walletInfo.universalLink)?zu(i,{returnStrategy:e,twaReturnUrl:t||au.twaReturnUrl,forceRedirect:n||!1}):Zu(i,this.walletInfo.deepLink,{returnStrategy:e,forceRedirect:n||!1},()=>{})}}connectEmbeddedWallet(e,t){return y(this,null,function*(){const n=n=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},n,{traceId:t.traceId})},r=au.connectRequestParameters;return"loading"===(null==r?void 0:r.state)?this.connectRequestParametersCallback=n:n(null==r?void 0:r.value),yield this.waitForWalletConnection({ignoreErrors:!1,traceId:t.traceId})})}connectExternalWallet(e){return y(this,null,function*(){const t=new AbortController;Bp.openWalletsModal({traceId:e.traceId});const n=this.onModalStateChange(e=>{const{status:r,closeReason:o}=e;"opened"!==r&&(n(),"action-cancelled"===o&&t.abort())});return yield this.waitForWalletConnection({ignoreErrors:!0,signal:t.signal,traceId:e.traceId})})}waitForWalletConnection(e){return y(this,null,function*(){return new Promise((t,n)=>{this.tracker.trackConnectionStarted();const{ignoreErrors:r=!1,signal:o=null}=e;if(o&&o.aborted)return this.tracker.trackConnectionError("Connection was cancelled"),n(new So("Wallet was not connected"));const i=e=>y(this,null,function*(){if(e)this.tracker.trackConnectionCompleted(e),s(),t(e);else{if(this.tracker.trackConnectionError("Connection was cancelled"),r)return;s(),n(new So("Wallet was not connected"))}}),a=e=>{this.tracker.trackConnectionError(e.message),r||(s(),n(e))},s=this.onStatusChange(e=>i(e),e=>a(e));o&&o.addEventListener("abort",()=>{s(),n(new So("Wallet was not connected"))},{once:!0})})})}waitForSendTransaction(e,t){return y(this,null,function*(){return new Promise((n,r)=>{const{transaction:o,signal:i}=e;if(i.aborted)return this.tracker.trackTransactionSigningFailed(this.wallet,o,"Transaction was cancelled"),r(new So("Transaction was not sent"));const a=e=>y(this,null,function*(){n(e)}),s=()=>{this.tracker.trackTransactionSigningFailed(this.wallet,o,"Transaction was cancelled"),r(new So("Transaction was not sent"))};i.addEventListener("abort",s,{once:!0}),this.connector.sendTransaction(o,{onRequestSent:t,signal:i,traceId:e.traceId}).then(e=>(i.removeEventListener("abort",s),a(e))).catch(e=>(i.removeEventListener("abort",s),(e=>{r(e)})(e)))})})}waitForSignData(e,t){return y(this,null,function*(){return new Promise((n,r)=>{const{data:o,signal:i}=e;if(i.aborted)return this.tracker.trackDataSigningFailed(this.wallet,o,"SignData was cancelled"),r(new So("SignData was not sent"));const a=e=>y(this,null,function*(){n(e)});i.addEventListener("abort",()=>{this.tracker.trackDataSigningFailed(this.wallet,o,"SignData was cancelled"),r(new So("SignData was not sent"))},{once:!0}),this.connector.signData(o,{onRequestSent:t,signal:i}).then(e=>a(e)).catch(e=>(e=>{r(e)})(e))})})}onTransactionModalStateChange(e){return this.transactionModal.onStateChange(e)}subscribeToWalletChange(){this.connector.onStatusChange(e=>y(this,null,function*(){var t;e?(yield this.updateWalletInfo(e),this.setPreferredWalletAppName((null==(t=this.walletInfo)?void 0:t.appName)||e.device.appName)):this.walletInfoStorage.removeWalletInfo()}))}setPreferredWalletAppName(e){this.preferredWalletStorage.setPreferredWalletAppName(e),su({preferredWalletAppName:e})}getSelectedWalletInfo(e){return y(this,null,function*(){let t=Bp.getSelectedWalletInfo();if(!t)return null;if(!("name"in t)){if(e.device.appName===_u)return{type:"wallet-connect",name:Eu,appName:_u,imageUrl:Dl,aboutUrl:"https://reown.com/",features:e.device.features,platforms:[]};const n=cu(yield this.walletsList,au.walletsListConfiguration).find(t=>pu(t,e.device.appName));if(!n)throw new So(`Cannot find WalletInfo for the '${e.device.appName}' wallet`);return m(m({},n),t)}return t})}updateWalletInfo(e){return y(this,null,function*(){const t=yield this.getSelectedWalletInfo(e);if(t)return this.walletInfo=t,void this.walletInfoStorage.setWalletInfo(t);const n=this.walletInfoStorage.getWalletInfo();this.walletInfo=n||((yield this.walletsList).find(t=>pu(t,e.device.appName))||null)})}normalizeWidgetRoot(e){if(!e||!document.getElementById(e)){e="tc-widget-root";const t=document.createElement("div");t.id=e,document.body.appendChild(t)}return e}checkButtonRootExist(e){if(null!=e&&!document.getElementById(e))throw new So(`${e} element not found in the document.`)}getModalsAndNotificationsConfiguration(e){var t,n,r,o,i,a;const s=["before","success","error"];let l=s;(null==(t=this.actionsConfiguration)?void 0:t.notifications)&&"all"!==(null==(n=this.actionsConfiguration)?void 0:n.notifications)&&(l=this.actionsConfiguration.notifications),(null==e?void 0:e.notifications)&&(l="all"===e.notifications?s:e.notifications);let c=["before"];(null==(r=this.actionsConfiguration)?void 0:r.modals)&&(c="all"===this.actionsConfiguration.modals?s:this.actionsConfiguration.modals),(null==e?void 0:e.modals)&&(c="all"===e.modals?s:e.modals);const d=(null==e?void 0:e.returnStrategy)||(null==(o=this.actionsConfiguration)?void 0:o.returnStrategy)||"back",u=(null==e?void 0:e.twaReturnUrl)||(null==(i=this.actionsConfiguration)?void 0:i.twaReturnUrl);let h=(null==e?void 0:e.skipRedirectToWallet)||(null==(a=this.actionsConfiguration)?void 0:a.skipRedirectToWallet)||"ios";return $i()&&(h="never"),{notifications:l,modals:c,returnStrategy:d,twaReturnUrl:u,skipRedirectToWallet:h}}},e.TonConnectUIError=So,e.UUIDv7=Pe,e.UnknownAppError=ie,e.UnknownError=de,e.UserRejectsError=re,e.WalletAlreadyConnectedError=Q,e.WalletMissingRequiredFeaturesError=te,e.WalletNotConnectedError=J,e.WalletNotInjectedError=X,e.WalletNotSupportFeatureError=ee,e.WalletWrongNetworkError=ne,e.WalletsListManager=it,e.WrongAddressError=le,e.checkRequiredWalletFeatures=st,e.createConnectionCompletedEvent=gt,e.createConnectionErrorEvent=ft,e.createConnectionRestoringCompletedEvent=wt,e.createConnectionRestoringErrorEvent=vt,e.createConnectionRestoringStartedEvent=mt,e.createConnectionStartedEvent=pt,e.createDataSentForSignatureEvent=St,e.createDataSignedEvent=kt,e.createDataSigningFailedEvent=_t,e.createDisconnectionEvent=Et,e.createRequestVersionEvent=ct,e.createResponseVersionEvent=dt,e.createSelectedWalletEvent=Tt,e.createTransactionSentForSignatureEvent=bt,e.createTransactionSignedEvent=Ct,e.createTransactionSigningFailedEvent=xt,e.createVersionInfo=ut,e.createWalletModalOpenedEvent=Rt,e.decodeTelegramUrlParameters=Se,e.enableQaMode=function(){et=!0,console.warn("🚨 QA Mode enabled - validation is disabled. This is unsafe for production!"),rt(),function(){if("undefined"==typeof window||tt)return;tt=new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&e.removedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e;"ton-connect-qa-banner"===t.id&&et?(console.warn("QA Mode banner was removed, restoring..."),setTimeout(()=>rt(),100)):"ton-connect-qa-mode-styles"===t.id&&et&&(console.warn("QA Mode styles were removed, restoring..."),setTimeout(()=>ot(),100))}})})}),tt.observe(document.body,{childList:!0,subtree:!1}),tt.observe(document.head,{childList:!0,subtree:!1})}(),ot()},e.encodeTelegramUrlParameters=xe,e.initializeWalletConnect=function(e,t){if(void 0!==(null==an?void 0:an.walletConnectOptions)||void 0!==(null==an?void 0:an.UniversalConnectorCls))throw new z("Wallet Connect already initialized.");if("function"!=typeof e||!("init"in e))throw new z("Initialize UniversalConnectorCls must be set");an.UniversalConnectorCls=e,an.walletConnectOptions=t},e.isConnectUrl=Ce,e.isQaModeEnabled=nt,e.isTelegramUrl=be,e.isWalletConnectInitialized=sn,e.isWalletInfoCurrentlyEmbedded=Ye,e.isWalletInfoCurrentlyInjected=Ge,e.isWalletInfoInjectable=Qe,e.isWalletInfoInjected=function(e){return"jsBridgeKey"in e},e.isWalletInfoRemote=Je,e.toUserFriendlyAddress=Mt,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
1190
|
+
`,Op=e=>{const t=ia(e),n=Vn(Yl),[r,o]=Rn(!0),[i,a]=Rn(!1),[s,l]=Rn(!1),[c,d]=Rn(!1);let u,h;On(()=>{const e=Qo();a(!!e&&("sent"in e&&e.sent||"transaction-sent"===e.name)),l(!!e&&("signed"in e&&e.signed||"data-signed"===e.name)),d(!!e&&("transaction-canceled"===e.name||"sign-data-canceled"===e.name))}),(null==n?void 0:n.wallet)&&"universalLink"in n.wallet&&("universal-link"===n.wallet.openMethod||be(n.wallet.universalLink)&&$i())&&(u=n.wallet.universalLink),(null==n?void 0:n.wallet)&&"deepLink"in n.wallet&&("custom-deeplink"===n.wallet.openMethod||be(n.wallet.deepLink)&&$i())&&(h=n.wallet.deepLink);const p=()=>{const e=Qo(),t="returnStrategy"in e?e.returnStrategy:au.returnStrategy,n=!r();o(!1);const i=Gu(u,{sessionId:e.sessionId,traceId:e.traceId});be(u)?zu(i,{returnStrategy:t,twaReturnUrl:"twaReturnUrl"in e?e.twaReturnUrl:au.twaReturnUrl,forceRedirect:n}):Zu(i,h,{returnStrategy:t,forceRedirect:n},()=>{})};return ur(kp,mr(t,{get children(){return[Or(()=>e.icon),ur(_p,{get translationKey(){return e.headerTranslationKey},get translationValues(){return e.headerTranslationValues}}),ur(Ep,{get translationKey(){return e.textTranslationKey},get translationValues(){return e.textTranslationValues}}),ur(br,{get when(){return!i()&&!s()&&!c()&&("open-wallet"===e.showButton&&u||"open-wallet"!==e.showButton)},get children(){return ur(Rp,{disabled:!0,"data-tc-connect-button-loading":"true",get children(){return ur(Tp,{})}})}}),ur(br,{get when(){return i()||s()},get children(){return[ur(br,{get when(){return"open-wallet"!==e.showButton},get children(){return ur(Ip,{onClick:()=>e.onClose(),get children(){return ur(Hu,{translationKey:"common.close",children:"Close"})}})}}),ur(br,{get when(){return"open-wallet"===e.showButton&&u},get children(){return ur(Ip,{onClick:p,get children(){return ur(Hu,{translationKey:"common.openWallet",children:"Open wallet"})}})}})]}})]}}))},Mp=e=>{const t=Vn(Yl),[n]=bs();return ur(Op,{headerTranslationKey:"actionModal.confirmTransaction.header",get headerTranslationValues(){return{name:t.wallet&&"name"in t.wallet?t.wallet.name:n("common.yourWallet",{},"Your wallet")}},textTranslationKey:"actionModal.confirmTransaction.text",get icon(){return ur(tl,{size:"m"})},onClose:()=>e.onClose(),showButton:"open-wallet","data-tc-confirm-modal":"true"})},Ap=e=>ur(Op,{headerTranslationKey:"actionModal.transactionCanceled.header",textTranslationKey:"actionModal.transactionCanceled.text",get icon(){return ur(Qs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-transaction-canceled-modal":"true"}),Lp=e=>ur(Op,{headerTranslationKey:"actionModal.transactionSent.header",textTranslationKey:"actionModal.transactionSent.text",get icon(){return ur(zs,{size:"m"})},showButton:"open-wallet",onClose:()=>e.onClose(),"data-tc-transaction-sent-modal":"true"}),Np=e=>{const t=Vn(Yl),[n]=bs();return ur(Op,{headerTranslationKey:"actionModal.signData.header",get headerTranslationValues(){return{name:t.wallet&&"name"in t.wallet?t.wallet.name:n("common.yourWallet",{},"Your wallet")}},textTranslationKey:"actionModal.signData.text",get icon(){return ur(tl,{size:"m"})},onClose:()=>e.onClose(),showButton:"open-wallet","data-tc-sign-data-confirm-modal":"true"})},Wp=e=>ur(Op,{headerTranslationKey:"actionModal.signDataCanceled.header",get icon(){return ur(Qs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-sign-data-canceled-modal":"true"}),Pp=e=>ur(Op,{headerTranslationKey:"actionModal.dataSigned.header",get icon(){return ur(zs,{size:"m"})},onClose:()=>e.onClose(),"data-tc-data-signed-modal":"true"}),Up=()=>ur(Ga,{get opened(){var e;return Or(()=>null!==Qo())()&&!0===(null==(e=Qo())?void 0:e.openModal)},get enableAndroidBackHandler(){return au.enableAndroidBackHandler},onClose:()=>Jo(null),showFooter:!1,"data-tc-actions-modal-container":"true",get children(){return ur(Cr,{get children(){return[ur(xr,{get when(){return"transaction-sent"===Qo().name},get children(){return ur(Lp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"transaction-canceled"===Qo().name},get children(){return ur(Ap,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"confirm-transaction"===Qo().name},get children(){return ur(Mp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"data-signed"===Qo().name},get children(){return ur(Pp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"sign-data-canceled"===Qo().name},get children(){return ur(Wp,{onClose:()=>Jo(null)})}}),ur(xr,{get when(){return"confirm-sign-data"===Qo().name},get children(){return ur(Np,{onClose:()=>Jo(null)})}})]}})}}),Dp=()=>{const{locale:e}=bs()[1];On(()=>e(au.language)),On(()=>{Ho()&&Vl()});const t=Vn(ai),n=Vn(Yl),[r,o]=Rn(!1),i=()=>{var e;return"loading"===(null==(e=au.connectRequestParameters)?void 0:e.state)},a=Mn(()=>{var e;if(!i())return null==(e=au.connectRequestParameters)?void 0:e.value}),s=e=>{n.closeSingleWalletModal(e)};return Un(t.onStatusChange(e=>{e&&s("wallet-selected")})),Un(()=>{o(!1)}),ur(ru,{get opened(){return Ho()},get enableAndroidBackHandler(){return au.enableAndroidBackHandler},onClose:()=>s("action-cancelled"),onClickQuestion:()=>o(e=>!e),showFooter:!0,"data-tc-wallets-modal-container":"true",get children(){return[ur(br,{get when(){return r()},get children(){return ur(ch,{onBackClick:()=>o(!1)})}}),ur(br,{get when(){return!r()},get children(){return[ur(br,{get when(){return i()},get children(){return[ur(ou,{translationKey:"walletModal.loading",children:"Wallets list is loading"}),ur(iu,{get children(){return ur(tl,{size:"m"})}})]}}),ur(br,{get when(){return!i()},get children(){return ur(zr,{get component(){return Fl()?Th:Xu},get wallet(){return Vo()},get additionalRequest(){return a()},onBackClick:()=>{},backDisabled:!0})}})]}})]}})},jp=e=>{const t=vs(oi,au.language);return customElements.get("tc-root")||customElements.define(uo,class extends HTMLElement{}),document.body.hasAttribute("ontouchstart")||document.body.setAttribute("ontouchstart",""),ur(ys.Provider,{value:t,get children(){return ur(Yl.Provider,{get value(){return e.tonConnectUI},get children(){return ur(ai.Provider,{get value(){return au.connector},get children(){return[ur(go,{}),ur(io,{theme:Ii,get children(){return[ur(br,{get when(){return au.buttonRootId},get children(){return ur(Vr,{get mount(){return document.getElementById(au.buttonRootId)},get children(){return ur(nu,{})}})}}),ur(zr,{component:uo,get children(){return[ur(Sp,{}),ur(Dp,{}),ur(Up,{})]}})]}})]}})}})}})},Bp={openWalletsModal:e=>{setTimeout(()=>qo(t=>{var n;return{status:"opened",traceId:null!=(n=null==e?void 0:e.traceId)?n:null==t?void 0:t.traceId,closeReason:null}}))},closeWalletsModal:e=>{setTimeout(()=>qo({status:"closed",closeReason:e}))},openSingleWalletModal:e=>{setTimeout(()=>Fo({status:"opened",closeReason:null,walletInfo:e}))},closeSingleWalletModal:e=>{setTimeout(()=>Fo({status:"closed",closeReason:e}))},openWalletNotSupportFeatureModal:(e,t)=>{setTimeout(()=>qo({status:"opened",traceId:t.traceId,closeReason:null,type:"wallet-not-support-feature",requiredFeature:e.requiredFeature}))},setAction:e=>{setTimeout(()=>Jo(e))},clearAction:()=>{setTimeout(()=>Jo(null))},getSelectedWalletInfo:()=>Zo(),getLastVisibleWallets:()=>Xo(),removeSelectedWalletInfo:()=>Yo(null),renderApp:(e,t)=>function(e,t,n,r={}){let o;return En(r=>{o=r,t===document?e():Ur(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{o(),t.textContent=""}}(()=>ur(jp,{tonConnectUI:t}),document.getElementById(e))};class qp{constructor(e){this.consumers=[],this.state=Bo(),this.connector=e.connector,this.tracker=e.tracker,this.setConnectRequestParametersCallback=e.setConnectRequestParametersCallback,On(()=>{const e=Bo();this.state=e,this.consumers.forEach(t=>t(e))}),On(Wn(Zo,(e,t)=>y(this,null,function*(){try{const{wallets:n,walletsMenu:r}=Bp.getLastVisibleWallets();if(e&&"appName"in e){if(t&&"appName"in t&&t.appName===e.appName)return;const o=yield this.connector.getSessionId();this.tracker.trackSelectedWallet(n.map(e=>e.name),e,r,"",void 0,o,this.state.traceId)}}catch(n){_o(n)}}))),On(Wn(ti,e=>y(this,null,function*(){try{const{wallets:t,walletsMenu:n}=Bp.getLastVisibleWallets();if(Ce(e.link)){const r=Zo(),o=yield this.connector.getSessionId();this.tracker.trackSelectedWallet(t.map(e=>e.name),r&&"appName"in r?r:null,n,e.link,e.type,o,this.state.traceId)}}catch(t){_o(t)}})))}open(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();this.tracker.trackConnectionStarted();const r=(yield this.connector.getWallets()).find(Ye);return r?this.connectEmbeddedWallet(r,{traceId:n}):this.openWalletsModal({traceId:n})})}close(e="action-cancelled"){"action-cancelled"===e&&this.tracker.trackConnectionError("Connection was cancelled"),Bp.closeWalletsModal(e)}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}connectEmbeddedWallet(e,t){const n=n=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},n,{traceId:t.traceId})},r=au.connectRequestParameters;"loading"===(null==r?void 0:r.state)?this.setConnectRequestParametersCallback(n):n(null==r?void 0:r.value)}openWalletsModal(e){return y(this,null,function*(){return $i()&&Fi(),Bp.openWalletsModal({traceId:e.traceId}),new Promise(e=>{const t=this.onStateChange(n=>{const{status:r}=n;"opened"===r&&(t(),e())})})})}}class $p{constructor(e){this.consumers=[],this.connector=e.connector,On(()=>{const e=Qo();this.consumers.forEach(t=>t(e))})}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}}class Kp{constructor(e){this.consumers=[],this.state=Ko(),this.connector=e.connector,this.tracker=e.tracker,this.setConnectRequestParametersCallback=e.setConnectRequestParametersCallback,On(()=>{const e=Ko();this.state=e,this.consumers.forEach(t=>t(e))})}open(e){return y(this,null,function*(){this.tracker.trackConnectionStarted();const t=cu(yield this.connector.getWallets(),au.walletsListConfiguration),n=t.find(Ye);if(!!n)return this.connectEmbeddedWallet(n);const r=t.filter(Je).find(t=>pu(t,e));if(!!r)return this.openSingleWalletModal(r);const o=`Trying to open modal window with unknown wallet "${e}".`;throw this.tracker.trackConnectionError(o),new So(o)})}close(e="action-cancelled"){"action-cancelled"===e&&this.tracker.trackConnectionError("Connection was cancelled"),Bp.closeSingleWalletModal("action-cancelled")}onStateChange(e){return this.consumers.push(e),()=>{this.consumers=this.consumers.filter(t=>t!==e)}}connectEmbeddedWallet(e){const t=t=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},t)},n=au.connectRequestParameters;"loading"===(null==n?void 0:n.state)?this.setConnectRequestParametersCallback(t):t(null==n?void 0:n.value)}openSingleWalletModal(e){return y(this,null,function*(){return $i()&&Fi(),Bp.openSingleWalletModal(e),new Promise(e=>{const t=this.onStateChange(n=>{const{status:r}=n;"opened"===r&&(t(),e())})})})}}class Fp{constructor(e){this.eventPrefix="ton-connect-ui-",this.tonConnectSdkVersion=null,this.eventDispatcher=null==e?void 0:e.eventDispatcher,this.tonConnectUiVersion=e.tonConnectUiVersion,this.init().catch()}get version(){return ut({ton_connect_sdk_lib:this.tonConnectSdkVersion,ton_connect_ui_lib:this.tonConnectUiVersion})}init(){return y(this,null,function*(){try{yield this.setRequestVersionHandler(),this.tonConnectSdkVersion=yield this.requestTonConnectSdkVersion()}catch(Vp){}})}setRequestVersionHandler(){return y(this,null,function*(){yield this.eventDispatcher.addEventListener("ton-connect-ui-request-version",()=>y(this,null,function*(){yield this.eventDispatcher.dispatchEvent("ton-connect-ui-response-version",dt(this.tonConnectUiVersion))}))})}requestTonConnectSdkVersion(){return y(this,null,function*(){return new Promise((e,t)=>y(this,null,function*(){try{yield this.eventDispatcher.addEventListener("ton-connect-response-version",t=>{e(t.detail.version)},{once:!0}),yield this.eventDispatcher.dispatchEvent("ton-connect-request-version",{type:"request-version"})}catch(Vp){t(Vp)}}))})}dispatchUserActionEvent(e){var t;try{null==(t=this.eventDispatcher)||t.dispatchEvent(`${this.eventPrefix}${e.type}`,e).catch()}catch(Vp){}}trackWalletModalOpened(...e){try{const t=Rt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackSelectedWallet(...e){try{const t=Tt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){_o(Vp)}}trackConnectionStarted(...e){try{const t=pt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionCompleted(...e){try{const t=gt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionError(...e){try{const t=ft(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringStarted(...e){try{const t=mt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringCompleted(...e){try{const t=wt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackConnectionRestoringError(...e){try{const t=vt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDisconnection(...e){try{const t=Et(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSentForSignature(...e){try{const t=bt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSigned(...e){try{const t=Ct(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackTransactionSigningFailed(...e){try{const t=xt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSentForSignature(...e){try{const t=St(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSigned(...e){try{const t=kt(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}trackDataSigningFailed(...e){try{const t=_t(this.version,...e);this.dispatchUserActionEvent(t)}catch(Vp){}}}class Hp{constructor(){this.userAgent=Lo()}getLocale(){var e;return(null==(e=navigator.languages)?void 0:e[0])||navigator.language||""}getBrowser(){var e;return null!=(e=this.userAgent.browser)?e:""}getPlatform(){var e;return null!=(e=this.userAgent.os)?e:""}getTelegramUser(){return Bi}getClientEnvironment(){return $i()?"miniapp":"web"}}e.BadRequestError=oe,e.BrowserEventDispatcher=tn,e.FetchWalletsError=se,e.LocalstorageNotFoundError=ae,e.ParseHexError=ce,e.SessionCrypto=F,e.THEME=Zr,e.TonConnect=dn,e.TonConnectError=z,e.TonConnectUI=class{constructor(e){var t;this.walletInfoStorage=new Uo,this.preferredWalletStorage=new Do,this.walletInfo=null,this.systemThemeChangeUnsubscribe=null,this.connectionRestored=Promise.resolve(!1);let n=null!=(t=null==e?void 0:e.eventDispatcher)?t:new tn;if(e&&"connector"in e&&e.connector)this.connector=e.connector;else{if(!(e&&"manifestUrl"in e&&e.manifestUrl))throw new So("You have to specify a `manifestUrl` or a `connector` in the options.");this.connector=new dn({manifestUrl:e.manifestUrl,eventDispatcher:n,walletsRequiredFeatures:e.walletsRequiredFeatures,environment:new Hp,analytics:e.analytics})}this.tracker=new Fp({eventDispatcher:n,tonConnectUiVersion:"2.4.1"}),this.modal=new qp({connector:this.connector,tracker:this.tracker,setConnectRequestParametersCallback:e=>{this.connectRequestParametersCallback=e}}),this.singleWalletModal=new Kp({connector:this.connector,tracker:this.tracker,setConnectRequestParametersCallback:e=>{this.connectRequestParametersCallback=e}}),this.transactionModal=new $p({connector:this.connector}),this._walletsRequiredFeatures=e.walletsRequiredFeatures,this._walletsPreferredFeatures=e.walletsPreferredFeatures,this.walletsList=this.getWallets(),this.walletsList.then(e=>{return Oo((t=e.map(e=>e.imageUrl),[...new Set(t)]));var t});const r=this.normalizeWidgetRoot(null==e?void 0:e.widgetRootId);this.subscribeToWalletChange(),!1!==(null==e?void 0:e.restoreConnection)&&(this.connectionRestored=function(e){return y(this,null,function*(){return yield new Promise(e=>requestAnimationFrame(e)),e()})}(()=>y(this,null,function*(){return this.tracker.trackConnectionRestoringStarted(),yield this.connector.restoreConnection(),this.connector.connected?this.tracker.trackConnectionRestoringCompleted(this.wallet):(this.tracker.trackConnectionRestoringError("Connection was not restored"),this.walletInfoStorage.removeWalletInfo()),this.connector.connected}))),this.uiOptions=Ti(e,{uiPreferences:{theme:"SYSTEM"}});const o=this.preferredWalletStorage.getPreferredWalletAppName();su({connector:this.connector,preferredWalletAppName:o}),Bp.renderApp(r,this)}static getWallets(){return dn.getWallets()}get walletsRequiredFeatures(){return this._walletsRequiredFeatures}get walletsPreferredFeatures(){return this._walletsPreferredFeatures}get connected(){return this.connector.connected}get account(){return this.connector.account}get wallet(){return this.connector.wallet?m(m({},this.connector.wallet),this.walletInfo):null}set uiOptions(e){var t,n,r,o,i,a,s;this.checkButtonRootExist(e.buttonRootId),this.actionsConfiguration=e.actionsConfiguration,"walletsRequiredFeatures"in e&&(this._walletsRequiredFeatures=e.walletsRequiredFeatures),"walletsPreferredFeatures"in e&&(this._walletsPreferredFeatures=e.walletsPreferredFeatures),(null==(t=e.uiPreferences)?void 0:t.theme)?"SYSTEM"!==(null==(n=e.uiPreferences)?void 0:n.theme)?(null==(r=this.systemThemeChangeUnsubscribe)||r.call(this),Li(e.uiPreferences.theme,e.uiPreferences.colorsSet)):(Li(window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches?Zr.LIGHT:Zr.DARK,e.uiPreferences.colorsSet),this.systemThemeChangeUnsubscribe||(this.systemThemeChangeUnsubscribe=function(e){const t=t=>e(t.matches?Zr.DARK:Zr.LIGHT);return window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t),()=>window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",t)}(Li))):(null==(o=e.uiPreferences)?void 0:o.colorsSet)&&(a=e.uiPreferences.colorsSet,Ai[Zr.DARK]=Ti(a[Zr.DARK],Ai[Zr.DARK]),Ai[Zr.LIGHT]=Ti(a[Zr.LIGHT],Ai[Zr.LIGHT]),Oi(e=>({colors:Ti(Ai[e.theme],Mi[e.theme])}))),(null==(i=e.uiPreferences)?void 0:i.borderRadius)&&(s=e.uiPreferences.borderRadius,Oi({borderRadius:s})),su(t=>{var n,r;const o=Ti(m(m(m(m({},e.language&&{language:e.language}),!!(null==(n=e.actionsConfiguration)?void 0:n.returnStrategy)&&{returnStrategy:e.actionsConfiguration.returnStrategy}),!!(null==(r=e.actionsConfiguration)?void 0:r.twaReturnUrl)&&{twaReturnUrl:e.actionsConfiguration.twaReturnUrl}),!!e.walletsListConfiguration&&{walletsListConfiguration:e.walletsListConfiguration}),pi(t));return void 0!==e.buttonRootId&&(o.buttonRootId=e.buttonRootId),void 0!==e.enableAndroidBackHandler&&(o.enableAndroidBackHandler=e.enableAndroidBackHandler),o})}setConnectRequestParameters(e){var t;su({connectRequestParameters:e}),"ready"!==(null==e?void 0:e.state)&&e||null==(t=this.connectRequestParametersCallback)||t.call(this,null==e?void 0:e.value)}setConnectionNetwork(e){this.connector.setConnectionNetwork(e)}getWallets(){return y(this,null,function*(){return this.connector.getWallets()})}onStatusChange(e,t){return this.connector.onStatusChange(t=>y(this,null,function*(){if(t){const n=yield this.getSelectedWalletInfo(t);e(m(m({},t),n||this.walletInfoStorage.getWalletInfo()))}else e(t)}),t)}openModal(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();yield this.modal.open({traceId:n});const r=yield this.getSessionId(),o=Bp.getLastVisibleWallets();this.tracker.trackWalletModalOpened(o.wallets.map(e=>e.name),r,null==e?void 0:e.traceId)})}closeModal(e){this.modal.close(e)}onModalStateChange(e){return this.modal.onStateChange(e)}get modalState(){return this.modal.state}openSingleWalletModal(e){return y(this,null,function*(){return this.singleWalletModal.open(e)})}closeSingleWalletModal(e){this.singleWalletModal.close(e)}onSingleWalletModalStateChange(e){return this.singleWalletModal.onStateChange(e)}get singleWalletModalState(){return this.singleWalletModal.state}connectWallet(e){return y(this,null,function*(){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe(),r=(yield this.getWallets()).find(Ye);return r?yield this.connectEmbeddedWallet(r,{traceId:n}):yield this.connectExternalWallet({traceId:n})})}disconnect(e){var t;const n=null!=(t=null==e?void 0:e.traceId)?t:Pe();return this.tracker.trackDisconnection(this.wallet,"dapp"),Bp.clearAction(),Bp.removeSelectedWalletInfo(),this.walletInfoStorage.removeWalletInfo(),this.connector.disconnect({traceId:n})}sendTransaction(e,t){return y(this,null,function*(){var n;const r=null!=(n=null==t?void 0:t.traceId)?n:Pe();if(this.tracker.trackTransactionSentForSignature(this.wallet,e),!this.connected)throw this.tracker.trackTransactionSigningFailed(this.wallet,e,"Wallet was not connected"),new So("Connect wallet to send a transaction.");$i()&&Fi();const{notifications:o,modals:i,returnStrategy:a,twaReturnUrl:s}=this.getModalsAndNotificationsConfiguration(t),l=yield this.getSessionId();Bp.setAction({name:"confirm-transaction",showNotification:o.includes("before"),openModal:i.includes("before"),sent:!1,sessionId:l||void 0,traceId:r});const c=new AbortController,d=()=>{var e;if(c.signal.aborted)return;Bp.setAction({name:"confirm-transaction",showNotification:o.includes("before"),openModal:i.includes("before"),sent:!0,sessionId:l||void 0,traceId:r}),this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,sessionId:l||void 0,traceId:r});let n=!0;null==(e=null==t?void 0:t.onRequestSent)||e.call(t,()=>y(this,null,function*(){if(c.signal.aborted)return;const e=!n;n=!1,yield this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,forceRedirect:e,sessionId:l||void 0,traceId:r})}))},u=this.onTransactionModalStateChange(e=>{(null==e?void 0:e.openModal)||(u(),e||c.abort())});try{const t=yield this.waitForSendTransaction({transaction:e,signal:c.signal,traceId:r},d);return this.tracker.trackTransactionSigned(this.wallet,e,t),Bp.setAction({name:"transaction-sent",showNotification:o.includes("success"),openModal:i.includes("success"),traceId:r}),t}catch(Vp){if(Vp instanceof ee)throw Bp.clearAction(),Bp.openWalletNotSupportFeatureModal(Vp.cause,{traceId:r}),Vp;throw Bp.setAction({name:"transaction-canceled",showNotification:o.includes("error"),openModal:i.includes("error"),traceId:r}),Vp instanceof z?Vp:(console.error(Vp),new So("Unhandled error:"+Vp))}finally{u()}})}signData(e,t){return y(this,null,function*(){var n;const r=null!=(n=null==t?void 0:t.traceId)?n:Pe();if(this.tracker.trackDataSentForSignature(this.wallet,e),!this.connected)throw this.tracker.trackDataSigningFailed(this.wallet,e,"Wallet was not connected"),new So("Connect wallet to send a transaction.");$i()&&Fi();const{notifications:o,modals:i,returnStrategy:a,twaReturnUrl:s}=this.getModalsAndNotificationsConfiguration(),l=yield this.getSessionId();Bp.setAction({name:"confirm-sign-data",showNotification:o.includes("before"),openModal:i.includes("before"),signed:!1,sessionId:l||void 0,traceId:r});const c=new AbortController,d=()=>{var e;if(c.signal.aborted)return;Bp.setAction({name:"confirm-sign-data",showNotification:o.includes("before"),openModal:i.includes("before"),signed:!0,sessionId:l||void 0,traceId:r}),this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,sessionId:l||void 0,traceId:r});let n=!0;null==(e=null==t?void 0:t.onRequestSent)||e.call(t,()=>{if(c.signal.aborted)return;const e=!n;n=!1,this.redirectAfterRequestSent({returnStrategy:a,twaReturnUrl:s,forceRedirect:e,sessionId:l||void 0,traceId:r})})},u=this.onTransactionModalStateChange(e=>{(null==e?void 0:e.openModal)||(u(),e||c.abort())});try{const t=yield this.waitForSignData({data:e,signal:(new AbortController).signal,traceId:r},d);return this.tracker.trackDataSigned(this.wallet,e,t),Bp.setAction({name:"data-signed",showNotification:o.includes("success"),openModal:i.includes("success"),traceId:r}),t}catch(Vp){if(Vp instanceof ee)throw Bp.clearAction(),Bp.openWalletNotSupportFeatureModal(Vp.cause,{traceId:r}),Vp;throw Bp.setAction({name:"sign-data-canceled",showNotification:o.includes("error"),openModal:i.includes("error"),traceId:r}),Vp instanceof z?Vp:(console.error(Vp),new So("Unhandled error:"+Vp))}finally{u()}})}getSessionId(){return y(this,null,function*(){var e,t;try{const n=null==(e=this.connector.dappSettings)?void 0:e.storage;if(n){const e=yield n.getItem("ton-connect-storage_bridge-connection");if(e){const n=JSON.parse(e);if("http"===n.type&&n.sessionCrypto){const e=new F(n.sessionCrypto);return e.sessionId}if("http"===n.type&&(null==(t=n.session)?void 0:t.sessionKeyPair)){const e=new F(n.session.sessionKeyPair);return e.sessionId}}}}catch(Vp){}return null})}redirectAfterRequestSent({returnStrategy:e,twaReturnUrl:t,forceRedirect:n,sessionId:r,traceId:o}){if(this.walletInfo&&"universalLink"in this.walletInfo&&("universal-link"===this.walletInfo.openMethod||"custom-deeplink"===this.walletInfo.openMethod)){const i=Gu(this.walletInfo.universalLink,{sessionId:r,traceId:o});be(this.walletInfo.universalLink)?zu(i,{returnStrategy:e,twaReturnUrl:t||au.twaReturnUrl,forceRedirect:n||!1}):Zu(i,this.walletInfo.deepLink,{returnStrategy:e,forceRedirect:n||!1},()=>{})}}connectEmbeddedWallet(e,t){return y(this,null,function*(){const n=n=>{Yo(e),this.connector.connect({jsBridgeKey:e.jsBridgeKey},n,{traceId:t.traceId})},r=au.connectRequestParameters;return"loading"===(null==r?void 0:r.state)?this.connectRequestParametersCallback=n:n(null==r?void 0:r.value),yield this.waitForWalletConnection({ignoreErrors:!1,traceId:t.traceId})})}connectExternalWallet(e){return y(this,null,function*(){const t=new AbortController;Bp.openWalletsModal({traceId:e.traceId});const n=this.onModalStateChange(e=>{const{status:r,closeReason:o}=e;"opened"!==r&&(n(),"action-cancelled"===o&&t.abort())});return yield this.waitForWalletConnection({ignoreErrors:!0,signal:t.signal,traceId:e.traceId})})}waitForWalletConnection(e){return y(this,null,function*(){return new Promise((t,n)=>{this.tracker.trackConnectionStarted();const{ignoreErrors:r=!1,signal:o=null}=e;if(o&&o.aborted)return this.tracker.trackConnectionError("Connection was cancelled"),n(new So("Wallet was not connected"));const i=e=>y(this,null,function*(){if(e)this.tracker.trackConnectionCompleted(e),s(),t(e);else{if(this.tracker.trackConnectionError("Connection was cancelled"),r)return;s(),n(new So("Wallet was not connected"))}}),a=e=>{this.tracker.trackConnectionError(e.message),r||(s(),n(e))},s=this.onStatusChange(e=>i(e),e=>a(e));o&&o.addEventListener("abort",()=>{s(),n(new So("Wallet was not connected"))},{once:!0})})})}waitForSendTransaction(e,t){return y(this,null,function*(){return new Promise((n,r)=>{const{transaction:o,signal:i}=e;if(i.aborted)return this.tracker.trackTransactionSigningFailed(this.wallet,o,"Transaction was cancelled"),r(new So("Transaction was not sent"));const a=e=>y(this,null,function*(){n(e)}),s=()=>{this.tracker.trackTransactionSigningFailed(this.wallet,o,"Transaction was cancelled"),r(new So("Transaction was not sent"))};i.addEventListener("abort",s,{once:!0}),this.connector.sendTransaction(o,{onRequestSent:t,signal:i,traceId:e.traceId}).then(e=>(i.removeEventListener("abort",s),a(e))).catch(e=>(i.removeEventListener("abort",s),(e=>{r(e)})(e)))})})}waitForSignData(e,t){return y(this,null,function*(){return new Promise((n,r)=>{const{data:o,signal:i}=e;if(i.aborted)return this.tracker.trackDataSigningFailed(this.wallet,o,"SignData was cancelled"),r(new So("SignData was not sent"));const a=e=>y(this,null,function*(){n(e)});i.addEventListener("abort",()=>{this.tracker.trackDataSigningFailed(this.wallet,o,"SignData was cancelled"),r(new So("SignData was not sent"))},{once:!0}),this.connector.signData(o,{onRequestSent:t,signal:i}).then(e=>a(e)).catch(e=>(e=>{r(e)})(e))})})}onTransactionModalStateChange(e){return this.transactionModal.onStateChange(e)}subscribeToWalletChange(){this.connector.onStatusChange(e=>y(this,null,function*(){var t;e?(yield this.updateWalletInfo(e),this.setPreferredWalletAppName((null==(t=this.walletInfo)?void 0:t.appName)||e.device.appName)):this.walletInfoStorage.removeWalletInfo()}))}setPreferredWalletAppName(e){this.preferredWalletStorage.setPreferredWalletAppName(e),su({preferredWalletAppName:e})}getSelectedWalletInfo(e){return y(this,null,function*(){let t=Bp.getSelectedWalletInfo();if(!t)return null;if(!("name"in t)){if(e.device.appName===_u)return{type:"wallet-connect",name:Eu,appName:_u,imageUrl:Dl,aboutUrl:"https://reown.com/",features:e.device.features,platforms:[]};const n=cu(yield this.walletsList,au.walletsListConfiguration).find(t=>pu(t,e.device.appName));if(!n)throw new So(`Cannot find WalletInfo for the '${e.device.appName}' wallet`);return m(m({},n),t)}return t})}updateWalletInfo(e){return y(this,null,function*(){const t=yield this.getSelectedWalletInfo(e);if(t)return this.walletInfo=t,void this.walletInfoStorage.setWalletInfo(t);const n=this.walletInfoStorage.getWalletInfo();this.walletInfo=n||((yield this.walletsList).find(t=>pu(t,e.device.appName))||null)})}normalizeWidgetRoot(e){if(!e||!document.getElementById(e)){e="tc-widget-root";const t=document.createElement("div");t.id=e,document.body.appendChild(t)}return e}checkButtonRootExist(e){if(null!=e&&!document.getElementById(e))throw new So(`${e} element not found in the document.`)}getModalsAndNotificationsConfiguration(e){var t,n,r,o,i,a;const s=["before","success","error"];let l=s;(null==(t=this.actionsConfiguration)?void 0:t.notifications)&&"all"!==(null==(n=this.actionsConfiguration)?void 0:n.notifications)&&(l=this.actionsConfiguration.notifications),(null==e?void 0:e.notifications)&&(l="all"===e.notifications?s:e.notifications);let c=["before"];(null==(r=this.actionsConfiguration)?void 0:r.modals)&&(c="all"===this.actionsConfiguration.modals?s:this.actionsConfiguration.modals),(null==e?void 0:e.modals)&&(c="all"===e.modals?s:e.modals);const d=(null==e?void 0:e.returnStrategy)||(null==(o=this.actionsConfiguration)?void 0:o.returnStrategy)||"back",u=(null==e?void 0:e.twaReturnUrl)||(null==(i=this.actionsConfiguration)?void 0:i.twaReturnUrl);let h=(null==e?void 0:e.skipRedirectToWallet)||(null==(a=this.actionsConfiguration)?void 0:a.skipRedirectToWallet)||"ios";return $i()&&(h="never"),{notifications:l,modals:c,returnStrategy:d,twaReturnUrl:u,skipRedirectToWallet:h}}},e.TonConnectUIError=So,e.UUIDv7=Pe,e.UnknownAppError=ie,e.UnknownError=de,e.UserRejectsError=re,e.WalletAlreadyConnectedError=Q,e.WalletMissingRequiredFeaturesError=te,e.WalletNotConnectedError=J,e.WalletNotInjectedError=X,e.WalletNotSupportFeatureError=ee,e.WalletWrongNetworkError=ne,e.WalletsListManager=it,e.WrongAddressError=le,e.checkRequiredWalletFeatures=st,e.createConnectionCompletedEvent=gt,e.createConnectionErrorEvent=ft,e.createConnectionRestoringCompletedEvent=wt,e.createConnectionRestoringErrorEvent=vt,e.createConnectionRestoringStartedEvent=mt,e.createConnectionStartedEvent=pt,e.createDataSentForSignatureEvent=St,e.createDataSignedEvent=kt,e.createDataSigningFailedEvent=_t,e.createDisconnectionEvent=Et,e.createRequestVersionEvent=ct,e.createResponseVersionEvent=dt,e.createSelectedWalletEvent=Tt,e.createTransactionSentForSignatureEvent=bt,e.createTransactionSignedEvent=Ct,e.createTransactionSigningFailedEvent=xt,e.createVersionInfo=ut,e.createWalletModalOpenedEvent=Rt,e.decodeTelegramUrlParameters=Se,e.enableQaMode=function(){et=!0,console.warn("🚨 QA Mode enabled - validation is disabled. This is unsafe for production!"),rt(),function(){if("undefined"==typeof window||tt)return;tt=new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&e.removedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e;"ton-connect-qa-banner"===t.id&&et?(console.warn("QA Mode banner was removed, restoring..."),setTimeout(()=>rt(),100)):"ton-connect-qa-mode-styles"===t.id&&et&&(console.warn("QA Mode styles were removed, restoring..."),setTimeout(()=>ot(),100))}})})}),tt.observe(document.body,{childList:!0,subtree:!1}),tt.observe(document.head,{childList:!0,subtree:!1})}(),ot()},e.encodeTelegramUrlParameters=xe,e.initializeWalletConnect=function(e,t){if(void 0!==(null==an?void 0:an.walletConnectOptions)||void 0!==(null==an?void 0:an.UniversalConnectorCls))throw new z("Wallet Connect already initialized.");if("function"!=typeof e||!("init"in e))throw new z("Initialize UniversalConnectorCls must be set");an.UniversalConnectorCls=e,an.walletConnectOptions=t},e.isConnectUrl=Ce,e.isQaModeEnabled=nt,e.isTelegramUrl=be,e.isWalletConnectInitialized=sn,e.isWalletInfoCurrentlyEmbedded=Ye,e.isWalletInfoCurrentlyInjected=Ge,e.isWalletInfoInjectable=Qe,e.isWalletInfoInjected=function(e){return"jsBridgeKey"in e},e.isWalletInfoRemote=Je,e.toUserFriendlyAddress=Mt,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
1191
1191
|
//# sourceMappingURL=tonconnect-ui.min.js.map
|