diff --git a/bns-browser.js b/bns-browser.js index 00f3a6a..46e2b59 100644 --- a/bns-browser.js +++ b/bns-browser.js @@ -1 +1 @@ -(()=>{var Zn=Object.create;var Ze=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.getPrototypeOf,ri=Object.prototype.hasOwnProperty;var I=(e,r)=>Ze(e,"name",{value:r,configurable:!0}),Qr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ft=(e,r)=>{for(var t in r)Ze(e,t,{get:r[t],enumerable:!0})},ni=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ei(r))!ri.call(e,s)&&s!==t&&Ze(e,s,{get:()=>r[s],enumerable:!(n=$n(r,s))||n.enumerable});return e};var Ke=(e,r,t)=>(t=e!=null?Zn(ti(e)):{},ni(r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t,e));var Kt=S((Uo,Dr)=>{Dr.exports=br;var $e=class extends Error{static{I(this,"AssertionError")}};$e.prototype.name="AssertionError";function br(e,r){if(!e){var t=new $e(r);throw Error.captureStackTrace&&Error.captureStackTrace(t,br),t}}I(br,"assert")});var Ur=S((Fo,Sr)=>{function mr(e){return e.length}I(mr,"byteLength");function ii(e){let r=e.byteLength,t="";for(let n=0;n{var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ae=new Uint8Array(256);for(let e=0;e1&&e.charCodeAt(r-1)===61&&r--,r*3>>>2}I(vr,"byteLength");function Ai(e){let r=e.byteLength,t="";for(let n=0;n>2]+ye[(e[n]&3)<<4|e[n+1]>>4]+ye[(e[n+1]&15)<<2|e[n+2]>>6]+ye[e[n+2]&63];return r%3===2?t=t.substring(0,t.length-1)+"=":r%3===1&&(t=t.substring(0,t.length-2)+"=="),t}I(Ai,"toString");function ai(e,r,t=0,n=vr(r)){let s=Math.min(n,e.byteLength-t);for(let g=0,l=0;l>4,e[l++]=(w&15)<<4|x>>2,e[l++]=(x&3)<<6|b&63}return s}I(ai,"write");Fr.exports={byteLength:vr,toString:Ai,write:ai}});var Mr=S((Lo,Lr)=>{function kr(e){return e.length>>>1}I(kr,"byteLength");function si(e){let r=e.byteLength;e=new DataView(e.buffer,e.byteOffset,r);let t="",n=0;for(let s=r-r%4;n=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}I(Yr,"hexValue")});var Pr=S((Ho,Hr)=>{function Yt(e){let r=0;for(let t=0,n=e.length;t=55296&&s<=56319&&t+1=56320&&g<=57343){r+=4,t++;continue}}s<=127?r+=1:s<=2047?r+=2:r+=3}return r}I(Yt,"byteLength");var kt;if(typeof TextDecoder<"u"){let e=new TextDecoder;kt=I(function(t){return e.decode(t)},"toString")}else kt=I(function(r){let t=r.byteLength,n="",s=0;for(;s0){let w=0;for(;w>x,x-=6;x>=0;)r[_++]=128|w>>x&63,x-=6;l+=w>=65536?2:1}return g},"write");Hr.exports={byteLength:Yt,toString:kt,write:Lt}});var Gr=S((Vo,Or)=>{function Vr(e){return e.length*2}I(Vr,"byteLength");function hi(e){let r=e.byteLength,t="";for(let n=0;n>8,x=_%256;e[t+l*2]=x,e[t+l*2+1]=w}return s}I(ci,"write");Or.exports={byteLength:Vr,toString:hi,write:ci}});var Jr=S((Ht,jr)=>{var gi=Ur(),fi=Kr(),ui=Mr(),Ci=Pr(),li=Gr(),et=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function Ye(e){switch(e){case"ascii":return gi;case"base64":return fi;case"hex":return ui;case"utf8":case"utf-8":case void 0:return Ci;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return li;default:throw new Error(`Unknown encoding: ${e}`)}}I(Ye,"codecFor");function Rr(e){return e instanceof Uint8Array}I(Rr,"isBuffer");function yi(e){try{return Ye(e),!0}catch{return!1}}I(yi,"isEncoding");function _i(e,r,t){let n=new Uint8Array(e);return r!==void 0&&Ht.fill(n,r,0,n.byteLength,t),n}I(_i,"alloc");function di(e){return new Uint8Array(e)}I(di,"allocUnsafe");function wi(e){return new Uint8Array(e)}I(wi,"allocUnsafeSlow");function Ei(e,r){return Ye(r).byteLength(e)}I(Ei,"byteLength");function xi(e,r){if(e===r)return 0;let t=Math.min(e.byteLength,r.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),r=new DataView(r.buffer,r.byteOffset,r.byteLength);let n=0;for(let s=t-t%4;ng)return 1}return e.byteLength>r.byteLength?1:e.byteLengths+g.byteLength,0));let t=new Uint8Array(r),n=0;for(let s of e){if(n+s.byteLength>t.byteLength){let g=s.subarray(0,t.byteLength-n);return t.set(g,n),t}t.set(s,n),n+=s.byteLength}return t}I(Bi,"concat");function pi(e,r,t=0,n=0,s=e.byteLength){if(s>0&&s=e.byteLength)throw new RangeError("sourceStart is out of range");if(s<0)throw new RangeError("sourceEnd is out of range");t>=r.byteLength&&(t=r.byteLength),s>e.byteLength&&(s=e.byteLength),r.byteLength-t=e.byteLength){if(s)return-1;t=e.byteLength-1}else if(t<0)if(s)t=0;else return-1;if(typeof r=="string")r=Mt(r,n);else if(typeof r=="number")return r=r&255,s?e.indexOf(r,t):e.lastIndexOf(r,t);if(r.byteLength===0)return-1;if(s){let g=-1;for(let l=t;le.byteLength&&(t=e.byteLength-r.byteLength);for(let g=t;g>=0;g--){let l=!0;for(let _=0;_=s||n<=t?"":(t<0&&(t=0),n>s&&(n=s),(t!==0||n{var Ji=I((e,r)=>I(function(){return r||(0,e[Object.keys(e)[0]])((r={exports:{}}).exports,r),r.exports},"__require"),"__commonJS"),Xi=(()=>{for(var e=new Uint8Array(128),r=0;r<64;r++)e[r<26?r+65:r<52?r+71:r<62?r-4:r*4-205]=r;return t=>{for(var n=t.length,s=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),g=0,l=0;g>4,s[l++]=w<<4|x>>2,s[l++]=x<<6|b}return s}})(),qi=Ji({"wasm-binary:./blake2b.wat"(e,r){r.exports=Xi("AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMKvz8EwAIAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAAQoiS853/zPmE6gBBACkDAIU3A4ABIABCu86qptjQ67O7f0EIKQMAhTcDiAEgAEKr8NP0r+68tzxBECkDAIU3A5ABIABC8e30+KWn/aelf0EYKQMAhTcDmAEgAELRhZrv+s+Uh9EAQSApAwCFNwOgASAAQp/Y+dnCkdqCm39BKCkDAIU3A6gBIABC6/qG2r+19sEfQTApAwCFNwOwASAAQvnC+JuRo7Pw2wBBOCkDAIU3A7gBIABCADcDwAEgAEIANwPIASAAQgA3A9ABC20BA38gAEHAAWohAyAAQcgBaiEEIAQpAwCnIQUCQANAIAEgAkYNASAFQYABRgRAIAMgAykDACAFrXw3AwBBACEFIAAQAwsgACAFaiABLQAAOgAAIAVBAWohBSABQQFqIQEMAAsLIAQgBa03AwALYQEDfyAAQcABaiEBIABByAFqIQIgASABKQMAIAIpAwB8NwMAIABCfzcD0AEgAikDAKchAwJAA0AgA0GAAUYNASAAIANqQQA6AAAgA0EBaiEDDAALCyACIAOtNwMAIAAQAwuqOwIgfgl/IABBgAFqISEgAEGIAWohIiAAQZABaiEjIABBmAFqISQgAEGgAWohJSAAQagBaiEmIABBsAFqIScgAEG4AWohKCAhKQMAIQEgIikDACECICMpAwAhAyAkKQMAIQQgJSkDACEFICYpAwAhBiAnKQMAIQcgKCkDACEIQoiS853/zPmE6gAhCUK7zqqm2NDrs7t/IQpCq/DT9K/uvLc8IQtC8e30+KWn/aelfyEMQtGFmu/6z5SH0QAhDUKf2PnZwpHagpt/IQ5C6/qG2r+19sEfIQ9C+cL4m5Gjs/DbACEQIAApAwAhESAAKQMIIRIgACkDECETIAApAxghFCAAKQMgIRUgACkDKCEWIAApAzAhFyAAKQM4IRggACkDQCEZIAApA0ghGiAAKQNQIRsgACkDWCEcIAApA2AhHSAAKQNoIR4gACkDcCEfIAApA3ghICANIAApA8ABhSENIA8gACkD0AGFIQ8gASAFIBF8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSASfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgE3x8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBR8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAVfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgFnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBd8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAYfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgGXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBp8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAbfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgHHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIB18fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAefHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgH3x8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFICB8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAffHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgG3x8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBV8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAZfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgGnx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHICB8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAefHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggF3x8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBJ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAdfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgEXx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBN8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAcfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGHx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBZ8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAUfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgHHx8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBl8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAdfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgEXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBZ8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByATfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggIHx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIB58fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAbfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgH3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBR8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAXfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggGHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBJ8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAafHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFXx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBh8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAafHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgFHx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBJ8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAefHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHXx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBx8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAffHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgE3x8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBd8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAWfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgG3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBV8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCARfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgIHx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBl8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAafHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEXx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBZ8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAYfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgE3x8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBV8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAbfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggIHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIB98fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiASfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgHHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIB18fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAXfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGXx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBR8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAefHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgE3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIB18fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAXfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgG3x8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBF8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAcfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggGXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBR8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAVfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHnx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBh8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAWfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggIHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIB98fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSASfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgGnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIB18fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAWfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgEnx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGICB8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAffHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBV8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAbfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgEXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBh8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAXfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgFHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBp8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCATfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgGXx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBx8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAefHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgHHx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBh8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAffHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgHXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBJ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAUfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGnx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBZ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiARfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgIHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBV8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAZfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggF3x8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBN8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAbfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgF3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFICB8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAffHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGnx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBx8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAUfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggEXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBl8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAdfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgE3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIB58fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAYfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggEnx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBV8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAbfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBt8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSATfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgGXx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBV8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAYfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgF3x8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBJ8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAWfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgIHx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBx8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAafHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgH3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBR8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAdfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgHnx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBF8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSARfHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEnx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBN8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAUfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgFXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBZ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAXfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBl8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAafHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgG3x8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBx8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAdfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggHnx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIB98fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAgfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgH3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBt8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAVfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBp8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAgfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggHnx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBd8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiASfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHXx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBF8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByATfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggHHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBh8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAWfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFHx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgISAhKQMAIAEgCYWFNwMAICIgIikDACACIAqFhTcDACAjICMpAwAgAyALhYU3AwAgJCAkKQMAIAQgDIWFNwMAICUgJSkDACAFIA2FhTcDACAmICYpAwAgBiAOhYU3AwAgJyAnKQMAIAcgD4WFNwMAICggKCkDACAIIBCFhTcDAAs=")}}),zi=qi(),Wi=WebAssembly.compile(zi);Xr.exports=async e=>(await WebAssembly.instantiate(await Wi,e)).exports});var nn=S((Jo,J)=>{var M=Kt(),Zi=Jr(),W=null,zr=typeof WebAssembly<"u"&&qr()().then(e=>{W=e}),z=64,tt=[];J.exports=Y;var Wr=J.exports.BYTES_MIN=16,Zr=J.exports.BYTES_MAX=64,To=J.exports.BYTES=32,$r=J.exports.KEYBYTES_MIN=16,en=J.exports.KEYBYTES_MAX=64,jo=J.exports.KEYBYTES=32,tn=J.exports.SALTBYTES=16,rn=J.exports.PERSONALBYTES=16;function Y(e,r,t,n,s){if(!(this instanceof Y))return new Y(e,r,t,n,s);if(!W)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");e||(e=32),s!==!0&&(M(e>=Wr,"digestLength must be at least "+Wr+", was given "+e),M(e<=Zr,"digestLength must be at most "+Zr+", was given "+e),r!=null&&(M(r instanceof Uint8Array,"key must be Uint8Array or Buffer"),M(r.length>=$r,"key must be at least "+$r+", was given "+r.length),M(r.length<=en,"key must be at least "+en+", was given "+r.length)),t!=null&&(M(t instanceof Uint8Array,"salt must be Uint8Array or Buffer"),M(t.length===tn,"salt must be exactly "+tn+", was given "+t.length)),n!=null&&(M(n instanceof Uint8Array,"personal must be Uint8Array or Buffer"),M(n.length===rn,"personal must be exactly "+rn+", was given "+n.length))),tt.length||(tt.push(z),z+=216),this.digestLength=e,this.finalized=!1,this.pointer=tt.pop(),this._memory=new Uint8Array(W.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=r?r.length:0,this._memory[2]=1,this._memory[3]=1,t&&this._memory.set(t,32),n&&this._memory.set(n,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),W.blake2b_init(this.pointer,this.digestLength),r&&(this.update(r),this._memory.fill(0,z,z+r.length),this._memory[this.pointer+200]=128)}I(Y,"Blake2b");Y.prototype._realloc=function(e){W.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(W.memory.buffer)};Y.prototype.update=function(e){return M(this.finalized===!1,"Hash instance finalized"),M(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),z+e.length>this._memory.length&&this._realloc(z+e.length),this._memory.set(e,z),W.blake2b_update(this.pointer,z,z+e.length),this};Y.prototype.digest=function(e){if(M(this.finalized===!1,"Hash instance finalized"),this.finalized=!0,tt.push(this.pointer),W.blake2b_final(this.pointer),!e||e==="binary")return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e=="string")return Zi.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);M(e instanceof Uint8Array&&e.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var r=0;re(),e):e(new Error("WebAssembly not supported"))};Y.prototype.ready=Y.ready;Y.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)};Y.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function $i(){}I($i,"noop")});var Pt=S((Wo,k)=>{var P=Kt(),Le=nn();function rt(e,r,t){var n=e[r]+e[t],s=e[r+1]+e[t+1];n>=4294967296&&s++,e[r]=n,e[r+1]=s}I(rt,"ADD64AA");function on(e,r,t,n){var s=e[r]+t;t<0&&(s+=4294967296);var g=e[r+1]+n;s>=4294967296&&g++,e[r]=s,e[r+1]=g}I(on,"ADD64AC");function gn(e,r){return e[r]^e[r+1]<<8^e[r+2]<<16^e[r+3]<<24}I(gn,"B2B_GET32");function te(e,r,t,n,s,g){var l=ke[s],_=ke[s+1],w=ke[g],x=ke[g+1];rt(B,e,r),on(B,e,l,_);var b=B[n]^B[e],m=B[n+1]^B[e+1];B[n]=m,B[n+1]=b,rt(B,t,n),b=B[r]^B[t],m=B[r+1]^B[t+1],B[r]=b>>>24^m<<8,B[r+1]=m>>>24^b<<8,rt(B,e,r),on(B,e,w,x),b=B[n]^B[e],m=B[n+1]^B[e+1],B[n]=b>>>16^m<<16,B[n+1]=m>>>16^b<<16,rt(B,t,n),b=B[r]^B[t],m=B[r+1]^B[t+1],B[r]=m>>>31^b<<1,B[r+1]=b>>>31^m<<1}I(te,"B2B_G");var fn=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],v=new Uint8Array(eo.map(function(e){return e*2})),B=new Uint32Array(32),ke=new Uint32Array(32);function un(e,r){var t=0;for(t=0;t<16;t++)B[t]=e.h[t],B[t+16]=fn[t];for(B[24]=B[24]^e.t,B[25]=B[25]^e.t/4294967296,r&&(B[28]=~B[28],B[29]=~B[29]),t=0;t<32;t++)ke[t]=gn(e.b,4*t);for(t=0;t<12;t++)te(0,8,16,24,v[t*16+0],v[t*16+1]),te(2,10,18,26,v[t*16+2],v[t*16+3]),te(4,12,20,28,v[t*16+4],v[t*16+5]),te(6,14,22,30,v[t*16+6],v[t*16+7]),te(0,10,20,30,v[t*16+8],v[t*16+9]),te(2,12,22,24,v[t*16+10],v[t*16+11]),te(4,14,16,26,v[t*16+12],v[t*16+13]),te(6,8,18,28,v[t*16+14],v[t*16+15]);for(t=0;t<16;t++)e.h[t]=e.h[t]^B[t]^B[t+16]}I(un,"blake2bCompress");var re=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function _e(e,r,t,n){re.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,re[0]=e,r&&(re[1]=r.length),re[2]=1,re[3]=1,t&&re.set(t,32),n&&re.set(n,48);for(var s=0;s<16;s++)this.h[s]=fn[s]^gn(re,s*4);r&&(Cn(this,r),this.c=128)}I(_e,"Blake2b");_e.prototype.update=function(e){return P(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),Cn(this,e),this};_e.prototype.digest=function(e){var r=!e||e==="binary"||e==="hex"?new Uint8Array(this.outlen):e;return P(r instanceof Uint8Array,'out must be "binary", "hex", Uint8Array, or Buffer'),P(r.length>=this.outlen,"out must have at least outlen bytes of space"),to(this,r),e==="hex"?ro(r):r};_e.prototype.final=_e.prototype.digest;_e.ready=function(e){Le.ready(function(){e()})};function Cn(e,r){for(var t=0;t>2]>>8*(t&3);return r}I(to,"blake2bFinal");function ro(e){for(var r="",t=0;t=An,"outlen must be at least "+An+", was given "+r),P(r<=an,"outlen must be at most "+an+", was given "+r),t!=null&&(P(t instanceof Uint8Array,"key must be Uint8Array or Buffer"),P(t.length>=sn,"key must be at least "+sn+", was given "+t.length),P(t.length<=In,"key must be at most "+In+", was given "+t.length)),n!=null&&(P(n instanceof Uint8Array,"salt must be Uint8Array or Buffer"),P(n.length===hn,"salt must be exactly "+hn+", was given "+n.length)),s!=null&&(P(s instanceof Uint8Array,"personal must be Uint8Array or Buffer"),P(s.length===cn,"personal must be exactly "+cn+", was given "+s.length))),new io(r,t,n,s)},"createHash");k.exports.ready=function(e){Le.ready(function(){e()})};k.exports.WASM_SUPPORTED=Le.SUPPORTED;k.exports.WASM_LOADED=!1;var An=k.exports.BYTES_MIN=16,an=k.exports.BYTES_MAX=64,qo=k.exports.BYTES=32,sn=k.exports.KEYBYTES_MIN=16,In=k.exports.KEYBYTES_MAX=64,zo=k.exports.KEYBYTES=32,hn=k.exports.SALTBYTES=16,cn=k.exports.PERSONALBYTES=16;Le.ready(function(e){e||(k.exports.WASM_LOADED=!0,k.exports=Le)})});var ln=S(($o,nt)=>{(function(e){"use strict";let r=Pt();var t=I(function(i,A){this.hi=i|0,this.lo=A|0},"u64"),n=I(function(i){var A,o=new Float64Array(16);if(i)for(A=0;A>>32-A}I(ee,"L32");function he(i,A){var o=i[A+3]&255;return o=o<<8|i[A+2]&255,o=o<<8|i[A+1]&255,o<<8|i[A+0]&255}I(he,"ld32");function rr(i,A){var o=i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3],a=i[A+4]<<24|i[A+5]<<16|i[A+6]<<8|i[A+7];return new t(o,a)}I(rr,"dl64");function ft(i,A,o){var a;for(a=0;a<4;a++)i[A+a]=o&255,o>>>=8}I(ft,"st32");function nr(i,A,o){i[A]=o.hi>>24&255,i[A+1]=o.hi>>16&255,i[A+2]=o.hi>>8&255,i[A+3]=o.hi&255,i[A+4]=o.lo>>24&255,i[A+5]=o.lo>>16&255,i[A+6]=o.lo>>8&255,i[A+7]=o.lo&255}I(nr,"ts64");function ut(i,A,o,a,h){var c,C=0;for(c=0;c>>8)-1}I(ut,"vn");function ir(i,A,o,a){return ut(i,A,o,a,16)}I(ir,"crypto_verify_16");function Ct(i,A,o,a){return ut(i,A,o,a,32)}I(Ct,"crypto_verify_32");function or(i,A,o,a,h){var c=new Uint32Array(16),C=new Uint32Array(16),y=new Uint32Array(16),f=new Uint32Array(4),u,d,Q;for(u=0;u<4;u++)C[5*u]=he(a,4*u),C[1+u]=he(o,4*u),C[6+u]=he(A,4*u),C[11+u]=he(o,16+4*u);for(u=0;u<16;u++)y[u]=C[u];for(u=0;u<20;u++){for(d=0;d<4;d++){for(Q=0;Q<4;Q++)f[Q]=C[(5*d+4*Q)%16];for(f[1]^=ee(f[0]+f[3]|0,7),f[2]^=ee(f[1]+f[0]|0,9),f[3]^=ee(f[2]+f[1]|0,13),f[0]^=ee(f[3]+f[2]|0,18),Q=0;Q<4;Q++)c[4*d+(d+Q)%4]=f[Q]}for(Q=0;Q<16;Q++)C[Q]=c[Q]}if(h){for(u=0;u<16;u++)C[u]=C[u]+y[u]|0;for(u=0;u<4;u++)C[5*u]=C[5*u]-he(a,4*u)|0,C[6+u]=C[6+u]-he(A,4*u)|0;for(u=0;u<4;u++)ft(i,4*u,C[5*u]),ft(i,16+4*u,C[6+u])}else for(u=0;u<16;u++)ft(i,4*u,C[u]+y[u]|0)}I(or,"core");function Ar(i,A,o,a){return or(i,A,o,a,!1),0}I(Ar,"crypto_core_salsa20");function Ge(i,A,o,a){return or(i,A,o,a,!0),0}I(Ge,"crypto_core_hsalsa20");var Qe=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function lt(i,A,o,a,h,c,C){var y=new Uint8Array(16),f=new Uint8Array(64),u,d;if(!h)return 0;for(d=0;d<16;d++)y[d]=0;for(d=0;d<8;d++)y[d]=c[d];for(;h>=64;){for(Ar(f,y,C,Qe),d=0;d<64;d++)i[A+d]=(o?o[a+d]:0)^f[d];for(u=1,d=8;d<16;d++)u=u+(y[d]&255)|0,y[d]=u&255,u>>>=8;h-=64,A+=64,o&&(a+=64)}if(h>0)for(Ar(f,y,C,Qe),d=0;d>>=8}I(_t,"add1305");var Ln=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]);function dt(i,A,o,a,h,c){var C,y,f,u,d=new Uint32Array(17),Q=new Uint32Array(17),D=new Uint32Array(17),R=new Uint32Array(17),le=new Uint32Array(17);for(f=0;f<17;f++)Q[f]=D[f]=0;for(f=0;f<16;f++)Q[f]=c[f];for(Q[3]&=15,Q[4]&=252,Q[7]&=15,Q[8]&=252,Q[11]&=15,Q[12]&=252,Q[15]&=15;h>0;){for(f=0;f<17;f++)R[f]=0;for(f=0;f<16&&f>>=8;for(u=u+D[16]|0,D[16]=u&3,u=5*(u>>>2)|0,f=0;f<16;f++)u=u+D[f]|0,D[f]=u&255,u>>>=8;u=u+D[16]|0,D[16]=u}for(f=0;f<17;f++)le[f]=D[f];for(_t(D,Ln),C=-(D[16]>>>7)|0,f=0;f<17;f++)D[f]^=C&(le[f]^D[f]);for(f=0;f<16;f++)R[f]=c[f+16];for(R[16]=0,_t(D,R),f=0;f<16;f++)i[A+f]=D[f];return 0}I(dt,"crypto_onetimeauth");function Ir(i,A,o,a,h,c){var C=new Uint8Array(16);return dt(C,0,o,a,h,c),ir(i,A,C,0)}I(Ir,"crypto_onetimeauth_verify");function wt(i,A,o,a,h){var c;if(o<32)return-1;for(yt(i,0,A,0,o,a,h),dt(i,16,i,32,o-32,i),c=0;c<16;c++)i[c]=0;return 0}I(wt,"crypto_secretbox");function Et(i,A,o,a,h){var c,C=new Uint8Array(32);if(o<32||(sr(C,0,32,a,h),Ir(A,16,A,32,o-32,C)!==0))return-1;for(yt(i,0,A,0,o,a,h),c=0;c<32;c++)i[c]=0;return 0}I(Et,"crypto_secretbox_open");function X(i,A){var o;for(o=0;o<16;o++)i[o]=A[o]|0}I(X,"set25519");function be(i){var A,o;for(o=0;o<16;o++)i[o]+=65536,A=Math.floor(i[o]/65536),i[(o+1)*(o<15?1:0)]+=A-1+37*(A-1)*(o===15?1:0),i[o]-=A*65536}I(be,"car25519");function ce(i,A,o){for(var a,h=~(o-1),c=0;c<16;c++)a=h&(i[c]^A[c]),i[c]^=a,A[c]^=a}I(ce,"sel25519");function ge(i,A){var o,a,h,c=n(),C=n();for(o=0;o<16;o++)C[o]=A[o];for(be(C),be(C),be(C),a=0;a<2;a++){for(c[0]=C[0]-65517,o=1;o<15;o++)c[o]=C[o]-65535-(c[o-1]>>16&1),c[o-1]&=65535;c[15]=C[15]-32767-(c[14]>>16&1),h=c[15]>>16&1,c[14]&=65535,ce(C,c,1-h)}for(o=0;o<16;o++)i[2*o]=C[o]&255,i[2*o+1]=C[o]>>8}I(ge,"pack25519");function hr(i,A){var o=new Uint8Array(32),a=new Uint8Array(32);return ge(o,i),ge(a,A),Ct(o,0,a,0)}I(hr,"neq25519");function cr(i){var A=new Uint8Array(32);return ge(A,i),A[0]&1}I(cr,"par25519");function xt(i,A){var o;for(o=0;o<16;o++)i[o]=A[2*o]+(A[2*o+1]<<8);i[15]&=32767}I(xt,"unpack25519");function O(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]+o[a]|0}I(O,"A");function G(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]-o[a]|0}I(G,"Z");function p(i,A,o){var a,h,c=new Float64Array(31);for(a=0;a<31;a++)c[a]=0;for(a=0;a<16;a++)for(h=0;h<16;h++)c[a+h]+=A[a]*o[h];for(a=0;a<15;a++)c[a]+=38*c[a+16];for(a=0;a<16;a++)i[a]=c[a];be(i),be(i)}I(p,"M");function H(i,A){p(i,A,A)}I(H,"S");function gr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=253;a>=0;a--)H(o,o),a!==2&&a!==4&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(gr,"inv25519");function fr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=250;a>=0;a--)H(o,o),a!==1&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(fr,"pow2523");function Re(i,A,o){var a=new Uint8Array(32),h=new Float64Array(80),c,C,y=n(),f=n(),u=n(),d=n(),Q=n(),D=n();for(C=0;C<31;C++)a[C]=A[C];for(a[31]=A[31]&127|64,a[0]&=248,xt(h,o),C=0;C<16;C++)f[C]=h[C],d[C]=y[C]=u[C]=0;for(y[0]=d[0]=1,C=254;C>=0;--C)c=a[C>>>3]>>>(C&7)&1,ce(y,f,c),ce(u,d,c),O(Q,y,u),G(y,y,u),O(u,f,d),G(f,f,d),H(d,Q),H(D,y),p(y,u,y),p(u,f,Q),O(Q,y,u),G(y,y,u),H(f,y),G(u,d,D),p(y,u,x),O(y,y,d),p(u,u,y),p(y,d,D),p(d,f,h),H(f,Q),ce(y,f,c),ce(u,d,c);for(C=0;C<16;C++)h[C+16]=y[C],h[C+32]=u[C],h[C+48]=f[C],h[C+64]=d[C];var R=h.subarray(32),le=h.subarray(16);return gr(R,R),p(le,le,R),ge(i,le),0}I(Re,"crypto_scalarmult");function Ne(i,A){return Re(i,A,l)}I(Ne,"crypto_scalarmult_base");function ur(i,A){return s(A,32),Ne(i,A)}I(ur,"crypto_box_keypair");function Te(i,A,o){var a=new Uint8Array(32);return Re(a,o,A),Ge(i,g,a,Qe)}I(Te,"crypto_box_beforenm");var Cr=wt,Mn=Et;function Hn(i,A,o,a,h,c){var C=new Uint8Array(32);return Te(C,h,c),Cr(i,A,o,a,C)}I(Hn,"crypto_box");function Pn(i,A,o,a,h,c){var C=new Uint8Array(32);return Te(C,h,c),Mn(i,A,o,a,C)}I(Pn,"crypto_box_open");function De(){var i=0,A=0,o=0,a=0,h=65535,c,C,y;for(y=0;y>>16,o+=C&h,a+=C>>>16;return A+=i>>>16,o+=A>>>16,a+=o>>>16,new t(o&h|a<<16,i&h|A<<16)}I(De,"add64");function lr(i,A){return new t(i.hi>>>A,i.lo>>>A|i.hi<<32-A)}I(lr,"shr64");function je(){var i=0,A=0,o;for(o=0;o>>A|i.lo<>>A|i.hi<>>A|i.hi<>>A|i.lo<=128;){for(f=0;f<16;f++)C[f]=rr(A,8*f+d);for(f=0;f<80;f++){for(u=0;u<8;u++)h[u]=c[u];for(y=De(c[7],Rn(c[4]),Vn(c[4],c[5],c[6]),jn[f],C[f%16]),h[7]=De(y,Gn(c[0]),On(c[0],c[1],c[2])),h[3]=De(h[3],y),u=0;u<8;u++)c[(u+1)%8]=h[u];if(f%16===15)for(u=0;u<16;u++)C[u]=De(C[u],C[(u+9)%16],Nn(C[(u+1)%16]),Tn(C[(u+14)%16]))}for(f=0;f<8;f++)c[f]=De(c[f],a[f]),a[f]=c[f];d+=128,o-=128}for(f=0;f<8;f++)nr(i,8*f,a[f]);return o}I(yr,"crypto_hashblocks");let fe=I((i,A)=>r(A).update(i).digest(),"crypto_hash_blake2b");var Jn=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]);function _r(i,A,o){var a=new Uint8Array(64),h=new Uint8Array(256),c,C=o;for(c=0;c<64;c++)a[c]=Jn[c];for(yr(a,A,o),o%=128,c=0;c<256;c++)h[c]=0;for(c=0;c=0;--h)a=o[h/8|0]>>(h&7)&1,dr(i,A,a),Je(A,i),Je(i,i),dr(i,A,a)}I(Bt,"scalarmult");function me(i,A){var o=[n(),n(),n(),n()];X(o[0],K),X(o[1],$),X(o[2],w),p(o[3],K,$),Bt(i,o,A)}I(me,"scalarbase");function pt(i,A,o){var a=new Uint8Array(64),h=[n(),n(),n(),n()],c;o||s(A,32);a=fe(A,64),a[0]&=248,a[31]&=127,a[31]|=64,me(h,a),Xe(i,h);return 0}I(pt,"crypto_sign_keypair");var qe=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 Qt(i,A){var o,a,h,c;for(a=63;a>=32;--a){for(o=0,h=a-32,c=a-12;h>4)*qe[h],o=A[h]>>8,A[h]&=255;for(h=0;h<32;h++)A[h]-=o*qe[h];for(a=0;a<32;a++)A[a+1]+=A[a]>>8,i[a]=A[a]&255}I(Qt,"modL");function bt(i){var A=new Float64Array(64),o;for(o=0;o<64;o++)A[o]=i[o];for(o=0;o<64;o++)i[o]=0;Qt(i,A)}I(bt,"reduce");function wr(i,A,o,a){var h=new Uint8Array(64),c=new Uint8Array(64),C=new Uint8Array(64),y,f,u=new Float64Array(64),d=[n(),n(),n(),n()];let Q=pr(a);h=fe(a,64),h[0]&=248,h[31]&=127,h[31]|=64;var D=o+64;for(y=0;y>7&&G(i[0],_,i[0]),p(i[3],i[0],i[1]),0)}I(Xn,"unpackneg");function Dt(i,A,o,a){var h,c=new Uint8Array(32),C=new Uint8Array(64),y=[n(),n(),n(),n()],f=[n(),n(),n(),n()];if(o<64||Xn(f,a))return-1;for(h=0;h=0};function pr(i){let A=new Uint8Array(64),o=[n(),n(),n(),n()],a,h=new Uint8Array(32);return A=fe(i,64),A[0]&=248,A[31]&=127,A[31]|=64,me(o,A),Xe(h,o),h}I(pr,"derivePublicFromSecret"),e.sign.keyPair=function(){var i=new Uint8Array(oe),A=new Uint8Array(Ce);return pt(i,A),{publicKey:i,secretKey:A}},e.sign.keyPair.fromSecretKey=function(i){if(L(i),i.length!==Ce)throw new Error("bad secret key size");var A=new Uint8Array(oe);return A=pr(i),{publicKey:A,secretKey:new Uint8Array(i)}},e.sign.keyPair.fromSeed=function(i){if(L(i),i.length!==Ut)throw new Error("bad seed size");for(var A=new Uint8Array(oe),o=new Uint8Array(Ce),a=0;a<32;a++)o[a]=i[a];return pt(A,o,!0),{publicKey:A,secretKey:o}},e.sign.publicKeyLength=oe,e.sign.secretKeyLength=Ce,e.sign.seedLength=Ut,e.sign.signatureLength=q,e.hash=function(i){L(i);var A=new Uint8Array(vt);return _r(A,i,i.length),A},e.hash.hashLength=vt,e.verify=function(i,A){return L(i,A),i.length===0||A.length===0||i.length!==A.length?!1:ut(i,0,A,0,i.length)===0},e.setPRNG=function(i){s=i},function(){var i=typeof self<"u"?self.crypto||self.msCrypto:null;if(i&&i.getRandomValues){var A=65536;e.setPRNG(function(o,a){var h,c=new Uint8Array(a);for(h=0;h{"use strict";var oo=E&&E.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ao=E&&E.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),ao=E&&E.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&oo(r,e,t);return Ao(r,e),r},so=E&&E.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(E,"__esModule",{value:!0});E.verify_signed_message=E.sign_message=E.construct_message_block_and_hash=E.verify_block_hash=E.sign_block_hash=E.hash_block=E.get_public_key_from_address=E.get_address_from_public_key=E.get_public_key_from_private_key=E.get_private_key_from_seed=E.raw_to_whole=E.whole_to_raw=E.utf8_to_uint8array=E.base32_to_uint8array=E.uint8array_to_base32=E.int_to_uint8array=E.hex_to_uint8array=E.uint8array_to_hex=void 0;var Ot=ao(ln()),ot=so(Pt()),Io="0000000000000000000000000000000000000000000000000000000000000006",Gt="62616E616E6F6D73672D",Me=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];function He(e){let r="";for(let t=0;t0;g--)s-=t[r-g]*16**(2*(g-1));t[r-n]=Math.floor(s/16**(2*(n-1)))}return t}I(yn,"int_to_uint8array");E.int_to_uint8array=yn;var _n=["1","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","w","x","y","z"];function Vt(e){let r="";for(let t=0;t=5)l=e[s]>>_-5&31;else{let w=5-_;l=(e[s]<>8-w&2**(8-w)-1)}r+=_n[l]}return r}I(Vt,"uint8array_to_base32");E.uint8array_to_base32=Vt;function ho(e,r){let t="",n=e;for(let s=0;s=2**(r-1-s)?(t+="1",n-=2**(r-1-s)):t+="0";return t}I(ho,"int_to_binary");function co(e){let r=0;for(let t=0;tho(_n.indexOf(n),5)).join(""),t=new Uint8Array(Math.ceil(e.length*5/8));for(let n=0;nr-n[1].length)throw Error(`Too many decimals, cannot exceed ${r}`);t=BigInt(n[0])*BigInt(10)**BigInt(r)+BigInt(n[1])*BigInt(10)**BigInt(r-n[1].length)}else t=BigInt(e)*BigInt(10)**BigInt(r);return t}I(go,"whole_to_raw");E.whole_to_raw=go;function fo(e,r=En){let t=e.toString(),n;if(t.length>r)n=t.slice(0,-r)+"."+t.slice(-r);else{let g=r-t.length;n="0."+"0".repeat(g>0?g:0)+t}let s=n.length;for(let g=0;g{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.RPCWithBackup=de.RPC=void 0;var yo=At(),at=class{static{I(this,"RPC")}constructor(r,t=!1){this.DECIMALS=void 0,this.debug=!1,this.rpc_url=r,this.use_pending=t}async call(r){this.debug&&console.log(JSON.stringify(r));let t=await fetch(this.rpc_url,{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok&&this.debug&&console.log(await t.text()),!t.ok)throw Error(`Request to RPC node failed with status code ${t.status}`);let n=await t.json();if(n.error)throw Error(`RPC node response: ${n.error}`);return n}async get_block_count(){return await this.call({action:"block_count"})}async get_block_info(r){return await this.call({action:"block_info",hash:r,json_block:!0})}async get_blocks(r){return await this.call({action:"blocks",hashes:r,json_block:!0})}async get_blocks_info(r){return await this.call({action:"blocks_info",hashes:r,json_block:!0})}async get_representatives(){return await this.call({action:"representatives"})}async get_representatives_online(r){return await this.call({action:"representatives_online",weight:r?!0:void 0})}async get_account_history(r,t,n,s,g,l,_){return await this.call({action:"account_history",account:r,count:`${t}`,raw:n?!0:void 0,head:s,offset:g?`${g}`:void 0,reverse:l?!0:void 0,account_filter:_})}async get_account_info(r,t,n,s,g){return await this.call({action:"account_info",account:r,include_confirmed:t?!0:void 0,representative:n?!0:void 0,weight:s?!0:void 0,pending:g?!0:void 0})}async get_account_balance(r){return await this.call({action:"account_balance",account:r})}async get_accounts_balances(r){return await this.call({action:"accounts_balances",accounts:r})}async get_account_representative(r){return await this.call({action:"account_representative",account:r})}async get_accounts_representatives(r){return await this.call({action:"accounts_representatives",account:r})}async get_account_weight(r){return await this.call({action:"account_weight",account:r})}async get_account_receivable(r,t,n,s){return await this.call({action:this.use_pending?"pending":"receivable",account:r,count:t?`${t}`:void 0,threshold:n?(0,yo.whole_to_raw)(n,this.DECIMALS).toString():void 0,source:s?!0:void 0})}async get_delegators(r,t,n,s){return await this.call({action:"delegators",account:r,threshold:t?`${t}`:void 0,count:n?`${n}`:void 0,start:s})}async get_delegators_count(r){return await this.call({action:"account_weight",account:r})}};de.RPC=at;var Tt=class extends at{static{I(this,"RPCWithBackup")}constructor(r,t,n=!1){if(r.length<2)throw Error("Must provide at least two RPC URLs");super(r[0],n),this.rpc_urls=r,this.timeout=t}async call(r){let t=0;for(;;)try{let n=await fetch(this.rpc_urls[t],{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(!n.ok)throw Error(`Request to RPC node failed with status code ${n.status}`);let s=await n.json();if(s.error)throw Error(`RPC node response: ${s.error}`);return s}catch(n){if(!this.rpc_urls[++t])throw Error(n)}}};de.RPCWithBackup=Tt});var mn=S(Dn=>{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0})});var Sn=S(V=>{"use strict";var _o=V&&V.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),wo=V&&V.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Eo=V&&V.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&_o(r,e,t);return wo(r,e),r};Object.defineProperty(V,"__esModule",{value:!0});V.PrivateKeyAccount=V.Wallet=void 0;var F=Eo(At()),st=class e{static{I(this,"Wallet")}constructor(r,t,n=0,s){if(this.add_do_work=!0,this.rpc=r,typeof t!="string"||t?.length!==64)throw Error("Seed needs to be 64 character (hex) string");this.seed=t,this.index=n,this.work_function=s}static gen_random_wallet(r){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=F.uint8array_to_hex(t);return new e(r,n)}get private_key(){return F.get_private_key_from_seed(this.seed,this.index)}get public_key(){return F.get_public_key_from_private_key(this.private_key)}get address(){return F.get_address_from_public_key(this.public_key)}async send_process(r,t){return(await this.rpc.call({action:"process",json_block:"true",subtype:t,block:r,do_work:!r.work&&this.add_do_work?!0:void 0})).hash}async send(r,t,n,s,g){let l=F.whole_to_raw(t,this.rpc.DECIMALS),_=g??await this.get_account_info(void 0,!0),w=F.get_public_key_from_address(r);s||(s=_.representative);let x=BigInt(_.balance),b=x-l;if(b<0n)throw Error(`Insufficient funds to send. Cannot send more than balance; ie, Before balance (raw: ${x}) less than send amount (raw: ${l})`);let m={type:"state",account:this.address,previous:_.frontier,representative:s,balance:b.toString(),link:w,link_as_account:r},K=F.hash_block(m),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...m,signature:pe,work:$};return await this.send_process(ee,"send")}async send_all(r,t,n){let s=await this.get_account_info(void 0,!0);return await this.send(r,F.raw_to_whole(BigInt(s.balance),this.rpc.DECIMALS),t,n,s)}async receive(r,t,n){let s=await this.rpc.get_block_info(r),g=0n;n||(n=this.address);let l;try{let K=await this.get_account_info(void 0,!0);l=K.frontier,n=K.representative,g=BigInt(K.balance)}catch{l="0".repeat(64)}let _={type:"state",account:this.address,previous:l,representative:n,balance:(g+BigInt(s.amount)).toString(),link:r},w=F.hash_block(_),x;t&&(x=await this.work_function(w));let b=F.sign_block_hash(this.private_key,w),m={..._,signature:b,work:x};return await this.send_process(m,"receive")}async receive_all(r=20,t,n){let s=(await this.get_account_receivable(r,t,!0)).blocks,g,l,_;try{let x=await this.get_account_info(void 0,!0);g=x.frontier,l=x.representative,_=BigInt(x.balance)}catch{g="0".repeat(64),l=this.address,_=BigInt(0)}let w=[];for(let x of Object.keys(s)){let b=(_+BigInt(s[x].amount)).toString(),m={type:"state",account:this.address,previous:g,representative:l,balance:b,link:x},K=F.hash_block(m),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...m,signature:pe,work:$};await this.send_process(ee,"receive"),w.push(K),g=K,_=BigInt(b)}return w}async change_representative(r,t){let n=await this.get_account_info(),s={type:"state",account:this.address,previous:n.frontier,representative:r,balance:n.balance,link:"0".repeat(64)},g=F.hash_block(s),l;t&&(l=await this.work_function(g));let _=F.sign_block_hash(this.private_key,g),w={...s,signature:_,work:l};return await this.send_process(w,"change")}async change_rep(r,t){return await this.change_representative(r,t)}async get_account_info(r,t,n,s){return await this.rpc.get_account_info(this.address,r,t,n,s)}async get_account_receivable(r,t,n){return await this.rpc.get_account_receivable(this.address,r,t,n)}sign_message(r){return F.sign_message(this.private_key,r)}};V.Wallet=st;var jt=class extends st{static{I(this,"PrivateKeyAccount")}constructor(r,t,n){if(typeof t!="string"||t?.length!==64)throw Error("Priv key needs to be 64 character (hex) string");super(r,t,0,n),this._private_key=t}get private_key(){return this._private_key}};V.PrivateKeyAccount=jt});var Un=S(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.RPCWorkProvider=void 0;var Jt=class{static{I(this,"RPCWorkProvider")}constructor(r){this.extra_payload={},this.rpc=r}async request_work(r){return(await this.rpc.call({action:"work_generate",hash:r,...this.extra_payload})).work}};It.RPCWorkProvider=Jt});var we=S(N=>{"use strict";var xo=N&&N.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Pe=N&&N.__exportStar||function(e,r){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(r,t)&&xo(r,e,t)};Object.defineProperty(N,"__esModule",{value:!0});Pe(At(),N);Pe(bn(),N);Pe(mn(),N);Pe(Sn(),N);Pe(Un(),N)});var qt={};Ft(qt,{BSF_HEX_CHARS:()=>ct,HEX_CHARS:()=>Xt,LOG:()=>Ve,address_to_cid_v0:()=>Do,base58_to_hex:()=>Yn,bigint_to_uint8array:()=>Kn,bns_seed_format_to_hex:()=>po,cid_v0_to_address:()=>bo,decode_domain_name:()=>Ee,encode_domain_name:()=>ht,hex_to_base58:()=>Fn,hex_to_bns_seed_format:()=>Bo,is_bns_seed_format:()=>Qo});var Z=Ke(we());var Ve=!0;function ht(e){if(e.includes(".")||e.includes("\0")||e.includes('"'))throw new Error(`Domain name cannot include '.' or '"' or '\\u0000'`);let r=(0,Z.uint8array_to_hex)(new TextEncoder().encode(e));if(r.length>64)throw new Error("Cannot be more than 32 bytes");return r.length<64&&(r="0".repeat(64-r.length)+r),r}I(ht,"encode_domain_name");function Ee(e){return new TextDecoder().decode((0,Z.hex_to_uint8array)(e)).replace(/\u0000/g,"")}I(Ee,"decode_domain_name");var vn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";function Fn(e){let r=BigInt(`0x${e}`),t="";for(;t+=vn[Number(r%BigInt(58))],r=r/BigInt(58),r!==0n;);return t.split("").reverse().join("")}I(Fn,"hex_to_base58");var Xt="0123456789ABCDEF",ct="ghijklmnopqrstuv";function Bo(e){return e.split("").map(r=>ct[Xt.indexOf(r.toUpperCase())]).join("")}I(Bo,"hex_to_bns_seed_format");function po(e){return e.split("").map(r=>Xt[ct.indexOf(r.toLowerCase())]).join("")}I(po,"bns_seed_format_to_hex");function Qo(e){return e.split("").every(r=>ct.includes(r.toLowerCase()))}I(Qo,"is_bns_seed_format");function Kn(e,r){let t=new Uint8Array(r),n=e;for(let s=1;s<=r;s++)t[r-s]=Number(n%256n),n/=256n;return t}I(Kn,"bigint_to_uint8array");function Yn(e){let r=0n;for(let t=0;tBe,Resolver:()=>Wt,TLDAccount:()=>xe});var T=Ke(we());var gt=class{static{I(this,"Account")}constructor(r,t){this.rpc=r,this.address=t}async get_open_and_frontier(){let r=await this.rpc.get_account_info(this.address,!0);return[r.open_block,r.confirmation_height_frontier??r.frontier]}async get_history_from_open(r,t){return await this.rpc.get_account_history(this.address,t,!0,r,void 0,!0)}},xe=class extends gt{static{I(this,"TLDAccount")}constructor(r,t){super(r,t),this.all_issued=[]}async get_specific(r,t=500){let[n,s]=await this.get_open_and_frontier(),g=n;for(;;){let{history:l}=await this.get_history_from_open(g,t);for(let _ of l){let w=BigInt(_.amount??0);if(_.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(_.representative));if(r===x)return{tld:this.address,name:r,history:[{type:"transfer",block:_,to:(0,T.get_address_from_public_key)(_.link)}]}}if(_.representative===Ie&&_.subtype==="change"||_.hash===s)return}g=l[l.length-1].hash}}async get_all_issued(r=500){let[t,n]=await this.get_open_and_frontier(),s=t,g={};for(;;){let{history:l}=await this.get_history_from_open(s,r);for(let _ of l){let w=BigInt(_.amount??0);if(_.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(_.representative));g[x]?Ve&&console.log(`"${x}" already issued but TLD tried to issue again. Invalid.`):g[x]={tld:this.address,name:x,history:[{type:"transfer",block:_,to:(0,T.get_address_from_public_key)(_.link)}]}}if(_.representative===Ie&&_.subtype==="change"||_.hash===n)return this.all_issued=Object.values(g),this.all_issued}s=l[l.length-1].hash}}},Be=class extends gt{static{I(this,"DomainAccount")}constructor(r,t,n){super(r,t),this.domain=n}async crawl(r=500){let t,n;try{[t,n]=await this.get_open_and_frontier()}catch{return Ve&&console.log("Not yet received"),this.domain}let s=t;for(;;){let{history:g}=await this.get_history_from_open(s,r);for(let l of g){let _=BigInt(l.amount??0);if(l.height==="1"){if(l.link!==this.domain.history[this.domain.history.length-1]?.block.hash)return Ve&&console.log("Domain burned"),this.domain.burned=!0,this.domain;this.domain.history.push({type:"receive",block:l})}else if(l.subtype==="send"&&_>=se&&_<=ne){let w=Ee((0,T.get_public_key_from_address)(l.representative));if(this.domain.name===w)return this.domain.resolved_address=void 0,this.domain.metadata_hash=void 0,this.domain.history.push({type:"transfer",block:l,to:(0,T.get_address_from_public_key)(l.link)}),this.domain}else{if(l.subtype==="change"&&l.representative===Ie)return this.domain.history.push({type:"freeze",block:l}),this.domain;l.subtype==="change"?(this.domain.metadata_hash=(0,T.get_public_key_from_address)(l.representative),this.domain.history.push({type:"metadata",block:l,metadata_hash:this.domain.metadata_hash})):l.subtype==="send"&&_===4224n&&(this.domain.resolved_address=(0,T.get_address_from_public_key)(l.link),this.domain.history.push({type:"resolver",block:l,resolved_address:this.domain.resolved_address}))}if(l.hash===n)return this.domain}s=g[g.length-1].hash}}},Wt=class{static{I(this,"Resolver")}constructor(r,t){this.rpc=r,this.tld_mapping=t}async resolve(r,t,n=500){if(r=r.toLowerCase(),!this.tld_mapping[t])throw new Error("No TLD Account found for that TLD");let g=await new xe(this.rpc,this.tld_mapping[t]).get_specific(r,n);if(!g)return g;for(;;){let l=g.history[g.history.length-1].to,_=new Be(this.rpc,l,g),w=g.history.length;if(g=await _.crawl(n),g.history[g.history.length-1].type!=="transfer"||g.burned||w===g.history.length)break}return g}async resolve_backwards_ish(r,t,n=500){let s=(await this.rpc.get_account_info(r,!0)).open_block,g=(await this.rpc.get_block_info(s)).contents.link,l=await this.rpc.get_block_info(g),_=Ee((0,T.get_public_key_from_address)(l.contents.representative)),w=await this.resolve(_,t,n);if((w?.history.slice().reverse().find(b=>b.type==="transfer")).to===r)return w}};var tr={};Ft(tr,{DomainAccountManager:()=>er,TLDAccountManager:()=>$t});var ie=Ke(we());var $t=class extends xe{static{I(this,"TLDAccountManager")}constructor(r,t){super(r,t.address),this.wallet=t}async issue_domain_name(r,t){if(r=r.toLowerCase(),this.all_issued.some(s=>s.name===r))throw new Error("Cannot issue a domain name that is already issued");return await this.wallet.send(t,"0.00120703011",void 0,(0,ie.get_address_from_public_key)(ht(r)))}async freeze(){await this.wallet.change_representative(Ie)}async receive(){await this.wallet.receive_all()}},er=class extends Be{static{I(this,"DomainAccountManager")}constructor(r,t,n){super(r,t.address),this.wallet=t,this.domain=n}async receive_domain(r,t,n){let s=!1,{history:g}=await this.rpc.get_account_history(this.address,1);if(g.length>1&&!n)throw s=!0,new Error("`allow_burning` must be true in order to receive this domain");let l=await this.rpc.get_block_info(r),_=BigInt(l.amount);if(_ne)throw new Error("`receive_hash` is not a Domain Transfer block");await this.wallet.receive(r,void 0,t)}async transfer_domain(r,t){let n=(await this.wallet.get_account_info()).balance,s=(0,ie.raw_to_whole)(ne);return ne>BigInt(n)&&se<=BigInt(n)&&(s=(0,ie.raw_to_whole)(BigInt(n))),await this.wallet.send(t,s,void 0,(0,ie.get_address_from_public_key)(ht(r)))}async declare_domain_metadata(r){if(r===zt)throw new Error("A metadata hash of all 1s freezes the domain");await this.wallet.change_representative((0,ie.get_address_from_public_key)(r))}async declare_domain_resolve_to(r){await this.wallet.send(r,(0,ie.raw_to_whole)(4224n))}async freeze(){await this.wallet.change_representative(Ie)}};var kn={};var mo=Ke(we());window.bns={...qt,...Zt,...tr,...kn,banani:mo};})(); +(()=>{var Zn=Object.create;var Ze=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.getPrototypeOf,ri=Object.prototype.hasOwnProperty;var I=(e,r)=>Ze(e,"name",{value:r,configurable:!0}),Qr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ft=(e,r)=>{for(var t in r)Ze(e,t,{get:r[t],enumerable:!0})},ni=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ei(r))!ri.call(e,s)&&s!==t&&Ze(e,s,{get:()=>r[s],enumerable:!(n=$n(r,s))||n.enumerable});return e};var Ke=(e,r,t)=>(t=e!=null?Zn(ti(e)):{},ni(r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t,e));var Kt=S((Uo,mr)=>{mr.exports=br;var $e=class extends Error{static{I(this,"AssertionError")}};$e.prototype.name="AssertionError";function br(e,r){if(!e){var t=new $e(r);throw Error.captureStackTrace&&Error.captureStackTrace(t,br),t}}I(br,"assert")});var Ur=S((Fo,Sr)=>{function Dr(e){return e.length}I(Dr,"byteLength");function ii(e){let r=e.byteLength,t="";for(let n=0;n{var _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ae=new Uint8Array(256);for(let e=0;e<_e.length;e++)Ae[_e.charCodeAt(e)]=e;Ae[45]=62;Ae[95]=63;function vr(e){let r=e.length;return e.charCodeAt(r-1)===61&&r--,r>1&&e.charCodeAt(r-1)===61&&r--,r*3>>>2}I(vr,"byteLength");function Ai(e){let r=e.byteLength,t="";for(let n=0;n>2]+_e[(e[n]&3)<<4|e[n+1]>>4]+_e[(e[n+1]&15)<<2|e[n+2]>>6]+_e[e[n+2]&63];return r%3===2?t=t.substring(0,t.length-1)+"=":r%3===1&&(t=t.substring(0,t.length-2)+"=="),t}I(Ai,"toString");function ai(e,r,t=0,n=vr(r)){let s=Math.min(n,e.byteLength-t);for(let g=0,C=0;C>4,e[C++]=(w&15)<<4|x>>2,e[C++]=(x&3)<<6|b&63}return s}I(ai,"write");Fr.exports={byteLength:vr,toString:Ai,write:ai}});var Mr=S((Lo,Lr)=>{function kr(e){return e.length>>>1}I(kr,"byteLength");function si(e){let r=e.byteLength;e=new DataView(e.buffer,e.byteOffset,r);let t="",n=0;for(let s=r-r%4;n=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}I(Yr,"hexValue")});var Pr=S((Ho,Hr)=>{function Yt(e){let r=0;for(let t=0,n=e.length;t=55296&&s<=56319&&t+1=56320&&g<=57343){r+=4,t++;continue}}s<=127?r+=1:s<=2047?r+=2:r+=3}return r}I(Yt,"byteLength");var kt;if(typeof TextDecoder<"u"){let e=new TextDecoder;kt=I(function(t){return e.decode(t)},"toString")}else kt=I(function(r){let t=r.byteLength,n="",s=0;for(;s0){let w=0;for(;w>x,x-=6;x>=0;)r[y++]=128|w>>x&63,x-=6;C+=w>=65536?2:1}return g},"write");Hr.exports={byteLength:Yt,toString:kt,write:Lt}});var Gr=S((Vo,Or)=>{function Vr(e){return e.length*2}I(Vr,"byteLength");function hi(e){let r=e.byteLength,t="";for(let n=0;n>8,x=y%256;e[t+C*2]=x,e[t+C*2+1]=w}return s}I(ci,"write");Or.exports={byteLength:Vr,toString:hi,write:ci}});var Jr=S((Ht,jr)=>{var gi=Ur(),fi=Kr(),ui=Mr(),li=Pr(),Ci=Gr(),et=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function Ye(e){switch(e){case"ascii":return gi;case"base64":return fi;case"hex":return ui;case"utf8":case"utf-8":case void 0:return li;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ci;default:throw new Error(`Unknown encoding: ${e}`)}}I(Ye,"codecFor");function Rr(e){return e instanceof Uint8Array}I(Rr,"isBuffer");function _i(e){try{return Ye(e),!0}catch{return!1}}I(_i,"isEncoding");function yi(e,r,t){let n=new Uint8Array(e);return r!==void 0&&Ht.fill(n,r,0,n.byteLength,t),n}I(yi,"alloc");function di(e){return new Uint8Array(e)}I(di,"allocUnsafe");function wi(e){return new Uint8Array(e)}I(wi,"allocUnsafeSlow");function Ei(e,r){return Ye(r).byteLength(e)}I(Ei,"byteLength");function xi(e,r){if(e===r)return 0;let t=Math.min(e.byteLength,r.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),r=new DataView(r.buffer,r.byteOffset,r.byteLength);let n=0;for(let s=t-t%4;ng)return 1}return e.byteLength>r.byteLength?1:e.byteLengths+g.byteLength,0));let t=new Uint8Array(r),n=0;for(let s of e){if(n+s.byteLength>t.byteLength){let g=s.subarray(0,t.byteLength-n);return t.set(g,n),t}t.set(s,n),n+=s.byteLength}return t}I(Bi,"concat");function pi(e,r,t=0,n=0,s=e.byteLength){if(s>0&&s=e.byteLength)throw new RangeError("sourceStart is out of range");if(s<0)throw new RangeError("sourceEnd is out of range");t>=r.byteLength&&(t=r.byteLength),s>e.byteLength&&(s=e.byteLength),r.byteLength-t=e.byteLength){if(s)return-1;t=e.byteLength-1}else if(t<0)if(s)t=0;else return-1;if(typeof r=="string")r=Mt(r,n);else if(typeof r=="number")return r=r&255,s?e.indexOf(r,t):e.lastIndexOf(r,t);if(r.byteLength===0)return-1;if(s){let g=-1;for(let C=t;Ce.byteLength&&(t=e.byteLength-r.byteLength);for(let g=t;g>=0;g--){let C=!0;for(let y=0;y=s||n<=t?"":(t<0&&(t=0),n>s&&(n=s),(t!==0||n{var Ji=I((e,r)=>I(function(){return r||(0,e[Object.keys(e)[0]])((r={exports:{}}).exports,r),r.exports},"__require"),"__commonJS"),Xi=(()=>{for(var e=new Uint8Array(128),r=0;r<64;r++)e[r<26?r+65:r<52?r+71:r<62?r-4:r*4-205]=r;return t=>{for(var n=t.length,s=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),g=0,C=0;g>4,s[C++]=w<<4|x>>2,s[C++]=x<<6|b}return s}})(),qi=Ji({"wasm-binary:./blake2b.wat"(e,r){r.exports=Xi("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")}}),zi=qi(),Wi=WebAssembly.compile(zi);Xr.exports=async e=>(await WebAssembly.instantiate(await Wi,e)).exports});var nn=S((Jo,J)=>{var M=Kt(),Zi=Jr(),W=null,zr=typeof WebAssembly<"u"&&qr()().then(e=>{W=e}),z=64,tt=[];J.exports=Y;var Wr=J.exports.BYTES_MIN=16,Zr=J.exports.BYTES_MAX=64,To=J.exports.BYTES=32,$r=J.exports.KEYBYTES_MIN=16,en=J.exports.KEYBYTES_MAX=64,jo=J.exports.KEYBYTES=32,tn=J.exports.SALTBYTES=16,rn=J.exports.PERSONALBYTES=16;function Y(e,r,t,n,s){if(!(this instanceof Y))return new Y(e,r,t,n,s);if(!W)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");e||(e=32),s!==!0&&(M(e>=Wr,"digestLength must be at least "+Wr+", was given "+e),M(e<=Zr,"digestLength must be at most "+Zr+", was given "+e),r!=null&&(M(r instanceof Uint8Array,"key must be Uint8Array or Buffer"),M(r.length>=$r,"key must be at least "+$r+", was given "+r.length),M(r.length<=en,"key must be at least "+en+", was given "+r.length)),t!=null&&(M(t instanceof Uint8Array,"salt must be Uint8Array or Buffer"),M(t.length===tn,"salt must be exactly "+tn+", was given "+t.length)),n!=null&&(M(n instanceof Uint8Array,"personal must be Uint8Array or Buffer"),M(n.length===rn,"personal must be exactly "+rn+", was given "+n.length))),tt.length||(tt.push(z),z+=216),this.digestLength=e,this.finalized=!1,this.pointer=tt.pop(),this._memory=new Uint8Array(W.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=r?r.length:0,this._memory[2]=1,this._memory[3]=1,t&&this._memory.set(t,32),n&&this._memory.set(n,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),W.blake2b_init(this.pointer,this.digestLength),r&&(this.update(r),this._memory.fill(0,z,z+r.length),this._memory[this.pointer+200]=128)}I(Y,"Blake2b");Y.prototype._realloc=function(e){W.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(W.memory.buffer)};Y.prototype.update=function(e){return M(this.finalized===!1,"Hash instance finalized"),M(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),z+e.length>this._memory.length&&this._realloc(z+e.length),this._memory.set(e,z),W.blake2b_update(this.pointer,z,z+e.length),this};Y.prototype.digest=function(e){if(M(this.finalized===!1,"Hash instance finalized"),this.finalized=!0,tt.push(this.pointer),W.blake2b_final(this.pointer),!e||e==="binary")return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e=="string")return Zi.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);M(e instanceof Uint8Array&&e.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var r=0;re(),e):e(new Error("WebAssembly not supported"))};Y.prototype.ready=Y.ready;Y.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)};Y.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function $i(){}I($i,"noop")});var Pt=S((Wo,k)=>{var P=Kt(),Le=nn();function rt(e,r,t){var n=e[r]+e[t],s=e[r+1]+e[t+1];n>=4294967296&&s++,e[r]=n,e[r+1]=s}I(rt,"ADD64AA");function on(e,r,t,n){var s=e[r]+t;t<0&&(s+=4294967296);var g=e[r+1]+n;s>=4294967296&&g++,e[r]=s,e[r+1]=g}I(on,"ADD64AC");function gn(e,r){return e[r]^e[r+1]<<8^e[r+2]<<16^e[r+3]<<24}I(gn,"B2B_GET32");function te(e,r,t,n,s,g){var C=ke[s],y=ke[s+1],w=ke[g],x=ke[g+1];rt(B,e,r),on(B,e,C,y);var b=B[n]^B[e],D=B[n+1]^B[e+1];B[n]=D,B[n+1]=b,rt(B,t,n),b=B[r]^B[t],D=B[r+1]^B[t+1],B[r]=b>>>24^D<<8,B[r+1]=D>>>24^b<<8,rt(B,e,r),on(B,e,w,x),b=B[n]^B[e],D=B[n+1]^B[e+1],B[n]=b>>>16^D<<16,B[n+1]=D>>>16^b<<16,rt(B,t,n),b=B[r]^B[t],D=B[r+1]^B[t+1],B[r]=D>>>31^b<<1,B[r+1]=b>>>31^D<<1}I(te,"B2B_G");var fn=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],v=new Uint8Array(eo.map(function(e){return e*2})),B=new Uint32Array(32),ke=new Uint32Array(32);function un(e,r){var t=0;for(t=0;t<16;t++)B[t]=e.h[t],B[t+16]=fn[t];for(B[24]=B[24]^e.t,B[25]=B[25]^e.t/4294967296,r&&(B[28]=~B[28],B[29]=~B[29]),t=0;t<32;t++)ke[t]=gn(e.b,4*t);for(t=0;t<12;t++)te(0,8,16,24,v[t*16+0],v[t*16+1]),te(2,10,18,26,v[t*16+2],v[t*16+3]),te(4,12,20,28,v[t*16+4],v[t*16+5]),te(6,14,22,30,v[t*16+6],v[t*16+7]),te(0,10,20,30,v[t*16+8],v[t*16+9]),te(2,12,22,24,v[t*16+10],v[t*16+11]),te(4,14,16,26,v[t*16+12],v[t*16+13]),te(6,8,18,28,v[t*16+14],v[t*16+15]);for(t=0;t<16;t++)e.h[t]=e.h[t]^B[t]^B[t+16]}I(un,"blake2bCompress");var re=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function ye(e,r,t,n){re.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,re[0]=e,r&&(re[1]=r.length),re[2]=1,re[3]=1,t&&re.set(t,32),n&&re.set(n,48);for(var s=0;s<16;s++)this.h[s]=fn[s]^gn(re,s*4);r&&(ln(this,r),this.c=128)}I(ye,"Blake2b");ye.prototype.update=function(e){return P(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),ln(this,e),this};ye.prototype.digest=function(e){var r=!e||e==="binary"||e==="hex"?new Uint8Array(this.outlen):e;return P(r instanceof Uint8Array,'out must be "binary", "hex", Uint8Array, or Buffer'),P(r.length>=this.outlen,"out must have at least outlen bytes of space"),to(this,r),e==="hex"?ro(r):r};ye.prototype.final=ye.prototype.digest;ye.ready=function(e){Le.ready(function(){e()})};function ln(e,r){for(var t=0;t>2]>>8*(t&3);return r}I(to,"blake2bFinal");function ro(e){for(var r="",t=0;t=An,"outlen must be at least "+An+", was given "+r),P(r<=an,"outlen must be at most "+an+", was given "+r),t!=null&&(P(t instanceof Uint8Array,"key must be Uint8Array or Buffer"),P(t.length>=sn,"key must be at least "+sn+", was given "+t.length),P(t.length<=In,"key must be at most "+In+", was given "+t.length)),n!=null&&(P(n instanceof Uint8Array,"salt must be Uint8Array or Buffer"),P(n.length===hn,"salt must be exactly "+hn+", was given "+n.length)),s!=null&&(P(s instanceof Uint8Array,"personal must be Uint8Array or Buffer"),P(s.length===cn,"personal must be exactly "+cn+", was given "+s.length))),new io(r,t,n,s)},"createHash");k.exports.ready=function(e){Le.ready(function(){e()})};k.exports.WASM_SUPPORTED=Le.SUPPORTED;k.exports.WASM_LOADED=!1;var An=k.exports.BYTES_MIN=16,an=k.exports.BYTES_MAX=64,qo=k.exports.BYTES=32,sn=k.exports.KEYBYTES_MIN=16,In=k.exports.KEYBYTES_MAX=64,zo=k.exports.KEYBYTES=32,hn=k.exports.SALTBYTES=16,cn=k.exports.PERSONALBYTES=16;Le.ready(function(e){e||(k.exports.WASM_LOADED=!0,k.exports=Le)})});var Cn=S(($o,nt)=>{(function(e){"use strict";let r=Pt();var t=I(function(i,A){this.hi=i|0,this.lo=A|0},"u64"),n=I(function(i){var A,o=new Float64Array(16);if(i)for(A=0;A>>32-A}I(ee,"L32");function he(i,A){var o=i[A+3]&255;return o=o<<8|i[A+2]&255,o=o<<8|i[A+1]&255,o<<8|i[A+0]&255}I(he,"ld32");function rr(i,A){var o=i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3],a=i[A+4]<<24|i[A+5]<<16|i[A+6]<<8|i[A+7];return new t(o,a)}I(rr,"dl64");function ft(i,A,o){var a;for(a=0;a<4;a++)i[A+a]=o&255,o>>>=8}I(ft,"st32");function nr(i,A,o){i[A]=o.hi>>24&255,i[A+1]=o.hi>>16&255,i[A+2]=o.hi>>8&255,i[A+3]=o.hi&255,i[A+4]=o.lo>>24&255,i[A+5]=o.lo>>16&255,i[A+6]=o.lo>>8&255,i[A+7]=o.lo&255}I(nr,"ts64");function ut(i,A,o,a,h){var c,l=0;for(c=0;c>>8)-1}I(ut,"vn");function ir(i,A,o,a){return ut(i,A,o,a,16)}I(ir,"crypto_verify_16");function lt(i,A,o,a){return ut(i,A,o,a,32)}I(lt,"crypto_verify_32");function or(i,A,o,a,h){var c=new Uint32Array(16),l=new Uint32Array(16),_=new Uint32Array(16),f=new Uint32Array(4),u,d,Q;for(u=0;u<4;u++)l[5*u]=he(a,4*u),l[1+u]=he(o,4*u),l[6+u]=he(A,4*u),l[11+u]=he(o,16+4*u);for(u=0;u<16;u++)_[u]=l[u];for(u=0;u<20;u++){for(d=0;d<4;d++){for(Q=0;Q<4;Q++)f[Q]=l[(5*d+4*Q)%16];for(f[1]^=ee(f[0]+f[3]|0,7),f[2]^=ee(f[1]+f[0]|0,9),f[3]^=ee(f[2]+f[1]|0,13),f[0]^=ee(f[3]+f[2]|0,18),Q=0;Q<4;Q++)c[4*d+(d+Q)%4]=f[Q]}for(Q=0;Q<16;Q++)l[Q]=c[Q]}if(h){for(u=0;u<16;u++)l[u]=l[u]+_[u]|0;for(u=0;u<4;u++)l[5*u]=l[5*u]-he(a,4*u)|0,l[6+u]=l[6+u]-he(A,4*u)|0;for(u=0;u<4;u++)ft(i,4*u,l[5*u]),ft(i,16+4*u,l[6+u])}else for(u=0;u<16;u++)ft(i,4*u,l[u]+_[u]|0)}I(or,"core");function Ar(i,A,o,a){return or(i,A,o,a,!1),0}I(Ar,"crypto_core_salsa20");function Ge(i,A,o,a){return or(i,A,o,a,!0),0}I(Ge,"crypto_core_hsalsa20");var Qe=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function Ct(i,A,o,a,h,c,l){var _=new Uint8Array(16),f=new Uint8Array(64),u,d;if(!h)return 0;for(d=0;d<16;d++)_[d]=0;for(d=0;d<8;d++)_[d]=c[d];for(;h>=64;){for(Ar(f,_,l,Qe),d=0;d<64;d++)i[A+d]=(o?o[a+d]:0)^f[d];for(u=1,d=8;d<16;d++)u=u+(_[d]&255)|0,_[d]=u&255,u>>>=8;h-=64,A+=64,o&&(a+=64)}if(h>0)for(Ar(f,_,l,Qe),d=0;d>>=8}I(yt,"add1305");var Ln=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]);function dt(i,A,o,a,h,c){var l,_,f,u,d=new Uint32Array(17),Q=new Uint32Array(17),m=new Uint32Array(17),R=new Uint32Array(17),Ce=new Uint32Array(17);for(f=0;f<17;f++)Q[f]=m[f]=0;for(f=0;f<16;f++)Q[f]=c[f];for(Q[3]&=15,Q[4]&=252,Q[7]&=15,Q[8]&=252,Q[11]&=15,Q[12]&=252,Q[15]&=15;h>0;){for(f=0;f<17;f++)R[f]=0;for(f=0;f<16&&f>>=8;for(u=u+m[16]|0,m[16]=u&3,u=5*(u>>>2)|0,f=0;f<16;f++)u=u+m[f]|0,m[f]=u&255,u>>>=8;u=u+m[16]|0,m[16]=u}for(f=0;f<17;f++)Ce[f]=m[f];for(yt(m,Ln),l=-(m[16]>>>7)|0,f=0;f<17;f++)m[f]^=l&(Ce[f]^m[f]);for(f=0;f<16;f++)R[f]=c[f+16];for(R[16]=0,yt(m,R),f=0;f<16;f++)i[A+f]=m[f];return 0}I(dt,"crypto_onetimeauth");function Ir(i,A,o,a,h,c){var l=new Uint8Array(16);return dt(l,0,o,a,h,c),ir(i,A,l,0)}I(Ir,"crypto_onetimeauth_verify");function wt(i,A,o,a,h){var c;if(o<32)return-1;for(_t(i,0,A,0,o,a,h),dt(i,16,i,32,o-32,i),c=0;c<16;c++)i[c]=0;return 0}I(wt,"crypto_secretbox");function Et(i,A,o,a,h){var c,l=new Uint8Array(32);if(o<32||(sr(l,0,32,a,h),Ir(A,16,A,32,o-32,l)!==0))return-1;for(_t(i,0,A,0,o,a,h),c=0;c<32;c++)i[c]=0;return 0}I(Et,"crypto_secretbox_open");function X(i,A){var o;for(o=0;o<16;o++)i[o]=A[o]|0}I(X,"set25519");function be(i){var A,o;for(o=0;o<16;o++)i[o]+=65536,A=Math.floor(i[o]/65536),i[(o+1)*(o<15?1:0)]+=A-1+37*(A-1)*(o===15?1:0),i[o]-=A*65536}I(be,"car25519");function ce(i,A,o){for(var a,h=~(o-1),c=0;c<16;c++)a=h&(i[c]^A[c]),i[c]^=a,A[c]^=a}I(ce,"sel25519");function ge(i,A){var o,a,h,c=n(),l=n();for(o=0;o<16;o++)l[o]=A[o];for(be(l),be(l),be(l),a=0;a<2;a++){for(c[0]=l[0]-65517,o=1;o<15;o++)c[o]=l[o]-65535-(c[o-1]>>16&1),c[o-1]&=65535;c[15]=l[15]-32767-(c[14]>>16&1),h=c[15]>>16&1,c[14]&=65535,ce(l,c,1-h)}for(o=0;o<16;o++)i[2*o]=l[o]&255,i[2*o+1]=l[o]>>8}I(ge,"pack25519");function hr(i,A){var o=new Uint8Array(32),a=new Uint8Array(32);return ge(o,i),ge(a,A),lt(o,0,a,0)}I(hr,"neq25519");function cr(i){var A=new Uint8Array(32);return ge(A,i),A[0]&1}I(cr,"par25519");function xt(i,A){var o;for(o=0;o<16;o++)i[o]=A[2*o]+(A[2*o+1]<<8);i[15]&=32767}I(xt,"unpack25519");function O(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]+o[a]|0}I(O,"A");function G(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]-o[a]|0}I(G,"Z");function p(i,A,o){var a,h,c=new Float64Array(31);for(a=0;a<31;a++)c[a]=0;for(a=0;a<16;a++)for(h=0;h<16;h++)c[a+h]+=A[a]*o[h];for(a=0;a<15;a++)c[a]+=38*c[a+16];for(a=0;a<16;a++)i[a]=c[a];be(i),be(i)}I(p,"M");function H(i,A){p(i,A,A)}I(H,"S");function gr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=253;a>=0;a--)H(o,o),a!==2&&a!==4&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(gr,"inv25519");function fr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=250;a>=0;a--)H(o,o),a!==1&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(fr,"pow2523");function Re(i,A,o){var a=new Uint8Array(32),h=new Float64Array(80),c,l,_=n(),f=n(),u=n(),d=n(),Q=n(),m=n();for(l=0;l<31;l++)a[l]=A[l];for(a[31]=A[31]&127|64,a[0]&=248,xt(h,o),l=0;l<16;l++)f[l]=h[l],d[l]=_[l]=u[l]=0;for(_[0]=d[0]=1,l=254;l>=0;--l)c=a[l>>>3]>>>(l&7)&1,ce(_,f,c),ce(u,d,c),O(Q,_,u),G(_,_,u),O(u,f,d),G(f,f,d),H(d,Q),H(m,_),p(_,u,_),p(u,f,Q),O(Q,_,u),G(_,_,u),H(f,_),G(u,d,m),p(_,u,x),O(_,_,d),p(u,u,_),p(_,d,m),p(d,f,h),H(f,Q),ce(_,f,c),ce(u,d,c);for(l=0;l<16;l++)h[l+16]=_[l],h[l+32]=u[l],h[l+48]=f[l],h[l+64]=d[l];var R=h.subarray(32),Ce=h.subarray(16);return gr(R,R),p(Ce,Ce,R),ge(i,Ce),0}I(Re,"crypto_scalarmult");function Ne(i,A){return Re(i,A,C)}I(Ne,"crypto_scalarmult_base");function ur(i,A){return s(A,32),Ne(i,A)}I(ur,"crypto_box_keypair");function Te(i,A,o){var a=new Uint8Array(32);return Re(a,o,A),Ge(i,g,a,Qe)}I(Te,"crypto_box_beforenm");var lr=wt,Mn=Et;function Hn(i,A,o,a,h,c){var l=new Uint8Array(32);return Te(l,h,c),lr(i,A,o,a,l)}I(Hn,"crypto_box");function Pn(i,A,o,a,h,c){var l=new Uint8Array(32);return Te(l,h,c),Mn(i,A,o,a,l)}I(Pn,"crypto_box_open");function me(){var i=0,A=0,o=0,a=0,h=65535,c,l,_;for(_=0;_>>16,o+=l&h,a+=l>>>16;return A+=i>>>16,o+=A>>>16,a+=o>>>16,new t(o&h|a<<16,i&h|A<<16)}I(me,"add64");function Cr(i,A){return new t(i.hi>>>A,i.lo>>>A|i.hi<<32-A)}I(Cr,"shr64");function je(){var i=0,A=0,o;for(o=0;o>>A|i.lo<>>A|i.hi<>>A|i.hi<>>A|i.lo<=128;){for(f=0;f<16;f++)l[f]=rr(A,8*f+d);for(f=0;f<80;f++){for(u=0;u<8;u++)h[u]=c[u];for(_=me(c[7],Rn(c[4]),Vn(c[4],c[5],c[6]),jn[f],l[f%16]),h[7]=me(_,Gn(c[0]),On(c[0],c[1],c[2])),h[3]=me(h[3],_),u=0;u<8;u++)c[(u+1)%8]=h[u];if(f%16===15)for(u=0;u<16;u++)l[u]=me(l[u],l[(u+9)%16],Nn(l[(u+1)%16]),Tn(l[(u+14)%16]))}for(f=0;f<8;f++)c[f]=me(c[f],a[f]),a[f]=c[f];d+=128,o-=128}for(f=0;f<8;f++)nr(i,8*f,a[f]);return o}I(_r,"crypto_hashblocks");let fe=I((i,A)=>r(A).update(i).digest(),"crypto_hash_blake2b");var Jn=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]);function yr(i,A,o){var a=new Uint8Array(64),h=new Uint8Array(256),c,l=o;for(c=0;c<64;c++)a[c]=Jn[c];for(_r(a,A,o),o%=128,c=0;c<256;c++)h[c]=0;for(c=0;c=0;--h)a=o[h/8|0]>>(h&7)&1,dr(i,A,a),Je(A,i),Je(i,i),dr(i,A,a)}I(Bt,"scalarmult");function De(i,A){var o=[n(),n(),n(),n()];X(o[0],K),X(o[1],$),X(o[2],w),p(o[3],K,$),Bt(i,o,A)}I(De,"scalarbase");function pt(i,A,o){var a=new Uint8Array(64),h=[n(),n(),n(),n()],c;o||s(A,32);a=fe(A,64),a[0]&=248,a[31]&=127,a[31]|=64,De(h,a),Xe(i,h);return 0}I(pt,"crypto_sign_keypair");var qe=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 Qt(i,A){var o,a,h,c;for(a=63;a>=32;--a){for(o=0,h=a-32,c=a-12;h>4)*qe[h],o=A[h]>>8,A[h]&=255;for(h=0;h<32;h++)A[h]-=o*qe[h];for(a=0;a<32;a++)A[a+1]+=A[a]>>8,i[a]=A[a]&255}I(Qt,"modL");function bt(i){var A=new Float64Array(64),o;for(o=0;o<64;o++)A[o]=i[o];for(o=0;o<64;o++)i[o]=0;Qt(i,A)}I(bt,"reduce");function wr(i,A,o,a){var h=new Uint8Array(64),c=new Uint8Array(64),l=new Uint8Array(64),_,f,u=new Float64Array(64),d=[n(),n(),n(),n()];let Q=pr(a);h=fe(a,64),h[0]&=248,h[31]&=127,h[31]|=64;var m=o+64;for(_=0;_>7&&G(i[0],y,i[0]),p(i[3],i[0],i[1]),0)}I(Xn,"unpackneg");function mt(i,A,o,a){var h,c=new Uint8Array(32),l=new Uint8Array(64),_=[n(),n(),n(),n()],f=[n(),n(),n(),n()];if(o<64||Xn(f,a))return-1;for(h=0;h=0};function pr(i){let A=new Uint8Array(64),o=[n(),n(),n(),n()],a,h=new Uint8Array(32);return A=fe(i,64),A[0]&=248,A[31]&=127,A[31]|=64,De(o,A),Xe(h,o),h}I(pr,"derivePublicFromSecret"),e.sign.keyPair=function(){var i=new Uint8Array(oe),A=new Uint8Array(le);return pt(i,A),{publicKey:i,secretKey:A}},e.sign.keyPair.fromSecretKey=function(i){if(L(i),i.length!==le)throw new Error("bad secret key size");var A=new Uint8Array(oe);return A=pr(i),{publicKey:A,secretKey:new Uint8Array(i)}},e.sign.keyPair.fromSeed=function(i){if(L(i),i.length!==Ut)throw new Error("bad seed size");for(var A=new Uint8Array(oe),o=new Uint8Array(le),a=0;a<32;a++)o[a]=i[a];return pt(A,o,!0),{publicKey:A,secretKey:o}},e.sign.publicKeyLength=oe,e.sign.secretKeyLength=le,e.sign.seedLength=Ut,e.sign.signatureLength=q,e.hash=function(i){L(i);var A=new Uint8Array(vt);return yr(A,i,i.length),A},e.hash.hashLength=vt,e.verify=function(i,A){return L(i,A),i.length===0||A.length===0||i.length!==A.length?!1:ut(i,0,A,0,i.length)===0},e.setPRNG=function(i){s=i},function(){var i=typeof self<"u"?self.crypto||self.msCrypto:null;if(i&&i.getRandomValues){var A=65536;e.setPRNG(function(o,a){var h,c=new Uint8Array(a);for(h=0;h{"use strict";var oo=E&&E.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ao=E&&E.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),ao=E&&E.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&oo(r,e,t);return Ao(r,e),r},so=E&&E.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(E,"__esModule",{value:!0});E.verify_signed_message=E.sign_message=E.construct_message_block_and_hash=E.verify_block_hash=E.sign_block_hash=E.hash_block=E.get_public_key_from_address=E.get_address_from_public_key=E.get_public_key_from_private_key=E.get_private_key_from_seed=E.raw_to_whole=E.whole_to_raw=E.utf8_to_uint8array=E.base32_to_uint8array=E.uint8array_to_base32=E.int_to_uint8array=E.hex_to_uint8array=E.uint8array_to_hex=void 0;var Ot=ao(Cn()),ot=so(Pt()),Io="0000000000000000000000000000000000000000000000000000000000000006",Gt="62616E616E6F6D73672D",Me=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];function He(e){let r="";for(let t=0;t0;g--)s-=t[r-g]*16**(2*(g-1));t[r-n]=Math.floor(s/16**(2*(n-1)))}return t}I(_n,"int_to_uint8array");E.int_to_uint8array=_n;var yn=["1","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","w","x","y","z"];function Vt(e){let r="";for(let t=0;t=5)C=e[s]>>y-5&31;else{let w=5-y;C=(e[s]<>8-w&2**(8-w)-1)}r+=yn[C]}return r}I(Vt,"uint8array_to_base32");E.uint8array_to_base32=Vt;function ho(e,r){let t="",n=e;for(let s=0;s=2**(r-1-s)?(t+="1",n-=2**(r-1-s)):t+="0";return t}I(ho,"int_to_binary");function co(e){let r=0;for(let t=0;tho(yn.indexOf(n),5)).join(""),t=new Uint8Array(Math.ceil(e.length*5/8));for(let n=0;nr-n[1].length)throw Error(`Too many decimals, cannot exceed ${r}`);t=BigInt(n[0])*BigInt(10)**BigInt(r)+BigInt(n[1])*BigInt(10)**BigInt(r-n[1].length)}else t=BigInt(e)*BigInt(10)**BigInt(r);return t}I(go,"whole_to_raw");E.whole_to_raw=go;function fo(e,r=En){let t=e.toString(),n;if(t.length>r)n=t.slice(0,-r)+"."+t.slice(-r);else{let g=r-t.length;n="0."+"0".repeat(g>0?g:0)+t}let s=n.length;for(let g=0;g{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.RPCWithBackup=de.RPC=void 0;var _o=At(),at=class{static{I(this,"RPC")}constructor(r,t=!1){this.DECIMALS=void 0,this.debug=!1,this.rpc_url=r,this.use_pending=t}async call(r){this.debug&&console.log(JSON.stringify(r));let t=await fetch(this.rpc_url,{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok&&this.debug&&console.log(await t.text()),!t.ok)throw Error(`Request to RPC node failed with status code ${t.status}`);let n=await t.json();if(n.error)throw Error(`RPC node response: ${n.error}`);return n}async get_block_count(){return await this.call({action:"block_count"})}async get_block_info(r){return await this.call({action:"block_info",hash:r,json_block:!0})}async get_blocks(r){return await this.call({action:"blocks",hashes:r,json_block:!0})}async get_blocks_info(r){return await this.call({action:"blocks_info",hashes:r,json_block:!0})}async get_representatives(){return await this.call({action:"representatives"})}async get_representatives_online(r){return await this.call({action:"representatives_online",weight:r?!0:void 0})}async get_account_history(r,t,n,s,g,C,y){return await this.call({action:"account_history",account:r,count:`${t}`,raw:n?!0:void 0,head:s,offset:g?`${g}`:void 0,reverse:C?!0:void 0,account_filter:y})}async get_account_info(r,t,n,s,g){return await this.call({action:"account_info",account:r,include_confirmed:t?!0:void 0,representative:n?!0:void 0,weight:s?!0:void 0,pending:g?!0:void 0})}async get_account_balance(r){return await this.call({action:"account_balance",account:r})}async get_accounts_balances(r){return await this.call({action:"accounts_balances",accounts:r})}async get_account_representative(r){return await this.call({action:"account_representative",account:r})}async get_accounts_representatives(r){return await this.call({action:"accounts_representatives",account:r})}async get_account_weight(r){return await this.call({action:"account_weight",account:r})}async get_account_receivable(r,t,n,s){return await this.call({action:this.use_pending?"pending":"receivable",account:r,count:t?`${t}`:void 0,threshold:n?(0,_o.whole_to_raw)(n,this.DECIMALS).toString():void 0,source:s?!0:void 0})}async get_delegators(r,t,n,s){return await this.call({action:"delegators",account:r,threshold:t?`${t}`:void 0,count:n?`${n}`:void 0,start:s})}async get_delegators_count(r){return await this.call({action:"account_weight",account:r})}};de.RPC=at;var Tt=class extends at{static{I(this,"RPCWithBackup")}constructor(r,t,n=!1){if(r.length<2)throw Error("Must provide at least two RPC URLs");super(r[0],n),this.rpc_urls=r,this.timeout=t}async call(r){let t=0;for(;;)try{let n=await fetch(this.rpc_urls[t],{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(!n.ok)throw Error(`Request to RPC node failed with status code ${n.status}`);let s=await n.json();if(s.error)throw Error(`RPC node response: ${s.error}`);return s}catch(n){if(!this.rpc_urls[++t])throw Error(n)}}};de.RPCWithBackup=Tt});var Dn=S(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0})});var Sn=S(V=>{"use strict";var yo=V&&V.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),wo=V&&V.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Eo=V&&V.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&yo(r,e,t);return wo(r,e),r};Object.defineProperty(V,"__esModule",{value:!0});V.PrivateKeyAccount=V.Wallet=void 0;var F=Eo(At()),st=class e{static{I(this,"Wallet")}constructor(r,t,n=0,s){if(this.add_do_work=!0,this.rpc=r,typeof t!="string"||t?.length!==64)throw Error("Seed needs to be 64 character (hex) string");this.seed=t,this.index=n,this.work_function=s}static gen_random_wallet(r){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=F.uint8array_to_hex(t);return new e(r,n)}get private_key(){return F.get_private_key_from_seed(this.seed,this.index)}get public_key(){return F.get_public_key_from_private_key(this.private_key)}get address(){return F.get_address_from_public_key(this.public_key)}async send_process(r,t){return(await this.rpc.call({action:"process",json_block:"true",subtype:t,block:r,do_work:!r.work&&this.add_do_work?!0:void 0})).hash}async send(r,t,n,s,g){let C=F.whole_to_raw(t,this.rpc.DECIMALS),y=g??await this.get_account_info(void 0,!0),w=F.get_public_key_from_address(r);s||(s=y.representative);let x=BigInt(y.balance),b=x-C;if(b<0n)throw Error(`Insufficient funds to send. Cannot send more than balance; ie, Before balance (raw: ${x}) less than send amount (raw: ${C})`);let D={type:"state",account:this.address,previous:y.frontier,representative:s,balance:b.toString(),link:w,link_as_account:r},K=F.hash_block(D),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...D,signature:pe,work:$};return await this.send_process(ee,"send")}async send_all(r,t,n){let s=await this.get_account_info(void 0,!0);return await this.send(r,F.raw_to_whole(BigInt(s.balance),this.rpc.DECIMALS),t,n,s)}async receive(r,t,n){let s=await this.rpc.get_block_info(r),g=0n;n||(n=this.address);let C;try{let K=await this.get_account_info(void 0,!0);C=K.frontier,n=K.representative,g=BigInt(K.balance)}catch{C="0".repeat(64)}let y={type:"state",account:this.address,previous:C,representative:n,balance:(g+BigInt(s.amount)).toString(),link:r},w=F.hash_block(y),x;t&&(x=await this.work_function(w));let b=F.sign_block_hash(this.private_key,w),D={...y,signature:b,work:x};return await this.send_process(D,"receive")}async receive_all(r=20,t,n){let s=(await this.get_account_receivable(r,t,!0)).blocks,g,C,y;try{let x=await this.get_account_info(void 0,!0);g=x.frontier,C=x.representative,y=BigInt(x.balance)}catch{g="0".repeat(64),C=this.address,y=BigInt(0)}let w=[];for(let x of Object.keys(s)){let b=(y+BigInt(s[x].amount)).toString(),D={type:"state",account:this.address,previous:g,representative:C,balance:b,link:x},K=F.hash_block(D),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...D,signature:pe,work:$};await this.send_process(ee,"receive"),w.push(K),g=K,y=BigInt(b)}return w}async change_representative(r,t){let n=await this.get_account_info(),s={type:"state",account:this.address,previous:n.frontier,representative:r,balance:n.balance,link:"0".repeat(64)},g=F.hash_block(s),C;t&&(C=await this.work_function(g));let y=F.sign_block_hash(this.private_key,g),w={...s,signature:y,work:C};return await this.send_process(w,"change")}async change_rep(r,t){return await this.change_representative(r,t)}async get_account_info(r,t,n,s){return await this.rpc.get_account_info(this.address,r,t,n,s)}async get_account_receivable(r,t,n){return await this.rpc.get_account_receivable(this.address,r,t,n)}sign_message(r){return F.sign_message(this.private_key,r)}};V.Wallet=st;var jt=class extends st{static{I(this,"PrivateKeyAccount")}constructor(r,t,n){if(typeof t!="string"||t?.length!==64)throw Error("Priv key needs to be 64 character (hex) string");super(r,t,0,n),this._private_key=t}get private_key(){return this._private_key}};V.PrivateKeyAccount=jt});var Un=S(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.RPCWorkProvider=void 0;var Jt=class{static{I(this,"RPCWorkProvider")}constructor(r){this.extra_payload={},this.rpc=r}async request_work(r){return(await this.rpc.call({action:"work_generate",hash:r,...this.extra_payload})).work}};It.RPCWorkProvider=Jt});var we=S(N=>{"use strict";var xo=N&&N.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Pe=N&&N.__exportStar||function(e,r){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(r,t)&&xo(r,e,t)};Object.defineProperty(N,"__esModule",{value:!0});Pe(At(),N);Pe(bn(),N);Pe(Dn(),N);Pe(Sn(),N);Pe(Un(),N)});var qt={};Ft(qt,{BSF_HEX_CHARS:()=>ct,HEX_CHARS:()=>Xt,LOG:()=>Ve,address_to_cid_v0:()=>mo,base58_to_hex:()=>Yn,bigint_to_uint8array:()=>Kn,bns_seed_format_to_hex:()=>po,cid_v0_to_address:()=>bo,decode_domain_name:()=>Ee,encode_domain_name:()=>ht,hex_to_base58:()=>Fn,hex_to_bns_seed_format:()=>Bo,is_bns_seed_format:()=>Qo});var Z=Ke(we());var Ve=!0;function ht(e){if(e.includes(".")||e.includes("\0")||e.includes('"'))throw new Error(`Domain name cannot include '.' or '"' or '\\u0000'`);let r=(0,Z.uint8array_to_hex)(new TextEncoder().encode(e));if(r.length>64)throw new Error("Cannot be more than 32 bytes");return r.length<64&&(r="0".repeat(64-r.length)+r),r}I(ht,"encode_domain_name");function Ee(e){return new TextDecoder().decode((0,Z.hex_to_uint8array)(e)).replace(/\u0000/g,"")}I(Ee,"decode_domain_name");var vn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";function Fn(e){let r=BigInt(`0x${e}`),t="";for(;t+=vn[Number(r%BigInt(58))],r=r/BigInt(58),r!==0n;);return t.split("").reverse().join("")}I(Fn,"hex_to_base58");var Xt="0123456789ABCDEF",ct="ghijklmnopqrstuv";function Bo(e){return e.split("").map(r=>ct[Xt.indexOf(r.toUpperCase())]).join("")}I(Bo,"hex_to_bns_seed_format");function po(e){return e.split("").map(r=>Xt[ct.indexOf(r.toLowerCase())]).join("")}I(po,"bns_seed_format_to_hex");function Qo(e){return e.split("").every(r=>ct.includes(r.toLowerCase()))}I(Qo,"is_bns_seed_format");function Kn(e,r){let t=new Uint8Array(r),n=e;for(let s=1;s<=r;s++)t[r-s]=Number(n%256n),n/=256n;return t}I(Kn,"bigint_to_uint8array");function Yn(e){let r=0n;for(let t=0;tBe,Resolver:()=>Wt,TLDAccount:()=>xe});var T=Ke(we());var gt=class{static{I(this,"Account")}constructor(r,t){this.rpc=r,this.address=t}async get_open_and_frontier(){let r=await this.rpc.get_account_info(this.address,!0);return[r.open_block,r.confirmation_height_frontier??r.frontier]}async get_history_from_open(r,t){return await this.rpc.get_account_history(this.address,t,!0,r,void 0,!0)}},xe=class extends gt{static{I(this,"TLDAccount")}constructor(r,t){super(r,t),this.all_issued=[]}async get_specific(r,t=500){let[n,s]=await this.get_open_and_frontier(),g=n;for(;;){let{history:C}=await this.get_history_from_open(g,t);for(let y of C){let w=BigInt(y.amount??0);if(y.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(y.representative));if(r===x)return{tld:this.address,name:r,history:[{type:"transfer",block:y,to:(0,T.get_address_from_public_key)(y.link)}]}}if(y.representative===Ie&&y.subtype==="change"||y.hash===s)return}g=C[C.length-1].hash}}async get_all_issued(r=500){let[t,n]=await this.get_open_and_frontier(),s=t,g={};for(;;){let{history:C}=await this.get_history_from_open(s,r);for(let y of C){let w=BigInt(y.amount??0);if(y.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(y.representative));g[x]?Ve&&console.log(`"${x}" already issued but TLD tried to issue again. Invalid.`):g[x]={tld:this.address,name:x,history:[{type:"transfer",block:y,to:(0,T.get_address_from_public_key)(y.link)}]}}if(y.representative===Ie&&y.subtype==="change"||y.hash===n)return this.all_issued=Object.values(g),this.all_issued}s=C[C.length-1].hash}}},Be=class extends gt{static{I(this,"DomainAccount")}constructor(r,t,n,s){super(r,t),this.domain=n,this.max_rpc_calls=s,this.rpc_calls=0}async crawl(r=500){let t,n;try{[t,n]=await this.get_open_and_frontier(),this.rpc_calls+=1}catch{return Ve&&console.log("Not yet received"),this.domain}if(this.rpc_calls===this.max_rpc_calls)throw new Error("Max RPC calls reached");let s=t;for(;;){let{history:g}=await this.get_history_from_open(s,r);if(this.rpc_calls+=1,this.rpc_calls===this.max_rpc_calls)throw new Error("Max RPC calls reached");for(let C of g){let y=BigInt(C.amount??0);if(C.height==="1"){if(C.link!==this.domain.history[this.domain.history.length-1]?.block.hash)return Ve&&console.log("Domain burned"),this.domain.burned=!0,this.domain;this.domain.history.push({type:"receive",block:C})}else if(C.subtype==="send"&&y>=se&&y<=ne){let w=Ee((0,T.get_public_key_from_address)(C.representative));if(this.domain.name===w)return this.domain.resolved_address=void 0,this.domain.metadata_hash=void 0,this.domain.history.push({type:"transfer",block:C,to:(0,T.get_address_from_public_key)(C.link)}),this.domain}else{if(C.subtype==="change"&&C.representative===Ie)return this.domain.history.push({type:"freeze",block:C}),this.domain;C.subtype==="change"?(this.domain.metadata_hash=(0,T.get_public_key_from_address)(C.representative),this.domain.history.push({type:"metadata",block:C,metadata_hash:this.domain.metadata_hash})):C.subtype==="send"&&y===4224n&&(this.domain.resolved_address=(0,T.get_address_from_public_key)(C.link),this.domain.history.push({type:"resolver",block:C,resolved_address:this.domain.resolved_address}))}if(C.hash===n)return this.domain}s=g[g.length-1].hash}}},Wt=class{static{I(this,"Resolver")}constructor(r,t,n){this.rpc=r,this.tld_mapping=t,this.max_rpc_calls_after_tld=n}async resolve(r,t,n=500){if(r=r.toLowerCase(),!this.tld_mapping[t])throw new Error("No TLD Account found for that TLD");let g=await new xe(this.rpc,this.tld_mapping[t]).get_specific(r,n);if(!g)return g;let C=this.max_rpc_calls_after_tld;for(;;){let y=g.history[g.history.length-1].to,w=new Be(this.rpc,y,g,C),x=g.history.length;if(g=await w.crawl(n),C-=w.rpc_calls,g.history[g.history.length-1].type!=="transfer"||g.burned||x===g.history.length)break}return g}async resolve_backwards_ish(r,t,n=500){let s=(await this.rpc.get_account_info(r,!0)).open_block,g=(await this.rpc.get_block_info(s)).contents.link,C=await this.rpc.get_block_info(g),y=Ee((0,T.get_public_key_from_address)(C.contents.representative)),w=await this.resolve(y,t,n);if((w?.history.slice().reverse().find(b=>b.type==="transfer")).to===r)return w}};var tr={};Ft(tr,{DomainAccountManager:()=>er,TLDAccountManager:()=>$t});var ie=Ke(we());var $t=class extends xe{static{I(this,"TLDAccountManager")}constructor(r,t){super(r,t.address),this.wallet=t}async issue_domain_name(r,t){if(r=r.toLowerCase(),this.all_issued.some(s=>s.name===r))throw new Error("Cannot issue a domain name that is already issued");return await this.wallet.send(t,"0.00120703011",void 0,(0,ie.get_address_from_public_key)(ht(r)))}async freeze(){await this.wallet.change_representative(Ie)}async receive(){await this.wallet.receive_all()}},er=class extends Be{static{I(this,"DomainAccountManager")}constructor(r,t,n){super(r,t.address),this.wallet=t,this.domain=n}async receive_domain(r,t,n){let s=!1,{history:g}=await this.rpc.get_account_history(this.address,1);if(g.length>1&&!n)throw s=!0,new Error("`allow_burning` must be true in order to receive this domain");let C=await this.rpc.get_block_info(r),y=BigInt(C.amount);if(yne)throw new Error("`receive_hash` is not a Domain Transfer block");await this.wallet.receive(r,void 0,t)}async transfer_domain(r,t){let n=(await this.wallet.get_account_info()).balance,s=(0,ie.raw_to_whole)(ne);return ne>BigInt(n)&&se<=BigInt(n)&&(s=(0,ie.raw_to_whole)(BigInt(n))),await this.wallet.send(t,s,void 0,(0,ie.get_address_from_public_key)(ht(r)))}async declare_domain_metadata(r){if(r===zt)throw new Error("A metadata hash of all 1s freezes the domain");await this.wallet.change_representative((0,ie.get_address_from_public_key)(r))}async declare_domain_resolve_to(r){await this.wallet.send(r,(0,ie.raw_to_whole)(4224n))}async freeze(){await this.wallet.change_representative(Ie)}};var kn={};var Do=Ke(we());window.bns={...qt,...Zt,...tr,...kn,banani:Do};})(); diff --git a/bns_protocol.md b/bns_protocol.md index 9e468e5..aeeb0d9 100644 --- a/bns_protocol.md +++ b/bns_protocol.md @@ -1,4 +1,4 @@ -*Version 1.0.0 release-candidate 2* +*Version 1.0.0 release-candidate 3* Very similar to [Airtune's Banano NFT protocol](https://github.com/Airtune/73-meta-tokens) @@ -120,7 +120,7 @@ Domain metadata can be anything. However, in order for domain metadata to be eas A domain name cannot have the `.`, `\u0000`, or `"` characters in it. Domain names are all lowercase. -> Maybe alphanumeric only? +> Currently, it is recommended that registrars only issue lowercase, alphanumeric domain names. Likewise, applications supporting BNS domains may safely assume that domain names will only be lowercase and alphanumeric. This may become required in a later version of the protocol. # Implementation @@ -142,7 +142,7 @@ Also, for the convenience of the user (so they can do a Domain Resovler and Doma Domain owners will need some specialised software to manage domains. Generating/storing Domain Accounts, transferring domains, and setting/changing their resolved address are all simple. Changing domain metadata is a bit more complicated and involves uploading the metadata file to IPFS. The demo client supports converting IPFS Cid v0 into metadata hashes, and then declaring that metadata hash. -As BNS domains can be burned if sent/received improperly, **it is important that TLD and Domain Accounts are not imported into regular wallets** which may do things like auto-receive. As such, it is recommended that BNS wallets (and wallet-like software) generate seeds for TLD and Domain Accounts in a unique (that is, not 64 hex characters) format, so that those seeds cannot be easily imported into regular wallets by uninformed users. Obviously, BNS wallets should also accept that unique seed format. Arbitrarily, because base32 is annoying, the recommended unique seed format is a simple change of the hex characters 0-9 to g-p and A-F to q-v. This will be called the "BNS Seed Format", or the "BSF Hex". +As BNS domains can be burned if sent/received improperly, **it is important that TLD and Domain Accounts are not imported into regular wallets** which may do things like auto-receive. As such, it is recommended that BNS wallets (and wallet-like software) generate seeds for TLD and Domain Accounts in a unique (that is, not 64 hex characters) format, so that those seeds cannot be easily imported into regular wallets by uninformed users. Obviously, BNS wallets should also accept that unique seed format. Arbitrarily, because base32 is annoying, **the recommended unique seed format is a simple change of the hex characters 0-9 to g-p and A-F to q-v. This will be called the "BNS Seed Format", or the "BSF Hex".** ## Non-BNS wallets diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index a2f1712..8c8324b 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -3,6 +3,26 @@ --dark-hl-0: #9CDCFE; --light-hl-1: #000000; --dark-hl-1: #D4D4D4; + --light-hl-2: #800000; + --dark-hl-2: #808080; + --light-hl-3: #800000; + --dark-hl-3: #569CD6; + --light-hl-4: #000000FF; + --dark-hl-4: #D4D4D4; + --light-hl-5: #E50000; + --dark-hl-5: #9CDCFE; + --light-hl-6: #0000FF; + --dark-hl-6: #CE9178; + --light-hl-7: #AF00DB; + --dark-hl-7: #C586C0; + --light-hl-8: #A31515; + --dark-hl-8: #CE9178; + --light-hl-9: #0000FF; + --dark-hl-9: #569CD6; + --light-hl-10: #0070C1; + --dark-hl-10: #4FC1FF; + --light-hl-11: #795E26; + --dark-hl-11: #DCDCAA; --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -10,27 +30,77 @@ @media (prefers-color-scheme: light) { :root { --hl-0: var(--light-hl-0); --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } } @media (prefers-color-scheme: dark) { :root { --hl-0: var(--dark-hl-0); --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } } :root[data-theme='light'] { --hl-0: var(--light-hl-0); --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); --code-background: var(--light-code-background); } :root[data-theme='dark'] { --hl-0: var(--dark-hl-0); --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); --code-background: var(--dark-code-background); } .hl-0 { color: var(--hl-0); } .hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } pre, code { background: var(--code-background); } diff --git a/docs/assets/search.js b/docs/assets/search.js index 8dadc25..b7dd896 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/bns-browser.js b/docs/bns-browser.js index 85c0800..62cc26f 100644 --- a/docs/bns-browser.js +++ b/docs/bns-browser.js @@ -1 +1 @@ -(()=>{var Zn=Object.create;var Ze=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.getPrototypeOf,ri=Object.prototype.hasOwnProperty;var I=(e,r)=>Ze(e,"name",{value:r,configurable:!0}),Qr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ft=(e,r)=>{for(var t in r)Ze(e,t,{get:r[t],enumerable:!0})},ni=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ei(r))!ri.call(e,s)&&s!==t&&Ze(e,s,{get:()=>r[s],enumerable:!(n=$n(r,s))||n.enumerable});return e};var Ke=(e,r,t)=>(t=e!=null?Zn(ti(e)):{},ni(r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t,e));var Kt=S((Uo,Dr)=>{Dr.exports=br;var $e=class extends Error{static{I(this,"AssertionError")}};$e.prototype.name="AssertionError";function br(e,r){if(!e){var t=new $e(r);throw Error.captureStackTrace&&Error.captureStackTrace(t,br),t}}I(br,"assert")});var Ur=S((Fo,Sr)=>{function mr(e){return e.length}I(mr,"byteLength");function ii(e){let r=e.byteLength,t="";for(let n=0;n{var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ae=new Uint8Array(256);for(let e=0;e1&&e.charCodeAt(r-1)===61&&r--,r*3>>>2}I(vr,"byteLength");function Ai(e){let r=e.byteLength,t="";for(let n=0;n>2]+ye[(e[n]&3)<<4|e[n+1]>>4]+ye[(e[n+1]&15)<<2|e[n+2]>>6]+ye[e[n+2]&63];return r%3===2?t=t.substring(0,t.length-1)+"=":r%3===1&&(t=t.substring(0,t.length-2)+"=="),t}I(Ai,"toString");function ai(e,r,t=0,n=vr(r)){let s=Math.min(n,e.byteLength-t);for(let g=0,l=0;l>4,e[l++]=(w&15)<<4|x>>2,e[l++]=(x&3)<<6|b&63}return s}I(ai,"write");Fr.exports={byteLength:vr,toString:Ai,write:ai}});var Mr=S((Lo,Lr)=>{function kr(e){return e.length>>>1}I(kr,"byteLength");function si(e){let r=e.byteLength;e=new DataView(e.buffer,e.byteOffset,r);let t="",n=0;for(let s=r-r%4;n=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}I(Yr,"hexValue")});var Pr=S((Ho,Hr)=>{function Yt(e){let r=0;for(let t=0,n=e.length;t=55296&&s<=56319&&t+1=56320&&g<=57343){r+=4,t++;continue}}s<=127?r+=1:s<=2047?r+=2:r+=3}return r}I(Yt,"byteLength");var kt;if(typeof TextDecoder<"u"){let e=new TextDecoder;kt=I(function(t){return e.decode(t)},"toString")}else kt=I(function(r){let t=r.byteLength,n="",s=0;for(;s0){let w=0;for(;w>x,x-=6;x>=0;)r[_++]=128|w>>x&63,x-=6;l+=w>=65536?2:1}return g},"write");Hr.exports={byteLength:Yt,toString:kt,write:Lt}});var Gr=S((Vo,Or)=>{function Vr(e){return e.length*2}I(Vr,"byteLength");function hi(e){let r=e.byteLength,t="";for(let n=0;n>8,x=_%256;e[t+l*2]=x,e[t+l*2+1]=w}return s}I(ci,"write");Or.exports={byteLength:Vr,toString:hi,write:ci}});var Jr=S((Ht,jr)=>{var gi=Ur(),fi=Kr(),ui=Mr(),Ci=Pr(),li=Gr(),et=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function Ye(e){switch(e){case"ascii":return gi;case"base64":return fi;case"hex":return ui;case"utf8":case"utf-8":case void 0:return Ci;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return li;default:throw new Error(`Unknown encoding: ${e}`)}}I(Ye,"codecFor");function Rr(e){return e instanceof Uint8Array}I(Rr,"isBuffer");function yi(e){try{return Ye(e),!0}catch{return!1}}I(yi,"isEncoding");function _i(e,r,t){let n=new Uint8Array(e);return r!==void 0&&Ht.fill(n,r,0,n.byteLength,t),n}I(_i,"alloc");function di(e){return new Uint8Array(e)}I(di,"allocUnsafe");function wi(e){return new Uint8Array(e)}I(wi,"allocUnsafeSlow");function Ei(e,r){return Ye(r).byteLength(e)}I(Ei,"byteLength");function xi(e,r){if(e===r)return 0;let t=Math.min(e.byteLength,r.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),r=new DataView(r.buffer,r.byteOffset,r.byteLength);let n=0;for(let s=t-t%4;ng)return 1}return e.byteLength>r.byteLength?1:e.byteLengths+g.byteLength,0));let t=new Uint8Array(r),n=0;for(let s of e){if(n+s.byteLength>t.byteLength){let g=s.subarray(0,t.byteLength-n);return t.set(g,n),t}t.set(s,n),n+=s.byteLength}return t}I(Bi,"concat");function pi(e,r,t=0,n=0,s=e.byteLength){if(s>0&&s=e.byteLength)throw new RangeError("sourceStart is out of range");if(s<0)throw new RangeError("sourceEnd is out of range");t>=r.byteLength&&(t=r.byteLength),s>e.byteLength&&(s=e.byteLength),r.byteLength-t=e.byteLength){if(s)return-1;t=e.byteLength-1}else if(t<0)if(s)t=0;else return-1;if(typeof r=="string")r=Mt(r,n);else if(typeof r=="number")return r=r&255,s?e.indexOf(r,t):e.lastIndexOf(r,t);if(r.byteLength===0)return-1;if(s){let g=-1;for(let l=t;le.byteLength&&(t=e.byteLength-r.byteLength);for(let g=t;g>=0;g--){let l=!0;for(let _=0;_=s||n<=t?"":(t<0&&(t=0),n>s&&(n=s),(t!==0||n{var Ji=I((e,r)=>I(function(){return r||(0,e[Object.keys(e)[0]])((r={exports:{}}).exports,r),r.exports},"__require"),"__commonJS"),Xi=(()=>{for(var e=new Uint8Array(128),r=0;r<64;r++)e[r<26?r+65:r<52?r+71:r<62?r-4:r*4-205]=r;return t=>{for(var n=t.length,s=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),g=0,l=0;g>4,s[l++]=w<<4|x>>2,s[l++]=x<<6|b}return s}})(),qi=Ji({"wasm-binary:./blake2b.wat"(e,r){r.exports=Xi("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")}}),zi=qi(),Wi=WebAssembly.compile(zi);Xr.exports=async e=>(await WebAssembly.instantiate(await Wi,e)).exports});var nn=S((Jo,J)=>{var M=Kt(),Zi=Jr(),W=null,zr=typeof WebAssembly<"u"&&qr()().then(e=>{W=e}),z=64,tt=[];J.exports=Y;var Wr=J.exports.BYTES_MIN=16,Zr=J.exports.BYTES_MAX=64,To=J.exports.BYTES=32,$r=J.exports.KEYBYTES_MIN=16,en=J.exports.KEYBYTES_MAX=64,jo=J.exports.KEYBYTES=32,tn=J.exports.SALTBYTES=16,rn=J.exports.PERSONALBYTES=16;function Y(e,r,t,n,s){if(!(this instanceof Y))return new Y(e,r,t,n,s);if(!W)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");e||(e=32),s!==!0&&(M(e>=Wr,"digestLength must be at least "+Wr+", was given "+e),M(e<=Zr,"digestLength must be at most "+Zr+", was given "+e),r!=null&&(M(r instanceof Uint8Array,"key must be Uint8Array or Buffer"),M(r.length>=$r,"key must be at least "+$r+", was given "+r.length),M(r.length<=en,"key must be at least "+en+", was given "+r.length)),t!=null&&(M(t instanceof Uint8Array,"salt must be Uint8Array or Buffer"),M(t.length===tn,"salt must be exactly "+tn+", was given "+t.length)),n!=null&&(M(n instanceof Uint8Array,"personal must be Uint8Array or Buffer"),M(n.length===rn,"personal must be exactly "+rn+", was given "+n.length))),tt.length||(tt.push(z),z+=216),this.digestLength=e,this.finalized=!1,this.pointer=tt.pop(),this._memory=new Uint8Array(W.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=r?r.length:0,this._memory[2]=1,this._memory[3]=1,t&&this._memory.set(t,32),n&&this._memory.set(n,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),W.blake2b_init(this.pointer,this.digestLength),r&&(this.update(r),this._memory.fill(0,z,z+r.length),this._memory[this.pointer+200]=128)}I(Y,"Blake2b");Y.prototype._realloc=function(e){W.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(W.memory.buffer)};Y.prototype.update=function(e){return M(this.finalized===!1,"Hash instance finalized"),M(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),z+e.length>this._memory.length&&this._realloc(z+e.length),this._memory.set(e,z),W.blake2b_update(this.pointer,z,z+e.length),this};Y.prototype.digest=function(e){if(M(this.finalized===!1,"Hash instance finalized"),this.finalized=!0,tt.push(this.pointer),W.blake2b_final(this.pointer),!e||e==="binary")return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e=="string")return Zi.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);M(e instanceof Uint8Array&&e.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var r=0;re(),e):e(new Error("WebAssembly not supported"))};Y.prototype.ready=Y.ready;Y.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)};Y.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function $i(){}I($i,"noop")});var Pt=S((Wo,k)=>{var P=Kt(),Le=nn();function rt(e,r,t){var n=e[r]+e[t],s=e[r+1]+e[t+1];n>=4294967296&&s++,e[r]=n,e[r+1]=s}I(rt,"ADD64AA");function on(e,r,t,n){var s=e[r]+t;t<0&&(s+=4294967296);var g=e[r+1]+n;s>=4294967296&&g++,e[r]=s,e[r+1]=g}I(on,"ADD64AC");function gn(e,r){return e[r]^e[r+1]<<8^e[r+2]<<16^e[r+3]<<24}I(gn,"B2B_GET32");function te(e,r,t,n,s,g){var l=ke[s],_=ke[s+1],w=ke[g],x=ke[g+1];rt(B,e,r),on(B,e,l,_);var b=B[n]^B[e],m=B[n+1]^B[e+1];B[n]=m,B[n+1]=b,rt(B,t,n),b=B[r]^B[t],m=B[r+1]^B[t+1],B[r]=b>>>24^m<<8,B[r+1]=m>>>24^b<<8,rt(B,e,r),on(B,e,w,x),b=B[n]^B[e],m=B[n+1]^B[e+1],B[n]=b>>>16^m<<16,B[n+1]=m>>>16^b<<16,rt(B,t,n),b=B[r]^B[t],m=B[r+1]^B[t+1],B[r]=m>>>31^b<<1,B[r+1]=b>>>31^m<<1}I(te,"B2B_G");var fn=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],v=new Uint8Array(eo.map(function(e){return e*2})),B=new Uint32Array(32),ke=new Uint32Array(32);function un(e,r){var t=0;for(t=0;t<16;t++)B[t]=e.h[t],B[t+16]=fn[t];for(B[24]=B[24]^e.t,B[25]=B[25]^e.t/4294967296,r&&(B[28]=~B[28],B[29]=~B[29]),t=0;t<32;t++)ke[t]=gn(e.b,4*t);for(t=0;t<12;t++)te(0,8,16,24,v[t*16+0],v[t*16+1]),te(2,10,18,26,v[t*16+2],v[t*16+3]),te(4,12,20,28,v[t*16+4],v[t*16+5]),te(6,14,22,30,v[t*16+6],v[t*16+7]),te(0,10,20,30,v[t*16+8],v[t*16+9]),te(2,12,22,24,v[t*16+10],v[t*16+11]),te(4,14,16,26,v[t*16+12],v[t*16+13]),te(6,8,18,28,v[t*16+14],v[t*16+15]);for(t=0;t<16;t++)e.h[t]=e.h[t]^B[t]^B[t+16]}I(un,"blake2bCompress");var re=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function _e(e,r,t,n){re.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,re[0]=e,r&&(re[1]=r.length),re[2]=1,re[3]=1,t&&re.set(t,32),n&&re.set(n,48);for(var s=0;s<16;s++)this.h[s]=fn[s]^gn(re,s*4);r&&(Cn(this,r),this.c=128)}I(_e,"Blake2b");_e.prototype.update=function(e){return P(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),Cn(this,e),this};_e.prototype.digest=function(e){var r=!e||e==="binary"||e==="hex"?new Uint8Array(this.outlen):e;return P(r instanceof Uint8Array,'out must be "binary", "hex", Uint8Array, or Buffer'),P(r.length>=this.outlen,"out must have at least outlen bytes of space"),to(this,r),e==="hex"?ro(r):r};_e.prototype.final=_e.prototype.digest;_e.ready=function(e){Le.ready(function(){e()})};function Cn(e,r){for(var t=0;t>2]>>8*(t&3);return r}I(to,"blake2bFinal");function ro(e){for(var r="",t=0;t=An,"outlen must be at least "+An+", was given "+r),P(r<=an,"outlen must be at most "+an+", was given "+r),t!=null&&(P(t instanceof Uint8Array,"key must be Uint8Array or Buffer"),P(t.length>=sn,"key must be at least "+sn+", was given "+t.length),P(t.length<=In,"key must be at most "+In+", was given "+t.length)),n!=null&&(P(n instanceof Uint8Array,"salt must be Uint8Array or Buffer"),P(n.length===hn,"salt must be exactly "+hn+", was given "+n.length)),s!=null&&(P(s instanceof Uint8Array,"personal must be Uint8Array or Buffer"),P(s.length===cn,"personal must be exactly "+cn+", was given "+s.length))),new io(r,t,n,s)},"createHash");k.exports.ready=function(e){Le.ready(function(){e()})};k.exports.WASM_SUPPORTED=Le.SUPPORTED;k.exports.WASM_LOADED=!1;var An=k.exports.BYTES_MIN=16,an=k.exports.BYTES_MAX=64,qo=k.exports.BYTES=32,sn=k.exports.KEYBYTES_MIN=16,In=k.exports.KEYBYTES_MAX=64,zo=k.exports.KEYBYTES=32,hn=k.exports.SALTBYTES=16,cn=k.exports.PERSONALBYTES=16;Le.ready(function(e){e||(k.exports.WASM_LOADED=!0,k.exports=Le)})});var ln=S(($o,nt)=>{(function(e){"use strict";let r=Pt();var t=I(function(i,A){this.hi=i|0,this.lo=A|0},"u64"),n=I(function(i){var A,o=new Float64Array(16);if(i)for(A=0;A>>32-A}I(ee,"L32");function he(i,A){var o=i[A+3]&255;return o=o<<8|i[A+2]&255,o=o<<8|i[A+1]&255,o<<8|i[A+0]&255}I(he,"ld32");function rr(i,A){var o=i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3],a=i[A+4]<<24|i[A+5]<<16|i[A+6]<<8|i[A+7];return new t(o,a)}I(rr,"dl64");function ft(i,A,o){var a;for(a=0;a<4;a++)i[A+a]=o&255,o>>>=8}I(ft,"st32");function nr(i,A,o){i[A]=o.hi>>24&255,i[A+1]=o.hi>>16&255,i[A+2]=o.hi>>8&255,i[A+3]=o.hi&255,i[A+4]=o.lo>>24&255,i[A+5]=o.lo>>16&255,i[A+6]=o.lo>>8&255,i[A+7]=o.lo&255}I(nr,"ts64");function ut(i,A,o,a,h){var c,C=0;for(c=0;c>>8)-1}I(ut,"vn");function ir(i,A,o,a){return ut(i,A,o,a,16)}I(ir,"crypto_verify_16");function Ct(i,A,o,a){return ut(i,A,o,a,32)}I(Ct,"crypto_verify_32");function or(i,A,o,a,h){var c=new Uint32Array(16),C=new Uint32Array(16),y=new Uint32Array(16),f=new Uint32Array(4),u,d,Q;for(u=0;u<4;u++)C[5*u]=he(a,4*u),C[1+u]=he(o,4*u),C[6+u]=he(A,4*u),C[11+u]=he(o,16+4*u);for(u=0;u<16;u++)y[u]=C[u];for(u=0;u<20;u++){for(d=0;d<4;d++){for(Q=0;Q<4;Q++)f[Q]=C[(5*d+4*Q)%16];for(f[1]^=ee(f[0]+f[3]|0,7),f[2]^=ee(f[1]+f[0]|0,9),f[3]^=ee(f[2]+f[1]|0,13),f[0]^=ee(f[3]+f[2]|0,18),Q=0;Q<4;Q++)c[4*d+(d+Q)%4]=f[Q]}for(Q=0;Q<16;Q++)C[Q]=c[Q]}if(h){for(u=0;u<16;u++)C[u]=C[u]+y[u]|0;for(u=0;u<4;u++)C[5*u]=C[5*u]-he(a,4*u)|0,C[6+u]=C[6+u]-he(A,4*u)|0;for(u=0;u<4;u++)ft(i,4*u,C[5*u]),ft(i,16+4*u,C[6+u])}else for(u=0;u<16;u++)ft(i,4*u,C[u]+y[u]|0)}I(or,"core");function Ar(i,A,o,a){return or(i,A,o,a,!1),0}I(Ar,"crypto_core_salsa20");function Ge(i,A,o,a){return or(i,A,o,a,!0),0}I(Ge,"crypto_core_hsalsa20");var Qe=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function lt(i,A,o,a,h,c,C){var y=new Uint8Array(16),f=new Uint8Array(64),u,d;if(!h)return 0;for(d=0;d<16;d++)y[d]=0;for(d=0;d<8;d++)y[d]=c[d];for(;h>=64;){for(Ar(f,y,C,Qe),d=0;d<64;d++)i[A+d]=(o?o[a+d]:0)^f[d];for(u=1,d=8;d<16;d++)u=u+(y[d]&255)|0,y[d]=u&255,u>>>=8;h-=64,A+=64,o&&(a+=64)}if(h>0)for(Ar(f,y,C,Qe),d=0;d>>=8}I(_t,"add1305");var Ln=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]);function dt(i,A,o,a,h,c){var C,y,f,u,d=new Uint32Array(17),Q=new Uint32Array(17),D=new Uint32Array(17),R=new Uint32Array(17),le=new Uint32Array(17);for(f=0;f<17;f++)Q[f]=D[f]=0;for(f=0;f<16;f++)Q[f]=c[f];for(Q[3]&=15,Q[4]&=252,Q[7]&=15,Q[8]&=252,Q[11]&=15,Q[12]&=252,Q[15]&=15;h>0;){for(f=0;f<17;f++)R[f]=0;for(f=0;f<16&&f>>=8;for(u=u+D[16]|0,D[16]=u&3,u=5*(u>>>2)|0,f=0;f<16;f++)u=u+D[f]|0,D[f]=u&255,u>>>=8;u=u+D[16]|0,D[16]=u}for(f=0;f<17;f++)le[f]=D[f];for(_t(D,Ln),C=-(D[16]>>>7)|0,f=0;f<17;f++)D[f]^=C&(le[f]^D[f]);for(f=0;f<16;f++)R[f]=c[f+16];for(R[16]=0,_t(D,R),f=0;f<16;f++)i[A+f]=D[f];return 0}I(dt,"crypto_onetimeauth");function Ir(i,A,o,a,h,c){var C=new Uint8Array(16);return dt(C,0,o,a,h,c),ir(i,A,C,0)}I(Ir,"crypto_onetimeauth_verify");function wt(i,A,o,a,h){var c;if(o<32)return-1;for(yt(i,0,A,0,o,a,h),dt(i,16,i,32,o-32,i),c=0;c<16;c++)i[c]=0;return 0}I(wt,"crypto_secretbox");function Et(i,A,o,a,h){var c,C=new Uint8Array(32);if(o<32||(sr(C,0,32,a,h),Ir(A,16,A,32,o-32,C)!==0))return-1;for(yt(i,0,A,0,o,a,h),c=0;c<32;c++)i[c]=0;return 0}I(Et,"crypto_secretbox_open");function X(i,A){var o;for(o=0;o<16;o++)i[o]=A[o]|0}I(X,"set25519");function be(i){var A,o;for(o=0;o<16;o++)i[o]+=65536,A=Math.floor(i[o]/65536),i[(o+1)*(o<15?1:0)]+=A-1+37*(A-1)*(o===15?1:0),i[o]-=A*65536}I(be,"car25519");function ce(i,A,o){for(var a,h=~(o-1),c=0;c<16;c++)a=h&(i[c]^A[c]),i[c]^=a,A[c]^=a}I(ce,"sel25519");function ge(i,A){var o,a,h,c=n(),C=n();for(o=0;o<16;o++)C[o]=A[o];for(be(C),be(C),be(C),a=0;a<2;a++){for(c[0]=C[0]-65517,o=1;o<15;o++)c[o]=C[o]-65535-(c[o-1]>>16&1),c[o-1]&=65535;c[15]=C[15]-32767-(c[14]>>16&1),h=c[15]>>16&1,c[14]&=65535,ce(C,c,1-h)}for(o=0;o<16;o++)i[2*o]=C[o]&255,i[2*o+1]=C[o]>>8}I(ge,"pack25519");function hr(i,A){var o=new Uint8Array(32),a=new Uint8Array(32);return ge(o,i),ge(a,A),Ct(o,0,a,0)}I(hr,"neq25519");function cr(i){var A=new Uint8Array(32);return ge(A,i),A[0]&1}I(cr,"par25519");function xt(i,A){var o;for(o=0;o<16;o++)i[o]=A[2*o]+(A[2*o+1]<<8);i[15]&=32767}I(xt,"unpack25519");function O(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]+o[a]|0}I(O,"A");function G(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]-o[a]|0}I(G,"Z");function p(i,A,o){var a,h,c=new Float64Array(31);for(a=0;a<31;a++)c[a]=0;for(a=0;a<16;a++)for(h=0;h<16;h++)c[a+h]+=A[a]*o[h];for(a=0;a<15;a++)c[a]+=38*c[a+16];for(a=0;a<16;a++)i[a]=c[a];be(i),be(i)}I(p,"M");function H(i,A){p(i,A,A)}I(H,"S");function gr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=253;a>=0;a--)H(o,o),a!==2&&a!==4&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(gr,"inv25519");function fr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=250;a>=0;a--)H(o,o),a!==1&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}I(fr,"pow2523");function Re(i,A,o){var a=new Uint8Array(32),h=new Float64Array(80),c,C,y=n(),f=n(),u=n(),d=n(),Q=n(),D=n();for(C=0;C<31;C++)a[C]=A[C];for(a[31]=A[31]&127|64,a[0]&=248,xt(h,o),C=0;C<16;C++)f[C]=h[C],d[C]=y[C]=u[C]=0;for(y[0]=d[0]=1,C=254;C>=0;--C)c=a[C>>>3]>>>(C&7)&1,ce(y,f,c),ce(u,d,c),O(Q,y,u),G(y,y,u),O(u,f,d),G(f,f,d),H(d,Q),H(D,y),p(y,u,y),p(u,f,Q),O(Q,y,u),G(y,y,u),H(f,y),G(u,d,D),p(y,u,x),O(y,y,d),p(u,u,y),p(y,d,D),p(d,f,h),H(f,Q),ce(y,f,c),ce(u,d,c);for(C=0;C<16;C++)h[C+16]=y[C],h[C+32]=u[C],h[C+48]=f[C],h[C+64]=d[C];var R=h.subarray(32),le=h.subarray(16);return gr(R,R),p(le,le,R),ge(i,le),0}I(Re,"crypto_scalarmult");function Ne(i,A){return Re(i,A,l)}I(Ne,"crypto_scalarmult_base");function ur(i,A){return s(A,32),Ne(i,A)}I(ur,"crypto_box_keypair");function Te(i,A,o){var a=new Uint8Array(32);return Re(a,o,A),Ge(i,g,a,Qe)}I(Te,"crypto_box_beforenm");var Cr=wt,Mn=Et;function Hn(i,A,o,a,h,c){var C=new Uint8Array(32);return Te(C,h,c),Cr(i,A,o,a,C)}I(Hn,"crypto_box");function Pn(i,A,o,a,h,c){var C=new Uint8Array(32);return Te(C,h,c),Mn(i,A,o,a,C)}I(Pn,"crypto_box_open");function De(){var i=0,A=0,o=0,a=0,h=65535,c,C,y;for(y=0;y>>16,o+=C&h,a+=C>>>16;return A+=i>>>16,o+=A>>>16,a+=o>>>16,new t(o&h|a<<16,i&h|A<<16)}I(De,"add64");function lr(i,A){return new t(i.hi>>>A,i.lo>>>A|i.hi<<32-A)}I(lr,"shr64");function je(){var i=0,A=0,o;for(o=0;o>>A|i.lo<>>A|i.hi<>>A|i.hi<>>A|i.lo<=128;){for(f=0;f<16;f++)C[f]=rr(A,8*f+d);for(f=0;f<80;f++){for(u=0;u<8;u++)h[u]=c[u];for(y=De(c[7],Rn(c[4]),Vn(c[4],c[5],c[6]),jn[f],C[f%16]),h[7]=De(y,Gn(c[0]),On(c[0],c[1],c[2])),h[3]=De(h[3],y),u=0;u<8;u++)c[(u+1)%8]=h[u];if(f%16===15)for(u=0;u<16;u++)C[u]=De(C[u],C[(u+9)%16],Nn(C[(u+1)%16]),Tn(C[(u+14)%16]))}for(f=0;f<8;f++)c[f]=De(c[f],a[f]),a[f]=c[f];d+=128,o-=128}for(f=0;f<8;f++)nr(i,8*f,a[f]);return o}I(yr,"crypto_hashblocks");let fe=I((i,A)=>r(A).update(i).digest(),"crypto_hash_blake2b");var Jn=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]);function _r(i,A,o){var a=new Uint8Array(64),h=new Uint8Array(256),c,C=o;for(c=0;c<64;c++)a[c]=Jn[c];for(yr(a,A,o),o%=128,c=0;c<256;c++)h[c]=0;for(c=0;c=0;--h)a=o[h/8|0]>>(h&7)&1,dr(i,A,a),Je(A,i),Je(i,i),dr(i,A,a)}I(Bt,"scalarmult");function me(i,A){var o=[n(),n(),n(),n()];X(o[0],K),X(o[1],$),X(o[2],w),p(o[3],K,$),Bt(i,o,A)}I(me,"scalarbase");function pt(i,A,o){var a=new Uint8Array(64),h=[n(),n(),n(),n()],c;o||s(A,32);a=fe(A,64),a[0]&=248,a[31]&=127,a[31]|=64,me(h,a),Xe(i,h);return 0}I(pt,"crypto_sign_keypair");var qe=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 Qt(i,A){var o,a,h,c;for(a=63;a>=32;--a){for(o=0,h=a-32,c=a-12;h>4)*qe[h],o=A[h]>>8,A[h]&=255;for(h=0;h<32;h++)A[h]-=o*qe[h];for(a=0;a<32;a++)A[a+1]+=A[a]>>8,i[a]=A[a]&255}I(Qt,"modL");function bt(i){var A=new Float64Array(64),o;for(o=0;o<64;o++)A[o]=i[o];for(o=0;o<64;o++)i[o]=0;Qt(i,A)}I(bt,"reduce");function wr(i,A,o,a){var h=new Uint8Array(64),c=new Uint8Array(64),C=new Uint8Array(64),y,f,u=new Float64Array(64),d=[n(),n(),n(),n()];let Q=pr(a);h=fe(a,64),h[0]&=248,h[31]&=127,h[31]|=64;var D=o+64;for(y=0;y>7&&G(i[0],_,i[0]),p(i[3],i[0],i[1]),0)}I(Xn,"unpackneg");function Dt(i,A,o,a){var h,c=new Uint8Array(32),C=new Uint8Array(64),y=[n(),n(),n(),n()],f=[n(),n(),n(),n()];if(o<64||Xn(f,a))return-1;for(h=0;h=0};function pr(i){let A=new Uint8Array(64),o=[n(),n(),n(),n()],a,h=new Uint8Array(32);return A=fe(i,64),A[0]&=248,A[31]&=127,A[31]|=64,me(o,A),Xe(h,o),h}I(pr,"derivePublicFromSecret"),e.sign.keyPair=function(){var i=new Uint8Array(oe),A=new Uint8Array(Ce);return pt(i,A),{publicKey:i,secretKey:A}},e.sign.keyPair.fromSecretKey=function(i){if(L(i),i.length!==Ce)throw new Error("bad secret key size");var A=new Uint8Array(oe);return A=pr(i),{publicKey:A,secretKey:new Uint8Array(i)}},e.sign.keyPair.fromSeed=function(i){if(L(i),i.length!==Ut)throw new Error("bad seed size");for(var A=new Uint8Array(oe),o=new Uint8Array(Ce),a=0;a<32;a++)o[a]=i[a];return pt(A,o,!0),{publicKey:A,secretKey:o}},e.sign.publicKeyLength=oe,e.sign.secretKeyLength=Ce,e.sign.seedLength=Ut,e.sign.signatureLength=q,e.hash=function(i){L(i);var A=new Uint8Array(vt);return _r(A,i,i.length),A},e.hash.hashLength=vt,e.verify=function(i,A){return L(i,A),i.length===0||A.length===0||i.length!==A.length?!1:ut(i,0,A,0,i.length)===0},e.setPRNG=function(i){s=i},function(){var i=typeof self<"u"?self.crypto||self.msCrypto:null;if(i&&i.getRandomValues){var A=65536;e.setPRNG(function(o,a){var h,c=new Uint8Array(a);for(h=0;h{"use strict";var oo=E&&E.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ao=E&&E.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),ao=E&&E.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&oo(r,e,t);return Ao(r,e),r},so=E&&E.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(E,"__esModule",{value:!0});E.verify_signed_message=E.sign_message=E.construct_message_block_and_hash=E.verify_block_hash=E.sign_block_hash=E.hash_block=E.get_public_key_from_address=E.get_address_from_public_key=E.get_public_key_from_private_key=E.get_private_key_from_seed=E.raw_to_whole=E.whole_to_raw=E.utf8_to_uint8array=E.base32_to_uint8array=E.uint8array_to_base32=E.int_to_uint8array=E.hex_to_uint8array=E.uint8array_to_hex=void 0;var Ot=ao(ln()),ot=so(Pt()),Io="0000000000000000000000000000000000000000000000000000000000000006",Gt="62616E616E6F6D73672D",Me=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];function He(e){let r="";for(let t=0;t0;g--)s-=t[r-g]*16**(2*(g-1));t[r-n]=Math.floor(s/16**(2*(n-1)))}return t}I(yn,"int_to_uint8array");E.int_to_uint8array=yn;var _n=["1","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","w","x","y","z"];function Vt(e){let r="";for(let t=0;t=5)l=e[s]>>_-5&31;else{let w=5-_;l=(e[s]<>8-w&2**(8-w)-1)}r+=_n[l]}return r}I(Vt,"uint8array_to_base32");E.uint8array_to_base32=Vt;function ho(e,r){let t="",n=e;for(let s=0;s=2**(r-1-s)?(t+="1",n-=2**(r-1-s)):t+="0";return t}I(ho,"int_to_binary");function co(e){let r=0;for(let t=0;tho(_n.indexOf(n),5)).join(""),t=new Uint8Array(Math.ceil(e.length*5/8));for(let n=0;nr-n[1].length)throw Error(`Too many decimals, cannot exceed ${r}`);t=BigInt(n[0])*BigInt(10)**BigInt(r)+BigInt(n[1])*BigInt(10)**BigInt(r-n[1].length)}else t=BigInt(e)*BigInt(10)**BigInt(r);return t}I(go,"whole_to_raw");E.whole_to_raw=go;function fo(e,r=En){let t=e.toString(),n;if(t.length>r)n=t.slice(0,-r)+"."+t.slice(-r);else{let g=r-t.length;n="0."+"0".repeat(g>0?g:0)+t}let s=n.length;for(let g=0;g{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.RPCWithBackup=de.RPC=void 0;var yo=At(),at=class{static{I(this,"RPC")}constructor(r,t=!1){this.DECIMALS=void 0,this.debug=!1,this.rpc_url=r,this.use_pending=t}async call(r){this.debug&&console.log(JSON.stringify(r));let t=await fetch(this.rpc_url,{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok&&this.debug&&console.log(await t.text()),!t.ok)throw Error(`Request to RPC node failed with status code ${t.status}`);let n=await t.json();if(n.error)throw Error(`RPC node response: ${n.error}`);return n}async get_block_count(){return await this.call({action:"block_count"})}async get_block_info(r){return await this.call({action:"block_info",hash:r,json_block:!0})}async get_blocks(r){return await this.call({action:"blocks",hashes:r,json_block:!0})}async get_blocks_info(r){return await this.call({action:"blocks_info",hashes:r,json_block:!0})}async get_representatives(){return await this.call({action:"representatives"})}async get_representatives_online(r){return await this.call({action:"representatives_online",weight:r?!0:void 0})}async get_account_history(r,t,n,s,g,l,_){return await this.call({action:"account_history",account:r,count:`${t}`,raw:n?!0:void 0,head:s,offset:g?`${g}`:void 0,reverse:l?!0:void 0,account_filter:_})}async get_account_info(r,t,n,s,g){return await this.call({action:"account_info",account:r,representative:n?!0:void 0,weight:s?!0:void 0,pending:g?!0:void 0})}async get_account_balance(r){return await this.call({action:"account_balance",account:r})}async get_accounts_balances(r){return await this.call({action:"accounts_balances",accounts:r})}async get_account_representative(r){return await this.call({action:"account_representative",account:r})}async get_accounts_representatives(r){return await this.call({action:"accounts_representatives",account:r})}async get_account_weight(r){return await this.call({action:"account_weight",account:r})}async get_account_receivable(r,t,n,s){return await this.call({action:this.use_pending?"pending":"receivable",account:r,count:t?`${t}`:void 0,threshold:n?(0,yo.whole_to_raw)(n,this.DECIMALS).toString():void 0,source:s?!0:void 0})}async get_delegators(r,t,n,s){return await this.call({action:"delegators",account:r,threshold:t?`${t}`:void 0,count:n?`${n}`:void 0,start:s})}async get_delegators_count(r){return await this.call({action:"account_weight",account:r})}};de.RPC=at;var Tt=class extends at{static{I(this,"RPCWithBackup")}constructor(r,t,n=!1){if(r.length<2)throw Error("Must provide at least two RPC URLs");super(r[0],n),this.rpc_urls=r,this.timeout=t}async call(r){let t=0;for(;;)try{let n=await fetch(this.rpc_urls[t],{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(!n.ok)throw Error(`Request to RPC node failed with status code ${n.status}`);let s=await n.json();if(s.error)throw Error(`RPC node response: ${s.error}`);return s}catch(n){if(!this.rpc_urls[++t])throw Error(n)}}};de.RPCWithBackup=Tt});var mn=S(Dn=>{"use strict";Object.defineProperty(Dn,"__esModule",{value:!0})});var Sn=S(V=>{"use strict";var _o=V&&V.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),wo=V&&V.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Eo=V&&V.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&_o(r,e,t);return wo(r,e),r};Object.defineProperty(V,"__esModule",{value:!0});V.PrivateKeyAccount=V.Wallet=void 0;var F=Eo(At()),st=class e{static{I(this,"Wallet")}constructor(r,t,n=0,s){if(this.add_do_work=!0,this.rpc=r,typeof t!="string"||t?.length!==64)throw Error("Seed needs to be 64 character (hex) string");this.seed=t,this.index=n,this.work_function=s}static gen_random_wallet(r){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=F.uint8array_to_hex(t);return new e(r,n)}get private_key(){return F.get_private_key_from_seed(this.seed,this.index)}get public_key(){return F.get_public_key_from_private_key(this.private_key)}get address(){return F.get_address_from_public_key(this.public_key)}async send_process(r,t){return(await this.rpc.call({action:"process",json_block:"true",subtype:t,block:r,do_work:!r.work&&this.add_do_work?!0:void 0})).hash}async send(r,t,n,s,g){let l=F.whole_to_raw(t,this.rpc.DECIMALS),_=g??await this.get_account_info(void 0,!0),w=F.get_public_key_from_address(r);s||(s=_.representative);let x=BigInt(_.balance),b=x-l;if(b<0n)throw Error(`Insufficient funds to send. Cannot send more than balance; ie, Before balance (raw: ${x}) less than send amount (raw: ${l})`);let m={type:"state",account:this.address,previous:_.frontier,representative:s,balance:b.toString(),link:w,link_as_account:r},K=F.hash_block(m),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...m,signature:pe,work:$};return await this.send_process(ee,"send")}async send_all(r,t,n){let s=await this.get_account_info(void 0,!0);return await this.send(r,F.raw_to_whole(BigInt(s.balance),this.rpc.DECIMALS),t,n,s)}async receive(r,t,n){let s=await this.rpc.get_block_info(r),g=0n;n||(n=this.address);let l;try{let K=await this.get_account_info(void 0,!0);l=K.frontier,n=K.representative,g=BigInt(K.balance)}catch{l="0".repeat(64)}let _={type:"state",account:this.address,previous:l,representative:n,balance:(g+BigInt(s.amount)).toString(),link:r},w=F.hash_block(_),x;t&&(x=await this.work_function(w));let b=F.sign_block_hash(this.private_key,w),m={..._,signature:b,work:x};return await this.send_process(m,"receive")}async receive_all(r=20,t,n){let s=(await this.get_account_receivable(r,t,!0)).blocks,g,l,_;try{let x=await this.get_account_info(void 0,!0);g=x.frontier,l=x.representative,_=BigInt(x.balance)}catch{g="0".repeat(64),l=this.address,_=BigInt(0)}let w=[];for(let x of Object.keys(s)){let b=(_+BigInt(s[x].amount)).toString(),m={type:"state",account:this.address,previous:g,representative:l,balance:b,link:x},K=F.hash_block(m),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...m,signature:pe,work:$};await this.send_process(ee,"receive"),w.push(K),g=K,_=BigInt(b)}return w}async change_representative(r,t){let n=await this.get_account_info(),s={type:"state",account:this.address,previous:n.frontier,representative:r,balance:n.balance,link:"0".repeat(64)},g=F.hash_block(s),l;t&&(l=await this.work_function(g));let _=F.sign_block_hash(this.private_key,g),w={...s,signature:_,work:l};return await this.send_process(w,"change")}async change_rep(r,t){return await this.change_representative(r,t)}async get_account_info(r,t,n,s){return await this.rpc.get_account_info(this.address,r,t,n,s)}async get_account_receivable(r,t,n){return await this.rpc.get_account_receivable(this.address,r,t,n)}sign_message(r){return F.sign_message(this.private_key,r)}};V.Wallet=st;var jt=class extends st{static{I(this,"PrivateKeyAccount")}constructor(r,t,n){if(typeof t!="string"||t?.length!==64)throw Error("Priv key needs to be 64 character (hex) string");super(r,t,0,n),this._private_key=t}get private_key(){return this._private_key}};V.PrivateKeyAccount=jt});var Un=S(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.RPCWorkProvider=void 0;var Jt=class{static{I(this,"RPCWorkProvider")}constructor(r){this.extra_payload={},this.rpc=r}async request_work(r){return(await this.rpc.call({action:"work_generate",hash:r,...this.extra_payload})).work}};It.RPCWorkProvider=Jt});var we=S(N=>{"use strict";var xo=N&&N.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:I(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Pe=N&&N.__exportStar||function(e,r){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(r,t)&&xo(r,e,t)};Object.defineProperty(N,"__esModule",{value:!0});Pe(At(),N);Pe(bn(),N);Pe(mn(),N);Pe(Sn(),N);Pe(Un(),N)});var qt={};Ft(qt,{BSF_HEX_CHARS:()=>ct,HEX_CHARS:()=>Xt,LOG:()=>Ve,address_to_cid_v0:()=>Do,base58_to_hex:()=>Yn,bigint_to_uint8array:()=>Kn,bns_seed_format_to_hex:()=>po,cid_v0_to_address:()=>bo,decode_domain_name:()=>Ee,encode_domain_name:()=>ht,hex_to_base58:()=>Fn,hex_to_bns_seed_format:()=>Bo,is_bns_seed_format:()=>Qo});var Z=Ke(we());var Ve=!0;function ht(e){if(e.includes(".")||e.includes("\0")||e.includes('"'))throw new Error(`Domain name cannot include '.' or '"' or '\\u0000'`);let r=(0,Z.uint8array_to_hex)(new TextEncoder().encode(e));if(r.length>64)throw new Error("Cannot be more than 32 bytes");return r.length<64&&(r="0".repeat(64-r.length)+r),r}I(ht,"encode_domain_name");function Ee(e){return new TextDecoder().decode((0,Z.hex_to_uint8array)(e)).replaceAll("\0","")}I(Ee,"decode_domain_name");var vn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";function Fn(e){let r=BigInt(`0x${e}`),t="";for(;t+=vn[Number(r%BigInt(58))],r=r/BigInt(58),r!==0n;);return t.split("").reverse().join("")}I(Fn,"hex_to_base58");var Xt="0123456789ABCDEF",ct="ghijklmnopqrstuv";function Bo(e){return e.split("").map(r=>ct[Xt.indexOf(r.toUpperCase())]).join("")}I(Bo,"hex_to_bns_seed_format");function po(e){return e.split("").map(r=>Xt[ct.indexOf(r.toLowerCase())]).join("")}I(po,"bns_seed_format_to_hex");function Qo(e){return e.split("").every(r=>ct.includes(r.toLowerCase()))}I(Qo,"is_bns_seed_format");function Kn(e,r){let t=new Uint8Array(r),n=e;for(let s=1;s<=r;s++)t[r-s]=Number(n%256n),n/=256n;return t}I(Kn,"bigint_to_uint8array");function Yn(e){let r=0n;for(let t=0;tBe,Resolver:()=>Wt,TLDAccount:()=>xe});var T=Ke(we());var gt=class{static{I(this,"Account")}constructor(r,t){this.rpc=r,this.address=t}async get_open_and_frontier(){let r=await this.rpc.get_account_info(this.address,!0);return[r.open_block,r.confirmation_height_frontier??r.frontier]}async get_history_from_open(r,t){return await this.rpc.get_account_history(this.address,t,!0,r,void 0,!0)}},xe=class extends gt{static{I(this,"TLDAccount")}constructor(r,t){super(r,t),this.all_issued=[]}async get_specific(r,t=500){let[n,s]=await this.get_open_and_frontier(),g=n;for(;;){let{history:l}=await this.get_history_from_open(g,t);for(let _ of l){let w=BigInt(_.amount??0);if(_.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(_.representative));if(r===x)return{tld:this.address,name:r,history:[{type:"transfer",block:_,to:(0,T.get_address_from_public_key)(_.link)}]}}if(_.representative===Ie&&_.subtype==="change"||_.hash===s)return}g=l[l.length-1].hash}}async get_all_issued(r=500){let[t,n]=await this.get_open_and_frontier(),s=t,g={};for(;;){let{history:l}=await this.get_history_from_open(s,r);for(let _ of l){let w=BigInt(_.amount??0);if(_.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(_.representative));g[x]?Ve&&console.log(`"${x}" already issued but TLD tried to issue again. Invalid.`):g[x]={tld:this.address,name:x,history:[{type:"transfer",block:_,to:(0,T.get_address_from_public_key)(_.link)}]}}if(_.representative===Ie&&_.subtype==="change"||_.hash===n)return this.all_issued=Object.values(g),this.all_issued}s=l[l.length-1].hash}}},Be=class extends gt{static{I(this,"DomainAccount")}constructor(r,t,n){super(r,t),this.domain=n}async crawl(r=500){let t,n;try{[t,n]=await this.get_open_and_frontier()}catch{return Ve&&console.log("Not yet received"),this.domain}let s=t;for(;;){let{history:g}=await this.get_history_from_open(s,r);for(let l of g){let _=BigInt(l.amount??0);if(l.height==="1"){if(l.link!==this.domain.history[this.domain.history.length-1]?.block.hash)return Ve&&console.log("Domain burned"),this.domain.burned=!0,this.domain;this.domain.history.push({type:"receive",block:l})}else if(l.subtype==="send"&&_>=se&&_<=ne){let w=Ee((0,T.get_public_key_from_address)(l.representative));if(this.domain.name===w)return this.domain.resolved_address=void 0,this.domain.metadata_hash=void 0,this.domain.history.push({type:"transfer",block:l,to:(0,T.get_address_from_public_key)(l.link)}),this.domain}else{if(l.subtype==="change"&&l.representative===Ie)return this.domain.history.push({type:"freeze",block:l}),this.domain;l.subtype==="change"?(this.domain.metadata_hash=(0,T.get_public_key_from_address)(l.representative),this.domain.history.push({type:"metadata",block:l,metadata_hash:this.domain.metadata_hash})):l.subtype==="send"&&_===4224n&&(this.domain.resolved_address=(0,T.get_address_from_public_key)(l.link),this.domain.history.push({type:"resolver",block:l,resolved_address:this.domain.resolved_address}))}if(l.hash===n)return this.domain}s=g[g.length-1].hash}}},Wt=class{static{I(this,"Resolver")}constructor(r,t){this.rpc=r,this.tld_mapping=t}async resolve(r,t,n=500){if(r=r.toLowerCase(),!this.tld_mapping[t])throw new Error("No TLD Account found for that TLD");let g=await new xe(this.rpc,this.tld_mapping[t]).get_specific(r,n);if(!g)return g;for(;;){let l=g.history[g.history.length-1].to,_=new Be(this.rpc,l,g),w=g.history.length;if(g=await _.crawl(n),g.history[g.history.length-1].type!=="transfer"||g.burned||w===g.history.length)break}return g}async resolve_backwards_ish(r,t,n=500){let s=(await this.rpc.get_account_info(r,!0)).open_block,g=(await this.rpc.get_block_info(s)).contents.link,l=await this.rpc.get_block_info(g),_=Ee((0,T.get_public_key_from_address)(l.contents.representative)),w=await this.resolve(_,t,n);if((w?.history.slice().reverse().find(b=>b.type==="transfer")).to===r)return w}};var tr={};Ft(tr,{DomainAccountManager:()=>er,TLDAccountManager:()=>$t});var ie=Ke(we());var $t=class extends xe{static{I(this,"TLDAccountManager")}constructor(r,t){super(r,t.address),this.wallet=t}async issue_domain_name(r,t){if(r=r.toLowerCase(),this.all_issued.some(s=>s.name===r))throw new Error("Cannot issue a domain name that is already issued");return await this.wallet.send(t,"0.00120703011",void 0,(0,ie.get_address_from_public_key)(ht(r)))}async freeze(){await this.wallet.change_representative(Ie)}async receive(){await this.wallet.receive_all()}},er=class extends Be{static{I(this,"DomainAccountManager")}constructor(r,t,n){super(r,t.address),this.wallet=t,this.domain=n}async receive_domain(r,t,n){let s=!1,{history:g}=await this.rpc.get_account_history(this.address,1);if(g.length>1&&!n)throw s=!0,new Error("`allow_burning` must be true in order to receive this domain");let l=await this.rpc.get_block_info(r),_=BigInt(l.amount);if(_ne)throw new Error("`receive_hash` is not a Domain Transfer block");await this.wallet.receive(r,void 0,t)}async transfer_domain(r,t){let n=(await this.wallet.get_account_info()).balance,s=(0,ie.raw_to_whole)(ne);return ne>BigInt(n)&&se<=BigInt(n)&&(s=(0,ie.raw_to_whole)(BigInt(n))),await this.wallet.send(t,s,void 0,(0,ie.get_address_from_public_key)(ht(r)))}async declare_domain_metadata(r){if(r===zt)throw new Error("A metadata hash of all 1s freezes the domain");await this.wallet.change_representative((0,ie.get_address_from_public_key)(r))}async declare_domain_resolve_to(r){await this.wallet.send(r,(0,ie.raw_to_whole)(4224n))}async freeze(){await this.wallet.change_representative(Ie)}};var kn={};var mo=Ke(we());window.bns={...qt,...Zt,...tr,...kn,banani:mo};})(); +(()=>{var Zn=Object.create;var Ze=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.getPrototypeOf,ri=Object.prototype.hasOwnProperty;var h=(e,r)=>Ze(e,"name",{value:r,configurable:!0}),Qr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Ft=(e,r)=>{for(var t in r)Ze(e,t,{get:r[t],enumerable:!0})},ni=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ei(r))!ri.call(e,s)&&s!==t&&Ze(e,s,{get:()=>r[s],enumerable:!(n=$n(r,s))||n.enumerable});return e};var Ke=(e,r,t)=>(t=e!=null?Zn(ti(e)):{},ni(r||!e||!e.__esModule?Ze(t,"default",{value:e,enumerable:!0}):t,e));var Kt=S((Uo,mr)=>{mr.exports=br;var $e=class extends Error{static{h(this,"AssertionError")}};$e.prototype.name="AssertionError";function br(e,r){if(!e){var t=new $e(r);throw Error.captureStackTrace&&Error.captureStackTrace(t,br),t}}h(br,"assert")});var Ur=S((Fo,Sr)=>{function Dr(e){return e.length}h(Dr,"byteLength");function ii(e){let r=e.byteLength,t="";for(let n=0;n{var _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ae=new Uint8Array(256);for(let e=0;e<_e.length;e++)Ae[_e.charCodeAt(e)]=e;Ae[45]=62;Ae[95]=63;function vr(e){let r=e.length;return e.charCodeAt(r-1)===61&&r--,r>1&&e.charCodeAt(r-1)===61&&r--,r*3>>>2}h(vr,"byteLength");function Ai(e){let r=e.byteLength,t="";for(let n=0;n>2]+_e[(e[n]&3)<<4|e[n+1]>>4]+_e[(e[n+1]&15)<<2|e[n+2]>>6]+_e[e[n+2]&63];return r%3===2?t=t.substring(0,t.length-1)+"=":r%3===1&&(t=t.substring(0,t.length-2)+"=="),t}h(Ai,"toString");function ai(e,r,t=0,n=vr(r)){let s=Math.min(n,e.byteLength-t);for(let g=0,C=0;C>4,e[C++]=(w&15)<<4|x>>2,e[C++]=(x&3)<<6|b&63}return s}h(ai,"write");Fr.exports={byteLength:vr,toString:Ai,write:ai}});var Mr=S((Lo,Lr)=>{function kr(e){return e.length>>>1}h(kr,"byteLength");function si(e){let r=e.byteLength;e=new DataView(e.buffer,e.byteOffset,r);let t="",n=0;for(let s=r-r%4;n=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-65+10;if(e>=97&&e<=102)return e-97+10}h(Yr,"hexValue")});var Pr=S((Ho,Hr)=>{function Yt(e){let r=0;for(let t=0,n=e.length;t=55296&&s<=56319&&t+1=56320&&g<=57343){r+=4,t++;continue}}s<=127?r+=1:s<=2047?r+=2:r+=3}return r}h(Yt,"byteLength");var kt;if(typeof TextDecoder<"u"){let e=new TextDecoder;kt=h(function(t){return e.decode(t)},"toString")}else kt=h(function(r){let t=r.byteLength,n="",s=0;for(;s0){let w=0;for(;w>x,x-=6;x>=0;)r[y++]=128|w>>x&63,x-=6;C+=w>=65536?2:1}return g},"write");Hr.exports={byteLength:Yt,toString:kt,write:Lt}});var Gr=S((Vo,Or)=>{function Vr(e){return e.length*2}h(Vr,"byteLength");function Ii(e){let r=e.byteLength,t="";for(let n=0;n>8,x=y%256;e[t+C*2]=x,e[t+C*2+1]=w}return s}h(ci,"write");Or.exports={byteLength:Vr,toString:Ii,write:ci}});var Jr=S((Ht,jr)=>{var gi=Ur(),fi=Kr(),ui=Mr(),li=Pr(),Ci=Gr(),et=new Uint8Array(Uint16Array.of(255).buffer)[0]===255;function Ye(e){switch(e){case"ascii":return gi;case"base64":return fi;case"hex":return ui;case"utf8":case"utf-8":case void 0:return li;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ci;default:throw new Error(`Unknown encoding: ${e}`)}}h(Ye,"codecFor");function Rr(e){return e instanceof Uint8Array}h(Rr,"isBuffer");function _i(e){try{return Ye(e),!0}catch{return!1}}h(_i,"isEncoding");function yi(e,r,t){let n=new Uint8Array(e);return r!==void 0&&Ht.fill(n,r,0,n.byteLength,t),n}h(yi,"alloc");function di(e){return new Uint8Array(e)}h(di,"allocUnsafe");function wi(e){return new Uint8Array(e)}h(wi,"allocUnsafeSlow");function Ei(e,r){return Ye(r).byteLength(e)}h(Ei,"byteLength");function xi(e,r){if(e===r)return 0;let t=Math.min(e.byteLength,r.byteLength);e=new DataView(e.buffer,e.byteOffset,e.byteLength),r=new DataView(r.buffer,r.byteOffset,r.byteLength);let n=0;for(let s=t-t%4;ng)return 1}return e.byteLength>r.byteLength?1:e.byteLengths+g.byteLength,0));let t=new Uint8Array(r),n=0;for(let s of e){if(n+s.byteLength>t.byteLength){let g=s.subarray(0,t.byteLength-n);return t.set(g,n),t}t.set(s,n),n+=s.byteLength}return t}h(Bi,"concat");function pi(e,r,t=0,n=0,s=e.byteLength){if(s>0&&s=e.byteLength)throw new RangeError("sourceStart is out of range");if(s<0)throw new RangeError("sourceEnd is out of range");t>=r.byteLength&&(t=r.byteLength),s>e.byteLength&&(s=e.byteLength),r.byteLength-t=e.byteLength){if(s)return-1;t=e.byteLength-1}else if(t<0)if(s)t=0;else return-1;if(typeof r=="string")r=Mt(r,n);else if(typeof r=="number")return r=r&255,s?e.indexOf(r,t):e.lastIndexOf(r,t);if(r.byteLength===0)return-1;if(s){let g=-1;for(let C=t;Ce.byteLength&&(t=e.byteLength-r.byteLength);for(let g=t;g>=0;g--){let C=!0;for(let y=0;y=s||n<=t?"":(t<0&&(t=0),n>s&&(n=s),(t!==0||n{var Ji=h((e,r)=>h(function(){return r||(0,e[Object.keys(e)[0]])((r={exports:{}}).exports,r),r.exports},"__require"),"__commonJS"),Xi=(()=>{for(var e=new Uint8Array(128),r=0;r<64;r++)e[r<26?r+65:r<52?r+71:r<62?r-4:r*4-205]=r;return t=>{for(var n=t.length,s=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),g=0,C=0;g>4,s[C++]=w<<4|x>>2,s[C++]=x<<6|b}return s}})(),qi=Ji({"wasm-binary:./blake2b.wat"(e,r){r.exports=Xi("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")}}),zi=qi(),Wi=WebAssembly.compile(zi);Xr.exports=async e=>(await WebAssembly.instantiate(await Wi,e)).exports});var nn=S((Jo,J)=>{var M=Kt(),Zi=Jr(),W=null,zr=typeof WebAssembly<"u"&&qr()().then(e=>{W=e}),z=64,tt=[];J.exports=Y;var Wr=J.exports.BYTES_MIN=16,Zr=J.exports.BYTES_MAX=64,To=J.exports.BYTES=32,$r=J.exports.KEYBYTES_MIN=16,en=J.exports.KEYBYTES_MAX=64,jo=J.exports.KEYBYTES=32,tn=J.exports.SALTBYTES=16,rn=J.exports.PERSONALBYTES=16;function Y(e,r,t,n,s){if(!(this instanceof Y))return new Y(e,r,t,n,s);if(!W)throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");e||(e=32),s!==!0&&(M(e>=Wr,"digestLength must be at least "+Wr+", was given "+e),M(e<=Zr,"digestLength must be at most "+Zr+", was given "+e),r!=null&&(M(r instanceof Uint8Array,"key must be Uint8Array or Buffer"),M(r.length>=$r,"key must be at least "+$r+", was given "+r.length),M(r.length<=en,"key must be at least "+en+", was given "+r.length)),t!=null&&(M(t instanceof Uint8Array,"salt must be Uint8Array or Buffer"),M(t.length===tn,"salt must be exactly "+tn+", was given "+t.length)),n!=null&&(M(n instanceof Uint8Array,"personal must be Uint8Array or Buffer"),M(n.length===rn,"personal must be exactly "+rn+", was given "+n.length))),tt.length||(tt.push(z),z+=216),this.digestLength=e,this.finalized=!1,this.pointer=tt.pop(),this._memory=new Uint8Array(W.memory.buffer),this._memory.fill(0,0,64),this._memory[0]=this.digestLength,this._memory[1]=r?r.length:0,this._memory[2]=1,this._memory[3]=1,t&&this._memory.set(t,32),n&&this._memory.set(n,48),this.pointer+216>this._memory.length&&this._realloc(this.pointer+216),W.blake2b_init(this.pointer,this.digestLength),r&&(this.update(r),this._memory.fill(0,z,z+r.length),this._memory[this.pointer+200]=128)}h(Y,"Blake2b");Y.prototype._realloc=function(e){W.memory.grow(Math.max(0,Math.ceil(Math.abs(e-this._memory.length)/65536))),this._memory=new Uint8Array(W.memory.buffer)};Y.prototype.update=function(e){return M(this.finalized===!1,"Hash instance finalized"),M(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),z+e.length>this._memory.length&&this._realloc(z+e.length),this._memory.set(e,z),W.blake2b_update(this.pointer,z,z+e.length),this};Y.prototype.digest=function(e){if(M(this.finalized===!1,"Hash instance finalized"),this.finalized=!0,tt.push(this.pointer),W.blake2b_final(this.pointer),!e||e==="binary")return this._memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if(typeof e=="string")return Zi.toString(this._memory,e,this.pointer+128,this.pointer+128+this.digestLength);M(e instanceof Uint8Array&&e.length>=this.digestLength,"input must be Uint8Array or Buffer");for(var r=0;re(),e):e(new Error("WebAssembly not supported"))};Y.prototype.ready=Y.ready;Y.prototype.getPartialHash=function(){return this._memory.slice(this.pointer,this.pointer+216)};Y.prototype.setPartialHash=function(e){this._memory.set(e,this.pointer)};function $i(){}h($i,"noop")});var Pt=S((Wo,k)=>{var P=Kt(),Le=nn();function rt(e,r,t){var n=e[r]+e[t],s=e[r+1]+e[t+1];n>=4294967296&&s++,e[r]=n,e[r+1]=s}h(rt,"ADD64AA");function on(e,r,t,n){var s=e[r]+t;t<0&&(s+=4294967296);var g=e[r+1]+n;s>=4294967296&&g++,e[r]=s,e[r+1]=g}h(on,"ADD64AC");function gn(e,r){return e[r]^e[r+1]<<8^e[r+2]<<16^e[r+3]<<24}h(gn,"B2B_GET32");function te(e,r,t,n,s,g){var C=ke[s],y=ke[s+1],w=ke[g],x=ke[g+1];rt(B,e,r),on(B,e,C,y);var b=B[n]^B[e],D=B[n+1]^B[e+1];B[n]=D,B[n+1]=b,rt(B,t,n),b=B[r]^B[t],D=B[r+1]^B[t+1],B[r]=b>>>24^D<<8,B[r+1]=D>>>24^b<<8,rt(B,e,r),on(B,e,w,x),b=B[n]^B[e],D=B[n+1]^B[e+1],B[n]=b>>>16^D<<16,B[n+1]=D>>>16^b<<16,rt(B,t,n),b=B[r]^B[t],D=B[r+1]^B[t+1],B[r]=D>>>31^b<<1,B[r+1]=b>>>31^D<<1}h(te,"B2B_G");var fn=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),eo=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],v=new Uint8Array(eo.map(function(e){return e*2})),B=new Uint32Array(32),ke=new Uint32Array(32);function un(e,r){var t=0;for(t=0;t<16;t++)B[t]=e.h[t],B[t+16]=fn[t];for(B[24]=B[24]^e.t,B[25]=B[25]^e.t/4294967296,r&&(B[28]=~B[28],B[29]=~B[29]),t=0;t<32;t++)ke[t]=gn(e.b,4*t);for(t=0;t<12;t++)te(0,8,16,24,v[t*16+0],v[t*16+1]),te(2,10,18,26,v[t*16+2],v[t*16+3]),te(4,12,20,28,v[t*16+4],v[t*16+5]),te(6,14,22,30,v[t*16+6],v[t*16+7]),te(0,10,20,30,v[t*16+8],v[t*16+9]),te(2,12,22,24,v[t*16+10],v[t*16+11]),te(4,14,16,26,v[t*16+12],v[t*16+13]),te(6,8,18,28,v[t*16+14],v[t*16+15]);for(t=0;t<16;t++)e.h[t]=e.h[t]^B[t]^B[t+16]}h(un,"blake2bCompress");var re=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function ye(e,r,t,n){re.fill(0),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.outlen=e,re[0]=e,r&&(re[1]=r.length),re[2]=1,re[3]=1,t&&re.set(t,32),n&&re.set(n,48);for(var s=0;s<16;s++)this.h[s]=fn[s]^gn(re,s*4);r&&(ln(this,r),this.c=128)}h(ye,"Blake2b");ye.prototype.update=function(e){return P(e instanceof Uint8Array,"input must be Uint8Array or Buffer"),ln(this,e),this};ye.prototype.digest=function(e){var r=!e||e==="binary"||e==="hex"?new Uint8Array(this.outlen):e;return P(r instanceof Uint8Array,'out must be "binary", "hex", Uint8Array, or Buffer'),P(r.length>=this.outlen,"out must have at least outlen bytes of space"),to(this,r),e==="hex"?ro(r):r};ye.prototype.final=ye.prototype.digest;ye.ready=function(e){Le.ready(function(){e()})};function ln(e,r){for(var t=0;t>2]>>8*(t&3);return r}h(to,"blake2bFinal");function ro(e){for(var r="",t=0;t=An,"outlen must be at least "+An+", was given "+r),P(r<=an,"outlen must be at most "+an+", was given "+r),t!=null&&(P(t instanceof Uint8Array,"key must be Uint8Array or Buffer"),P(t.length>=sn,"key must be at least "+sn+", was given "+t.length),P(t.length<=hn,"key must be at most "+hn+", was given "+t.length)),n!=null&&(P(n instanceof Uint8Array,"salt must be Uint8Array or Buffer"),P(n.length===In,"salt must be exactly "+In+", was given "+n.length)),s!=null&&(P(s instanceof Uint8Array,"personal must be Uint8Array or Buffer"),P(s.length===cn,"personal must be exactly "+cn+", was given "+s.length))),new io(r,t,n,s)},"createHash");k.exports.ready=function(e){Le.ready(function(){e()})};k.exports.WASM_SUPPORTED=Le.SUPPORTED;k.exports.WASM_LOADED=!1;var An=k.exports.BYTES_MIN=16,an=k.exports.BYTES_MAX=64,qo=k.exports.BYTES=32,sn=k.exports.KEYBYTES_MIN=16,hn=k.exports.KEYBYTES_MAX=64,zo=k.exports.KEYBYTES=32,In=k.exports.SALTBYTES=16,cn=k.exports.PERSONALBYTES=16;Le.ready(function(e){e||(k.exports.WASM_LOADED=!0,k.exports=Le)})});var Cn=S(($o,nt)=>{(function(e){"use strict";let r=Pt();var t=h(function(i,A){this.hi=i|0,this.lo=A|0},"u64"),n=h(function(i){var A,o=new Float64Array(16);if(i)for(A=0;A>>32-A}h(ee,"L32");function Ie(i,A){var o=i[A+3]&255;return o=o<<8|i[A+2]&255,o=o<<8|i[A+1]&255,o<<8|i[A+0]&255}h(Ie,"ld32");function rr(i,A){var o=i[A]<<24|i[A+1]<<16|i[A+2]<<8|i[A+3],a=i[A+4]<<24|i[A+5]<<16|i[A+6]<<8|i[A+7];return new t(o,a)}h(rr,"dl64");function ft(i,A,o){var a;for(a=0;a<4;a++)i[A+a]=o&255,o>>>=8}h(ft,"st32");function nr(i,A,o){i[A]=o.hi>>24&255,i[A+1]=o.hi>>16&255,i[A+2]=o.hi>>8&255,i[A+3]=o.hi&255,i[A+4]=o.lo>>24&255,i[A+5]=o.lo>>16&255,i[A+6]=o.lo>>8&255,i[A+7]=o.lo&255}h(nr,"ts64");function ut(i,A,o,a,I){var c,l=0;for(c=0;c>>8)-1}h(ut,"vn");function ir(i,A,o,a){return ut(i,A,o,a,16)}h(ir,"crypto_verify_16");function lt(i,A,o,a){return ut(i,A,o,a,32)}h(lt,"crypto_verify_32");function or(i,A,o,a,I){var c=new Uint32Array(16),l=new Uint32Array(16),_=new Uint32Array(16),f=new Uint32Array(4),u,d,Q;for(u=0;u<4;u++)l[5*u]=Ie(a,4*u),l[1+u]=Ie(o,4*u),l[6+u]=Ie(A,4*u),l[11+u]=Ie(o,16+4*u);for(u=0;u<16;u++)_[u]=l[u];for(u=0;u<20;u++){for(d=0;d<4;d++){for(Q=0;Q<4;Q++)f[Q]=l[(5*d+4*Q)%16];for(f[1]^=ee(f[0]+f[3]|0,7),f[2]^=ee(f[1]+f[0]|0,9),f[3]^=ee(f[2]+f[1]|0,13),f[0]^=ee(f[3]+f[2]|0,18),Q=0;Q<4;Q++)c[4*d+(d+Q)%4]=f[Q]}for(Q=0;Q<16;Q++)l[Q]=c[Q]}if(I){for(u=0;u<16;u++)l[u]=l[u]+_[u]|0;for(u=0;u<4;u++)l[5*u]=l[5*u]-Ie(a,4*u)|0,l[6+u]=l[6+u]-Ie(A,4*u)|0;for(u=0;u<4;u++)ft(i,4*u,l[5*u]),ft(i,16+4*u,l[6+u])}else for(u=0;u<16;u++)ft(i,4*u,l[u]+_[u]|0)}h(or,"core");function Ar(i,A,o,a){return or(i,A,o,a,!1),0}h(Ar,"crypto_core_salsa20");function Ge(i,A,o,a){return or(i,A,o,a,!0),0}h(Ge,"crypto_core_hsalsa20");var Qe=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function Ct(i,A,o,a,I,c,l){var _=new Uint8Array(16),f=new Uint8Array(64),u,d;if(!I)return 0;for(d=0;d<16;d++)_[d]=0;for(d=0;d<8;d++)_[d]=c[d];for(;I>=64;){for(Ar(f,_,l,Qe),d=0;d<64;d++)i[A+d]=(o?o[a+d]:0)^f[d];for(u=1,d=8;d<16;d++)u=u+(_[d]&255)|0,_[d]=u&255,u>>>=8;I-=64,A+=64,o&&(a+=64)}if(I>0)for(Ar(f,_,l,Qe),d=0;d>>=8}h(yt,"add1305");var Ln=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]);function dt(i,A,o,a,I,c){var l,_,f,u,d=new Uint32Array(17),Q=new Uint32Array(17),m=new Uint32Array(17),R=new Uint32Array(17),Ce=new Uint32Array(17);for(f=0;f<17;f++)Q[f]=m[f]=0;for(f=0;f<16;f++)Q[f]=c[f];for(Q[3]&=15,Q[4]&=252,Q[7]&=15,Q[8]&=252,Q[11]&=15,Q[12]&=252,Q[15]&=15;I>0;){for(f=0;f<17;f++)R[f]=0;for(f=0;f<16&&f>>=8;for(u=u+m[16]|0,m[16]=u&3,u=5*(u>>>2)|0,f=0;f<16;f++)u=u+m[f]|0,m[f]=u&255,u>>>=8;u=u+m[16]|0,m[16]=u}for(f=0;f<17;f++)Ce[f]=m[f];for(yt(m,Ln),l=-(m[16]>>>7)|0,f=0;f<17;f++)m[f]^=l&(Ce[f]^m[f]);for(f=0;f<16;f++)R[f]=c[f+16];for(R[16]=0,yt(m,R),f=0;f<16;f++)i[A+f]=m[f];return 0}h(dt,"crypto_onetimeauth");function hr(i,A,o,a,I,c){var l=new Uint8Array(16);return dt(l,0,o,a,I,c),ir(i,A,l,0)}h(hr,"crypto_onetimeauth_verify");function wt(i,A,o,a,I){var c;if(o<32)return-1;for(_t(i,0,A,0,o,a,I),dt(i,16,i,32,o-32,i),c=0;c<16;c++)i[c]=0;return 0}h(wt,"crypto_secretbox");function Et(i,A,o,a,I){var c,l=new Uint8Array(32);if(o<32||(sr(l,0,32,a,I),hr(A,16,A,32,o-32,l)!==0))return-1;for(_t(i,0,A,0,o,a,I),c=0;c<32;c++)i[c]=0;return 0}h(Et,"crypto_secretbox_open");function X(i,A){var o;for(o=0;o<16;o++)i[o]=A[o]|0}h(X,"set25519");function be(i){var A,o;for(o=0;o<16;o++)i[o]+=65536,A=Math.floor(i[o]/65536),i[(o+1)*(o<15?1:0)]+=A-1+37*(A-1)*(o===15?1:0),i[o]-=A*65536}h(be,"car25519");function ce(i,A,o){for(var a,I=~(o-1),c=0;c<16;c++)a=I&(i[c]^A[c]),i[c]^=a,A[c]^=a}h(ce,"sel25519");function ge(i,A){var o,a,I,c=n(),l=n();for(o=0;o<16;o++)l[o]=A[o];for(be(l),be(l),be(l),a=0;a<2;a++){for(c[0]=l[0]-65517,o=1;o<15;o++)c[o]=l[o]-65535-(c[o-1]>>16&1),c[o-1]&=65535;c[15]=l[15]-32767-(c[14]>>16&1),I=c[15]>>16&1,c[14]&=65535,ce(l,c,1-I)}for(o=0;o<16;o++)i[2*o]=l[o]&255,i[2*o+1]=l[o]>>8}h(ge,"pack25519");function Ir(i,A){var o=new Uint8Array(32),a=new Uint8Array(32);return ge(o,i),ge(a,A),lt(o,0,a,0)}h(Ir,"neq25519");function cr(i){var A=new Uint8Array(32);return ge(A,i),A[0]&1}h(cr,"par25519");function xt(i,A){var o;for(o=0;o<16;o++)i[o]=A[2*o]+(A[2*o+1]<<8);i[15]&=32767}h(xt,"unpack25519");function O(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]+o[a]|0}h(O,"A");function G(i,A,o){var a;for(a=0;a<16;a++)i[a]=A[a]-o[a]|0}h(G,"Z");function p(i,A,o){var a,I,c=new Float64Array(31);for(a=0;a<31;a++)c[a]=0;for(a=0;a<16;a++)for(I=0;I<16;I++)c[a+I]+=A[a]*o[I];for(a=0;a<15;a++)c[a]+=38*c[a+16];for(a=0;a<16;a++)i[a]=c[a];be(i),be(i)}h(p,"M");function H(i,A){p(i,A,A)}h(H,"S");function gr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=253;a>=0;a--)H(o,o),a!==2&&a!==4&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}h(gr,"inv25519");function fr(i,A){var o=n(),a;for(a=0;a<16;a++)o[a]=A[a];for(a=250;a>=0;a--)H(o,o),a!==1&&p(o,o,A);for(a=0;a<16;a++)i[a]=o[a]}h(fr,"pow2523");function Re(i,A,o){var a=new Uint8Array(32),I=new Float64Array(80),c,l,_=n(),f=n(),u=n(),d=n(),Q=n(),m=n();for(l=0;l<31;l++)a[l]=A[l];for(a[31]=A[31]&127|64,a[0]&=248,xt(I,o),l=0;l<16;l++)f[l]=I[l],d[l]=_[l]=u[l]=0;for(_[0]=d[0]=1,l=254;l>=0;--l)c=a[l>>>3]>>>(l&7)&1,ce(_,f,c),ce(u,d,c),O(Q,_,u),G(_,_,u),O(u,f,d),G(f,f,d),H(d,Q),H(m,_),p(_,u,_),p(u,f,Q),O(Q,_,u),G(_,_,u),H(f,_),G(u,d,m),p(_,u,x),O(_,_,d),p(u,u,_),p(_,d,m),p(d,f,I),H(f,Q),ce(_,f,c),ce(u,d,c);for(l=0;l<16;l++)I[l+16]=_[l],I[l+32]=u[l],I[l+48]=f[l],I[l+64]=d[l];var R=I.subarray(32),Ce=I.subarray(16);return gr(R,R),p(Ce,Ce,R),ge(i,Ce),0}h(Re,"crypto_scalarmult");function Ne(i,A){return Re(i,A,C)}h(Ne,"crypto_scalarmult_base");function ur(i,A){return s(A,32),Ne(i,A)}h(ur,"crypto_box_keypair");function Te(i,A,o){var a=new Uint8Array(32);return Re(a,o,A),Ge(i,g,a,Qe)}h(Te,"crypto_box_beforenm");var lr=wt,Mn=Et;function Hn(i,A,o,a,I,c){var l=new Uint8Array(32);return Te(l,I,c),lr(i,A,o,a,l)}h(Hn,"crypto_box");function Pn(i,A,o,a,I,c){var l=new Uint8Array(32);return Te(l,I,c),Mn(i,A,o,a,l)}h(Pn,"crypto_box_open");function me(){var i=0,A=0,o=0,a=0,I=65535,c,l,_;for(_=0;_>>16,o+=l&I,a+=l>>>16;return A+=i>>>16,o+=A>>>16,a+=o>>>16,new t(o&I|a<<16,i&I|A<<16)}h(me,"add64");function Cr(i,A){return new t(i.hi>>>A,i.lo>>>A|i.hi<<32-A)}h(Cr,"shr64");function je(){var i=0,A=0,o;for(o=0;o>>A|i.lo<>>A|i.hi<>>A|i.hi<>>A|i.lo<=128;){for(f=0;f<16;f++)l[f]=rr(A,8*f+d);for(f=0;f<80;f++){for(u=0;u<8;u++)I[u]=c[u];for(_=me(c[7],Rn(c[4]),Vn(c[4],c[5],c[6]),jn[f],l[f%16]),I[7]=me(_,Gn(c[0]),On(c[0],c[1],c[2])),I[3]=me(I[3],_),u=0;u<8;u++)c[(u+1)%8]=I[u];if(f%16===15)for(u=0;u<16;u++)l[u]=me(l[u],l[(u+9)%16],Nn(l[(u+1)%16]),Tn(l[(u+14)%16]))}for(f=0;f<8;f++)c[f]=me(c[f],a[f]),a[f]=c[f];d+=128,o-=128}for(f=0;f<8;f++)nr(i,8*f,a[f]);return o}h(_r,"crypto_hashblocks");let fe=h((i,A)=>r(A).update(i).digest(),"crypto_hash_blake2b");var Jn=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]);function yr(i,A,o){var a=new Uint8Array(64),I=new Uint8Array(256),c,l=o;for(c=0;c<64;c++)a[c]=Jn[c];for(_r(a,A,o),o%=128,c=0;c<256;c++)I[c]=0;for(c=0;c=0;--I)a=o[I/8|0]>>(I&7)&1,dr(i,A,a),Je(A,i),Je(i,i),dr(i,A,a)}h(Bt,"scalarmult");function De(i,A){var o=[n(),n(),n(),n()];X(o[0],K),X(o[1],$),X(o[2],w),p(o[3],K,$),Bt(i,o,A)}h(De,"scalarbase");function pt(i,A,o){var a=new Uint8Array(64),I=[n(),n(),n(),n()],c;o||s(A,32);a=fe(A,64),a[0]&=248,a[31]&=127,a[31]|=64,De(I,a),Xe(i,I);return 0}h(pt,"crypto_sign_keypair");var qe=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 Qt(i,A){var o,a,I,c;for(a=63;a>=32;--a){for(o=0,I=a-32,c=a-12;I>4)*qe[I],o=A[I]>>8,A[I]&=255;for(I=0;I<32;I++)A[I]-=o*qe[I];for(a=0;a<32;a++)A[a+1]+=A[a]>>8,i[a]=A[a]&255}h(Qt,"modL");function bt(i){var A=new Float64Array(64),o;for(o=0;o<64;o++)A[o]=i[o];for(o=0;o<64;o++)i[o]=0;Qt(i,A)}h(bt,"reduce");function wr(i,A,o,a){var I=new Uint8Array(64),c=new Uint8Array(64),l=new Uint8Array(64),_,f,u=new Float64Array(64),d=[n(),n(),n(),n()];let Q=pr(a);I=fe(a,64),I[0]&=248,I[31]&=127,I[31]|=64;var m=o+64;for(_=0;_>7&&G(i[0],y,i[0]),p(i[3],i[0],i[1]),0)}h(Xn,"unpackneg");function mt(i,A,o,a){var I,c=new Uint8Array(32),l=new Uint8Array(64),_=[n(),n(),n(),n()],f=[n(),n(),n(),n()];if(o<64||Xn(f,a))return-1;for(I=0;I=0};function pr(i){let A=new Uint8Array(64),o=[n(),n(),n(),n()],a,I=new Uint8Array(32);return A=fe(i,64),A[0]&=248,A[31]&=127,A[31]|=64,De(o,A),Xe(I,o),I}h(pr,"derivePublicFromSecret"),e.sign.keyPair=function(){var i=new Uint8Array(oe),A=new Uint8Array(le);return pt(i,A),{publicKey:i,secretKey:A}},e.sign.keyPair.fromSecretKey=function(i){if(L(i),i.length!==le)throw new Error("bad secret key size");var A=new Uint8Array(oe);return A=pr(i),{publicKey:A,secretKey:new Uint8Array(i)}},e.sign.keyPair.fromSeed=function(i){if(L(i),i.length!==Ut)throw new Error("bad seed size");for(var A=new Uint8Array(oe),o=new Uint8Array(le),a=0;a<32;a++)o[a]=i[a];return pt(A,o,!0),{publicKey:A,secretKey:o}},e.sign.publicKeyLength=oe,e.sign.secretKeyLength=le,e.sign.seedLength=Ut,e.sign.signatureLength=q,e.hash=function(i){L(i);var A=new Uint8Array(vt);return yr(A,i,i.length),A},e.hash.hashLength=vt,e.verify=function(i,A){return L(i,A),i.length===0||A.length===0||i.length!==A.length?!1:ut(i,0,A,0,i.length)===0},e.setPRNG=function(i){s=i},function(){var i=typeof self<"u"?self.crypto||self.msCrypto:null;if(i&&i.getRandomValues){var A=65536;e.setPRNG(function(o,a){var I,c=new Uint8Array(a);for(I=0;I{"use strict";var oo=E&&E.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:h(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ao=E&&E.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),ao=E&&E.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&oo(r,e,t);return Ao(r,e),r},so=E&&E.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(E,"__esModule",{value:!0});E.verify_signed_message=E.sign_message=E.construct_message_block_and_hash=E.verify_block_hash=E.sign_block_hash=E.hash_block=E.get_public_key_from_address=E.get_address_from_public_key=E.get_public_key_from_private_key=E.get_private_key_from_seed=E.raw_to_whole=E.whole_to_raw=E.utf8_to_uint8array=E.base32_to_uint8array=E.uint8array_to_base32=E.int_to_uint8array=E.hex_to_uint8array=E.uint8array_to_hex=void 0;var Ot=ao(Cn()),ot=so(Pt()),ho="0000000000000000000000000000000000000000000000000000000000000006",Gt="62616E616E6F6D73672D",Me=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];function He(e){let r="";for(let t=0;t0;g--)s-=t[r-g]*16**(2*(g-1));t[r-n]=Math.floor(s/16**(2*(n-1)))}return t}h(_n,"int_to_uint8array");E.int_to_uint8array=_n;var yn=["1","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","w","x","y","z"];function Vt(e){let r="";for(let t=0;t=5)C=e[s]>>y-5&31;else{let w=5-y;C=(e[s]<>8-w&2**(8-w)-1)}r+=yn[C]}return r}h(Vt,"uint8array_to_base32");E.uint8array_to_base32=Vt;function Io(e,r){let t="",n=e;for(let s=0;s=2**(r-1-s)?(t+="1",n-=2**(r-1-s)):t+="0";return t}h(Io,"int_to_binary");function co(e){let r=0;for(let t=0;tIo(yn.indexOf(n),5)).join(""),t=new Uint8Array(Math.ceil(e.length*5/8));for(let n=0;nr-n[1].length)throw Error(`Too many decimals, cannot exceed ${r}`);t=BigInt(n[0])*BigInt(10)**BigInt(r)+BigInt(n[1])*BigInt(10)**BigInt(r-n[1].length)}else t=BigInt(e)*BigInt(10)**BigInt(r);return t}h(go,"whole_to_raw");E.whole_to_raw=go;function fo(e,r=En){let t=e.toString(),n;if(t.length>r)n=t.slice(0,-r)+"."+t.slice(-r);else{let g=r-t.length;n="0."+"0".repeat(g>0?g:0)+t}let s=n.length;for(let g=0;g{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.RPCWithBackup=de.RPC=void 0;var _o=At(),at=class{static{h(this,"RPC")}constructor(r,t=!1){this.DECIMALS=void 0,this.debug=!1,this.rpc_url=r,this.use_pending=t}async call(r){this.debug&&console.log(JSON.stringify(r));let t=await fetch(this.rpc_url,{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok&&this.debug&&console.log(await t.text()),!t.ok)throw Error(`Request to RPC node failed with status code ${t.status}`);let n=await t.json();if(n.error)throw Error(`RPC node response: ${n.error}`);return n}async get_block_count(){return await this.call({action:"block_count"})}async get_block_info(r){return await this.call({action:"block_info",hash:r,json_block:!0})}async get_blocks(r){return await this.call({action:"blocks",hashes:r,json_block:!0})}async get_blocks_info(r){return await this.call({action:"blocks_info",hashes:r,json_block:!0})}async get_representatives(){return await this.call({action:"representatives"})}async get_representatives_online(r){return await this.call({action:"representatives_online",weight:r?!0:void 0})}async get_account_history(r,t,n,s,g,C,y){return await this.call({action:"account_history",account:r,count:`${t}`,raw:n?!0:void 0,head:s,offset:g?`${g}`:void 0,reverse:C?!0:void 0,account_filter:y})}async get_account_info(r,t,n,s,g){return await this.call({action:"account_info",account:r,include_confirmed:t?!0:void 0,representative:n?!0:void 0,weight:s?!0:void 0,pending:g?!0:void 0})}async get_account_balance(r){return await this.call({action:"account_balance",account:r})}async get_accounts_balances(r){return await this.call({action:"accounts_balances",accounts:r})}async get_account_representative(r){return await this.call({action:"account_representative",account:r})}async get_accounts_representatives(r){return await this.call({action:"accounts_representatives",account:r})}async get_account_weight(r){return await this.call({action:"account_weight",account:r})}async get_account_receivable(r,t,n,s){return await this.call({action:this.use_pending?"pending":"receivable",account:r,count:t?`${t}`:void 0,threshold:n?(0,_o.whole_to_raw)(n,this.DECIMALS).toString():void 0,source:s?!0:void 0})}async get_delegators(r,t,n,s){return await this.call({action:"delegators",account:r,threshold:t?`${t}`:void 0,count:n?`${n}`:void 0,start:s})}async get_delegators_count(r){return await this.call({action:"account_weight",account:r})}};de.RPC=at;var Tt=class extends at{static{h(this,"RPCWithBackup")}constructor(r,t,n=!1){if(r.length<2)throw Error("Must provide at least two RPC URLs");super(r[0],n),this.rpc_urls=r,this.timeout=t}async call(r){let t=0;for(;;)try{let n=await fetch(this.rpc_urls[t],{method:"POST",headers:this.headers??{"Content-Type":"application/json"},body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(!n.ok)throw Error(`Request to RPC node failed with status code ${n.status}`);let s=await n.json();if(s.error)throw Error(`RPC node response: ${s.error}`);return s}catch(n){if(!this.rpc_urls[++t])throw Error(n)}}};de.RPCWithBackup=Tt});var Dn=S(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0})});var Sn=S(V=>{"use strict";var yo=V&&V.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:h(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),wo=V&&V.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),Eo=V&&V.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t in e)t!=="default"&&Object.prototype.hasOwnProperty.call(e,t)&&yo(r,e,t);return wo(r,e),r};Object.defineProperty(V,"__esModule",{value:!0});V.PrivateKeyAccount=V.Wallet=void 0;var F=Eo(At()),st=class e{static{h(this,"Wallet")}constructor(r,t,n=0,s){if(this.add_do_work=!0,this.rpc=r,typeof t!="string"||t?.length!==64)throw Error("Seed needs to be 64 character (hex) string");this.seed=t,this.index=n,this.work_function=s}static gen_random_wallet(r){let t=new Uint8Array(32);crypto.getRandomValues(t);let n=F.uint8array_to_hex(t);return new e(r,n)}get private_key(){return F.get_private_key_from_seed(this.seed,this.index)}get public_key(){return F.get_public_key_from_private_key(this.private_key)}get address(){return F.get_address_from_public_key(this.public_key)}async send_process(r,t){return(await this.rpc.call({action:"process",json_block:"true",subtype:t,block:r,do_work:!r.work&&this.add_do_work?!0:void 0})).hash}async send(r,t,n,s,g){let C=F.whole_to_raw(t,this.rpc.DECIMALS),y=g??await this.get_account_info(void 0,!0),w=F.get_public_key_from_address(r);s||(s=y.representative);let x=BigInt(y.balance),b=x-C;if(b<0n)throw Error(`Insufficient funds to send. Cannot send more than balance; ie, Before balance (raw: ${x}) less than send amount (raw: ${C})`);let D={type:"state",account:this.address,previous:y.frontier,representative:s,balance:b.toString(),link:w,link_as_account:r},K=F.hash_block(D),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...D,signature:pe,work:$};return await this.send_process(ee,"send")}async send_all(r,t,n){let s=await this.get_account_info(void 0,!0);return await this.send(r,F.raw_to_whole(BigInt(s.balance),this.rpc.DECIMALS),t,n,s)}async receive(r,t,n){let s=await this.rpc.get_block_info(r),g=0n;n||(n=this.address);let C;try{let K=await this.get_account_info(void 0,!0);C=K.frontier,n=K.representative,g=BigInt(K.balance)}catch{C="0".repeat(64)}let y={type:"state",account:this.address,previous:C,representative:n,balance:(g+BigInt(s.amount)).toString(),link:r},w=F.hash_block(y),x;t&&(x=await this.work_function(w));let b=F.sign_block_hash(this.private_key,w),D={...y,signature:b,work:x};return await this.send_process(D,"receive")}async receive_all(r=20,t,n){let s=(await this.get_account_receivable(r,t,!0)).blocks,g,C,y;try{let x=await this.get_account_info(void 0,!0);g=x.frontier,C=x.representative,y=BigInt(x.balance)}catch{g="0".repeat(64),C=this.address,y=BigInt(0)}let w=[];for(let x of Object.keys(s)){let b=(y+BigInt(s[x].amount)).toString(),D={type:"state",account:this.address,previous:g,representative:C,balance:b,link:x},K=F.hash_block(D),$;n&&($=await this.work_function(K));let pe=F.sign_block_hash(this.private_key,K),ee={...D,signature:pe,work:$};await this.send_process(ee,"receive"),w.push(K),g=K,y=BigInt(b)}return w}async change_representative(r,t){let n=await this.get_account_info(),s={type:"state",account:this.address,previous:n.frontier,representative:r,balance:n.balance,link:"0".repeat(64)},g=F.hash_block(s),C;t&&(C=await this.work_function(g));let y=F.sign_block_hash(this.private_key,g),w={...s,signature:y,work:C};return await this.send_process(w,"change")}async change_rep(r,t){return await this.change_representative(r,t)}async get_account_info(r,t,n,s){return await this.rpc.get_account_info(this.address,r,t,n,s)}async get_account_receivable(r,t,n){return await this.rpc.get_account_receivable(this.address,r,t,n)}sign_message(r){return F.sign_message(this.private_key,r)}};V.Wallet=st;var jt=class extends st{static{h(this,"PrivateKeyAccount")}constructor(r,t,n){if(typeof t!="string"||t?.length!==64)throw Error("Priv key needs to be 64 character (hex) string");super(r,t,0,n),this._private_key=t}get private_key(){return this._private_key}};V.PrivateKeyAccount=jt});var Un=S(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.RPCWorkProvider=void 0;var Jt=class{static{h(this,"RPCWorkProvider")}constructor(r){this.extra_payload={},this.rpc=r}async request_work(r){return(await this.rpc.call({action:"work_generate",hash:r,...this.extra_payload})).work}};ht.RPCWorkProvider=Jt});var we=S(N=>{"use strict";var xo=N&&N.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(r,t);(!s||("get"in s?!r.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:h(function(){return r[t]},"get")}),Object.defineProperty(e,n,s)}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Pe=N&&N.__exportStar||function(e,r){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(r,t)&&xo(r,e,t)};Object.defineProperty(N,"__esModule",{value:!0});Pe(At(),N);Pe(bn(),N);Pe(Dn(),N);Pe(Sn(),N);Pe(Un(),N)});var qt={};Ft(qt,{BSF_HEX_CHARS:()=>ct,HEX_CHARS:()=>Xt,LOG:()=>Ve,address_to_cid_v0:()=>mo,base58_to_hex:()=>Yn,bigint_to_uint8array:()=>Kn,bns_seed_format_to_hex:()=>po,cid_v0_to_address:()=>bo,decode_domain_name:()=>Ee,encode_domain_name:()=>It,hex_to_base58:()=>Fn,hex_to_bns_seed_format:()=>Bo,is_bns_seed_format:()=>Qo});var Z=Ke(we());var Ve=!0;function It(e){if(e.includes(".")||e.includes("\0")||e.includes('"'))throw new Error(`Domain name cannot include '.' or '"' or '\\u0000'`);let r=(0,Z.uint8array_to_hex)(new TextEncoder().encode(e));if(r.length>64)throw new Error("Cannot be more than 32 bytes");return r.length<64&&(r="0".repeat(64-r.length)+r),r}h(It,"encode_domain_name");function Ee(e){return new TextDecoder().decode((0,Z.hex_to_uint8array)(e)).replace(/\u0000/g,"")}h(Ee,"decode_domain_name");var vn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";function Fn(e){let r=BigInt(`0x${e}`),t="";for(;t+=vn[Number(r%BigInt(58))],r=r/BigInt(58),r!==0n;);return t.split("").reverse().join("")}h(Fn,"hex_to_base58");var Xt="0123456789ABCDEF",ct="ghijklmnopqrstuv";function Bo(e){return e.split("").map(r=>ct[Xt.indexOf(r.toUpperCase())]).join("")}h(Bo,"hex_to_bns_seed_format");function po(e){return e.split("").map(r=>Xt[ct.indexOf(r.toLowerCase())]).join("")}h(po,"bns_seed_format_to_hex");function Qo(e){return e.split("").every(r=>ct.includes(r.toLowerCase()))}h(Qo,"is_bns_seed_format");function Kn(e,r){let t=new Uint8Array(r),n=e;for(let s=1;s<=r;s++)t[r-s]=Number(n%256n),n/=256n;return t}h(Kn,"bigint_to_uint8array");function Yn(e){let r=0n;for(let t=0;tBe,Resolver:()=>Wt,TLDAccount:()=>xe});var T=Ke(we());var gt=class{static{h(this,"Account")}constructor(r,t){this.rpc=r,this.address=t}async get_open_and_frontier(){let r=await this.rpc.get_account_info(this.address,!0);return[r.open_block,r.confirmation_height_frontier??r.frontier]}async get_history_from_open(r,t){return await this.rpc.get_account_history(this.address,t,!0,r,void 0,!0)}},xe=class extends gt{static{h(this,"TLDAccount")}constructor(r,t){super(r,t),this.all_issued=[]}async get_specific(r,t=500){let[n,s]=await this.get_open_and_frontier(),g=n;for(;;){let{history:C}=await this.get_history_from_open(g,t);for(let y of C){let w=BigInt(y.amount??0);if(y.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(y.representative));if(r===x)return{tld:this.address,name:r,history:[{type:"transfer",block:y,to:(0,T.get_address_from_public_key)(y.link)}]}}if(y.representative===he&&y.subtype==="change"||y.hash===s)return}g=C[C.length-1].hash}}async get_all_issued(r=500){let[t,n]=await this.get_open_and_frontier(),s=t,g={};for(;;){let{history:C}=await this.get_history_from_open(s,r);for(let y of C){let w=BigInt(y.amount??0);if(y.subtype==="send"&&w>=se&&w<=ne){let x=Ee((0,T.get_public_key_from_address)(y.representative));g[x]?Ve&&console.log(`"${x}" already issued but TLD tried to issue again. Invalid.`):g[x]={tld:this.address,name:x,history:[{type:"transfer",block:y,to:(0,T.get_address_from_public_key)(y.link)}]}}if(y.representative===he&&y.subtype==="change"||y.hash===n)return this.all_issued=Object.values(g),this.all_issued}s=C[C.length-1].hash}}},Be=class extends gt{static{h(this,"DomainAccount")}constructor(r,t,n,s){super(r,t),this.domain=n,this.max_rpc_calls=s,this.rpc_calls=0}async crawl(r=500){let t,n;try{[t,n]=await this.get_open_and_frontier(),this.rpc_calls+=1}catch{return Ve&&console.log("Not yet received"),this.domain}if(this.rpc_calls===this.max_rpc_calls)throw new Error("Max RPC calls reached");let s=t;for(;;){let{history:g}=await this.get_history_from_open(s,r);if(this.rpc_calls+=1,this.rpc_calls===this.max_rpc_calls)throw new Error("Max RPC calls reached");for(let C of g){let y=BigInt(C.amount??0);if(C.height==="1"){if(C.link!==this.domain.history[this.domain.history.length-1]?.block.hash)return Ve&&console.log("Domain burned"),this.domain.burned=!0,this.domain;this.domain.history.push({type:"receive",block:C})}else if(C.subtype==="send"&&y>=se&&y<=ne){let w=Ee((0,T.get_public_key_from_address)(C.representative));if(this.domain.name===w)return this.domain.resolved_address=void 0,this.domain.metadata_hash=void 0,this.domain.history.push({type:"transfer",block:C,to:(0,T.get_address_from_public_key)(C.link)}),this.domain}else{if(C.subtype==="change"&&C.representative===he)return this.domain.history.push({type:"freeze",block:C}),this.domain;C.subtype==="change"?(this.domain.metadata_hash=(0,T.get_public_key_from_address)(C.representative),this.domain.history.push({type:"metadata",block:C,metadata_hash:this.domain.metadata_hash})):C.subtype==="send"&&y===4224n&&(this.domain.resolved_address=(0,T.get_address_from_public_key)(C.link),this.domain.history.push({type:"resolver",block:C,resolved_address:this.domain.resolved_address}))}if(C.hash===n)return this.domain}s=g[g.length-1].hash}}},Wt=class{static{h(this,"Resolver")}constructor(r,t,n){this.rpc=r,this.tld_mapping=t,this.max_rpc_calls_after_tld=n}async resolve(r,t,n=500){if(r=r.toLowerCase(),!this.tld_mapping[t])throw new Error("No TLD Account found for that TLD");let g=await new xe(this.rpc,this.tld_mapping[t]).get_specific(r,n);if(!g)return g;let C=this.max_rpc_calls_after_tld;for(console.log(this.max_rpc_calls_after_tld,"abc");;){let y=g.history[g.history.length-1].to,w=new Be(this.rpc,y,g,C);C-=w.rpc_calls,console.log(C,w.rpc_calls);let x=g.history.length;if(g=await w.crawl(n),g.history[g.history.length-1].type!=="transfer"||g.burned||x===g.history.length)break}return g}async resolve_backwards_ish(r,t,n=500){let s=(await this.rpc.get_account_info(r,!0)).open_block,g=(await this.rpc.get_block_info(s)).contents.link,C=await this.rpc.get_block_info(g),y=Ee((0,T.get_public_key_from_address)(C.contents.representative)),w=await this.resolve(y,t,n);if((w?.history.slice().reverse().find(b=>b.type==="transfer")).to===r)return w}};var tr={};Ft(tr,{DomainAccountManager:()=>er,TLDAccountManager:()=>$t});var ie=Ke(we());var $t=class extends xe{static{h(this,"TLDAccountManager")}constructor(r,t){super(r,t.address),this.wallet=t}async issue_domain_name(r,t){if(r=r.toLowerCase(),this.all_issued.some(s=>s.name===r))throw new Error("Cannot issue a domain name that is already issued");return await this.wallet.send(t,"0.00120703011",void 0,(0,ie.get_address_from_public_key)(It(r)))}async freeze(){await this.wallet.change_representative(he)}async receive(){await this.wallet.receive_all()}},er=class extends Be{static{h(this,"DomainAccountManager")}constructor(r,t,n){super(r,t.address),this.wallet=t,this.domain=n}async receive_domain(r,t,n){let s=!1,{history:g}=await this.rpc.get_account_history(this.address,1);if(g.length>1&&!n)throw s=!0,new Error("`allow_burning` must be true in order to receive this domain");let C=await this.rpc.get_block_info(r),y=BigInt(C.amount);if(yne)throw new Error("`receive_hash` is not a Domain Transfer block");await this.wallet.receive(r,void 0,t)}async transfer_domain(r,t){let n=(await this.wallet.get_account_info()).balance,s=(0,ie.raw_to_whole)(ne);return ne>BigInt(n)&&se<=BigInt(n)&&(s=(0,ie.raw_to_whole)(BigInt(n))),await this.wallet.send(t,s,void 0,(0,ie.get_address_from_public_key)(It(r)))}async declare_domain_metadata(r){if(r===zt)throw new Error("A metadata hash of all 1s freezes the domain");await this.wallet.change_representative((0,ie.get_address_from_public_key)(r))}async declare_domain_resolve_to(r){await this.wallet.send(r,(0,ie.raw_to_whole)(4224n))}async freeze(){await this.wallet.change_representative(he)}};var kn={};var Do=Ke(we());window.bns={...qt,...Zt,...tr,...kn,banani:Do};})(); diff --git a/docs/classes/DomainAccount.html b/docs/classes/DomainAccount.html index 06ecb77..62fe1e9 100644 --- a/docs/classes/DomainAccount.html +++ b/docs/classes/DomainAccount.html @@ -1,8 +1,10 @@ -DomainAccount | bns

Class DomainAccount

Hierarchy (view full)

Constructors

constructor +DomainAccount | bns

Class DomainAccount

Hierarchy (view full)

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
domain?: Domain
rpc: RPC

Methods

  • Returns Promise<[string, string]>

\ No newline at end of file +

Constructors

  • Parameters

    • rpc: RPC
    • address: `ban_${string}` | `nano_${string}`
    • Optional domain: Domain
    • Optional max_rpc_calls: number

    Returns DomainAccount

Properties

address: `ban_${string}` | `nano_${string}`
domain?: Domain
max_rpc_calls?: number
rpc: RPC
rpc_calls: number

Methods

  • Returns Promise<[string, string]>

\ No newline at end of file diff --git a/docs/classes/DomainAccountManager.html b/docs/classes/DomainAccountManager.html index 4072451..787ff5e 100644 --- a/docs/classes/DomainAccountManager.html +++ b/docs/classes/DomainAccountManager.html @@ -1,7 +1,9 @@ -DomainAccountManager | bns

Class DomainAccountManager

Hierarchy (view full)

Constructors

constructor +DomainAccountManager | bns

Class DomainAccountManager

Hierarchy (view full)

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
domain?: Domain
rpc: RPC
wallet: Wallet

Methods

  • Parameters

    • metadata_hash: string

    Returns Promise<void>

  • Parameters

    • address: `ban_${string}` | `nano_${string}`

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    • receive_hash: string
    • Optional tld: `ban_${string}` | `nano_${string}`
    • Optional allow_burning: boolean

    Returns Promise<void>

  • Parameters

    • domain_name: string
    • to: `ban_${string}` | `nano_${string}`

    Returns Promise<string>

\ No newline at end of file +

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
domain?: Domain
max_rpc_calls?: number
rpc: RPC
rpc_calls: number
wallet: Wallet

Methods

  • Parameters

    • metadata_hash: string

    Returns Promise<void>

  • Parameters

    • address: `ban_${string}` | `nano_${string}`

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    • receive_hash: string
    • Optional tld: `ban_${string}` | `nano_${string}`
    • Optional allow_burning: boolean

    Returns Promise<void>

  • Parameters

    • domain_name: string
    • to: `ban_${string}` | `nano_${string}`

    Returns Promise<string>

\ No newline at end of file diff --git a/docs/classes/Resolver.html b/docs/classes/Resolver.html index f4a4d12..4eb8896 100644 --- a/docs/classes/Resolver.html +++ b/docs/classes/Resolver.html @@ -1,6 +1,7 @@ -Resolver | bns

Class Resolver

Constructors

Properties

rpc +Resolver | bns

Class Resolver

Constructors

Properties

rpc: RPC
tld_mapping: Record<string, `ban_${string}` | `nano_${string}`>

Methods

  • Parameters

    • domain_name: string
    • tld: string
    • crawl_size: number = 500

    Returns Promise<Domain>

  • Parameters

    • domain_account_address: `ban_${string}` | `nano_${string}`
    • tld: string
    • crawl_size: number = 500

    Returns Promise<Domain>

\ No newline at end of file +

Constructors

  • Parameters

    • rpc: RPC
    • tld_mapping: Record<string, `ban_${string}` | `nano_${string}`>
    • Optional max_rpc_calls_after_tld: number

    Returns Resolver

Properties

max_rpc_calls_after_tld?: number
rpc: RPC
tld_mapping: Record<string, `ban_${string}` | `nano_${string}`>

Methods

  • Parameters

    • domain_name: string
    • tld: string
    • crawl_size: number = 500

    Returns Promise<Domain>

  • Parameters

    • domain_account_address: `ban_${string}` | `nano_${string}`
    • tld: string
    • crawl_size: number = 500

    Returns Promise<Domain>

\ No newline at end of file diff --git a/docs/classes/TLDAccount.html b/docs/classes/TLDAccount.html index da9135f..dbe5ea4 100644 --- a/docs/classes/TLDAccount.html +++ b/docs/classes/TLDAccount.html @@ -1,4 +1,4 @@ -TLDAccount | bns

Class TLDAccount

Hierarchy (view full)

Constructors

constructor +TLDAccount | bns

Class TLDAccount

Hierarchy (view full)

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
all_issued: Domain[]
rpc: RPC

Methods

  • Parameters

    • crawl_size: number = 500

    Returns Promise<Domain[]>

  • Returns Promise<[string, string]>

  • Parameters

    • name: string
    • crawl_size: number = 500

    Returns Promise<Domain>

\ No newline at end of file +

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
all_issued: Domain[]
rpc: RPC

Methods

  • Parameters

    • crawl_size: number = 500

    Returns Promise<Domain[]>

  • Returns Promise<[string, string]>

  • Parameters

    • name: string
    • crawl_size: number = 500

    Returns Promise<Domain>

\ No newline at end of file diff --git a/docs/classes/TLDAccountManager.html b/docs/classes/TLDAccountManager.html index a85a373..f12edfe 100644 --- a/docs/classes/TLDAccountManager.html +++ b/docs/classes/TLDAccountManager.html @@ -1,4 +1,4 @@ -TLDAccountManager | bns

Class TLDAccountManager

Hierarchy (view full)

Constructors

constructor +TLDAccountManager | bns

Class TLDAccountManager

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
all_issued: Domain[]
rpc: RPC
wallet: Wallet

Methods

  • Returns Promise<void>

  • Parameters

    • domain_name: string
    • to: `ban_${string}` | `nano_${string}`

    Returns Promise<string>

  • Returns Promise<void>

\ No newline at end of file +

Constructors

Properties

address: `ban_${string}` | `nano_${string}`
all_issued: Domain[]
rpc: RPC
wallet: Wallet

Methods

  • Returns Promise<void>

  • Parameters

    • domain_name: string
    • to: `ban_${string}` | `nano_${string}`

    Returns Promise<string>

  • Returns Promise<void>

\ No newline at end of file diff --git a/docs/functions/address_to_cid_v0.html b/docs/functions/address_to_cid_v0.html index 97ab6db..989c52e 100644 --- a/docs/functions/address_to_cid_v0.html +++ b/docs/functions/address_to_cid_v0.html @@ -1,2 +1,2 @@ address_to_cid_v0 | bns

Function address_to_cid_v0

  • Banano address to IPFS CID v0

    -

    Parameters

    • address: `ban_${string}` | `nano_${string}`

    Returns string

\ No newline at end of file +

Parameters

  • address: `ban_${string}` | `nano_${string}`

Returns string

\ No newline at end of file diff --git a/docs/functions/base58_to_hex.html b/docs/functions/base58_to_hex.html index db0cad0..c3b5b52 100644 --- a/docs/functions/base58_to_hex.html +++ b/docs/functions/base58_to_hex.html @@ -1 +1 @@ -base58_to_hex | bns

Function base58_to_hex

  • Parameters

    • base58: string

    Returns string

\ No newline at end of file +base58_to_hex | bns

Function base58_to_hex

  • Parameters

    • base58: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/bigint_to_uint8array.html b/docs/functions/bigint_to_uint8array.html index 2495e10..84d6d99 100644 --- a/docs/functions/bigint_to_uint8array.html +++ b/docs/functions/bigint_to_uint8array.html @@ -1 +1 @@ -bigint_to_uint8array | bns

Function bigint_to_uint8array

  • Parameters

    • bint: bigint
    • len: number

    Returns Uint8Array

\ No newline at end of file +bigint_to_uint8array | bns

Function bigint_to_uint8array

  • Parameters

    • bint: bigint
    • len: number

    Returns Uint8Array

\ No newline at end of file diff --git a/docs/functions/bns_seed_format_to_hex.html b/docs/functions/bns_seed_format_to_hex.html index 62ba2ce..dd08653 100644 --- a/docs/functions/bns_seed_format_to_hex.html +++ b/docs/functions/bns_seed_format_to_hex.html @@ -1 +1 @@ -bns_seed_format_to_hex | bns

Function bns_seed_format_to_hex

  • Parameters

    • bsf_hex: string

    Returns string

\ No newline at end of file +bns_seed_format_to_hex | bns

Function bns_seed_format_to_hex

  • Parameters

    • bsf_hex: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/cid_v0_to_address.html b/docs/functions/cid_v0_to_address.html index 99e1923..13032a3 100644 --- a/docs/functions/cid_v0_to_address.html +++ b/docs/functions/cid_v0_to_address.html @@ -1,2 +1,2 @@ cid_v0_to_address | bns

Function cid_v0_to_address

  • IPFS CID v0 to Banano address

    -

    Parameters

    • cid_v0: string

    Returns Address

\ No newline at end of file +

Parameters

  • cid_v0: string

Returns Address

\ No newline at end of file diff --git a/docs/functions/decode_domain_name.html b/docs/functions/decode_domain_name.html index 1248a66..379d85e 100644 --- a/docs/functions/decode_domain_name.html +++ b/docs/functions/decode_domain_name.html @@ -1 +1 @@ -decode_domain_name | bns

Function decode_domain_name

  • Parameters

    • encoded_domain_name: string

    Returns string

\ No newline at end of file +decode_domain_name | bns

Function decode_domain_name

  • Parameters

    • encoded_domain_name: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/encode_domain_name.html b/docs/functions/encode_domain_name.html index c408632..fabed56 100644 --- a/docs/functions/encode_domain_name.html +++ b/docs/functions/encode_domain_name.html @@ -1 +1 @@ -encode_domain_name | bns

Function encode_domain_name

  • Parameters

    • domain_name: string

    Returns string

\ No newline at end of file +encode_domain_name | bns

Function encode_domain_name

  • Parameters

    • domain_name: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/hex_to_base58.html b/docs/functions/hex_to_base58.html index e5c3768..ffb11a0 100644 --- a/docs/functions/hex_to_base58.html +++ b/docs/functions/hex_to_base58.html @@ -1 +1 @@ -hex_to_base58 | bns

Function hex_to_base58

  • Parameters

    • hex: string

    Returns string

\ No newline at end of file +hex_to_base58 | bns

Function hex_to_base58

  • Parameters

    • hex: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/hex_to_bns_seed_format.html b/docs/functions/hex_to_bns_seed_format.html index 6ec6d76..2652649 100644 --- a/docs/functions/hex_to_bns_seed_format.html +++ b/docs/functions/hex_to_bns_seed_format.html @@ -1 +1 @@ -hex_to_bns_seed_format | bns

Function hex_to_bns_seed_format

  • Parameters

    • hex: string

    Returns string

\ No newline at end of file +hex_to_bns_seed_format | bns

Function hex_to_bns_seed_format

  • Parameters

    • hex: string

    Returns string

\ No newline at end of file diff --git a/docs/functions/is_bns_seed_format.html b/docs/functions/is_bns_seed_format.html index a353cdb..9f6fbad 100644 --- a/docs/functions/is_bns_seed_format.html +++ b/docs/functions/is_bns_seed_format.html @@ -1 +1 @@ -is_bns_seed_format | bns

Function is_bns_seed_format

  • Parameters

    • maybe_bsf_hex: string

    Returns boolean

\ No newline at end of file +is_bns_seed_format | bns

Function is_bns_seed_format

  • Parameters

    • maybe_bsf_hex: string

    Returns boolean

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index ea08394..ec85568 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,10 @@ -bns

bns

See the docs or demo

-

Installing

npm i banani-bns
+bns

bns

See the protocol specification, docs or demo

+

Installing

NPM

npm i banani-bns
 
-
\ No newline at end of file +

Web

Add thebns-browser.js file in this browser to your site. Then, in your <head>, add:

+
<script src="/path/to/bns-browser.js"></script>
+
+

You can now access the library through window.bns in your scripts.

+

Example

Resolving

import { banani, Resolver } from "banani-bns";

const rpc = new banani.RPC("https://kaliumapi.appditto.com/api");
const tld_mapping = {
"mictest": "ban_1dzpfrgi8t4byzmdeidh57p14h5jwbursf1t3ztbmeqnqqdcbpgp9x8j3cw6",
"jtv": "ban_3gipeswotbnyemcc1dejyhy5a1zfgj35kw356dommbx4rdochiteajcsay56",
"ban": "ban_1fdo6b4bqm6pp1w55duuqw5ebz455975o4qcp8of85fjcdw9qhuzxsd3tjb9",
};

const resolver = new Resolver(rpc, tld_mapping);

console.log(await resolver.resolve("nishina247", "mictest")); +
+
\ No newline at end of file diff --git a/docs/interfaces/Domain.html b/docs/interfaces/Domain.html index 7d4913d..3cb48fc 100644 --- a/docs/interfaces/Domain.html +++ b/docs/interfaces/Domain.html @@ -1,7 +1,7 @@ -Domain | bns

Interface Domain

interface Domain {
    burned?: boolean;
    history: DomainBlocks[];
    metadata_hash?: string;
    name: string;
    resolved_address?: `ban_${string}` | `nano_${string}`;
    tld: `ban_${string}` | `nano_${string}`;
}

Properties

burned? +Domain | bns

Interface Domain

interface Domain {
    burned?: boolean;
    history: DomainBlocks[];
    metadata_hash?: string;
    name: string;
    resolved_address?: `ban_${string}` | `nano_${string}`;
    tld: `ban_${string}` | `nano_${string}`;
}

Properties

burned?: boolean
history: DomainBlocks[]
metadata_hash?: string
name: string
resolved_address?: `ban_${string}` | `nano_${string}`
tld: `ban_${string}` | `nano_${string}`
\ No newline at end of file +

Properties

burned?: boolean
history: DomainBlocks[]
metadata_hash?: string
name: string
resolved_address?: `ban_${string}` | `nano_${string}`
tld: `ban_${string}` | `nano_${string}`
\ No newline at end of file diff --git a/docs/interfaces/DomainBlock.html b/docs/interfaces/DomainBlock.html index cb686fd..42c38c6 100644 --- a/docs/interfaces/DomainBlock.html +++ b/docs/interfaces/DomainBlock.html @@ -1,3 +1,3 @@ -DomainBlock | bns

Interface DomainBlock

interface DomainBlock {
    block: AccountHistoryRawBlock;
    type: "receive" | "transfer" | "metadata" | "resolver" | "freeze";
}

Hierarchy (view full)

Properties

block +DomainBlock | bns

Interface DomainBlock

interface DomainBlock {
    block: AccountHistoryRawBlock;
    type: "receive" | "transfer" | "metadata" | "resolver" | "freeze";
}

Hierarchy (view full)

Properties

Properties

type: "receive" | "transfer" | "metadata" | "resolver" | "freeze"
\ No newline at end of file +

Properties

type: "receive" | "transfer" | "metadata" | "resolver" | "freeze"
\ No newline at end of file diff --git a/docs/interfaces/DomainFreeze.html b/docs/interfaces/DomainFreeze.html index 5dafb08..154c3d9 100644 --- a/docs/interfaces/DomainFreeze.html +++ b/docs/interfaces/DomainFreeze.html @@ -1,3 +1,3 @@ -DomainFreeze | bns

Interface DomainFreeze

interface DomainFreeze {
    block: AccountHistoryRawBlock;
    type: "freeze";
}

Hierarchy (view full)

Properties

block +DomainFreeze | bns

Interface DomainFreeze

interface DomainFreeze {
    block: AccountHistoryRawBlock;
    type: "freeze";
}

Hierarchy (view full)

Properties

Properties

type: "freeze"
\ No newline at end of file +

Properties

type: "freeze"
\ No newline at end of file diff --git a/docs/interfaces/DomainMetadata.html b/docs/interfaces/DomainMetadata.html index 95a3a91..5d7d9ef 100644 --- a/docs/interfaces/DomainMetadata.html +++ b/docs/interfaces/DomainMetadata.html @@ -1,4 +1,4 @@ -DomainMetadata | bns

Interface DomainMetadata

interface DomainMetadata {
    block: AccountHistoryRawBlock;
    metadata_hash: string;
    type: "metadata";
}

Hierarchy (view full)

Properties

block +DomainMetadata | bns

Interface DomainMetadata

interface DomainMetadata {
    block: AccountHistoryRawBlock;
    metadata_hash: string;
    type: "metadata";
}

Hierarchy (view full)

Properties

metadata_hash: string
type: "metadata"
\ No newline at end of file +

Properties

metadata_hash: string
type: "metadata"
\ No newline at end of file diff --git a/docs/interfaces/DomainReceive.html b/docs/interfaces/DomainReceive.html index d50f057..499d19b 100644 --- a/docs/interfaces/DomainReceive.html +++ b/docs/interfaces/DomainReceive.html @@ -1,3 +1,3 @@ -DomainReceive | bns

Interface DomainReceive

interface DomainReceive {
    block: AccountHistoryRawBlock;
    type: "receive";
}

Hierarchy (view full)

Properties

block +DomainReceive | bns

Interface DomainReceive

interface DomainReceive {
    block: AccountHistoryRawBlock;
    type: "receive";
}

Hierarchy (view full)

Properties

Properties

type: "receive"
\ No newline at end of file +

Properties

type: "receive"
\ No newline at end of file diff --git a/docs/interfaces/DomainResolver.html b/docs/interfaces/DomainResolver.html index eafe5f4..1db8268 100644 --- a/docs/interfaces/DomainResolver.html +++ b/docs/interfaces/DomainResolver.html @@ -1,4 +1,4 @@ -DomainResolver | bns

Interface DomainResolver

interface DomainResolver {
    block: AccountHistoryRawBlock;
    resolved_address: `ban_${string}` | `nano_${string}`;
    type: "resolver";
}

Hierarchy (view full)

Properties

block +DomainResolver | bns

Interface DomainResolver

interface DomainResolver {
    block: AccountHistoryRawBlock;
    resolved_address: `ban_${string}` | `nano_${string}`;
    type: "resolver";
}

Hierarchy (view full)

Properties

resolved_address: `ban_${string}` | `nano_${string}`
type: "resolver"
\ No newline at end of file +

Properties

resolved_address: `ban_${string}` | `nano_${string}`
type: "resolver"
\ No newline at end of file diff --git a/docs/interfaces/DomainTransfer.html b/docs/interfaces/DomainTransfer.html index 6caf991..1f66204 100644 --- a/docs/interfaces/DomainTransfer.html +++ b/docs/interfaces/DomainTransfer.html @@ -1,4 +1,4 @@ -DomainTransfer | bns

Interface DomainTransfer

interface DomainTransfer {
    block: AccountHistoryRawBlock;
    to: `ban_${string}` | `nano_${string}`;
    type: "transfer";
}

Hierarchy (view full)

Properties

block +DomainTransfer | bns

Interface DomainTransfer

interface DomainTransfer {
    block: AccountHistoryRawBlock;
    to: `ban_${string}` | `nano_${string}`;
    type: "transfer";
}

Hierarchy (view full)

Properties

Properties

to: `ban_${string}` | `nano_${string}`
type: "transfer"
\ No newline at end of file +

Properties

to: `ban_${string}` | `nano_${string}`
type: "transfer"
\ No newline at end of file diff --git a/docs/types/DomainBlocks.html b/docs/types/DomainBlocks.html index 110547d..2aafb74 100644 --- a/docs/types/DomainBlocks.html +++ b/docs/types/DomainBlocks.html @@ -1 +1 @@ -DomainBlocks | bns
\ No newline at end of file +DomainBlocks | bns
\ No newline at end of file diff --git a/docs/variables/BSF_HEX_CHARS.html b/docs/variables/BSF_HEX_CHARS.html index 1b8aabb..ea9cd9c 100644 --- a/docs/variables/BSF_HEX_CHARS.html +++ b/docs/variables/BSF_HEX_CHARS.html @@ -1 +1 @@ -BSF_HEX_CHARS | bns

Variable BSF_HEX_CHARSConst

BSF_HEX_CHARS: "ghijklmnopqrstuv" = "ghijklmnopqrstuv"
\ No newline at end of file +BSF_HEX_CHARS | bns

Variable BSF_HEX_CHARSConst

BSF_HEX_CHARS: "ghijklmnopqrstuv" = "ghijklmnopqrstuv"
\ No newline at end of file diff --git a/docs/variables/FREEZE_PUB_KEY.html b/docs/variables/FREEZE_PUB_KEY.html index a4952a7..2b6078e 100644 --- a/docs/variables/FREEZE_PUB_KEY.html +++ b/docs/variables/FREEZE_PUB_KEY.html @@ -1 +1 @@ -FREEZE_PUB_KEY | bns

Variable FREEZE_PUB_KEYConst

FREEZE_PUB_KEY: string = ...
\ No newline at end of file +FREEZE_PUB_KEY | bns

Variable FREEZE_PUB_KEYConst

FREEZE_PUB_KEY: string = ...
\ No newline at end of file diff --git a/docs/variables/FREEZE_REP.html b/docs/variables/FREEZE_REP.html index 9a7e458..bf3466d 100644 --- a/docs/variables/FREEZE_REP.html +++ b/docs/variables/FREEZE_REP.html @@ -1 +1 @@ -FREEZE_REP | bns

Variable FREEZE_REPConst

FREEZE_REP: `ban_${string}` | `nano_${string}` = ...
\ No newline at end of file +FREEZE_REP | bns

Variable FREEZE_REPConst

FREEZE_REP: `ban_${string}` | `nano_${string}` = ...
\ No newline at end of file diff --git a/docs/variables/HEX_CHARS.html b/docs/variables/HEX_CHARS.html index 9d9bd08..6ffd97f 100644 --- a/docs/variables/HEX_CHARS.html +++ b/docs/variables/HEX_CHARS.html @@ -1 +1 @@ -HEX_CHARS | bns

Variable HEX_CHARSConst

HEX_CHARS: "0123456789ABCDEF" = "0123456789ABCDEF"
\ No newline at end of file +HEX_CHARS | bns

Variable HEX_CHARSConst

HEX_CHARS: "0123456789ABCDEF" = "0123456789ABCDEF"
\ No newline at end of file diff --git a/docs/variables/LOG.html b/docs/variables/LOG.html index f7f2363..b26c18c 100644 --- a/docs/variables/LOG.html +++ b/docs/variables/LOG.html @@ -1 +1 @@ -LOG | bns

Variable LOGConst

LOG: boolean = true
\ No newline at end of file +LOG | bns

Variable LOGConst

LOG: boolean = true
\ No newline at end of file diff --git a/docs/variables/TRANS_MAX.html b/docs/variables/TRANS_MAX.html index a7a9512..be7ce05 100644 --- a/docs/variables/TRANS_MAX.html +++ b/docs/variables/TRANS_MAX.html @@ -1 +1 @@ -TRANS_MAX | bns

Variable TRANS_MAXConst

TRANS_MAX: bigint = ...
\ No newline at end of file +TRANS_MAX | bns

Variable TRANS_MAXConst

TRANS_MAX: bigint = ...
\ No newline at end of file diff --git a/docs/variables/TRANS_MIN.html b/docs/variables/TRANS_MIN.html index 6c08210..33e4fbe 100644 --- a/docs/variables/TRANS_MIN.html +++ b/docs/variables/TRANS_MIN.html @@ -1 +1 @@ -TRANS_MIN | bns

Variable TRANS_MINConst

TRANS_MIN: bigint = ...
\ No newline at end of file +TRANS_MIN | bns

Variable TRANS_MINConst

TRANS_MIN: bigint = ...
\ No newline at end of file diff --git a/node_test/index.js b/node_test/index.js deleted file mode 100644 index 2bb6b8a..0000000 --- a/node_test/index.js +++ /dev/null @@ -1,82 +0,0 @@ -import * as bns from "../main.js"; -import * as fs from "fs"; -import * as crypto from "crypto"; - -(async () => { - console.log("cid v0 to address", bns.cid_v0_to_address("QmbzTMo42KADUbLwc43KR9Se6aV3N6wfKqFbSr2qN1gJqR") === "ban_3kpq7d4kp9hd45jf8jh6zjztcewwfqaxafcr3b45whrxhce1sfinai3pk6w3"); - console.log("address to cidv0", bns.address_to_cid_v0("ban_3kpq7d4kp9hd45jf8jh6zjztcewwfqaxafcr3b45whrxhce1sfinai3pk6w3") === "QmbzTMo42KADUbLwc43KR9Se6aV3N6wfKqFbSr2qN1gJqR"); - - const test_seed = fs.readFileSync("./.secret", "utf-8").trim(); - - const rpc = new bns.banani.RPC("https://kaliumapi.appditto.com/api"); //for sending cause it does work - //let rpc2 = new bns.banani.RPC("https://api.banano.trade/proxy", true); //for resolver cause it supports raw account history - const rpc2 = rpc; - - let tld_wallet = new bns.banani.Wallet(rpc, test_seed); - - console.log(await new bns.Resolver(rpc2, { "test": tld_wallet.address }).resolve("chicken", "test")); //freeze test - - console.log(await new bns.Resolver(rpc2, { "test": tld_wallet.address }).resolve_backwards_ish("ban_1119d44eg3fey3mxpk8mshn7gf5dfzsuiaz1ypoh5nqy8bxbao54zzc5rnka", "test")); - - let tld = new bns.TLDAccountManager(rpc, tld_wallet); - - await tld.receive(); - - const rand_wallet = bns.banani.Wallet.gen_random_wallet(rpc); - - const rand_name = `rc-test${String(Math.random()).replaceAll(".", "")}`; - - const issue_hash = await tld.issue_domain_name(rand_name, rand_wallet.address); - - const rand_dam = new bns.DomainAccountManager(rpc, rand_wallet); - - await rand_dam.receive_domain(issue_hash); - - await rand_dam.declare_domain_resolve_to("ban_3346kkobb11qqpo17imgiybmwrgibr7yi34mwn5j6uywyke8f7fnfp94uyps"); - - await rand_dam.declare_domain_metadata("6".repeat(64)); - - await rand_dam.declare_domain_resolve_to("ban_1burnbabyburndiscoinferno111111111111111111111111111aj49sw3w"); - - const rand_wallet2 = bns.banani.Wallet.gen_random_wallet(rpc); - - const transfer_hash = await rand_dam.transfer_domain(rand_name, rand_wallet2.address); - - const rand_dam2 = new bns.DomainAccountManager(rpc, rand_wallet2); - - await rand_dam2.receive_domain(transfer_hash); - - await rand_dam2.declare_domain_metadata("2".repeat(64)); - - /* - //freeze test - await rand_dam2.freeze(); - - const rand_wallet3 = bns.banani.Wallet.gen_random_wallet(rpc); - console.log(rand_wallet3.seed); - - const transfer_hash2 = await rand_dam2.transfer_domain(rand_name, rand_wallet3.address); - - const rand_dam3 = new bns.DomainAccountManager(rpc, rand_wallet3); - - await rand_dam3.receive_domain(transfer_hash2); - - await rand_dam3.declare_domain_metadata("4".repeat(64)); - - await rand_dam3.declare_domain_resolve_to("ban_3fzpw7pb9xt64qhwi47oa47x9zj713fkshntdk5y7khmn54n18szb7ymybdt"); - */ - - //await rand_dam2.declare_domain_resolve_to("ban_1o7ija3mdbmpzt8qfnck583tn99fiupgbyzxtbk5h4g6j57a7rawge6yzxqp"); - - const resolver = new bns.Resolver(rpc2, { "test": tld_wallet.address }); - - console.log(`${rand_name}.test`, await resolver.resolve(rand_name, "test")); - - console.log("tld issued", await (new bns.TLDAccount(rpc2, tld_wallet.address)).get_all_issued()) - - //let d_wallet = new bns.banani.Wallet(rpc, test_seed, 1); - - // - /**/ -})(); - diff --git a/package.json b/package.json index acff207..b8f5a9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "banani-bns", - "version": "0.0.8", + "version": "0.0.9", "description": "JS/TS library for the Banano cryptocurrency's currently unofficial Banano Name System (BNS)", "main": "main.js", "scripts": { diff --git a/resolver.ts b/resolver.ts index f21ce7e..ac65511 100644 --- a/resolver.ts +++ b/resolver.ts @@ -109,25 +109,33 @@ export class TLDAccount extends Account { export class DomainAccount extends Account { domain?: Domain; + rpc_calls: number; + max_rpc_calls?: number; - constructor(rpc: RPC, address: Address, domain?: Domain) { + constructor(rpc: RPC, address: Address, domain?: Domain, max_rpc_calls?: number) { super(rpc, address); this.domain = domain; + this.max_rpc_calls = max_rpc_calls; + this.rpc_calls = 0; } async crawl(crawl_size = 500): Promise { let open_hash, frontier_hash; try { [open_hash, frontier_hash] = await this.get_open_and_frontier(); + this.rpc_calls += 1; } catch { if (LOG) { console.log("Not yet received"); } return this.domain; } + if (this.rpc_calls === this.max_rpc_calls) throw new Error("Max RPC calls reached"); let head_hash = open_hash; while (true) { const { history } = await this.get_history_from_open(head_hash, crawl_size) as AccountHistoryRawRPC; + this.rpc_calls += 1; + if (this.rpc_calls === this.max_rpc_calls) throw new Error("Max RPC calls reached"); for (const block of history) { const amount = BigInt(block.amount ?? 0); //amount is 0 if change rep only, apparently if (block.height === "1") { @@ -188,10 +196,12 @@ export class DomainAccount extends Account { export class Resolver { readonly rpc: RPC; tld_mapping: Record; + max_rpc_calls_after_tld?: number; - constructor(rpc: RPC, tld_mapping: Record) { + constructor(rpc: RPC, tld_mapping: Record, max_rpc_calls_after_tld?: number) { this.rpc = rpc; this.tld_mapping = tld_mapping; + this.max_rpc_calls_after_tld = max_rpc_calls_after_tld; } async resolve(domain_name: string, tld: string, crawl_size = 500): Promise { @@ -200,11 +210,13 @@ export class Resolver { const tld_account = new TLDAccount(this.rpc, this.tld_mapping[tld]); let domain = await tld_account.get_specific(domain_name, crawl_size); if (!domain) return domain; + let max_rpc_calls_after_tld = this.max_rpc_calls_after_tld; while (true) { const current_domain_account = (domain.history[domain.history.length - 1] as DomainTransfer).to; - const domain_account = new DomainAccount(this.rpc, current_domain_account, domain); + const domain_account = new DomainAccount(this.rpc, current_domain_account, domain, max_rpc_calls_after_tld); const old_l = domain.history.length; domain = await domain_account.crawl(crawl_size); + max_rpc_calls_after_tld -= domain_account.rpc_calls; if (domain.history[domain.history.length - 1].type !== "transfer" || domain.burned || old_l === domain.history.length) break; //if length unchanged, means transfer unreceived } return domain;