@cmts-dev/carmentis-sdk-core 1.2.15 → 1.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,6 +3,6 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
3
3
|
`;if(e.message.length===1)return JSON.stringify({"@timestamp":new Date(e.timestamp).toISOString(),level:e.level===`warning`?`WARN`:e.level.toUpperCase(),message:e.message[0],logger:e.category.join(`.`),properties:e.properties})+`
|
|
4
4
|
`;let t=e.message[0];for(let n=1;n<e.message.length;n++)t+=n&1?JSON.stringify(e.message[n]):e.message[n];return JSON.stringify({"@timestamp":new Date(e.timestamp).toISOString(),level:e.level===`warning`?`WARN`:e.level.toUpperCase(),message:t,logger:e.category.join(`.`),properties:e.properties})+`
|
|
5
5
|
`};let t=e.message===`template`,n=e.properties??`nest:properties`,r;if(typeof e.categorySeparator==`function`)r=e.categorySeparator;else{let t=e.categorySeparator??`.`;r=e=>e.join(t)}let i;if(n===`flatten`)i=e=>e;else if(n.startsWith(`prepend:`)){let e=n.substring(8);if(e===``)throw TypeError(`Invalid properties option: ${JSON.stringify(n)}. It must be of the form "prepend:<prefix>" where <prefix> is a non-empty string.`);i=t=>{let n={};for(let r in t)n[`${e}${r}`]=t[r];return n}}else if(n.startsWith(`nest:`)){let e=n.substring(5);i=t=>({[e]:t})}else throw TypeError(`Invalid properties option: ${JSON.stringify(n)}. It must be "flatten", "prepend:<prefix>", or "nest:<key>".`);let a;return a=t?e=>{if(typeof e.rawMessage==`string`)return e.rawMessage;let t=``;for(let n=0;n<e.rawMessage.length;n++)t+=n%2<1?e.rawMessage[n]:`{}`;return t}:e=>{let t=e.message.length;if(t===1)return e.message[0];let n=``;for(let r=0;r<t;r++)n+=r%2<1?e.message[r]:JSON.stringify(e.message[r]);return n},e=>JSON.stringify({"@timestamp":new Date(e.timestamp).toISOString(),level:e.level===`warning`?`WARN`:e.level.toUpperCase(),message:a(e),logger:r(e.category),...i(e.properties)})+`
|
|
6
|
-
`}zo();var Bo={trace:`background-color: gray; color: white;`,debug:`background-color: gray; color: white;`,info:`background-color: white; color: black;`,warning:`background-color: orange; color: black;`,error:`background-color: red; color: white;`,fatal:`background-color: maroon; color: white;`};function Vo(e){let t=``,n=[];for(let r=0;r<e.message.length;r++)r%2==0?t+=e.message[r]:(t+=`%o`,n.push(e.message[r]));let r=new Date(e.timestamp);return[`%c${`${r.getUTCHours().toString().padStart(2,`0`)}:${r.getUTCMinutes().toString().padStart(2,`0`)}:${r.getUTCSeconds().toString().padStart(2,`0`)}.${r.getUTCMilliseconds().toString().padStart(3,`0`)}`} %c${Do[e.level]}%c %c${e.category.join(`·`)} %c${t}`,`color: gray;`,Bo[e.level],`background-color: default;`,`color: gray;`,`color: default;`,...n]}function Ho(e={}){let t=e.formatter??Vo,n={trace:`debug`,debug:`debug`,info:`info`,warning:`warn`,error:`error`,fatal:`error`,...e.levelMap??{}},r=e.console??globalThis.console,i=e=>{let i=t(e),a=n[e.level];if(a===void 0)throw TypeError(`Invalid log level: ${e.level}.`);if(typeof i==`string`){let e=i.replace(/\r?\n$/,``);r[a](e)}else r[a](...i)};if(!e.nonBlocking)return i;let a=e.nonBlocking===!0?{}:e.nonBlocking,o=a.bufferSize??100,s=a.flushInterval??100,c=[],l=null,u=!1,d=!1,f=o*2;function p(){if(c.length===0)return;let e=c.splice(0);for(let t of e)try{i(t)}catch{}}function m(){d||(d=!0,setTimeout(()=>{d=!1,p()},0))}function h(){l!==null||u||(l=setInterval(()=>{p()},s))}let g=e=>{u||(c.length>=f&&c.shift(),c.push(e),c.length>=o?m():l===null&&h())};return g[Symbol.dispose]=()=>{u=!0,l!==null&&(clearInterval(l),l=null),p()},g}var Uo=null,Wo=new Set,Go=new Set,Ko=new Set;function qo(e){return e.category.length===0||e.category.length===1&&e.category[0]===`logtape`||e.category.length===2&&e.category[0]===`logtape`&&e.category[1]===`meta`}function Jo(e){if(Uo!=null&&!e.reset)throw new es(`Already configured; if you want to reset, turn on the reset flag.`);if(Ko.size>0)throw new es(`Previously configured async disposables are still active. Use configure() instead or explicitly dispose them using dispose().`);Xo();try{Yo(e,!1)}catch(e){throw e instanceof es&&Xo(),e}}function Yo(e,t){Uo=e;let n=!1,r=new Set;for(let t of e.loggers){qo(t)&&(n=!0);let i=Array.isArray(t.category)?JSON.stringify(t.category):JSON.stringify([t.category]);if(r.has(i))throw new es(`Duplicate logger configuration for category: ${i}. Each category can only be configured once.`);r.add(i);let a=fo.getLogger(t.category);for(let n of t.sinks??[]){let t=e.sinks[n];if(!t)throw new es(`Sink not found: ${n}.`);a.sinks.push(t)}a.parentSinks=t.parentSinks??`inherit`,t.lowestLevel!==void 0&&(a.lowestLevel=t.lowestLevel);for(let n of t.filters??[]){let t=e.filters?.[n];if(t===void 0)throw new es(`Filter not found: ${n}.`);a.filters.push(ao(t))}Wo.add(a)}fo.getLogger().contextLocalStorage=e.contextLocalStorage;for(let n of Object.values(e.sinks)){if(Symbol.asyncDispose in n)if(t)Ko.add(n);else throw new es(`Async disposables cannot be used with configureSync().`);Symbol.dispose in n&&Go.add(n)}for(let n of Object.values(e.filters??{}))if(!(n==null||typeof n==`string`)){if(Symbol.asyncDispose in n)if(t)Ko.add(n);else throw new es(`Async disposables cannot be used with configureSync().`);Symbol.dispose in n&&Go.add(n)}if(typeof globalThis.EdgeRuntime!=`string`&&`process`in globalThis&&!(`Deno`in globalThis)){let e=globalThis.process,n=e?.on;typeof n==`function`&&n.call(e,`exit`,t?Qo:$o)}else addEventListener(`unload`,t?Qo:$o);let i=fo.getLogger([`logtape`,`meta`]);n||i.sinks.push(Ho()),i.info(`LogTape loggers are configured. Note that LogTape itself uses the meta logger, which has category {metaLoggerCategory}. The meta logger purposes to log internal errors such as sink exceptions. If you are seeing this message, the meta logger is automatically configured. It's recommended to configure the meta logger with a separate sink so that you can easily notice if logging itself fails or is misconfigured. To turn off this message, configure the meta logger with higher log levels than {dismissLevel}. See also <https://logtape.org/manual/categories#meta-logger>.`,{metaLoggerCategory:[`logtape`,`meta`],dismissLevel:`info`})}function Xo(){$o(),Zo()}function Zo(){let e=fo.getLogger([]);e.resetDescendants(),delete e.contextLocalStorage,Wo.clear(),Uo=null}async function Qo(){$o();let e=[];for(let t of Ko)e.push(t[Symbol.asyncDispose]()),Ko.delete(t);await Promise.all(e)}function $o(){for(let e of Go)e[Symbol.dispose]();Go.clear()}var es=class extends Error{constructor(e){super(e),this.name=`ConfigureError`}},k=class{static getLogger(e=[]){return lo([`@cmts-dev/carmentis-sdk-core`,...e])}static getProviderLogger(){return this.getLogger([`provider`])}static getMemoryProviderLogger(){return this.getLogger([`provider`,`memory`])}static async enableLogs(){this.enableLogsSync()}static enableLogsSync(){Jo({sinks:{console:Ho()},loggers:[{category:`@cmts-dev/carmentis-sdk-core`,lowestLevel:`debug`,sinks:[`console`]}]})}static getNetworkProviderLogger(){return this.getLogger([`provider`,`network`])}static getMicroblockLogger(){return this.getLogger([`microblock`])}static getVirtualBlockchainLogger(){return this.getLogger([`virtual-blockchain`])}static getInternalStateUpdaterLogger(e){return this.getLogger([`internal-state-updater`,e])}static getAbstractProviderLogger(e){return this.getLogger([`provider`,e])}static getMicroblockStructureCheckerLogger(){return this.getLogger([`microblock`,`structure-checker`])}},A={numberToHexa:ns,truncateString:rs,truncateStringMiddle:is,getNullHash:as,getTimestampInSeconds:os,encodeDay:cs,decodeDay:ls,dateToDay:us,dayToDate:ds,addDaysToTimestamp:fs,timestampDifferenceInDays:ps,bufferToUint8Array:ms,binaryToHexa:hs,binaryFromHexa:gs,binaryFrom:_s,binaryIsEqual:vs,binaryCompare:ys,intToByteArray:bs,byteArrayToInt:xs,getGenesisEpochInTimestamp:ss,jsonPrettify:Ss},ts=k.getLogger([`utils`]);function ns(e,t){return e.toString(16).toUpperCase().padStart(t||1,`0`)}function rs(e,t){return e.slice(0,t)+(e.length>t?`(...)`:``)}function is(e,t,n){return e.length<=t+n?e:e.slice(0,t)+`(...)`+e.slice(e.length-n)}function as(){return new Uint8Array(32)}function os(){return Math.floor(Date.now()/1e3)}function ss(){return 0}function cs(e,t,n){return e<<9|t<<5|n}function ls(e){let t=e&31,n=e>>5&15;return[e>>>9,n,t]}function us(e){let t=e.getDate(),n=e.getMonth()+1;return cs(e.getFullYear(),n,t)}function ds(e){let[t,n,r]=ls(e);return new Date(Date.UTC(t,n-1,r))}function fs(e,t){let n=new Date(e*1e3);return Math.floor(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()+t)/1e3)}function ps(e,t){return Math.round((t-e)/86400)}function ms(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)}function hs(e){return[...e].map(e=>e.toString(16).toUpperCase().padStart(2,`0`)).join(``)}function gs(e){if(typeof e!=`string`)throw new i(`Expecting hex-string value: received ${typeof e}`);if(!e.match(/^([\da-f]{2})*$/gi))throw new i(`Expecting hex-string value: received '${e}'`);let t=(e.match(/../g)||[]).map(e=>parseInt(e,16));return new Uint8Array(t)}function _s(...e){let t=Array(e.length),n=Array(e.length),r=0;e.forEach((i,a)=>{let o=ro.getType(i);switch(o){case 4:n[a]=new Uint8Array(bs(i));break;case 3:n[a]=Qa.encode(i);break;case 12:n[a]=i;break;default:{let t=e.length,n=e.map(e=>Pn[ro.getType(e)]).join(`, `);throw Error(`unsupported type '${Pn[o]}' for Utils.binaryFrom(): got ${t} arguments of type ${n}`)}}t[a]=r,r+=n[a].length});let i=new Uint8Array(r);return t.forEach((e,t)=>{i.set(n[t],e)}),i}function vs(e,t){if(!(e instanceof Uint8Array))throw Error(`Excepted Uint8array, got ${typeof e}`);if(!(t instanceof Uint8Array))throw Error(`Excepted Uint8array, got ${typeof t}`);let n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);if(n.byteLength!==r.byteLength)return ts.debug(`Comparison result is false (distinct length): ${n.byteLength} != ${r.byteLength}`),!1;for(let e=0;e<n.byteLength;e++)if(n[e]!==r[e])return ts.debug(`Comparison result is false (distinct value): ${n[e]} != ${r[e]}`),!1;return ts.debug(`Comparison result is true`),!0}function ys(e,t){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!=t.length)throw`cannot compare`;for(let n in e)if(e[n]<t[n])return-1;else if(e[n]>t[n])return 1;return 0}function bs(e,t=1){let n=[],r=e,i=t;for(;r>0||i>0;)n.push(r&255),r=Math.floor(r/256),i--;return n.reverse()}function xs(e){return e.reduce((e,t)=>e*256+t,0)}function Ss(e,t=2){return JSON.stringify(e,(e,t)=>{if(t instanceof Uint8Array){let e=t.length>32,n=hs(t.slice(0,e?24:32)),r=e?`(...)`+hs(t.slice(-8)):``;return`Uint8Array[${t.length}]:${n}${r}`}return t},t)}var Cs=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function ws(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Ts(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Es(e,...t){if(!ws(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function Ds(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);Ts(e.outputLen),Ts(e.blockLen)}function Os(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function ks(e,t){Es(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function As(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function js(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ms(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Ns(e,t){return e<<32-t|e>>>t}function j(e,t){return e<<t|e>>>32-t>>>0}var Ps=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Fs(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Is(e){for(let t=0;t<e.length;t++)e[t]=Fs(e[t]);return e}var Ls=Ps?e=>e:Is,Rs=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,zs={_0:48,_9:57,A:65,F:70,a:97,f:102};function Bs(e){if(e>=zs._0&&e<=zs._9)return e-zs._0;if(e>=zs.A&&e<=zs.F)return e-(zs.A-10);if(e>=zs.a&&e<=zs.f)return e-(zs.a-10)}function Vs(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(Rs)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=Bs(e.charCodeAt(i)),a=Bs(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Hs(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function Us(e){return typeof e==`string`&&(e=Hs(e)),Es(e),e}function Ws(e){return typeof e==`string`&&(e=Hs(e)),Es(e),e}function Gs(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Es(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function Ks(e,t){if(t!==void 0&&{}.toString.call(t)!==`[object Object]`)throw Error(`options should be object or undefined`);return Object.assign(e,t)}var qs=class{};function Js(e){let t=t=>e().update(Us(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ys(e){let t=(t,n)=>e(n).update(Us(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Xs(e=32){if(Cs&&typeof Cs.getRandomValues==`function`)return Cs.getRandomValues(new Uint8Array(e));if(Cs&&typeof Cs.randomBytes==`function`)return Uint8Array.from(Cs.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var Zs={getBytes:Qs,getInteger:$s,getKey256:ec};function Qs(e){return Xs(e)}function $s(e){let t=Qs(6),n=0;for(let e=0;e<6;e++)n=n*256+t[e];return Math.floor(n/2**48*e)}function ec(){let e=Qs(32);return A.binaryToHexa(e)}function tc(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function nc(e,t,n){return e&t^~e&n}function rc(e,t,n){return e&t^e&n^t&n}var ic=class extends qs{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=Ms(this.buffer)}update(e){Os(this),e=Us(e),Es(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=Ms(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Os(this),ks(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,js(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;tc(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=Ms(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},ac=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),oc=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),sc=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),cc=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),lc=BigInt(2**32-1),uc=BigInt(32);function dc(e,t=!1){return t?{h:Number(e&lc),l:Number(e>>uc&lc)}:{h:Number(e>>uc&lc)|0,l:Number(e&lc)|0}}function fc(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=dc(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}var pc=(e,t,n)=>e>>>n,mc=(e,t,n)=>e<<32-n|t>>>n,hc=(e,t,n)=>e>>>n|t<<32-n,gc=(e,t,n)=>e<<32-n|t>>>n,_c=(e,t,n)=>e<<64-n|t>>>n-32,vc=(e,t,n)=>e>>>n-32|t<<64-n,yc=(e,t,n)=>e<<n|t>>>32-n,bc=(e,t,n)=>t<<n|e>>>32-n,xc=(e,t,n)=>t<<n-32|e>>>64-n,Sc=(e,t,n)=>e<<n-32|t>>>64-n;function Cc(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var wc=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Tc=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Ec=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Dc=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,Oc=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),kc=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,Ac=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),jc=new Uint32Array(64),Mc=class extends ic{constructor(e=32){super(64,e,8,!1),this.A=ac[0]|0,this.B=ac[1]|0,this.C=ac[2]|0,this.D=ac[3]|0,this.E=ac[4]|0,this.F=ac[5]|0,this.G=ac[6]|0,this.H=ac[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)jc[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=jc[e-15],n=jc[e-2],r=Ns(t,7)^Ns(t,18)^t>>>3;jc[e]=(Ns(n,17)^Ns(n,19)^n>>>10)+jc[e-7]+r+jc[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=Ns(o,6)^Ns(o,11)^Ns(o,25),u=l+t+nc(o,s,c)+Ac[e]+jc[e]|0,d=(Ns(n,2)^Ns(n,13)^Ns(n,22))+rc(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){js(jc)}destroy(){this.set(0,0,0,0,0,0,0,0),js(this.buffer)}},Nc=class extends Mc{constructor(){super(28),this.A=oc[0]|0,this.B=oc[1]|0,this.C=oc[2]|0,this.D=oc[3]|0,this.E=oc[4]|0,this.F=oc[5]|0,this.G=oc[6]|0,this.H=oc[7]|0}},Pc=fc(`0x428a2f98d728ae22.0x7137449123ef65cd.0xb5c0fbcfec4d3b2f.0xe9b5dba58189dbbc.0x3956c25bf348b538.0x59f111f1b605d019.0x923f82a4af194f9b.0xab1c5ed5da6d8118.0xd807aa98a3030242.0x12835b0145706fbe.0x243185be4ee4b28c.0x550c7dc3d5ffb4e2.0x72be5d74f27b896f.0x80deb1fe3b1696b1.0x9bdc06a725c71235.0xc19bf174cf692694.0xe49b69c19ef14ad2.0xefbe4786384f25e3.0x0fc19dc68b8cd5b5.0x240ca1cc77ac9c65.0x2de92c6f592b0275.0x4a7484aa6ea6e483.0x5cb0a9dcbd41fbd4.0x76f988da831153b5.0x983e5152ee66dfab.0xa831c66d2db43210.0xb00327c898fb213f.0xbf597fc7beef0ee4.0xc6e00bf33da88fc2.0xd5a79147930aa725.0x06ca6351e003826f.0x142929670a0e6e70.0x27b70a8546d22ffc.0x2e1b21385c26c926.0x4d2c6dfc5ac42aed.0x53380d139d95b3df.0x650a73548baf63de.0x766a0abb3c77b2a8.0x81c2c92e47edaee6.0x92722c851482353b.0xa2bfe8a14cf10364.0xa81a664bbc423001.0xc24b8b70d0f89791.0xc76c51a30654be30.0xd192e819d6ef5218.0xd69906245565a910.0xf40e35855771202a.0x106aa07032bbd1b8.0x19a4c116b8d2d0c8.0x1e376c085141ab53.0x2748774cdf8eeb99.0x34b0bcb5e19b48a8.0x391c0cb3c5c95a63.0x4ed8aa4ae3418acb.0x5b9cca4f7763e373.0x682e6ff3d6b2b8a3.0x748f82ee5defb2fc.0x78a5636f43172f60.0x84c87814a1f0ab72.0x8cc702081a6439ec.0x90befffa23631e28.0xa4506cebde82bde9.0xbef9a3f7b2c67915.0xc67178f2e372532b.0xca273eceea26619c.0xd186b8c721c0c207.0xeada7dd6cde0eb1e.0xf57d4f7fee6ed178.0x06f067aa72176fba.0x0a637dc5a2c898a6.0x113f9804bef90dae.0x1b710b35131c471b.0x28db77f523047d84.0x32caab7b40c72493.0x3c9ebe0a15c9bebc.0x431d67c49c100d4c.0x4cc5d4becb3e42b6.0x597f299cfc657e2a.0x5fcb6fab3ad6faec.0x6c44198c4a475817`.split(`.`).map(e=>BigInt(e))),Fc=Pc[0],Ic=Pc[1],Lc=new Uint32Array(80),Rc=new Uint32Array(80),zc=class extends ic{constructor(e=64){super(128,e,16,!1),this.Ah=cc[0]|0,this.Al=cc[1]|0,this.Bh=cc[2]|0,this.Bl=cc[3]|0,this.Ch=cc[4]|0,this.Cl=cc[5]|0,this.Dh=cc[6]|0,this.Dl=cc[7]|0,this.Eh=cc[8]|0,this.El=cc[9]|0,this.Fh=cc[10]|0,this.Fl=cc[11]|0,this.Gh=cc[12]|0,this.Gl=cc[13]|0,this.Hh=cc[14]|0,this.Hl=cc[15]|0}get(){let{Ah:e,Al:t,Bh:n,Bl:r,Ch:i,Cl:a,Dh:o,Dl:s,Eh:c,El:l,Fh:u,Fl:d,Gh:f,Gl:p,Hh:m,Hl:h}=this;return[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h]}set(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=r|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=s|0,this.Eh=c|0,this.El=l|0,this.Fh=u|0,this.Fl=d|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let n=0;n<16;n++,t+=4)Lc[n]=e.getUint32(t),Rc[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=Lc[e-15]|0,n=Rc[e-15]|0,r=hc(t,n,1)^hc(t,n,8)^pc(t,n,7),i=gc(t,n,1)^gc(t,n,8)^mc(t,n,7),a=Lc[e-2]|0,o=Rc[e-2]|0,s=hc(a,o,19)^_c(a,o,61)^pc(a,o,6),c=Ec(i,gc(a,o,19)^vc(a,o,61)^mc(a,o,6),Rc[e-7],Rc[e-16]);Lc[e]=Dc(c,r,s,Lc[e-7],Lc[e-16])|0,Rc[e]=c|0}let{Ah:n,Al:r,Bh:i,Bl:a,Ch:o,Cl:s,Dh:c,Dl:l,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:h,Hh:g,Hl:_}=this;for(let e=0;e<80;e++){let t=hc(u,d,14)^hc(u,d,18)^_c(u,d,41),v=gc(u,d,14)^gc(u,d,18)^vc(u,d,41),y=u&f^~u&m,b=d&p^~d&h,ee=Oc(_,v,b,Ic[e],Rc[e]),x=kc(ee,g,t,y,Fc[e],Lc[e]),te=ee|0,ne=hc(n,r,28)^_c(n,r,34)^_c(n,r,39),re=gc(n,r,28)^vc(n,r,34)^vc(n,r,39),ie=n&i^n&o^i&o,ae=r&a^r&s^a&s;g=m|0,_=h|0,m=f|0,h=p|0,f=u|0,p=d|0,{h:u,l:d}=Cc(c|0,l|0,x|0,te|0),c=o|0,l=s|0,o=i|0,s=a|0,i=n|0,a=r|0;let oe=wc(te,re,ae);n=Tc(oe,x,ne,ie),r=oe|0}({h:n,l:r}=Cc(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=Cc(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=Cc(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=Cc(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=Cc(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=Cc(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=Cc(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=Cc(this.Hh|0,this.Hl|0,g|0,_|0),this.set(n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}roundClean(){js(Lc,Rc)}destroy(){js(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Bc=class extends zc{constructor(){super(48),this.Ah=sc[0]|0,this.Al=sc[1]|0,this.Bh=sc[2]|0,this.Bl=sc[3]|0,this.Ch=sc[4]|0,this.Cl=sc[5]|0,this.Dh=sc[6]|0,this.Dl=sc[7]|0,this.Eh=sc[8]|0,this.El=sc[9]|0,this.Fh=sc[10]|0,this.Fl=sc[11]|0,this.Gh=sc[12]|0,this.Gl=sc[13]|0,this.Hh=sc[14]|0,this.Hl=sc[15]|0}},Vc=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Hc=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Uc=class extends zc{constructor(){super(28),this.Ah=Vc[0]|0,this.Al=Vc[1]|0,this.Bh=Vc[2]|0,this.Bl=Vc[3]|0,this.Ch=Vc[4]|0,this.Cl=Vc[5]|0,this.Dh=Vc[6]|0,this.Dl=Vc[7]|0,this.Eh=Vc[8]|0,this.El=Vc[9]|0,this.Fh=Vc[10]|0,this.Fl=Vc[11]|0,this.Gh=Vc[12]|0,this.Gl=Vc[13]|0,this.Hh=Vc[14]|0,this.Hl=Vc[15]|0}},Wc=class extends zc{constructor(){super(32),this.Ah=Hc[0]|0,this.Al=Hc[1]|0,this.Bh=Hc[2]|0,this.Bl=Hc[3]|0,this.Ch=Hc[4]|0,this.Cl=Hc[5]|0,this.Dh=Hc[6]|0,this.Dl=Hc[7]|0,this.Eh=Hc[8]|0,this.El=Hc[9]|0,this.Fh=Hc[10]|0,this.Fl=Hc[11]|0,this.Gh=Hc[12]|0,this.Gl=Hc[13]|0,this.Hh=Hc[14]|0,this.Hl=Hc[15]|0}},Gc=Js(()=>new Mc),Kc=Js(()=>new Nc),qc=Js(()=>new zc),Jc=Js(()=>new Bc),Yc=Js(()=>new Wc),Xc=Js(()=>new Uc),Zc=qc,Qc={sha256AsBinary:$c,sha256:el,sha512AsBinary:tl,sha512:nl};k.getLogger([`utils`,`crypto`]);function $c(e){if(!(e instanceof Uint8Array))throw new m(`Argument passed to compute sha256 is not an instance of Uint8Array: got ${typeof e}`);return Gc(e)}function el(e){return A.binaryToHexa($c(e))}function tl(e){if(!(e instanceof Uint8Array))throw`Argument passed to compute sha512 is not an instance of Uint8Array`;return Zc(e)}function nl(e){return A.binaryToHexa(tl(e))}function rl(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function il(e){if(typeof e!=`boolean`)throw Error(`boolean expected, not ${e}`)}function al(e,...t){if(!rl(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function ol(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function sl(e,t){al(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function cl(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function ll(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ul(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function dl(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var fl=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,pl=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ml=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function hl(e){if(al(e),pl)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ml[e[n]];return t}var gl={_0:48,_9:57,A:65,F:70,a:97,f:102};function _l(e){if(e>=gl._0&&e<=gl._9)return e-gl._0;if(e>=gl.A&&e<=gl.F)return e-(gl.A-10);if(e>=gl.a&&e<=gl.f)return e-(gl.a-10)}function vl(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(pl)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=_l(e.charCodeAt(i)),a=_l(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function yl(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function bl(e){return new TextDecoder().decode(e)}function xl(e){if(typeof e==`string`)e=yl(e);else if(rl(e))e=Ol(e);else throw Error(`Uint8Array expected, got `+typeof e);return e}function Sl(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Cl=(e,t)=>{function n(n,...r){if(al(n),!fl)throw Error(`Non little-endian hardware is not yet supported`);if(e.nonceLength!==void 0){let t=r[0];if(!t)throw Error(`nonce / iv required`);e.varSizeNonce?al(t):al(t,e.nonceLength)}let i=e.tagLength;i&&r[1]!==void 0&&al(r[1]);let a=t(n,...r),o=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);al(t)}},s=!1;return{encrypt(e,t){if(s)throw Error(`cannot encrypt() twice with same key + nonce`);return s=!0,al(e),o(a.encrypt.length,t),a.encrypt(e,t)},decrypt(e,t){if(al(e),i&&e.length<i)throw Error(`invalid ciphertext length: smaller than tagLength=`+i);return o(a.decrypt.length,t),a.decrypt(e,t)}}}return Object.assign(n,e),n};function wl(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error(`invalid output length, expected `+e+`, got: `+t.length);if(n&&!Dl(t))throw Error(`invalid output, must be aligned`);return t}function Tl(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function El(e,t,n){il(n);let r=new Uint8Array(16),i=dl(r);return Tl(i,0,BigInt(t),n),Tl(i,8,BigInt(e),n),r}function Dl(e){return e.byteOffset%4==0}function Ol(e){return Uint8Array.from(e)}var kl=16,Al=new Uint8Array(16),jl=ll(Al),Ml=225,Nl=(e,t,n,r)=>{let i=r&1;return{s3:n<<31|r>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^Ml<<24&-(i&1)}},Pl=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255|0;function Fl(e){e.reverse();let t=e[15]&1,n=0;for(let t=0;t<e.length;t++){let r=e[t];e[t]=r>>>1|n,n=(r&1)<<7}return e[0]^=-t&225,e}var Il=e=>e>64*1024?8:e>1024?4:2,Ll=class{constructor(e,t){this.blockLen=kl,this.outputLen=kl,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=xl(e),al(e,16);let n=dl(e),r=n.getUint32(0,!1),i=n.getUint32(4,!1),a=n.getUint32(8,!1),o=n.getUint32(12,!1),s=[];for(let e=0;e<128;e++)s.push({s0:Pl(r),s1:Pl(i),s2:Pl(a),s3:Pl(o)}),{s0:r,s1:i,s2:a,s3:o}=Nl(r,i,a,o);let c=Il(t||1024);if(![1,2,4,8].includes(c))throw Error(`ghash: invalid window size, expected 2, 4 or 8`);this.W=c;let l=128/c,u=this.windowSize=2**c,d=[];for(let e=0;e<l;e++)for(let t=0;t<u;t++){let n=0,r=0,i=0,a=0;for(let o=0;o<c;o++){if(!(t>>>c-o-1&1))continue;let{s0:l,s1:u,s2:d,s3:f}=s[c*e+o];n^=l,r^=u,i^=d,a^=f}d.push({s0:n,s1:r,s2:i,s3:a})}this.t=d}_updateBlock(e,t,n,r){e^=this.s0,t^=this.s1,n^=this.s2,r^=this.s3;let{W:i,t:a,windowSize:o}=this,s=0,c=0,l=0,u=0,d=(1<<i)-1,f=0;for(let p of[e,t,n,r])for(let e=0;e<4;e++){let t=p>>>8*e&255;for(let e=8/i-1;e>=0;e--){let n=t>>>i*e&d,{s0:r,s1:p,s2:m,s3:h}=a[f*o+n];s^=r,c^=p,l^=m,u^=h,f+=1}}this.s0=s,this.s1=c,this.s2=l,this.s3=u}update(e){ol(this),e=xl(e),al(e);let t=ll(e),n=Math.floor(e.length/kl),r=e.length%kl;for(let e=0;e<n;e++)this._updateBlock(t[e*4+0],t[e*4+1],t[e*4+2],t[e*4+3]);return r&&(Al.set(e.subarray(n*kl)),this._updateBlock(jl[0],jl[1],jl[2],jl[3]),ul(jl)),this}destroy(){let{t:e}=this;for(let t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){ol(this),sl(e,this),this.finished=!0;let{s0:t,s1:n,s2:r,s3:i}=this,a=ll(e);return a[0]=t,a[1]=n,a[2]=r,a[3]=i,e}digest(){let e=new Uint8Array(kl);return this.digestInto(e),this.destroy(),e}},Rl=class extends Ll{constructor(e,t){e=xl(e),al(e);let n=Fl(Ol(e));super(n,t),ul(n)}update(e){e=xl(e),ol(this);let t=ll(e),n=e.length%kl,r=Math.floor(e.length/kl);for(let e=0;e<r;e++)this._updateBlock(Pl(t[e*4+3]),Pl(t[e*4+2]),Pl(t[e*4+1]),Pl(t[e*4+0]));return n&&(Al.set(e.subarray(r*kl)),this._updateBlock(Pl(jl[3]),Pl(jl[2]),Pl(jl[1]),Pl(jl[0])),ul(jl)),this}digestInto(e){ol(this),sl(e,this),this.finished=!0;let{s0:t,s1:n,s2:r,s3:i}=this,a=ll(e);return a[0]=t,a[1]=n,a[2]=r,a[3]=i,e.reverse()}};function zl(e){let t=(t,n)=>e(n,t.length).update(xl(t)).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(t,n)=>e(t,n),t}var Bl=zl((e,t)=>new Ll(e,t));zl((e,t)=>new Rl(e,t));var Vl=16,Hl=4,Ul=new Uint8Array(Vl),Wl=283;function Gl(e){return e<<1^Wl&-(e>>7)}function Kl(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=Gl(e);return n}var ql=(()=>{let e=new Uint8Array(256);for(let t=0,n=1;t<256;t++,n^=Gl(n))e[t]=n;let t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=(r^r>>4^r>>5^r>>6^r>>7^99)&255}return ul(e),t})(),Jl=e=>e<<24|e>>>8,Yl=e=>e<<8|e>>>24;function Xl(e,t){if(e.length!==256)throw Error(`Wrong sbox length`);let n=new Uint32Array(256).map((n,r)=>t(e[r])),r=n.map(Yl),i=r.map(Yl),a=i.map(Yl),o=new Uint32Array(256*256),s=new Uint32Array(256*256),c=new Uint16Array(256*256);for(let t=0;t<256;t++)for(let l=0;l<256;l++){let u=t*256+l;o[u]=n[t]^r[l],s[u]=i[t]^a[l],c[u]=e[t]<<8|e[l]}return{sbox:e,sbox2:c,T0:n,T1:r,T2:i,T3:a,T01:o,T23:s}}var Zl=Xl(ql,e=>Kl(e,3)<<24|e<<16|e<<8|Kl(e,2)),Ql=(()=>{let e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Gl(n))e[t]=n;return e})();function $l(e){al(e);let t=e.length;if(![16,24,32].includes(t))throw Error(`aes: invalid key size, should be 16, 24 or 32, got `+t);let{sbox2:n}=Zl,r=[];Dl(e)||r.push(e=Ol(e));let i=ll(e),a=i.length,o=e=>tu(n,e,e,e,e),s=new Uint32Array(t+28);s.set(i);for(let e=a;e<s.length;e++){let t=s[e-1];e%a===0?t=o(Jl(t))^Ql[e/a-1]:a>6&&e%a===4&&(t=o(t)),s[e]=s[e-a]^t}return ul(...r),s}function eu(e,t,n,r,i,a){return e[n<<8&65280|r>>>8&255]^t[i>>>8&65280|a>>>24&255]}function tu(e,t,n,r,i){return e[t&255|n&65280]|e[r>>>16&255|i>>>16&65280]<<16}function nu(e,t,n,r,i){let{sbox2:a,T01:o,T23:s}=Zl,c=0;t^=e[c++],n^=e[c++],r^=e[c++],i^=e[c++];let l=e.length/4-2;for(let a=0;a<l;a++){let a=e[c++]^eu(o,s,t,n,r,i),l=e[c++]^eu(o,s,n,r,i,t),u=e[c++]^eu(o,s,r,i,t,n),d=e[c++]^eu(o,s,i,t,n,r);t=a,n=l,r=u,i=d}return{s0:e[c++]^tu(a,t,n,r,i),s1:e[c++]^tu(a,n,r,i,t),s2:e[c++]^tu(a,r,i,t,n),s3:e[c++]^tu(a,i,t,n,r)}}function ru(e,t,n,r,i){al(n,Vl),al(r),i=wl(r.length,i);let a=n,o=ll(a),s=dl(a),c=ll(r),l=ll(i),u=t?0:12,d=r.length,f=s.getUint32(u,t),{s0:p,s1:m,s2:h,s3:g}=nu(e,o[0],o[1],o[2],o[3]);for(let n=0;n+4<=c.length;n+=4)l[n+0]=c[n+0]^p,l[n+1]=c[n+1]^m,l[n+2]=c[n+2]^h,l[n+3]=c[n+3]^g,f=f+1>>>0,s.setUint32(u,f,t),{s0:p,s1:m,s2:h,s3:g}=nu(e,o[0],o[1],o[2],o[3]);let _=Vl*Math.floor(c.length/Hl);if(_<d){let e=new Uint32Array([p,m,h,g]),t=cl(e);for(let e=_,n=0;e<d;e++,n++)i[e]=r[e]^t[n];ul(e)}return i}function iu(e,t,n,r,i){let a=i?i.length:0,o=e.create(n,r.length+a);i&&o.update(i);let s=El(8*r.length,8*a,t);o.update(r),o.update(s);let c=o.digest();return ul(s),c}var au=Cl({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,n){if(t.length<8)throw Error(`aes/gcm: invalid nonce length`);function r(e,t,r){let i=iu(Bl,!1,e,r,n);for(let e=0;e<t.length;e++)i[e]^=t[e];return i}function i(){let n=$l(e),r=Ul.slice(),i=Ul.slice();if(ru(n,!1,i,i,r),t.length===12)i.set(t);else{let e=Ul.slice();Tl(dl(e),8,BigInt(t.length*8),!1);let n=Bl.create(r).update(t).update(e);n.digestInto(i),n.destroy()}return{xk:n,authKey:r,counter:i,tagMask:ru(n,!1,i,Ul)}}return{encrypt(e){let{xk:t,authKey:n,counter:a,tagMask:o}=i(),s=new Uint8Array(e.length+16),c=[t,n,a,o];Dl(e)||c.push(e=Ol(e)),ru(t,!1,a,e,s.subarray(0,e.length));let l=r(n,o,s.subarray(0,s.length-16));return c.push(l),s.set(l,e.length),ul(...c),s},decrypt(e){let{xk:t,authKey:n,counter:a,tagMask:o}=i(),s=[t,n,o,a];Dl(e)||s.push(e=Ol(e));let c=e.subarray(0,-16),l=e.subarray(-16),u=r(n,o,c);if(s.push(u),!Sl(u,l))throw Error(`aes/gcm: invalid ghash tag`);let d=ru(t,!1,a,c);return ul(...s),d}}}),ou=k.getLogger([`crypto`,`aes-gcm`]),su={encryptGcm:cu,decryptGcm:lu};function cu(e,t,n){return au(e,n).encrypt(t)}function lu(e,t,n){try{return au(e,n).decrypt(t)}catch(e){throw ou.warn(`{e}`,{e}),new f}}var uu=BigInt(0),du=BigInt(1),fu=BigInt(2),pu=BigInt(7),mu=BigInt(256),hu=BigInt(113),gu=[],_u=[],vu=[];for(let e=0,t=du,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],gu.push(2*(5*r+n)),_u.push((e+1)*(e+2)/2%64);let i=uu;for(let e=0;e<7;e++)t=(t<<du^(t>>pu)*hu)%mu,t&fu&&(i^=du<<(du<<BigInt(e))-du);vu.push(i)}var yu=fc(vu,!0),bu=yu[0],xu=yu[1],Su=(e,t,n)=>n>32?xc(e,t,n):yc(e,t,n),Cu=(e,t,n)=>n>32?Sc(e,t,n):bc(e,t,n);function wu(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Su(a,o,1)^n[r],c=Cu(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=_u[n],a=Su(t,i,r),o=Cu(t,i,r),s=gu[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=bu[r],e[1]^=xu[r]}js(n)}var Tu=class e extends qs{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,Ts(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=As(this.state)}clone(){return this._cloneInto()}keccak(){Ls(this.state32),wu(this.state32,this.rounds),Ls(this.state32),this.posOut=0,this.pos=0}update(e){Os(this),e=Us(e),Es(e);let{blockLen:t,state:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){Os(this,!1),Es(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return Ts(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ks(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,js(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},Eu=(e,t,n)=>Js(()=>new Tu(t,e,n)),Du=Eu(6,144,224/8),Ou=Eu(6,136,256/8),ku=Eu(6,104,384/8),Au=Eu(6,72,512/8);Eu(1,144,224/8),Eu(1,136,256/8),Eu(1,104,384/8),Eu(1,72,512/8);var ju=(e,t,n)=>Ys((r={})=>new Tu(t,e,r.dkLen===void 0?n:r.dkLen,!0)),Mu=ju(31,168,128/8),Nu=ju(31,136,256/8),Pu=Es,Fu=Xs;function Iu(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function Lu(...e){let t=e=>typeof e==`number`?e:e.bytesLen,n=e.reduce((e,n)=>e+t(n),0);return{bytesLen:n,encode:r=>{let i=new Uint8Array(n);for(let n=0,a=0;n<e.length;n++){let o=e[n],s=t(o),c=typeof o==`number`?r[n]:o.encode(r[n]);Pu(c,s),i.set(c,a),typeof o!=`number`&&c.fill(0),a+=s}return i},decode:r=>{Pu(r,n);let i=[];for(let n of e){let e=t(n),a=r.subarray(0,e);i.push(typeof n==`number`?a:n.decode(a)),r=r.subarray(e)}return i}}}function Ru(e,t){let n=t*e.bytesLen;return{bytesLen:n,encode:r=>{if(r.length!==t)throw Error(`vecCoder.encode: wrong length=${r.length}. Expected: ${t}`);let i=new Uint8Array(n);for(let t=0,n=0;t<r.length;t++){let a=e.encode(r[t]);i.set(a,n),a.fill(0),n+=a.length}return i},decode:t=>{Pu(t,n);let r=[];for(let n=0;n<t.length;n+=e.bytesLen)r.push(e.decode(t.subarray(n,n+e.bytesLen)));return r}}}function zu(...e){for(let t of e)if(Array.isArray(t))for(let e of t)e.fill(0);else t.fill(0)}function Bu(e){return(1<<e)-1}var Vu=new Uint8Array;function Hu(e,t=Vu){if(Pu(e),Pu(t),t.length>255)throw Error(`context should be less than 255 bytes`);return Gs(new Uint8Array([0,t.length]),t,e)}var Uu={"SHA2-256":{oid:Vs(`0609608648016503040201`),hash:Gc},"SHA2-384":{oid:Vs(`0609608648016503040202`),hash:Jc},"SHA2-512":{oid:Vs(`0609608648016503040203`),hash:qc},"SHA2-224":{oid:Vs(`0609608648016503040204`),hash:Kc},"SHA2-512/224":{oid:Vs(`0609608648016503040205`),hash:Xc},"SHA2-512/256":{oid:Vs(`0609608648016503040206`),hash:Yc},"SHA3-224":{oid:Vs(`0609608648016503040207`),hash:Du},"SHA3-256":{oid:Vs(`0609608648016503040208`),hash:Ou},"SHA3-384":{oid:Vs(`0609608648016503040209`),hash:ku},"SHA3-512":{oid:Vs(`060960864801650304020A`),hash:Au},"SHAKE-128":{oid:Vs(`060960864801650304020B`),hash:e=>Mu(e,{dkLen:32})},"SHAKE-256":{oid:Vs(`060960864801650304020C`),hash:e=>Nu(e,{dkLen:64})}};function Wu(e,t,n=Vu){if(Pu(t),Pu(n),n.length>255)throw Error(`context should be less than 255 bytes`);if(!Uu[e])throw Error(`unknown hash: `+e);let{oid:r,hash:i}=Uu[e],a=i(t);return Gs(new Uint8Array([1,n.length]),n,r,a)}function Gu(e,t=8){let n=e.toString(2).padStart(8,`0`).slice(-t).padStart(7,`0`).split(``).reverse().join(``);return Number.parseInt(n,2)}var Ku=e=>{let{newPoly:t,N:n,Q:r,F:i,ROOT_OF_UNITY:a,brvBits:o,isKyber:s}=e,c=(e,t=r)=>{let n=e%t|0;return(n>=0?n|0:t+n|0)|0},l=(e,t=r)=>{let n=c(e,t)|0;return(n>t>>1?n-t|0:n)|0};function u(){let e=t(n);for(let t=0;t<n;t++){let n=Gu(t,o),i=BigInt(a)**BigInt(n)%BigInt(r);e[t]=Number(i)|0}return e}let d=u(),f=s?128:n,p=+!!s;return{mod:c,smod:l,nttZetas:d,NTT:{encode:e=>{for(let t=1,r=128;r>p;r>>=1)for(let i=0;i<n;i+=2*r){let n=d[t++];for(let t=i;t<i+r;t++){let i=c(n*e[t+r]);e[t+r]=c(e[t]-i)|0,e[t]=c(e[t]+i)|0}}return e},decode:e=>{for(let t=f-1,r=1+p;r<f+p;r<<=1)for(let i=0;i<n;i+=2*r){let n=d[t--];for(let t=i;t<i+r;t++){let i=e[t];e[t]=c(i+e[t+r]),e[t+r]=c(n*(e[t+r]-i))}}for(let t=0;t<e.length;t++)e[t]=c(i*e[t]);return e}},bitsCoder:(e,r)=>{let i=Bu(e),a=n/8*e;return{bytesLen:a,encode:t=>{let n=new Uint8Array(a);for(let a=0,o=0,s=0,c=0;a<t.length;a++)for(o|=(r.encode(t[a])&i)<<s,s+=e;s>=8;s-=8,o>>=8)n[c++]=o&Bu(s);return n},decode:a=>{let o=t(n);for(let t=0,n=0,s=0,c=0;t<a.length;t++)for(n|=a[t]<<s,s+=8;s>=e;s-=e,n>>=e)o[c++]=r.decode(n&i);return o}}}}},qu=e=>(t,n)=>{n||=e.blockLen;let r=new Uint8Array(t.length+2);r.set(t);let i=t.length,a=new Uint8Array(n),o=e.create({}),s=0,c=0;return{stats:()=>({calls:s,xofs:c}),get:(t,n)=>(r[i+0]=t,r[i+1]=n,o.destroy(),o=e.create({}).update(r),s++,()=>(c++,o.xofInto(a))),clean:()=>{o.destroy(),a.fill(0),r.fill(0)}}},Ju=qu(Mu),Yu=qu(Nu),Xu=256,Zu=8380417,Qu=1753,$u=8347681,ed=13,td=Math.floor((Zu-1)/88)|0,nd=Math.floor((Zu-1)/32)|0,rd={2:{K:4,L:4,D:ed,GAMMA1:2**17,GAMMA2:td,TAU:39,ETA:2,OMEGA:80},3:{K:6,L:5,D:ed,GAMMA1:2**19,GAMMA2:nd,TAU:49,ETA:4,OMEGA:55},5:{K:8,L:7,D:ed,GAMMA1:2**19,GAMMA2:nd,TAU:60,ETA:2,OMEGA:75}},id=e=>new Int32Array(e),{mod:ad,smod:od,NTT:sd,bitsCoder:cd}=Ku({N:Xu,Q:Zu,F:$u,ROOT_OF_UNITY:Qu,newPoly:id,isKyber:!1,brvBits:8}),ld=e=>e,ud=(e,t=ld,n=ld)=>cd(e,{encode:e=>t(n(e)),decode:e=>n(t(e))}),dd=(e,t)=>{for(let n=0;n<e.length;n++)e[n]=ad(e[n]+t[n]);return e},fd=(e,t)=>{for(let n=0;n<e.length;n++)e[n]=ad(e[n]-t[n]);return e},pd=e=>{for(let t=0;t<Xu;t++)e[t]<<=ed;return e},md=(e,t)=>{for(let n=0;n<Xu;n++)if(Math.abs(od(e[n]))>=t)return!0;return!1},hd=(e,t)=>{let n=id(Xu);for(let r=0;r<e.length;r++)n[r]=ad(e[r]*t[r]);return n};function gd(e){let t=id(Xu);for(let n=0;n<Xu;){let r=e();if(r.length%3)throw Error(`RejNTTPoly: unaligned block`);for(let e=0;n<Xu&&e<=r.length-3;e+=3){let i=(r[e+0]|r[e+1]<<8|r[e+2]<<16)&8388607;i<Zu&&(t[n++]=i)}}return t}function _d(e){let{K:t,L:n,GAMMA1:r,GAMMA2:i,TAU:a,ETA:o,OMEGA:s}=e,{CRH_BYTES:c,TR_BYTES:l,C_TILDE_BYTES:u,XOF128:d,XOF256:f}=e;if(![2,4].includes(o))throw Error(`Wrong ETA`);if(![1<<17,1<<19].includes(r))throw Error(`Wrong GAMMA1`);if(![td,nd].includes(i))throw Error(`Wrong GAMMA2`);let p=a*o,m=e=>{let t=ad(e),n=od(t,2*i)|0;return t-n===Zu-1?{r1:0,r0:n-1|0}:{r1:Math.floor((t-n)/(2*i))|0,r0:n}},h=e=>m(e).r1,g=e=>m(e).r0,_=(e,t)=>e<=i||e>Zu-i||e===Zu-i&&t===0?0:1,v=(e,t)=>{let n=Math.floor((Zu-1)/(2*i)),{r1:r,r0:a}=m(t);return e===1?a>0?ad(r+1,n)|0:ad(r-1,n)|0:r|0},y=e=>{let t=ad(e),n=od(t,2**ed)|0;return{r1:Math.floor((t-n)/2**ed)|0,r0:n}},b={bytesLen:s+t,encode:e=>{if(e===!1)throw Error(`hint.encode: hint is false`);let n=new Uint8Array(s+t);for(let r=0,i=0;r<t;r++){for(let t=0;t<Xu;t++)e[r][t]!==0&&(n[i++]=t);n[s+r]=i}return n},decode:e=>{let n=[],r=0;for(let i=0;i<t;i++){let t=id(Xu);if(e[s+i]<r||e[s+i]>s)return!1;for(let n=r;n<e[s+i];n++){if(n>r&&e[n]<=e[n-1])return!1;t[e[n]]=1}r=e[s+i],n.push(t)}for(let t=r;t<s;t++)if(e[t]!==0)return!1;return n}},ee=ud(o===2?3:4,e=>o-e,e=>{if(!(-o<=e&&e<=o))throw Error(`malformed key s1/s3 ${e} outside of ETA range [${-o}, ${o}]`);return e}),x=ud(13,e=>(1<<ed-1)-e),te=ud(10),ne=ud(r===1<<17?18:20,e=>od(r-e)),re=Ru(ud(i===td?6:4),t),ie=Lu(32,Ru(te,t)),ae=Lu(32,32,l,Ru(ee,n),Ru(ee,t),Ru(x,t)),oe=Lu(u,Ru(ne,n),b),se=o===2?e=>e<15?2-e%5:!1:e=>e<9?4-e:!1;function ce(e){let t=id(Xu);for(let n=0;n<Xu;){let r=e();for(let e=0;n<Xu&&e<r.length;e+=1){let i=se(r[e]&15),a=se(r[e]>>4&15);i!==!1&&(t[n++]=i),n<Xu&&a!==!1&&(t[n++]=a)}}return t}let le=e=>{let t=id(Xu),n=Nu.create({}).update(e),r=new Uint8Array(Nu.blockLen);n.xofInto(r);let i=r.slice(0,8);for(let e=Xu-a,o=8,s=0,c=0;e<Xu;e++){let a=e+1;for(;a>e;)a=r[o++],!(o<Nu.blockLen)&&(n.xofInto(r),o=0);t[e]=t[a],t[a]=1-((i[s]>>c++&1)<<1),c>=8&&(s++,c=0)}return t},S=e=>{let t=id(Xu),n=id(Xu);for(let r=0;r<e.length;r++){let{r0:i,r1:a}=y(e[r]);t[r]=i,n[r]=a}return{r0:t,r1:n}},ue=(e,t)=>{for(let n=0;n<Xu;n++)e[n]=v(t[n],e[n]);return e},de=(e,t)=>{let n=id(Xu),r=0;for(let i=0;i<Xu;i++){let a=_(e[i],t[i]);n[i]=a,r+=a}return{v:n,cnt:r}},fe=Lu(32,64,32),pe={signRandBytes:32,keygen:e=>{let r=new Uint8Array(34),i=e===void 0;i&&(e=Fu(32)),Pu(e,32),r.set(e),i&&e.fill(0),r[32]=t,r[33]=n;let[a,o,s]=fe.decode(Nu(r,{dkLen:fe.bytesLen})),c=f(o),u=[];for(let e=0;e<n;e++)u.push(ce(c.get(e&255,e>>8&255)));let p=[];for(let e=n;e<n+t;e++)p.push(ce(c.get(e&255,e>>8&255)));let m=u.map(e=>sd.encode(e.slice())),h=[],g=[],_=d(a),v=id(Xu);for(let e=0;e<t;e++){v.fill(0);for(let t=0;t<n;t++)dd(v,hd(gd(_.get(t,e)),m[t]));sd.decode(v);let{r0:t,r1:r}=S(dd(v,p[e]));h.push(t),g.push(r)}let y=ie.encode([a,g]),b=Nu(y,{dkLen:l}),ee=ae.encode([a,s,b,u,p,h]);return _.clean(),c.clean(),zu(a,o,s,u,p,m,v,h,g,b,r),{publicKey:y,secretKey:ee}},sign:(e,a,o,l=!1)=>{let[m,_,v,y,b,ee]=ae.decode(e),x=[],te=d(m);for(let e=0;e<t;e++){let t=[];for(let r=0;r<n;r++)t.push(gd(te.get(r,e)));x.push(t)}te.clean();for(let e=0;e<n;e++)sd.encode(y[e]);for(let e=0;e<t;e++)sd.encode(b[e]),sd.encode(ee[e]);let ie=l?a:Nu.create({dkLen:c}).update(v).update(a).digest(),se=o||new Uint8Array(32);Pu(se);let ce=Nu.create({dkLen:c}).update(_).update(se).update(ie).digest();Pu(ce,c);let S=f(ce,ne.bytesLen);main_loop:for(let e=0;;){let a=[];for(let t=0;t<n;t++,e++)a.push(ne.decode(S.get(e&255,e>>8)()));let o=a.map(e=>sd.encode(e.slice())),c=[];for(let e=0;e<t;e++){let t=id(Xu);for(let r=0;r<n;r++)dd(t,hd(x[e][r],o[r]));sd.decode(t),c.push(t)}let l=c.map(e=>e.map(h)),d=Nu.create({dkLen:u}).update(ie).update(re.encode(l)).digest(),f=sd.encode(le(d)),m=y.map(e=>hd(e,f));for(let e=0;e<n;e++)if(dd(sd.decode(m[e]),a[e]),md(m[e],r-p))continue main_loop;let _=0,v=[];for(let e=0;e<t;e++){let t=sd.decode(hd(b[e],f)),n=fd(c[e],t).map(g);if(md(n,i-p))continue main_loop;let r=sd.decode(hd(ee[e],f));if(md(r,i))continue main_loop;dd(n,r);let a=de(n,l[e]);v.push(a.v),_+=a.cnt}if(_>s)continue;S.clean();let te=oe.encode([d,m,v]);return zu(d,m,v,f,l,c,o,a,ce,ie,y,b,ee,...x),te}throw Error(`Unreachable code path reached, report this error`)},verify:(e,i,a,o=!1)=>{let[f,m]=ie.decode(e),h=Nu(e,{dkLen:l});if(a.length!==oe.bytesLen)return!1;let[g,_,v]=oe.decode(a);if(v===!1)return!1;for(let e=0;e<n;e++)if(md(_[e],r-p))return!1;let y=o?i:Nu.create({dkLen:c}).update(h).update(i).digest(),b=sd.encode(le(g)),ee=_.map(e=>e.slice());for(let e=0;e<n;e++)sd.encode(ee[e]);let x=[],te=d(f);for(let e=0;e<t;e++){let t=hd(sd.encode(pd(m[e])),b),r=id(Xu);for(let t=0;t<n;t++)dd(r,hd(gd(te.get(t,e)),ee[t]));let i=sd.decode(fd(r,t));x.push(ue(i,v[e]))}te.clean();let ne=Nu.create({dkLen:u}).update(y).update(re.encode(x)).digest();for(let e of v)if(!(e.reduce((e,t)=>e+t,0)<=s))return!1;for(let e of _)if(md(e,r-p))return!1;return Iu(g,ne)}};return{internal:pe,keygen:pe.keygen,signRandBytes:pe.signRandBytes,sign:(e,t,n=Vu,r)=>{let i=Hu(t,n),a=pe.sign(e,i,r);return i.fill(0),a},verify:(e,t,n,r=Vu)=>pe.verify(e,Hu(t,r),n),prehash:e=>({sign:(t,n,r=Vu,i)=>{let a=Wu(e,n,r),o=pe.sign(t,a,i);return a.fill(0),o},verify:(t,n,r,i=Vu)=>pe.verify(t,Wu(e,n,i),r)})}}({...rd[2]});var vd=_d({...rd[3],CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:48,XOF128:Ju,XOF256:Yu});({...rd[5]});var yd={generateKeyPair:bd,sign:xd,verify:Sd};function bd(e){e??=Fu(32);let t=vd.keygen(e);return{publicKey:t.publicKey,privateKey:t.secretKey}}function xd(e,t){return vd.sign(e,t)}function Sd(e,t,n){return vd.verify(e,t,n)}var Cd=256,wd=3329,{mod:Td,nttZetas:Ed,NTT:Dd,bitsCoder:Od}=Ku({N:Cd,Q:wd,F:3303,ROOT_OF_UNITY:17,newPoly:e=>new Uint16Array(e),brvBits:7,isKyber:!0}),kd={512:{N:Cd,Q:wd,K:2,ETA1:3,ETA2:2,du:10,dv:4,RBGstrength:128},768:{N:Cd,Q:wd,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192},1024:{N:Cd,Q:wd,K:4,ETA1:2,ETA2:2,du:11,dv:5,RBGstrength:256}},Ad=e=>{if(e>=12)return{encode:e=>e,decode:e=>e};let t=2**(e-1);return{encode:t=>((t<<e)+wd/2)/wd,decode:n=>n*wd+t>>>e}},jd=e=>Od(e,Ad(e));function Md(e,t){for(let n=0;n<Cd;n++)e[n]=Td(e[n]+t[n])}function Nd(e,t){for(let n=0;n<Cd;n++)e[n]=Td(e[n]-t[n])}function Pd(e,t,n,r,i){return{c0:Td(t*r*i+e*n),c1:Td(e*r+t*n)}}function Fd(e,t){for(let n=0;n<Cd/2;n++){let r=Ed[64+(n>>1)];n&1&&(r=-r);let{c0:i,c1:a}=Pd(e[2*n+0],e[2*n+1],t[2*n+0],t[2*n+1],r);e[2*n+0]=i,e[2*n+1]=a}return e}function Id(e){let t=new Uint16Array(Cd);for(let n=0;n<Cd;){let r=e();if(r.length%3)throw Error(`SampleNTT: unaligned block`);for(let e=0;n<Cd&&e+3<=r.length;e+=3){let i=(r[e+0]>>0|r[e+1]<<8)&4095,a=(r[e+1]>>4|r[e+2]<<4)&4095;i<wd&&(t[n++]=i),n<Cd&&a<wd&&(t[n++]=a)}}return t}function Ld(e,t,n,r){let i=e(r*Cd/4,t,n),a=new Uint16Array(Cd),o=As(i),s=0;for(let e=0,t=0,n=0,i=0;e<o.length;e++){let c=o[e];for(let e=0;e<32;e++)n+=c&1,c>>=1,s+=1,s===r?(i=n,n=0):s===2*r&&(a[t++]=Td(i-n),n=0,s=0)}if(s)throw Error(`sampleCBD: leftover bits: ${s}`);return a}var Rd=e=>{let{K:t,PRF:n,XOF:r,HASH512:i,ETA1:a,ETA2:o,du:s,dv:c}=e,l=jd(1),u=jd(c),d=jd(s),f=Lu(Ru(jd(12),t),32),p=Ru(jd(12),t),m=Lu(Ru(d,t),u),h=Lu(32,32);return{secretCoder:p,secretKeyLen:p.bytesLen,publicKeyLen:f.bytesLen,cipherTextLen:m.bytesLen,keygen:e=>{Pu(e,32);let o=new Uint8Array(33);o.set(e),o[32]=t;let s=i(o),[c,l]=h.decode(s),u=[],d=[];for(let e=0;e<t;e++)u.push(Dd.encode(Ld(n,l,e,a)));let m=r(c);for(let e=0;e<t;e++){let r=Dd.encode(Ld(n,l,t+e,a));for(let n=0;n<t;n++)Md(r,Fd(Id(m.get(n,e)),u[n]));d.push(r)}m.clean();let g={publicKey:f.encode([d,c]),secretKey:p.encode(u)};return zu(c,l,u,d,o,s),g},encrypt:(e,i,s)=>{let[c,u]=f.decode(e),d=[];for(let e=0;e<t;e++)d.push(Dd.encode(Ld(n,s,e,a)));let p=r(u),h=new Uint16Array(Cd),g=[];for(let e=0;e<t;e++){let r=Ld(n,s,t+e,o),i=new Uint16Array(Cd);for(let n=0;n<t;n++)Md(i,Fd(Id(p.get(e,n)),d[n]));Md(r,Dd.decode(i)),g.push(r),Md(h,Fd(c[e],d[e])),i.fill(0)}p.clean();let _=Ld(n,s,2*t,o);Md(_,Dd.decode(h));let v=l.decode(i);return Md(v,_),zu(c,d,h,_),m.encode([g,v])},decrypt:(e,n)=>{let[r,i]=m.decode(e),a=p.decode(n),o=new Uint16Array(Cd);for(let e=0;e<t;e++)Md(o,Fd(a[e],Dd.encode(r[e])));return Nd(i,Dd.decode(o)),zu(o,a,r),l.encode(i)}}};function zd(e){let t=Rd(e),{HASH256:n,HASH512:r,KDF:i}=e,{secretCoder:a,cipherTextLen:o}=t,s=t.publicKeyLen,c=Lu(t.secretKeyLen,t.publicKeyLen,32,32),l=c.bytesLen;return{publicKeyLen:s,msgLen:32,keygen:(e=Fu(64))=>{Pu(e,64);let{publicKey:r,secretKey:i}=t.keygen(e.subarray(0,32)),a=n(r),o=c.encode([i,r,a,e.subarray(32)]);return zu(i,a),{publicKey:r,secretKey:o}},encapsulate:(i,o=Fu(32))=>{Pu(i,s),Pu(o,32);let c=i.subarray(0,384*e.K),l=a.encode(a.decode(c.slice()));if(!Iu(l,c))throw zu(l),Error(`ML-KEM.encapsulate: wrong publicKey modulus`);zu(l);let u=r.create().update(o).update(n(i)).digest(),d=t.encrypt(i,o,u.subarray(32,64));return u.subarray(32).fill(0),{cipherText:d,sharedSecret:u.subarray(0,32)}},decapsulate:(e,n)=>{Pu(n,l),Pu(e,o);let[a,s,u,d]=c.decode(n),f=t.decrypt(e,a),p=r.create().update(f).update(u).digest(),m=p.subarray(0,32),h=t.encrypt(s,f,p.subarray(32,64)),g=Iu(e,h),_=i.create({dkLen:32}).update(d).update(e).digest();return zu(f,h,g?_:m),g?m:_}}}function Bd(e,t,n){return Nu.create({dkLen:e}).update(t).update(new Uint8Array([n])).digest()}var Vd={HASH256:Ou,HASH512:Au,KDF:Nu,XOF:Ju,PRF:Bd};({...Vd,...kd[512]});var Hd=zd({...Vd,...kd[768]});({...Vd,...kd[1024]});var Ud={generateKeyPair:Wd,encapsulate:Gd,decapsulate:Kd};function Wd(e){return e??=Fu(64),Hd.keygen(e)}function Gd(e){return Hd.encapsulate(e)}function Kd(e,t){return Hd.decapsulate(e,t)}var qd=Gc,Jd=class extends qs{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ds(e);let n=Us(t);if(this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`Expected instance of class which extends utils.Hash`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),js(i)}update(e){return Os(this),this.iHash.update(e),this}digestInto(e){Os(this),Es(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=r,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Yd=(e,t,n)=>new Jd(e,t).update(n).digest();Yd.create=(e,t)=>new Jd(e,t);var{p:Xd,n:Zd,Gx:Qd,Gy:$d,b:ef}={p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n},tf=32,nf=64,rf=(e=``)=>{throw Error(e)},af=e=>typeof e==`bigint`,of=e=>typeof e==`string`,sf=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`,cf=(e,t)=>!sf(e)||typeof t==`number`&&t>0&&e.length!==t?rf(`Uint8Array expected`):e,lf=e=>new Uint8Array(e),uf=e=>Uint8Array.from(e),df=(e,t)=>e.toString(16).padStart(t,`0`),ff=e=>Array.from(cf(e)).map(e=>df(e,2)).join(``),pf={_0:48,_9:57,A:65,F:70,a:97,f:102},mf=e=>{if(e>=pf._0&&e<=pf._9)return e-pf._0;if(e>=pf.A&&e<=pf.F)return e-(pf.A-10);if(e>=pf.a&&e<=pf.f)return e-(pf.a-10)},hf=e=>{let t=`hex invalid`;if(!of(e))return rf(t);let n=e.length,r=n/2;if(n%2)return rf(t);let i=lf(r);for(let n=0,a=0;n<r;n++,a+=2){let r=mf(e.charCodeAt(a)),o=mf(e.charCodeAt(a+1));if(r===void 0||o===void 0)return rf(t);i[n]=r*16+o}return i},gf=(e,t)=>cf(of(e)?hf(e):uf(cf(e)),t),_f=()=>globalThis?.crypto,vf=()=>_f()?.subtle??rf(`crypto.subtle must be defined`),yf=(...e)=>{let t=lf(e.reduce((e,t)=>e+cf(t).length,0)),n=0;return e.forEach(e=>{t.set(e,n),n+=e.length}),t},bf=(e=tf)=>_f().getRandomValues(lf(e)),xf=BigInt,Sf=(e,t,n,r=`bad number: out of range`)=>af(e)&&t<=e&&e<n?e:rf(r),M=(e,t=Xd)=>{let n=e%t;return n>=0n?n:t+n},Cf=e=>M(e,Zd),wf=(e,t)=>{(e===0n||t<=0n)&&rf(`no inverse n=`+e+` mod=`+t);let n=M(e,t),r=t,i=0n,a=1n,o=1n,s=0n;for(;n!==0n;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}return r===1n?M(i,t):rf(`no inverse`)},Tf=e=>{let t=ap[e];return typeof t!=`function`&&rf(`hashes.`+e+` not set`),t},Ef=e=>e instanceof Ff?e:rf(`Point expected`),Df=e=>M(M(e*e)*e+ef),Of=e=>Sf(e,0n,Xd),kf=e=>Sf(e,1n,Xd),Af=e=>Sf(e,1n,Zd),jf=e=>(e&1n)==0n,Mf=e=>Uint8Array.of(e),Nf=e=>Mf(jf(e)?2:3),Pf=e=>{let t=Df(kf(e)),n=1n;for(let e=t,r=(Xd+1n)/4n;r>0n;r>>=1n)r&1n&&(n=n*e%Xd),e=e*e%Xd;return M(n*n)===t?n:rf(`sqrt invalid`)},Ff=class e{static BASE;static ZERO;px;py;pz;constructor(e,t,n){this.px=Of(e),this.py=kf(t),this.pz=Of(n),Object.freeze(this)}static fromBytes(t){cf(t);let n,r=t[0],i=t.subarray(1),a=Bf(i,0,tf),o=t.length;if(o===tf+1&&[2,3].includes(r)){let t=Pf(a),i=jf(t);jf(xf(r))!==i&&(t=M(-t)),n=new e(a,t,1n)}return o===nf+1&&r===4&&(n=new e(a,Bf(i,tf,nf),1n)),n?n.assertValidity():rf(`bad point: not on curve`)}equals(e){let{px:t,py:n,pz:r}=this,{px:i,py:a,pz:o}=Ef(e),s=M(t*o),c=M(i*r),l=M(n*o),u=M(a*r);return s===c&&l===u}is0(){return this.equals(Lf)}negate(){return new e(this.px,M(-this.py),this.pz)}double(){return this.add(this)}add(t){let{px:n,py:r,pz:i}=this,{px:a,py:o,pz:s}=Ef(t),c=0n,l=ef,u=0n,d=0n,f=0n,p=M(l*3n),m=M(n*a),h=M(r*o),g=M(i*s),_=M(n+r),v=M(a+o);_=M(_*v),v=M(m+h),_=M(_-v),v=M(n+i);let y=M(a+s);return v=M(v*y),y=M(m+g),v=M(v-y),y=M(r+i),u=M(o+s),y=M(y*u),u=M(h+g),y=M(y-u),f=M(c*v),u=M(p*g),f=M(u+f),u=M(h-f),f=M(h+f),d=M(u*f),h=M(m+m),h=M(h+m),g=M(c*g),v=M(p*v),h=M(h+g),g=M(m-g),g=M(c*g),v=M(v+g),m=M(h*v),d=M(d+m),m=M(y*v),u=M(_*u),u=M(u-m),m=M(_*h),f=M(y*f),f=M(f+m),new e(u,d,f)}multiply(e,t=!0){if(!t&&e===0n)return Lf;if(Af(e),e===1n)return this;if(this.equals(If))return pp(e).p;let n=Lf,r=If;for(let i=this;e>0n;i=i.double(),e>>=1n)e&1n?n=n.add(i):t&&(r=r.add(i));return n}toAffine(){let{px:e,py:t,pz:n}=this;if(this.equals(Lf))return{x:0n,y:0n};if(n===1n)return{x:e,y:t};let r=wf(n,Xd);return M(n*r)!==1n&&rf(`inverse invalid`),{x:M(e*r),y:M(t*r)}}assertValidity(){let{x:e,y:t}=this.toAffine();return kf(e),kf(t),M(t*t)===Df(e)?this:rf(`bad point: not on curve`)}toBytes(e=!0){let{x:t,y:n}=this.assertValidity().toAffine(),r=Hf(t);return e?yf(Nf(n),r):yf(Mf(4),r,Hf(n))}static fromAffine(t){let{x:n,y:r}=t;return n===0n&&r===0n?Lf:new e(n,r,1n)}toHex(e){return ff(this.toBytes(e))}static fromPrivateKey(e){return If.multiply(Uf(e))}static fromHex(t){return e.fromBytes(gf(t))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(e){return this.toBytes(e)}},If=new Ff(Qd,$d,1n),Lf=new Ff(0n,1n,0n);Ff.BASE=If,Ff.ZERO=Lf;var Rf=(e,t,n)=>If.multiply(t,!1).add(e.multiply(n,!1)).assertValidity(),zf=e=>xf(`0x`+(ff(e)||`0`)),Bf=(e,t,n)=>zf(e.subarray(t,n)),Vf=2n**256n,Hf=e=>hf(df(Sf(e,0n,Vf),nf)),Uf=e=>Sf(af(e)?e:zf(gf(e,tf)),1n,Zd,`private key invalid 3`),Wf=e=>e>Zd>>1n,Gf=(e,t=!0)=>If.multiply(Uf(e)).toBytes(t),Kf=class e{r;s;recovery;constructor(e,t,n){this.r=Af(e),this.s=Af(t),n!=null&&(this.recovery=n),Object.freeze(this)}static fromBytes(t){return cf(t,nf),new e(Bf(t,0,tf),Bf(t,tf,nf))}toBytes(){let{r:e,s:t}=this;return yf(Hf(e),Hf(t))}addRecoveryBit(t){return new e(this.r,this.s,t)}hasHighS(){return Wf(this.s)}toCompactRawBytes(){return this.toBytes()}toCompactHex(){return ff(this.toBytes())}recoverPublicKey(e){return tp(this,e)}static fromCompact(t){return e.fromBytes(gf(t,nf))}assertValidity(){return this}normalizeS(){let{r:t,s:n,recovery:r}=this;return Wf(n)?new e(t,Cf(-n),r):this}},qf=e=>{let t=e.length*8-256;t>1024&&rf(`msg invalid`);let n=zf(e);return t>0?n>>xf(t):n},Jf=e=>Cf(qf(cf(e))),Yf={lowS:!0},Xf={lowS:!0},Zf=(e,t,n=Yf)=>{[`der`,`recovered`,`canonical`].some(e=>e in n)&&rf(`option not supported`);let{lowS:r,extraEntropy:i}=n;r??=!0;let a=Hf,o=Jf(gf(e)),s=a(o),c=Uf(t),l=[a(c),s];i&&l.push(i===!0?bf(tf):gf(i));let u=o,d=e=>{let t=qf(e);if(!(1n<=t&&t<Zd))return;let n=If.multiply(t).toAffine(),i=Cf(n.x);if(i===0n)return;let a=Cf(wf(t,Zd)*Cf(u+Cf(c*i)));if(a===0n)return;let o=a,s=(n.x===i?0:2)|Number(n.y&1n);return r&&Wf(a)&&(o=Cf(-a),s^=1),new Kf(i,o,s)};return{seed:yf(...l),k2sig:d}},Qf=e=>{let t=lf(tf),n=lf(tf),r=0,i=lf(0),a=()=>{t.fill(1),n.fill(0),r=0},o=1e3,s=`drbg: tried 1000 values`;if(e){let e=(...e)=>ap.hmacSha256Async(n,t,...e),c=async(r=i)=>{n=await e(Mf(0),r),t=await e(),r.length!==0&&(n=await e(Mf(1),r),t=await e())},l=async()=>(r++>=o&&rf(s),t=await e(),t);return async(e,t)=>{a(),await c(e);let n;for(;!(n=t(await l()));)await c();return a(),n}}else{let e=(...e)=>Tf(`hmacSha256Sync`)(n,t,...e),c=(r=i)=>{n=e(Mf(0),r),t=e(),r.length!==0&&(n=e(Mf(1),r),t=e())},l=()=>(r++>=o&&rf(s),t=e(),t);return(e,t)=>{a(),c(e);let n;for(;!(n=t(l()));)c();return a(),n}}},$f=(e,t,n=Yf)=>{let{seed:r,k2sig:i}=Zf(e,t,n);return Qf(!1)(r,i)},ep=(e,t,n,r=Xf)=>{let{lowS:i}=r;i??=!0,`strict`in r&&rf(`option not supported`);let a,o=e&&typeof e==`object`&&`r`in e;!o&&gf(e).length!==nf&&rf(`signature must be 64 bytes`);try{a=o?new Kf(e.r,e.s):Kf.fromCompact(e);let r=Jf(gf(t)),s=Ff.fromBytes(gf(n)),{r:c,s:l}=a;if(i&&Wf(l))return!1;let u=wf(l,Zd);return Cf(Rf(s,Cf(r*u),Cf(c*u)).toAffine().x)===c}catch{return!1}},tp=(e,t)=>{let{r:n,s:r,recovery:i}=e;[0,1,2,3].includes(i)||rf(`recovery id invalid`);let a=Jf(gf(t,tf)),o=i===2||i===3?n+Zd:n;kf(o);let s=yf(Nf(xf(i)),Hf(o)),c=Ff.fromBytes(s),l=wf(o,Zd);return Rf(c,Cf(-a*l),Cf(r*l))},np=e=>(e=gf(e),(e.length<tf+8||e.length>1024)&&rf(`expected 40-1024b`),Hf(M(zf(e),Zd-1n)+1n)),rp=()=>np(bf(tf+16)),ip=`SHA-256`,ap={hexToBytes:hf,bytesToHex:ff,concatBytes:yf,bytesToNumberBE:zf,numberToBytesBE:Hf,mod:M,invert:wf,hmacSha256Async:async(e,...t)=>{let n=vf(),r=`HMAC`,i=await n.importKey(`raw`,e,{name:r,hash:{name:ip}},!1,[`sign`]);return lf(await n.sign(r,i,yf(...t)))},hmacSha256Sync:void 0,hashToPrivateKey:np,randomBytes:bf},op={normPrivateKeyToScalar:Uf,isValidPrivateKey:e=>{try{return!!Uf(e)}catch{return!1}},randomPrivateKey:rp,precompute:(e=8,t=If)=>(t.multiply(3n),t)},sp=8,cp=Math.ceil(256/sp)+1,lp=2**(sp-1),up=()=>{let e=[],t=If,n=t;for(let r=0;r<cp;r++){n=t,e.push(n);for(let r=1;r<lp;r++)n=n.add(t),e.push(n);t=n.double()}return e},dp=void 0,fp=(e,t)=>{let n=t.negate();return e?n:t},pp=e=>{let t=dp||=up(),n=Lf,r=If,i=2**sp,a=i,o=xf(i-1),s=xf(sp);for(let i=0;i<cp;i++){let c=Number(e&o);e>>=s,c>lp&&(c-=a,e+=1n);let l=i*lp,u=l,d=l+Math.abs(c)-1,f=i%2!=0,p=c<0;c===0?r=r.add(fp(f,t[u])):n=n.add(fp(p,t[d]))}return{p:n,f:r}};ap.hmacSha256Sync=(e,...t)=>Yd(qd,e,ap.concatBytes(...t));var mp={publicKeyFromPrivateKey:hp,sign:gp,verify:_p};function hp(e){return Gf(e)}function gp(e,t){return $f(qd(t),e).toCompactRawBytes()}function _p(e,t,n){return ep(n,qd(t),e)}var vp={SECP256K1:0,ML_DSA:1},yp=[{name:`SECP256K1`,signatureSectionSize:65},{name:`ML_DSA`,signatureSectionSize:3311}],bp={ML_KEM:0},xp=[{name:`ML-KEM`}],N={...vp,SIG_SCHEMES:yp,...bp,KEM_SCHEMES:xp,Random:Zs,Hashes:Qc,Aes:su,MLDsa:yd,MLKem:Ud,Secp256k1:mp},Sp;function Cp(e){return{lang:e?.lang??Sp?.lang,message:e?.message,abortEarly:e?.abortEarly??Sp?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Sp?.abortPipeEarly}}var wp;function Tp(e){return wp?.get(e)}var Ep;function Dp(e){return Ep?.get(e)}var Op;function kp(e,t){return Op?.get(e)?.get(t)}function Ap(e){let t=typeof e;return t===`string`?`"${e}"`:t===`number`||t===`bigint`||t===`boolean`?`${e}`:t===`object`||t===`function`?(e&&Object.getPrototypeOf(e)?.constructor?.name)??`null`:t}function jp(e,t,n,r,i){let a=i&&`input`in i?i.input:n.value,o=i?.expected??e.expects??null,s=i?.received??Ap(a),c={kind:e.kind,type:e.type,input:a,expected:o,received:s,message:`Invalid ${t}: ${o?`Expected ${o} but r`:`R`}eceived ${s}`,requirement:e.requirement,path:i?.path,issues:i?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},l=e.kind===`schema`,u=i?.message??e.message??kp(e.reference,c.lang)??(l?Dp(c.lang):null)??r.message??Tp(c.lang);u!==void 0&&(c.message=typeof u==`function`?u(c):u),l&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function Mp(e){return{version:1,vendor:`valibot`,validate(t){return e[`~run`]({value:t},Cp())}}}function Np(e,t){return Object.hasOwn(e,t)&&t!==`__proto__`&&t!==`prototype`&&t!==`constructor`}function Pp(e,t){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??`never`}var Fp=class extends Error{constructor(e){super(e[0].message),this.name=`ValiError`,this.issues=e}};function Ip(e){return{kind:`validation`,type:`integer`,reference:Ip,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&jp(this,`integer`,e,t),e}}}function Lp(e,t){return{kind:`validation`,type:`max_length`,reference:Lp,async:!1,expects:`<=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length>this.requirement&&jp(this,`length`,e,t,{received:`${e.value.length}`}),e}}}function Rp(e,t){return{kind:`validation`,type:`max_value`,reference:Rp,async:!1,expects:`<=${e instanceof Date?e.toJSON():Ap(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value<=this.requirement)&&jp(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():Ap(e.value)}),e}}}function zp(e){return{kind:`metadata`,type:`metadata`,reference:zp,metadata:e}}function Bp(e,t){return{kind:`validation`,type:`min_value`,reference:Bp,async:!1,expects:`>=${e instanceof Date?e.toJSON():Ap(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value>=this.requirement)&&jp(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():Ap(e.value)}),e}}}function Vp(e,t,n){return typeof e.fallback==`function`?e.fallback(t,n):e.fallback}function Hp(e,t,n){return typeof e.default==`function`?e.default(t,n):e.default}function Up(e,t){return!e[`~run`]({value:t},{abortEarly:!0}).issues}function Wp(){return{kind:`schema`,type:`any`,reference:Wp,expects:`any`,async:!1,get"~standard"(){return Mp(this)},"~run"(e){return e.typed=!0,e}}}function P(e,t){return{kind:`schema`,type:`array`,reference:P,expects:`Array`,async:!1,item:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){let i=n[r],a=this.item[`~run`]({value:i},t);if(a.issues){let o={type:`array`,origin:`value`,input:n,key:r,value:i};for(let t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value.push(a.value)}}else jp(this,`type`,e,t);return e}}}function Gp(e){return{kind:`schema`,type:`boolean`,reference:Gp,expects:`boolean`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`boolean`?e.typed=!0:jp(this,`type`,e,t),e}}}function Kp(e,t){return{kind:`schema`,type:`custom`,reference:Kp,expects:`unknown`,async:!1,check:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return this.check(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function qp(e,t){return{kind:`schema`,type:`instance`,reference:qp,expects:e.name,async:!1,class:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value instanceof this.class?e.typed=!0:jp(this,`type`,e,t),e}}}function Jp(e){return{kind:`schema`,type:`lazy`,reference:Jp,expects:`unknown`,async:!1,getter:e,get"~standard"(){return Mp(this)},"~run"(e,t){return this.getter(e.value)[`~run`](e,t)}}}function F(e,t){return{kind:`schema`,type:`literal`,reference:F,expects:Ap(e),async:!1,literal:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:jp(this,`type`,e,t),e}}}function Yp(e){return{kind:`schema`,type:`null`,reference:Yp,expects:`null`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===null?e.typed=!0:jp(this,`type`,e,t),e}}}function I(e){return{kind:`schema`,type:`number`,reference:I,expects:`number`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`number`&&!isNaN(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function L(e,t){return{kind:`schema`,type:`object`,reference:L,expects:`Object`,async:!1,entries:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in this.entries){let i=this.entries[r];if(r in n||(i.type===`exact_optional`||i.type===`optional`||i.type===`nullish`)&&i.default!==void 0){let a=r in n?n[r]:Hp(i),o=i[`~run`]({value:a},t);if(o.issues){let i={type:`object`,origin:`value`,input:n,key:r,value:a};for(let t of o.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[r]=o.value}else if(i.fallback!==void 0)e.value[r]=Vp(i);else if(i.type!==`exact_optional`&&i.type!==`optional`&&i.type!==`nullish`&&(jp(this,`key`,e,t,{input:void 0,expected:`"${r}"`,path:[{type:`object`,origin:`key`,input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else jp(this,`type`,e,t);return e}}}function Xp(e,t,n){return{kind:`schema`,type:`object_with_rest`,reference:Xp,expects:`Object`,async:!1,entries:e,rest:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in this.entries){let i=this.entries[r];if(r in n||(i.type===`exact_optional`||i.type===`optional`||i.type===`nullish`)&&i.default!==void 0){let a=r in n?n[r]:Hp(i),o=i[`~run`]({value:a},t);if(o.issues){let i={type:`object`,origin:`value`,input:n,key:r,value:a};for(let t of o.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[r]=o.value}else if(i.fallback!==void 0)e.value[r]=Vp(i);else if(i.type!==`exact_optional`&&i.type!==`optional`&&i.type!==`nullish`&&(jp(this,`key`,e,t,{input:void 0,expected:`"${r}"`,path:[{type:`object`,origin:`key`,input:n,key:r,value:n[r]}]}),t.abortEarly))break}if(!e.issues||!t.abortEarly){for(let r in n)if(Np(n,r)&&!(r in this.entries)){let i=this.rest[`~run`]({value:n[r]},t);if(i.issues){let a={type:`object`,origin:`value`,input:n,key:r,value:n[r]};for(let t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=i.issues,t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value[r]=i.value}}}else jp(this,`type`,e,t);return e}}}function Zp(e,t){return{kind:`schema`,type:`optional`,reference:Zp,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===void 0&&(this.default!==void 0&&(e.value=Hp(this,e,t)),e.value===void 0)?(e.typed=!0,e):this.wrapped[`~run`](e,t)}}}function Qp(e,t){return{kind:`schema`,type:`picklist`,reference:Qp,expects:Pp(e.map(Ap),`|`),async:!1,options:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function $p(e,t,n){return{kind:`schema`,type:`record`,reference:$p,expects:`Object`,async:!1,key:e,value:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in n)if(Np(n,r)){let i=n[r],a=this.key[`~run`]({value:r},t);if(a.issues){let o={type:`object`,origin:`key`,input:n,key:r,value:i};for(let t of a.issues)t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}let o=this.value[`~run`]({value:i},t);if(o.issues){let a={type:`object`,origin:`value`,input:n,key:r,value:i};for(let t of o.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}(!a.typed||!o.typed)&&(e.typed=!1),a.typed&&(e.value[a.value]=o.value)}}else jp(this,`type`,e,t);return e}}}function R(e){return{kind:`schema`,type:`string`,reference:R,expects:`string`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`string`?e.typed=!0:jp(this,`type`,e,t),e}}}function em(e){let t;if(e)for(let n of e)t?t.push(...n.issues):t=n.issues;return t}function tm(e,t){return{kind:`schema`,type:`union`,reference:tm,expects:Pp(e.map(e=>e.expects),`|`),async:!1,options:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n,r,i;for(let a of this.options){let o=a[`~run`]({value:e.value},t);if(o.typed)if(o.issues)r?r.push(o):r=[o];else{n=o;break}else i?i.push(o):i=[o]}if(n)return n;if(r){if(r.length===1)return r[0];jp(this,`type`,e,t,{issues:em(r)}),e.typed=!0}else if(i?.length===1)return i[0];else jp(this,`type`,e,t,{issues:em(i)});return e}}}function nm(){return{kind:`schema`,type:`unknown`,reference:nm,expects:`unknown`,async:!1,get"~standard"(){return Mp(this)},"~run"(e){return e.typed=!0,e}}}function rm(e,t,n){return{kind:`schema`,type:`variant`,reference:rm,expects:`Object`,async:!1,key:e,options:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){let r,i=0,a=this.key,o=[],s=(e,c)=>{for(let l of e.options){if(l.type===`variant`)s(l,new Set(c).add(l.key));else{let e=!0,s=0;for(let t of c){let r=l.entries[t];if(t in n?r[`~run`]({typed:!1,value:n[t]},{abortEarly:!0}).issues:r.type!==`exact_optional`&&r.type!==`optional`&&r.type!==`nullish`){e=!1,a!==t&&(i<s||i===s&&t in n&&!(a in n))&&(i=s,a=t,o=[]),a===t&&o.push(l.entries[t].expects);break}s++}if(e){let e=l[`~run`]({value:n},t);(!r||!r.typed&&e.typed)&&(r=e)}}if(r&&!r.issues)break}};if(s(this,new Set([this.key])),r)return r;jp(this,`type`,e,t,{input:n[a],expected:Pp(o,`|`),path:[{type:`object`,origin:`value`,input:n,key:a,value:n[a]}]})}else jp(this,`type`,e,t);return e}}}function z(e,t,n){let r=e[`~run`]({value:t},Cp(n));if(r.issues)throw new Fp(r.issues);return r.value}function B(...e){return{...e[0],pipe:e,get"~standard"(){return Mp(this)},"~run"(t,n){for(let r of e)if(r.kind!==`metadata`){if(t.issues&&(r.kind===`schema`||r.kind===`transformation`)){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r[`~run`](t,n))}return t}}}function im(e,t,n){let r=e[`~run`]({value:t},Cp(n));return{typed:r.typed,success:!r.issues,output:r.value,issues:r.issues}}var am=0,om=1,sm=2,cm=3,lm=4,um=5,dm=6,fm=7,pm=8,mm=9,hm=10,gm=11,_m=12,vm=13;function ym(e){return B(P(e.items),zp({typeId:0,elementSchema:e.items,...e}))}function bm(e={}){let t=e&&e.size||-1;return B(R(),Kp(e=>typeof e==`string`&&(t===-1||e.length===t),`Expected size is ${t} bytes`),zp({typeId:2,size:t,...e}))}function V(e={}){return B(I(),zp({typeId:3,...e}))}function xm(e={}){return B(Gp(),zp({typeId:4,...e}))}function Sm(e,t,n){return B(I(),Ip(),Bp(0),Rp(2**t-1),zp({typeId:e,...n}))}function Cm(e={}){return Sm(6,8,e)}function wm(e={}){return Sm(7,16,e)}function Tm(e={}){return Sm(8,24,e)}function Em(e={}){return Sm(9,32,e)}function Dm(e={}){return Sm(10,48,e)}function Om(e={}){let t=e&&e.size||-1;return B(qp(Uint8Array),Kp(e=>e instanceof Uint8Array&&(t===-1||e.length===t),`Expected size is ${t} bytes`),zp({typeId:11,...e}))}function km(e={}){return B(qp(Uint8Array),Kp(e=>e instanceof Uint8Array&&e.length===32,`Expected Uint8Array of 32 bytes`),zp({typeId:12,...e}))}function H(){return qp(Uint8Array)}function Am(){return H()}function jm(){return B(I(),Bp(0))}var Mm=L({magicString:F(Un),protocolVersion:I(),microblockType:I(),height:I(),previousHash:H(),timestamp:I(),gas:I(),gasPrice:I(),bodyHash:H(),feesPayerAccount:H()}),Nm=L({retentionRatio:I(),maximumNumberOfDays:I(),dayDivisor:I()}),Pm=P(Nm),Fm=L({numberOfDays:I(),retentionRatio:I(),costInGasAtoms:I()}),Im=L({protocolVersionName:R(),protocolVersion:I(),feesCalculationVersion:I(),globalStateUpdaterVersion:I(),applicationLedgerInternalStateUpdaterVersion:I(),applicationInternalStateUpdaterVersion:I(),organizationInternalStateUpdaterVersion:I(),validatorNodeInternalStateUpdaterVersion:I(),accountInternalStateUpdaterVersion:I(),protocolInternalStateUpdaterVersion:I(),minimumNodeStakingAmountInAtomics:I(),maximumNodeStakingAmountInAtomics:I(),unstakingDelayInDays:I(),maxBlockSizeInBytes:I(),retentionPolicy:Pm,abciVersion:I()}),Lm=L({protocolVersion:I(),protocolVersionName:R(),changeLog:R(),protocolVariables:Im}),Rm=Xp({type:F(O.CUSTOM)},nm()),zm=L({type:F(O.SIGNATURE),signature:H(),schemeId:Cm()}),Bm=L({type:F(O.AUXILIARY_SIGNATURE),tag:bm(),signature:H(),schemeId:Cm()}),Vm=L({type:F(O.ALLOWED_ADDITIONAL_WRITER),allowedWriterAccountId:H()}),Hm=L({type:F(O.PROTOCOL_CREATION),organizationId:Am()}),Um=L({type:F(O.PROTOCOL_UPDATE),...Lm.entries}),Wm=L({type:F(O.PROTOCOL_VARIABLES),protocolVariables:Wp()}),Gm=L({type:F(O.ACCOUNT_PUBLIC_KEY),publicKey:H(),schemeId:Cm()}),Km=L({type:F(O.ACCOUNT_TOKEN_ISSUANCE),amount:V()}),qm=L({type:F(O.ACCOUNT_CREATION),sellerAccount:Am(),amount:V()}),Jm=L({type:F(O.ACCOUNT_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm()}),Ym=L({type:F(O.ACCOUNT_VESTING_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm(),cliffDurationDays:V(),vestingDurationDays:V()}),Xm=L({type:F(O.ACCOUNT_ESCROW_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm(),escrowIdentifier:Am(),agentAccount:Am(),durationDays:V()}),Zm=L({type:F(O.ACCOUNT_ESCROW_SETTLEMENT),escrowIdentifier:Am(),confirmed:xm()}),Qm=L({type:F(O.ACCOUNT_STAKE),amount:V(),objectType:V(),objectIdentifier:Am()}),$m=L({type:F(O.ACCOUNT_UNSTAKE),amount:V(),objectType:V(),objectIdentifier:Am()}),eh=L({type:F(O.VN_CREATION),organizationId:Am()}),th=L({type:F(O.VN_COMETBFT_PUBLIC_KEY_DECLARATION),cometPublicKeyType:bm(),cometPublicKey:bm()}),nh=L({type:F(O.VN_RPC_ENDPOINT),rpcEndpoint:bm()}),rh=L({type:F(O.VN_APPROVAL),status:xm()}),ih=L({type:F(O.VN_SLASHING_CANCELLATION),reason:bm()}),ah=L({type:F(O.ORG_CREATION),accountId:Am()}),oh=L({type:F(O.ORG_DESCRIPTION),name:bm(),city:bm(),countryCode:bm(),website:bm(),misc:Zp($p(R(),R()))}),sh=L({type:F(O.APP_CREATION),organizationId:Am()}),ch=L({type:F(O.APP_DESCRIPTION),name:bm(),logoUrl:bm(),homepageUrl:bm(),description:bm(),misc:Zp($p(R(),R()))}),lh=L({type:F(O.APP_LEDGER_ALLOWED_SIG_SCHEMES),schemeIds:P(Cm())}),uh=L({type:F(O.APP_LEDGER_ALLOWED_PKE_SCHEMES),schemeIds:P(Cm())}),dh=L({type:F(O.APP_LEDGER_CREATION),applicationId:Am()}),fh=L({type:F(O.APP_LEDGER_ACTOR_CREATION),id:V(),actorType:V(),name:bm()}),ph=L({type:F(O.APP_LEDGER_CHANNEL_CREATION),id:V(),isPrivate:xm(),creatorId:V(),name:bm()}),mh=L({type:F(O.APP_LEDGER_SHARED_SECRET),hostId:V(),guestId:V(),encryptedSharedKey:H()}),hh=L({type:F(O.APP_LEDGER_CHANNEL_INVITATION),channelId:V(),hostId:V(),guestId:V(),encryptedChannelKey:H()}),gh=L({type:F(O.APP_LEDGER_ACTOR_SUBSCRIPTION),actorId:V(),actorType:V(),organizationId:Am(),signatureSchemeId:Cm(),signaturePublicKey:H(),pkeSchemeId:Cm(),pkePublicKey:H()}),_h=L({type:F(O.APP_LEDGER_PUBLIC_CHANNEL_DATA),channelId:V(),data:H()}),vh=L({type:F(O.APP_LEDGER_PRIVATE_CHANNEL_DATA),channelId:V(),merkleRootHash:Am(),encryptedData:H()}),yh=L({type:F(O.APP_LEDGER_AUTHOR),authorId:V()}),bh=L({type:F(O.APP_LEDGER_ENDORSEMENT_REQUEST),endorserId:V(),message:bm()}),xh=rm(`type`,[Bm,zm,Vm,Rm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh]),Sh=L({sections:P(xh)}),U=function(e){return e[e.ACCOUNT_VIRTUAL_BLOCKCHAIN=1]=`ACCOUNT_VIRTUAL_BLOCKCHAIN`,e[e.NODE_VIRTUAL_BLOCKCHAIN=2]=`NODE_VIRTUAL_BLOCKCHAIN`,e[e.APPLICATION_VIRTUAL_BLOCKCHAIN=4]=`APPLICATION_VIRTUAL_BLOCKCHAIN`,e[e.ORGANIZATION_VIRTUAL_BLOCKCHAIN=3]=`ORGANIZATION_VIRTUAL_BLOCKCHAIN`,e[e.APP_LEDGER_VIRTUAL_BLOCKCHAIN=5]=`APP_LEDGER_VIRTUAL_BLOCKCHAIN`,e[e.PROTOCOL_VIRTUAL_BLOCKCHAIN=0]=`PROTOCOL_VIRTUAL_BLOCKCHAIN`,e}({}),Ch=L({organizationId:Am(),currentProtocolVariables:Im,protocolUpdates:P(Lm)}),wh=L({signatureSchemeId:V(),publicKeyHeight:jm()}),Th=L({accountId:Am(),descriptionHeight:jm()}),Eh=L({organizationId:Am(),cometbftPublicKeyDeclarationHeight:jm(),rpcEndpointHeight:jm(),lastKnownApprovalStatus:xm()}),Dh=L({organizationId:Am(),descriptionHeight:jm()}),Oh=L({name:bm(),isPrivate:xm(),creatorId:V()}),kh=L({channelId:V(),height:jm()}),Ah=L({peerActorId:V(),height:jm()}),jh=L({name:bm(),subscribed:xm(),signatureKeyHeight:V(),pkeKeyHeight:V(),sharedSecrets:P(Ah),invitations:P(kh)}),Mh=L({allowedAdditionalWriters:P(Am()),allowedSignatureSchemeIds:P(V()),allowedPkeSchemeIds:P(V()),applicationId:Am(),channels:P(Oh),actors:P(jh)}),Nh=L({height:V(),expirationDay:V(),lastMicroblockHash:H(),merkleRootHash:H()}),Ph=L({type:F(U.ACCOUNT_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:wh}),Fh=L({type:F(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Th}),Ih=L({type:F(U.NODE_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Eh}),Lh=L({type:F(U.APPLICATION_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Dh}),Rh=L({type:F(U.APP_LEDGER_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Mh}),zh=L({type:F(U.PROTOCOL_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Ch}),Bh=rm(`type`,[Ph,Fh,Ih,Lh,Rh,zh]),Vh=L({virtualBlockchainType:I(),virtualBlockchainId:Am()}),Hh=L({virtualBlockchainId:H(),virtualBlockchainType:I(),header:Mm}),Uh=3,Wh=function(e){return e[e.Escrow=0]=`Escrow`,e[e.Vesting=1]=`Vesting`,e[e.NodeStaking=2]=`NodeStaking`,e}({}),Gh=L({escrowIdentifier:H(),fundEmitterAccountId:H(),transferAuthorizerAccountId:H(),startTimestamp:I(),durationDays:I()}),Kh=L({type:F(Wh.Escrow),lockedAmountInAtomics:I(),parameters:Gh}),qh=L({initialVestedAmountInAtomics:I(),cliffStartTimestamp:I(),cliffDurationDays:I(),vestingDurationDays:I()}),Jh=L({type:F(Wh.Vesting),lockedAmountInAtomics:I(),parameters:qh}),Yh=L({validatorNodeId:H(),plannedUnlockAmountInAtomics:I(),plannedUnlockTimestamp:I(),slashed:Gp(),plannedSlashingAmountInAtomics:I(),plannedSlashingTimestamp:I()}),Xh=L({type:F(Wh.NodeStaking),lockedAmountInAtomics:I(),parameters:Yh}),Zh=rm(`type`,[Kh,Jh,Xh]),Qh=L({balance:I(),escrowed:I(),vested:I(),releasable:I(),staked:I(),stakeable:I(),locked:I(),spendable:I()}),$h=L({height:I(),balance:I(),lastHistoryHash:H(),locks:P(Zh)}),eg=L({type:I(),exists:Gp(),state:$h}),tg=L({height:B(I(),Ip(),Bp(0)),previousHistoryHash:km(),type:B(I(),Ip(),Bp(0),Rp(255)),publicReference:R(),privateReference:R(),timestamp:B(I(),Ip(),Bp(0)),linkedAccount:km(),amount:B(I(),Ip(),Bp(0)),chainReference:H()}),ng=P(tg),rg=L({accountHash:H(),lastKnownHistoryHash:H()}),ig=L({accountHash:H(),currentState:$h,historyUpdate:ng}),ag=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,og=ag+`+/=`,sg={BASE64:og,URL:ag+`-_=`,encodeString:cg,decodeString:lg,encodeBinary:ug,decodeBinary:dg};function cg(e,t=og,n=!1){return ug(Qa.encode(e),t,n)}function lg(e,t=og){return Qa.decode(dg(e,t))}function ug(e,t=og,n=!1){let r=e.length%3,i=0,a=``;for(let n=0;n<e.length||n%3;)if(i=i<<8|e[n++],!(n%3)){for(let e=4;e--;)a+=t[i>>e*6&63];i=0}return r?a.slice(0,r-3)+t[64].repeat(n?3-r:0):a}function dg(e,t=og){let n=0,r=0,i=[];e+=t[64].repeat(-e.length&3);for(let a=0;a<e.length;){let o=t.indexOf(e[a++]);o==64&&n++,r=r<<6|o,a&3||i.push(r>>16&255,r>>8&255,r&255)}return new Uint8Array(n?i.slice(0,-n):i)}var fg=class{static defaultBytesToStringEncoder(){return new mg}static bytesToBase64Encoder(){return new pg}static bytesToHexEncoder(){return new mg}},pg=class{static decode(e){return sg.decodeBinary(e,sg.BASE64)}static encode(e){return sg.encodeBinary(e,sg.BASE64,!0)}decode(e){return sg.decodeBinary(e,sg.BASE64)}encode(e){return sg.encodeBinary(e,sg.BASE64,!0)}},mg=class{decode(e){return vl(e)}encode(e){if(!(e instanceof Uint8Array))throw TypeError(`Encoding data must be a Uint8Array, got ${typeof e}`);return hl(e)}},hg=class{keys;value;constructor(e,t){this.keys=e,this.value=t}matchesKeys(...e){return e.length===this.keys.length?e.every((e,t)=>e===this.keys[t]):!1}getKeys(){return[...this.keys]}getValue(){return this.value}},gg=class{static encode(...e){if(e.length<2)throw Error(`At least one key and one value must be provided`);let t=e.slice(0,-1),n=e[e.length-1];return`${t.join(`:`)}${n?`{${n}}`:`{}`}`}static decode(e){let t=e.match(/^(.*?)(?:\{(.*)\})?$/);if(!t)throw Error(`Invalid encoded string format`);let n=t[1],r=t[2]||``;return new hg(n?n.split(`:`):[],r)}},_g={},vg={};vg.byteLength=Eg,vg.toByteArray=Og,vg.fromByteArray=jg;for(var yg=[],bg=[],xg=typeof Uint8Array<`u`?Uint8Array:Array,Sg=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Cg=0,wg=Sg.length;Cg<wg;++Cg)yg[Cg]=Sg[Cg],bg[Sg.charCodeAt(Cg)]=Cg;bg[45]=62,bg[95]=63;function Tg(e){var t=e.length;if(t%4>0)throw Error(`Invalid string. Length must be a multiple of 4`);var n=e.indexOf(`=`);n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function Eg(e){var t=Tg(e),n=t[0],r=t[1];return(n+r)*3/4-r}function Dg(e,t,n){return(t+n)*3/4-n}function Og(e){var t,n=Tg(e),r=n[0],i=n[1],a=new xg(Dg(e,r,i)),o=0,s=i>0?r-4:r,c;for(c=0;c<s;c+=4)t=bg[e.charCodeAt(c)]<<18|bg[e.charCodeAt(c+1)]<<12|bg[e.charCodeAt(c+2)]<<6|bg[e.charCodeAt(c+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=bg[e.charCodeAt(c)]<<2|bg[e.charCodeAt(c+1)]>>4,a[o++]=t&255),i===1&&(t=bg[e.charCodeAt(c)]<<10|bg[e.charCodeAt(c+1)]<<4|bg[e.charCodeAt(c+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function kg(e){return yg[e>>18&63]+yg[e>>12&63]+yg[e>>6&63]+yg[e&63]}function Ag(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(kg(r));return i.join(``)}function jg(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(Ag(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(yg[t>>2]+yg[t<<4&63]+`==`)):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(yg[t>>10]+yg[t>>4&63]+yg[t<<2&63]+`=`)),i.join(``)}var Mg={};Mg.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=a*256+e[t+d],d+=f,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=o*256+e[t+d],d+=f,u-=8);if(a===0)a=1-l;else if(a===c)return o?NaN:(p?-1:1)*(1/0);else o+=2**r,a-=l;return(p?-1:1)*o*2**(a-r)},Mg.write=function(e,t,n,r,i,a){var o,s,c,l=a*8-i-1,u=(1<<l)-1,d=u>>1,f=i===23?2**-24-2**-77:0,p=r?0:a-1,m=r?1:-1,h=+(t<0||t===0&&1/t<0);for(t=Math.abs(t),isNaN(t)||t===1/0?(s=+!!isNaN(t),o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=2**-o)<1&&(o--,c*=2),o+d>=1?t+=f/c:t+=f*2**(1-d),t*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*2**i,o+=d):(s=t*2**(d-1)*2**i,o=0));i>=8;e[n+p]=s&255,p+=m,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+p]=o&255,p+=m,o/=256,l-=8);e[n+p-m]|=h*128},(function(e){let t=vg,n=Mg,r=typeof Symbol==`function`&&typeof Symbol.for==`function`?Symbol.for(`nodejs.util.inspect.custom`):null;e.Buffer=u,e.SlowBuffer=ee,e.INSPECT_MAX_BYTES=50;let i=2147483647;e.kMaxLength=i;let{Uint8Array:a,ArrayBuffer:o,SharedArrayBuffer:s}=globalThis;u.TYPED_ARRAY_SUPPORT=c(),!u.TYPED_ARRAY_SUPPORT&&typeof console<`u`&&typeof console.error==`function`&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let e=new a(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,a.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,`parent`,{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,`offset`,{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function l(e){if(e>i)throw RangeError(`The value "`+e+`" is invalid for option "size"`);let t=new a(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if(typeof e==`number`){if(typeof t==`string`)throw TypeError(`The "string" argument must be of type string. Received type number`);return m(e)}return d(e,t,n)}u.poolSize=8192;function d(e,t,n){if(typeof e==`string`)return h(e,t);if(o.isView(e))return _(e);if(e==null)throw TypeError(`The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type `+typeof e);if(Le(e,o)||e&&Le(e.buffer,o)||s!==void 0&&(Le(e,s)||e&&Le(e.buffer,s)))return v(e,t,n);if(typeof e==`number`)throw TypeError(`The "value" argument must not be of type number. Received type number`);let r=e.valueOf&&e.valueOf();if(r!=null&&r!==e)return u.from(r,t,n);let i=y(e);if(i)return i;if(typeof Symbol<`u`&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]==`function`)return u.from(e[Symbol.toPrimitive](`string`),t,n);throw TypeError(`The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type `+typeof e)}u.from=function(e,t,n){return d(e,t,n)},Object.setPrototypeOf(u.prototype,a.prototype),Object.setPrototypeOf(u,a);function f(e){if(typeof e!=`number`)throw TypeError(`"size" argument must be of type number`);if(e<0)throw RangeError(`The value "`+e+`" is invalid for option "size"`)}function p(e,t,n){return f(e),e<=0||t===void 0?l(e):typeof n==`string`?l(e).fill(t,n):l(e).fill(t)}u.alloc=function(e,t,n){return p(e,t,n)};function m(e){return f(e),l(e<0?0:b(e)|0)}u.allocUnsafe=function(e){return m(e)},u.allocUnsafeSlow=function(e){return m(e)};function h(e,t){if((typeof t!=`string`||t===``)&&(t=`utf8`),!u.isEncoding(t))throw TypeError(`Unknown encoding: `+t);let n=x(e,t)|0,r=l(n),i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function g(e){let t=e.length<0?0:b(e.length)|0,n=l(t);for(let r=0;r<t;r+=1)n[r]=e[r]&255;return n}function _(e){if(Le(e,a)){let t=new a(e);return v(t.buffer,t.byteOffset,t.byteLength)}return g(e)}function v(e,t,n){if(t<0||e.byteLength<t)throw RangeError(`"offset" is outside of buffer bounds`);if(e.byteLength<t+(n||0))throw RangeError(`"length" is outside of buffer bounds`);let r;return r=t===void 0&&n===void 0?new a(e):n===void 0?new a(e,t):new a(e,t,n),Object.setPrototypeOf(r,u.prototype),r}function y(e){if(u.isBuffer(e)){let t=b(e.length)|0,n=l(t);return n.length===0||e.copy(n,0,0,t),n}if(e.length!==void 0)return typeof e.length!=`number`||Re(e.length)?l(0):g(e);if(e.type===`Buffer`&&Array.isArray(e.data))return g(e.data)}function b(e){if(e>=i)throw RangeError(`Attempt to allocate Buffer larger than maximum size: 0x`+i.toString(16)+` bytes`);return e|0}function ee(e){return+e!=e&&(e=0),u.alloc(+e)}u.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==u.prototype},u.compare=function(e,t){if(Le(e,a)&&(e=u.from(e,e.offset,e.byteLength)),Le(t,a)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw TypeError(`The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array`);if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:+(r<n)},u.isEncoding=function(e){switch(String(e).toLowerCase()){case`hex`:case`utf8`:case`utf-8`:case`ascii`:case`latin1`:case`binary`:case`base64`:case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw TypeError(`"list" argument must be an Array of Buffers`);if(e.length===0)return u.alloc(0);let n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;let r=u.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){let t=e[n];if(Le(t,a))i+t.length>r.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):a.prototype.set.call(r,t,i);else if(u.isBuffer(t))t.copy(r,i);else throw TypeError(`"list" argument must be an Array of Buffers`);i+=t.length}return r};function x(e,t){if(u.isBuffer(e))return e.length;if(o.isView(e)||Le(e,o))return e.byteLength;if(typeof e!=`string`)throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type `+typeof e);let n=e.length,r=arguments.length>2&&arguments[2]===!0;if(!r&&n===0)return 0;let i=!1;for(;;)switch(t){case`ascii`:case`latin1`:case`binary`:return n;case`utf8`:case`utf-8`:return Ne(e).length;case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return n*2;case`hex`:return n>>>1;case`base64`:return Ie(e).length;default:if(i)return r?-1:Ne(e).length;t=(``+t).toLowerCase(),i=!0}}u.byteLength=x;function te(e,t,n){let r=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((n===void 0||n>this.length)&&(n=this.length),n<=0)||(n>>>=0,t>>>=0,n<=t))return``;for(e||=`utf8`;;)switch(e){case`hex`:return he(this,t,n);case`utf8`:case`utf-8`:return ue(this,t,n);case`ascii`:return pe(this,t,n);case`latin1`:case`binary`:return me(this,t,n);case`base64`:return S(this,t,n);case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return ge(this,t,n);default:if(r)throw TypeError(`Unknown encoding: `+e);e=(e+``).toLowerCase(),r=!0}}u.prototype._isBuffer=!0;function ne(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}u.prototype.swap16=function(){let e=this.length;if(e%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let t=0;t<e;t+=2)ne(this,t,t+1);return this},u.prototype.swap32=function(){let e=this.length;if(e%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let t=0;t<e;t+=4)ne(this,t,t+3),ne(this,t+1,t+2);return this},u.prototype.swap64=function(){let e=this.length;if(e%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let t=0;t<e;t+=8)ne(this,t,t+7),ne(this,t+1,t+6),ne(this,t+2,t+5),ne(this,t+3,t+4);return this},u.prototype.toString=function(){let e=this.length;return e===0?``:arguments.length===0?ue(this,0,e):te.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw TypeError(`Argument must be a Buffer`);return this===e?!0:u.compare(this,e)===0},u.prototype.inspect=function(){let t=``,n=e.INSPECT_MAX_BYTES;return t=this.toString(`hex`,0,n).replace(/(.{2})/g,`$1 `).trim(),this.length>n&&(t+=` ... `),`<Buffer `+t+`>`},r&&(u.prototype[r]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(Le(e,a)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw TypeError(`The "target" argument must be one of type Buffer or Uint8Array. Received type `+typeof e);if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),r===void 0&&(r=0),i===void 0&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw RangeError(`out of range index`);if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;let o=i-r,s=n-t,c=Math.min(o,s),l=this.slice(r,i),d=e.slice(t,n);for(let e=0;e<c;++e)if(l[e]!==d[e]){o=l[e],s=d[e];break}return o<s?-1:+(s<o)};function re(e,t,n,r,i){if(e.length===0)return-1;if(typeof n==`string`?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,Re(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0)if(i)n=0;else return-1;if(typeof t==`string`&&(t=u.from(t,r)),u.isBuffer(t))return t.length===0?-1:ie(e,t,n,r,i);if(typeof t==`number`)return t&=255,typeof a.prototype.indexOf==`function`?i?a.prototype.indexOf.call(e,t,n):a.prototype.lastIndexOf.call(e,t,n):ie(e,[t],n,r,i);throw TypeError(`val must be string, number or Buffer`)}function ie(e,t,n,r,i){let a=1,o=e.length,s=t.length;if(r!==void 0&&(r=String(r).toLowerCase(),r===`ucs2`||r===`ucs-2`||r===`utf16le`||r===`utf-16le`)){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,n/=2}function c(e,t){return a===1?e[t]:e.readUInt16BE(t*a)}let l;if(i){let r=-1;for(l=n;l<o;l++)if(c(e,l)===c(t,r===-1?0:l-r)){if(r===-1&&(r=l),l-r+1===s)return r*a}else r!==-1&&(l-=l-r),r=-1}else for(n+s>o&&(n=o-s),l=n;l>=0;l--){let n=!0;for(let r=0;r<s;r++)if(c(e,l+r)!==c(t,r)){n=!1;break}if(n)return l}return-1}u.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},u.prototype.indexOf=function(e,t,n){return re(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return re(this,e,t,n,!1)};function ae(e,t,n,r){n=Number(n)||0;let i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;let a=t.length;r>a/2&&(r=a/2);let o;for(o=0;o<r;++o){let r=parseInt(t.substr(o*2,2),16);if(Re(r))return o;e[n+o]=r}return o}function oe(e,t,n,r){return C(Ne(t,e.length-n),e,n,r)}function se(e,t,n,r){return C(Pe(t),e,n,r)}function ce(e,t,n,r){return C(Ie(t),e,n,r)}function le(e,t,n,r){return C(Fe(t,e.length-n),e,n,r)}u.prototype.write=function(e,t,n,r){if(t===void 0)r=`utf8`,n=this.length,t=0;else if(n===void 0&&typeof t==`string`)r=t,n=this.length,t=0;else if(isFinite(t))t>>>=0,isFinite(n)?(n>>>=0,r===void 0&&(r=`utf8`)):(r=n,n=void 0);else throw Error(`Buffer.write(string, encoding, offset[, length]) is no longer supported`);let i=this.length-t;if((n===void 0||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw RangeError(`Attempt to write outside buffer bounds`);r||=`utf8`;let a=!1;for(;;)switch(r){case`hex`:return ae(this,e,t,n);case`utf8`:case`utf-8`:return oe(this,e,t,n);case`ascii`:case`latin1`:case`binary`:return se(this,e,t,n);case`base64`:return ce(this,e,t,n);case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return le(this,e,t,n);default:if(a)throw TypeError(`Unknown encoding: `+r);r=(``+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:`Buffer`,data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,n,r){return n===0&&r===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(n,r))}function ue(e,t,n){n=Math.min(e.length,n);let r=[],i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o<=n){let n,r,s,c;switch(o){case 1:t<128&&(a=t);break;case 2:n=e[i+1],(n&192)==128&&(c=(t&31)<<6|n&63,c>127&&(a=c));break;case 3:n=e[i+1],r=e[i+2],(n&192)==128&&(r&192)==128&&(c=(t&15)<<12|(n&63)<<6|r&63,c>2047&&(c<55296||c>57343)&&(a=c));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],(n&192)==128&&(r&192)==128&&(s&192)==128&&(c=(t&15)<<18|(n&63)<<12|(r&63)<<6|s&63,c>65535&&c<1114112&&(a=c))}}a===null?(a=65533,o=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|a&1023),r.push(a),i+=o}return fe(r)}let de=4096;function fe(e){let t=e.length;if(t<=de)return String.fromCharCode.apply(String,e);let n=``,r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=de));return n}function pe(e,t,n){let r=``;n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]&127);return r}function me(e,t,n){let r=``;n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function he(e,t,n){let r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i=``;for(let r=t;r<n;++r)i+=ze[e[r]];return i}function ge(e,t,n){let r=e.slice(t,n),i=``;for(let e=0;e<r.length-1;e+=2)i+=String.fromCharCode(r[e]+r[e+1]*256);return i}u.prototype.slice=function(e,t){let n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);let r=this.subarray(e,t);return Object.setPrototypeOf(r,u.prototype),r};function _e(e,t,n){if(e%1!=0||e<0)throw RangeError(`offset is not uint`);if(e+t>n)throw RangeError(`Trying to access beyond buffer length`)}u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e],i=1,a=0;for(;++a<t&&(i*=256);)r+=this[e+a]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||_e(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||_e(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||_e(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||_e(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))}),u.prototype.readBigUInt64BE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(r)<<BigInt(32))+BigInt(i)}),u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e],i=1,a=0;for(;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=2**(8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=t,i=1,a=this[e+--r];for(;r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=2**(8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||_e(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||_e(e,2,this.length);let n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||_e(e,2,this.length);let n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)}),u.prototype.readBigInt64BE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n)}),u.prototype.readFloatLE=function(e,t){return e>>>=0,t||_e(e,4,this.length),n.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||_e(e,4,this.length),n.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||_e(e,8,this.length),n.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||_e(e,8,this.length),n.read(this,e,!1,52,8)};function ve(e,t,n,r,i,a){if(!u.isBuffer(e))throw TypeError(`"buffer" argument must be a Buffer instance`);if(t>i||t<a)throw RangeError(`"value" argument is out of bounds`);if(n+r>e.length)throw RangeError(`Index out of range`)}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){let r=2**(8*n)-1;ve(this,e,t,n,r,0)}let i=1,a=0;for(this[t]=e&255;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){let r=2**(8*n)-1;ve(this,e,t,n,r,0)}let i=n-1,a=1;for(this[t+i]=e&255;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,1,255,0),this[t]=e&255,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function ye(e,t,n,r,i){Oe(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,n}function be(e,t,n,r,i){Oe(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=o,o>>=8,e[n+2]=o,o>>=8,e[n+1]=o,o>>=8,e[n]=o,n+8}u.prototype.writeBigUInt64LE=Be(function(e,t=0){return ye(this,e,t,BigInt(0),BigInt(`0xffffffffffffffff`))}),u.prototype.writeBigUInt64BE=Be(function(e,t=0){return be(this,e,t,BigInt(0),BigInt(`0xffffffffffffffff`))}),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){let r=2**(8*n-1);ve(this,e,t,n,r-1,-r)}let i=0,a=1,o=0;for(this[t]=e&255;++i<n&&(a*=256);)e<0&&o===0&&this[t+i-1]!==0&&(o=1),this[t+i]=(e/a>>0)-o&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){let r=2**(8*n-1);ve(this,e,t,n,r-1,-r)}let i=n-1,a=1,o=0;for(this[t+i]=e&255;--i>=0&&(a*=256);)e<0&&o===0&&this[t+i+1]!==0&&(o=1),this[t+i]=(e/a>>0)-o&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4},u.prototype.writeBigInt64LE=Be(function(e,t=0){return ye(this,e,t,-BigInt(`0x8000000000000000`),BigInt(`0x7fffffffffffffff`))}),u.prototype.writeBigInt64BE=Be(function(e,t=0){return be(this,e,t,-BigInt(`0x8000000000000000`),BigInt(`0x7fffffffffffffff`))});function xe(e,t,n,r,i,a){if(n+r>e.length||n<0)throw RangeError(`Index out of range`)}function Se(e,t,r,i,a){return t=+t,r>>>=0,a||xe(e,t,r,4),n.write(e,t,r,i,23,4),r+4}u.prototype.writeFloatLE=function(e,t,n){return Se(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return Se(this,e,t,!1,n)};function Ce(e,t,r,i,a){return t=+t,r>>>=0,a||xe(e,t,r,8),n.write(e,t,r,i,52,8),r+8}u.prototype.writeDoubleLE=function(e,t,n){return Ce(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return Ce(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw TypeError(`argument should be a Buffer`);if(n||=0,!r&&r!==0&&(r=this.length),t>=e.length&&(t=e.length),t||=0,r>0&&r<n&&(r=n),r===n||e.length===0||this.length===0)return 0;if(t<0)throw RangeError(`targetStart out of bounds`);if(n<0||n>=this.length)throw RangeError(`Index out of range`);if(r<0)throw RangeError(`sourceEnd out of bounds`);r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);let i=r-n;return this===e&&typeof a.prototype.copyWithin==`function`?this.copyWithin(t,n,r):a.prototype.set.call(e,this.subarray(n,r),t),i},u.prototype.fill=function(e,t,n,r){if(typeof e==`string`){if(typeof t==`string`?(r=t,t=0,n=this.length):typeof n==`string`&&(r=n,n=this.length),r!==void 0&&typeof r!=`string`)throw TypeError(`encoding must be a string`);if(typeof r==`string`&&!u.isEncoding(r))throw TypeError(`Unknown encoding: `+r);if(e.length===1){let t=e.charCodeAt(0);(r===`utf8`&&t<128||r===`latin1`)&&(e=t)}}else typeof e==`number`?e&=255:typeof e==`boolean`&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw RangeError(`Out of range index`);if(n<=t)return this;t>>>=0,n=n===void 0?this.length:n>>>0,e||=0;let i;if(typeof e==`number`)for(i=t;i<n;++i)this[i]=e;else{let a=u.isBuffer(e)?e:u.from(e,r),o=a.length;if(o===0)throw TypeError(`The value "`+e+`" is invalid for argument "value"`);for(i=0;i<n-t;++i)this[i+t]=a[i%o]}return this};let we={};function Te(e,t,n){we[e]=class extends n{constructor(){super(),Object.defineProperty(this,`message`,{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,`code`,{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}Te(`ERR_BUFFER_OUT_OF_BOUNDS`,function(e){return e?`${e} is outside of buffer bounds`:`Attempt to access memory outside buffer bounds`},RangeError),Te(`ERR_INVALID_ARG_TYPE`,function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),Te(`ERR_OUT_OF_RANGE`,function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=Ee(String(n)):typeof n==`bigint`&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=Ee(i)),i+=`n`),r+=` It must be ${t}. Received ${i}`,r},RangeError);function Ee(e){let t=``,n=e.length,r=+(e[0]===`-`);for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function De(e,t,n){ke(t,`offset`),(e[t]===void 0||e[t+n]===void 0)&&Ae(t,e.length-(n+1))}function Oe(e,t,n,r,i,a){if(e>n||e<t){let r=typeof t==`bigint`?`n`:``,i;throw i=a>3?t===0||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${(a+1)*8}${r}`:`>= -(2${r} ** ${(a+1)*8-1}${r}) and < 2 ** ${(a+1)*8-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new we.ERR_OUT_OF_RANGE(`value`,i,e)}De(r,i,a)}function ke(e,t){if(typeof e!=`number`)throw new we.ERR_INVALID_ARG_TYPE(t,`number`,e)}function Ae(e,t,n){throw Math.floor(e)===e?t<0?new we.ERR_BUFFER_OUT_OF_BOUNDS:new we.ERR_OUT_OF_RANGE(n||`offset`,`>= ${+!!n} and <= ${t}`,e):(ke(e,n),new we.ERR_OUT_OF_RANGE(n||`offset`,`an integer`,e))}let je=/[^+/0-9A-Za-z-_]/g;function Me(e){if(e=e.split(`=`)[0],e=e.trim().replace(je,``),e.length<2)return``;for(;e.length%4!=0;)e+=`=`;return e}function Ne(e,t){t||=1/0;let n,r=e.length,i=null,a=[];for(let o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if(--t<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,n&63|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,n&63|128)}else if(n<1114112){if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128)}else throw Error(`Invalid code point`)}return a}function Pe(e){let t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n)&255);return t}function Fe(e,t){let n,r,i,a=[];for(let o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function Ie(e){return t.toByteArray(Me(e))}function C(e,t,n,r){let i;for(i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Le(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function Re(e){return e!==e}let ze=(function(){let e=`0123456789abcdef`,t=Array(256);for(let n=0;n<16;++n){let r=n*16;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t})();function Be(e){return typeof BigInt>`u`?Ve:e}function Ve(){throw Error(`BigInt not supported`)}})(_g);var Ng=_g.Buffer;_g.Blob,_g.BlobOptions,_g.Buffer,_g.File,_g.FileOptions,_g.INSPECT_MAX_BYTES,_g.SlowBuffer,_g.TranscodeEncoding,_g.atob,_g.btoa,_g.constants,_g.isAscii,_g.isUtf8,_g.kMaxLength,_g.kStringMaxLength,_g.resolveObjectURL,_g.transcode;var Pg=function(e){return e[e.AES_256_GCM=0]=`AES_256_GCM`,e}({}),Fg=class e{static KEY_LENGTH_IN_BYTES=32;getSymmetricEncryptionSchemeId(){return Pg.AES_256_GCM}getSupportedKeyLengths(){return[e.KEY_LENGTH_IN_BYTES]}getDefaultKeyLength(){return e.KEY_LENGTH_IN_BYTES}},Ig=class e{constructor(e){this.key=e}static async generate(){let t=new Uint8Array(32);return crypto.getRandomValues(t),new e(t)}static createFromBytes(t){return new e(t)}getRawSecretKey(){return this.key}getSymmetricEncryptionSchemeId(){return Pg.AES_256_GCM}async encrypt(e){let t=new Uint8Array(12);crypto.getRandomValues(t);let n=au(this.key,t).encrypt(e),r=new Uint8Array(t.length+n.length);return r.set(t),r.set(n,t.length),r}async decrypt(e){try{let t=e.slice(0,12),n=e.slice(12);return au(this.key,t).decrypt(n)}catch(e){throw o.isCarmentisError(e)?new f:e}}},Lg=class{constructor(e){this.wrappedKey=e}async encryptString(e){let t=new TextEncoder().encode(e),n=await this.encrypt(t);return Ng.from(n).toString(`base64`)}async decryptString(e){let t=Ng.from(e,`base64`),n=await this.decrypt(t);return new TextDecoder().decode(n)}getSymmetricEncryptionSchemeId(){return this.wrappedKey.getSymmetricEncryptionSchemeId()}async encrypt(e){return this.wrappedKey.encrypt(e)}async decrypt(e){return this.wrappedKey.decrypt(e)}getRawSecretKey(){return this.wrappedKey.getRawSecretKey()}},Rg=function(e){return e[e.ML_KEM=0]=`ML_KEM`,e}({}),zg=class{getPrivateKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(this.getPrivateKeyAsBytes())}getSignatureSchemeId(){return this.getScheme().getSignatureSchemeId()}getSignatureSize(){return this.getScheme().getSignatureSize()}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}},Bg=class{async getPublicKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getPublicKeyAsBytes())}getSignatureSize(){return this.getScheme().getSignatureSize()}getSignatureSchemeId(){return this.getScheme().getSignatureSchemeId()}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}},Vg=class e{static SIGNATURE_SIZE=3311;getSignatureSchemeId(){return Ya.ML_DSA_65}getSignatureSize(){return e.SIGNATURE_SIZE}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}expectedSeedSize(){return 32}},Hg=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getPublicKeyAsBytes())}async verify(e,t){return vd.verify(this.publicKey,e,t)}async getPublicKeyAsBytes(){return this.publicKey}getScheme(){return new Vg}},Ug=class e extends zg{static async gen(){return new e(Fu(32))}verificationKey;signatureKey;getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}constructor(e){super(),this.seed=e;let t=vd.keygen(e);this.signatureKey=t.secretKey,this.verificationKey=t.publicKey}async getPublicKey(){return new Hg(this.verificationKey)}getPrivateKeyAsBytes(){return this.seed}async sign(e){return vd.sign(this.signatureKey,e)}getScheme(){return new Vg}},Wg={p:57896044618658097711785492504343953926634992332820282019728792003956564819949n,n:7237005577332262213973186563042994240857116359379907606001950938285454250989n,h:8n,a:57896044618658097711785492504343953926634992332820282019728792003956564819948n,d:37095705934669439343138083508754565189542113879843219016388785533085940283555n,Gx:15112221349535400772501151409588531511454012693041857206046113283949847762202n,Gy:46316835694926478169428394003475163141307993866256225615783033603165251855960n},{p:Gg,n:Kg,Gx:qg,Gy:Jg,a:Yg,d:Xg,h:Zg}=Wg,Qg=32,$g=(...e)=>{`captureStackTrace`in Error&&typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(...e)},e_=(e=``)=>{let t=Error(e);throw $g(t,e_),t},t_=e=>typeof e==`bigint`,n_=e=>typeof e==`string`,r_=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`,i_=(e,t,n=``)=>{let r=r_(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`;e_(o+`expected Uint8Array`+s+`, got `+c)}return e},a_=e=>new Uint8Array(e),o_=e=>Uint8Array.from(e),s_=(e,t)=>e.toString(16).padStart(t,`0`),c_=e=>Array.from(i_(e)).map(e=>s_(e,2)).join(``),l_={_0:48,_9:57,A:65,F:70,a:97,f:102},u_=e=>{if(e>=l_._0&&e<=l_._9)return e-l_._0;if(e>=l_.A&&e<=l_.F)return e-(l_.A-10);if(e>=l_.a&&e<=l_.f)return e-(l_.a-10)},d_=e=>{let t=`hex invalid`;if(!n_(e))return e_(t);let n=e.length,r=n/2;if(n%2)return e_(t);let i=a_(r);for(let n=0,a=0;n<r;n++,a+=2){let r=u_(e.charCodeAt(a)),o=u_(e.charCodeAt(a+1));if(r===void 0||o===void 0)return e_(t);i[n]=r*16+o}return i},f_=()=>globalThis?.crypto,p_=()=>f_()?.subtle??e_(`crypto.subtle must be defined, consider polyfill`),m_=(...e)=>{let t=a_(e.reduce((e,t)=>e+i_(t).length,0)),n=0;return e.forEach(e=>{t.set(e,n),n+=e.length}),t},h_=(e=Qg)=>f_().getRandomValues(a_(e)),g_=BigInt,__=(e,t,n,r=`bad number: out of range`)=>t_(e)&&t<=e&&e<n?e:e_(r),v_=(e,t=Gg)=>{let n=e%t;return n>=0n?n:t+n},y_=(1n<<255n)-1n,W=e=>{e<0n&&e_(`negative coordinate`);let t=(e>>255n)*19n+(e&y_);return t=(t>>255n)*19n+(t&y_),t%Gg},b_=e=>v_(e,Kg),x_=(e,t)=>{(e===0n||t<=0n)&&e_(`no inverse n=`+e+` mod=`+t);let n=v_(e,t),r=t,i=0n,a=1n,o=1n,s=0n;for(;n!==0n;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}return r===1n?v_(i,t):e_(`no inverse`)},S_=e=>{let t=q_[e];return typeof t!=`function`&&e_(`hashes.`+e+` not set`),t},C_=e=>e instanceof T_?e:e_(`Point expected`),w_=2n**256n,T_=class e{static BASE;static ZERO;X;Y;Z;T;constructor(e,t,n,r){let i=w_;this.X=__(e,0n,i),this.Y=__(t,0n,i),this.Z=__(n,1n,i),this.T=__(r,0n,i),Object.freeze(this)}static CURVE(){return Wg}static fromAffine(t){return new e(t.x,t.y,1n,W(t.x*t.y))}static fromBytes(t,n=!1){let r=Xg,i=o_(i_(t,Qg)),a=t[31];i[31]=a&-129;let o=k_(i);__(o,0n,n?w_:Gg);let s=W(o*o),{isValid:c,value:l}=N_(v_(s-1n),W(r*s+1n));c||e_(`bad point: y not sqrt`);let u=(l&1n)==1n,d=(a&128)!=0;return!n&&l===0n&&d&&e_(`bad point: x==0, isLastByteOdd`),d!==u&&(l=v_(-l)),new e(l,o,1n,W(l*o))}static fromHex(t,n){return e.fromBytes(d_(t),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=Yg,t=Xg,n=this;if(n.is0())return e_(`bad point: ZERO`);let{X:r,Y:i,Z:a,T:o}=n,s=W(r*r),c=W(i*i),l=W(a*a),u=W(l*l);return W(l*(W(s*e)+c))===v_(u+W(t*W(s*c)))?W(r*i)===W(a*o)?this:e_(`bad point: equation left != right (2)`):e_(`bad point: equation left != right (1)`)}equals(e){let{X:t,Y:n,Z:r}=this,{X:i,Y:a,Z:o}=C_(e),s=W(t*o),c=W(i*r),l=W(n*o),u=W(a*r);return s===c&&l===u}is0(){return this.equals(D_)}negate(){return new e(v_(-this.X),this.Y,this.Z,v_(-this.T))}double(){let{X:t,Y:n,Z:r}=this,i=Yg,a=W(t*t),o=W(n*n),s=W(2n*r*r),c=W(i*a),l=v_(t+n),u=v_(W(l*l)-a-o),d=v_(c+o),f=v_(d-s),p=v_(c-o),m=W(u*f),h=W(d*p),g=W(u*p);return new e(m,h,W(f*d),g)}add(t){let{X:n,Y:r,Z:i,T:a}=this,{X:o,Y:s,Z:c,T:l}=C_(t),u=Yg,d=Xg,f=W(n*o),p=W(r*s),m=W(W(a*d)*l),h=W(i*c),g=v_(W(v_(n+r)*v_(o+s))-f-p),_=v_(h-m),v=v_(h+m),y=v_(p-W(u*f)),b=W(g*_),ee=W(v*y),x=W(g*y);return new e(b,ee,W(_*v),x)}subtract(e){return this.add(C_(e).negate())}multiply(e,t=!0){if(!t&&(e===0n||this.is0()))return D_;if(__(e,1n,Kg),e===1n)return this;if(this.equals(E_))return tv(e).p;let n=D_,r=E_;for(let i=this;e>0n;i=i.double(),e>>=1n)e&1n?n=n.add(i):t&&(r=r.add(i));return n}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:t,Z:n}=this;if(this.equals(D_))return{x:0n,y:1n};let r=x_(n,Gg);return W(n*r)!==1n&&e_(`invalid inverse`),{x:W(e*r),y:W(t*r)}}toBytes(){let{x:e,y:t}=this.toAffine(),n=O_(t);return n[31]|=e&1n?128:0,n}toHex(){return c_(this.toBytes())}clearCofactor(){return this.multiply(g_(Zg),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(Kg/2n,!1).double();return Kg%2n&&(e=e.add(this)),e.is0()}},E_=new T_(qg,Jg,1n,v_(qg*Jg)),D_=new T_(0n,1n,1n,0n);T_.BASE=E_,T_.ZERO=D_;var O_=e=>d_(s_(__(e,0n,w_),64)).reverse(),k_=e=>g_(`0x`+c_(o_(i_(e)).reverse())),A_=(e,t)=>{let n=e;for(;t-- >0n;)n=W(n*n);return n},j_=e=>{let t=W(W(e*e)*e),n=W(A_(W(A_(t,2n)*t),1n)*e),r=W(A_(n,5n)*n),i=W(A_(r,10n)*r),a=W(A_(i,20n)*i),o=W(A_(a,40n)*a);return{pow_p_5_8:W(A_(W(A_(W(A_(W(A_(o,80n)*o),80n)*o),10n)*r),2n)*e),b2:t}},M_=19681161376707505956807079304988542015446066515923890162744021073123829784752n,N_=(e,t)=>{let n=W(t*W(t*t)),r=j_(W(e*W(W(n*n)*t))).pow_p_5_8,i=W(e*W(n*r)),a=W(t*W(i*i)),o=i,s=W(i*M_),c=a===e,l=a===v_(-e),u=a===v_(-e*M_);return c&&(i=o),(l||u)&&(i=s),(v_(i)&1n)==1n&&(i=v_(-i)),{isValid:c||l,value:i}},P_=e=>b_(k_(e)),F_=(...e)=>q_.sha512Async(m_(...e)),I_=(...e)=>S_(`sha512`)(m_(...e)),L_=e=>{let t=e.slice(0,32);t[0]&=248,t[31]&=127,t[31]|=64;let n=e.slice(32,64),r=P_(t),i=E_.multiply(r);return{head:t,prefix:n,scalar:r,point:i,pointBytes:i.toBytes()}},R_=e=>F_(i_(e,Qg)).then(L_),z_=e=>L_(I_(i_(e,Qg))),B_=e=>z_(e).pointBytes,V_=e=>e.finish(I_(e.hashable)),H_=(e,t,n)=>{let{pointBytes:r,scalar:i}=e,a=P_(t),o=E_.multiply(a).toBytes();return{hashable:m_(o,r,n),finish:e=>i_(m_(o,O_(b_(a+P_(e)*i))),64)}},U_=(e,t)=>{let n=i_(e),r=z_(t);return V_(H_(r,I_(r.prefix,n),n))},W_={zip215:!0},G_=(e,t,n,r=W_)=>{e=i_(e,64),t=i_(t),n=i_(n,Qg);let{zip215:i}=r,a=e.subarray(0,Qg),o=k_(e.subarray(Qg,Qg*2)),s,c,l,u=Uint8Array.of(),d=!1;try{s=T_.fromBytes(n,i),c=T_.fromBytes(a,i),l=E_.multiply(o,!1),u=m_(c.toBytes(),s.toBytes(),t),d=!0}catch{}return{hashable:u,finish:e=>{if(!d||!i&&s.isSmallOrder())return!1;let t=P_(e);return c.add(s.multiply(t,!1)).subtract(l).clearCofactor().is0()}}},K_=(e,t,n,r=W_)=>V_(G_(e,t,n,r)),q_={sha512Async:async e=>{let t=p_(),n=m_(e);return a_(await t.digest(`SHA-512`,n.buffer))},sha512:void 0},J_={getExtendedPublicKeyAsync:R_,getExtendedPublicKey:z_,randomSecretKey:(e=h_(Qg))=>e},Y_=8,X_=Math.ceil(256/Y_)+1,Z_=2**(Y_-1),Q_=()=>{let e=[],t=E_,n=t;for(let r=0;r<X_;r++){n=t,e.push(n);for(let r=1;r<Z_;r++)n=n.add(t),e.push(n);t=n.double()}return e},$_=void 0,ev=(e,t)=>{let n=t.negate();return e?n:t},tv=e=>{let t=$_||=Q_(),n=D_,r=E_,i=2**Y_,a=i,o=g_(i-1),s=g_(Y_);for(let i=0;i<X_;i++){let c=Number(e&o);e>>=s,c>Z_&&(c-=a,e+=1n);let l=i*Z_,u=l,d=l+Math.abs(c)-1,f=i%2!=0,p=c<0;c===0?r=r.add(ev(f,t[u])):n=n.add(ev(p,t[d]))}return e!==0n&&e_(`invalid wnaf`),{p:n,f:r}};q_.sha512=qc;var nv=function(e){return e[e.SHA256=0]=`SHA256`,e}({}),rv=class{getHashSchemeId(){return nv.SHA256}hash(e){return Gc(e)}};function iv(e,t,n,r){Ds(e);let{c:i,dkLen:a,asyncTick:o}=Ks({dkLen:32,asyncTick:10},r);if(Ts(i),Ts(a),Ts(o),i<1)throw Error(`iterations (c) should be >= 1`);let s=Ws(t),c=Ws(n),l=new Uint8Array(a),u=Yd.create(e,s);return{c:i,dkLen:a,asyncTick:o,DK:l,PRF:u,PRFSalt:u._cloneInto().update(c)}}function av(e,t,n,r,i){return e.destroy(),t.destroy(),r&&r.destroy(),js(i),n}function ov(e,t,n,r){let{c:i,dkLen:a,DK:o,PRF:s,PRFSalt:c}=iv(e,t,n,r),l,u=new Uint8Array(4),d=Ms(u),f=new Uint8Array(s.outputLen);for(let e=1,t=0;t<a;e++,t+=s.outputLen){let n=o.subarray(t,t+s.outputLen);d.setInt32(0,e,!1),(l=c._cloneInto(l)).update(u).digestInto(f),n.set(f.subarray(0,n.length));for(let e=1;e<i;e++){s._cloneInto(l).update(f).digestInto(f);for(let e=0;e<n.length;e++)n[e]^=f[e]}}return av(s,c,o,l,f)}var sv=function(e){return e[e.PBKDF2=0]=`PBKDF2`,e[e.SCRYPT=1]=`SCRYPT`,e}({}),cv=class{deriveKeyNoSalt(e,t){return this.deriveKey(e,``,t)}},lv=class extends cv{getKeyDerivationFunctionSchemeId(){return sv.PBKDF2}deriveKey(e,t,n){return ov(Gc,e,t,{c:1e5,dkLen:n})}};function uv(e,t,n){return Ds(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Yd(e,Us(n),Us(t))}var dv=Uint8Array.from([0]),fv=Uint8Array.of();function pv(e,t,n,r=32){Ds(e),Ts(r);let i=e.outputLen;if(r>255*i)throw Error(`Length should be <= 255*HashLen`);let a=Math.ceil(r/i);n===void 0&&(n=fv);let o=new Uint8Array(a*i),s=Yd.create(e,t),c=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let e=0;e<a;e++)dv[0]=e+1,c.update(e===0?fv:l).update(n).update(dv).digestInto(l),o.set(l,i*e),s._cloneInto(c);return s.destroy(),c.destroy(),js(l,dv),o.slice(0,r)}var mv=(e,t,n,r,i)=>pv(e,uv(e,t,n),r,i),hv=class{deriveKeyNoSalt(e,t,n){let r=new Uint8Array;return this.deriveKey(e,r,t,n)}},gv=function(e){return e[e.HKDF=0]=`HKDF`,e}({}),_v=class extends hv{getKeyDerivationFunctionSchemeId(){return gv.HKDF}deriveKey(e,t,n,r){return mv(Gc,e,t,n,r)}},vv=function(e){return e[e.ML_KEM_768_AES_256_GCM=0]=`ML_KEM_768_AES_256_GCM`,e}({}),yv=function(e){return e[e.ML_KEM_768_AES_256_GCM=0]=`ML_KEM_768_AES_256_GCM`,e}({}),bv=class{},xv=class{async encode(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getRawPublicKey())}getSchemeId(){return this.getScheme().getSchemeId()}},Sv=class{encode(e=fg.defaultBytesToStringEncoder()){return e.encode(this.getRawPrivateKey())}},Cv=class extends bv{getSchemeId(){return vv.ML_KEM_768_AES_256_GCM}getSupportedSeedLength(){return[32]}},wv=128,Tv=96,Ev=32,Dv=64,Ov=7,kv=8,Av=class{byteStream;constructor(){this.clear()}clear(){this.byteStream=[]}getByteStream(){return new Uint8Array(this.byteStream)}writeJsonValue(e,t){switch(e){case 3:this.writeString(t);break;case 4:this.writeNumber(t);break;case 5:this.writeBoolean(t);break;case 6:break;default:throw`Type ${e} is not a JSON type`}}writeSchemaValue(e,t,n){switch(e){case 3:this.writeString(t,n);break;case 4:this.writeNumber(t);break;case 5:this.writeBoolean(t);break;case 6:break;case 7:this.writeUint8(t);break;case 8:this.writeUint16(t);break;case 9:this.writeUint24(t);break;case 10:this.writeUint32(t);break;case 11:this.writeUint48(t);break;case 12:this.writeBinary(t,n);break;case 13:this.writeByteArray(t);break;case 14:this.writeHashString(t);break;default:throw`Unexpected type ${e}`}}writeByte(e){this.byteStream.push(e&255)}writeUnsigned(e,t){for(;t--;)this.writeByte(e/2**(t*8))}writeUint8(e){this.writeUnsigned(e,1)}writeUint16(e){this.writeUnsigned(e,2)}writeUint24(e){this.writeUnsigned(e,3)}writeUint32(e){this.writeUnsigned(e,4)}writeUint48(e){this.writeUnsigned(e,6)}writeBinary(e,t=-1){t==-1&&this.writeVarUint(e.length),this.writeByteArray(e)}writeHashString(e){this.writeByteArray(A.binaryFromHexa(e))}writeByteArray(e){for(let t of e)this.writeByte(t)}writeString(e,t=-1){let n=Qa.encode(e);t==-1&&this.writeVarUint(n.length),this.writeByteArray(n)}writeVarUint(e){if(e==0)this.writeByte(0);else{if(e<0||e%1||e>2**53-1)throw`Invalid varUint ${e}`;for(;e;)this.writeByte(e%128|(e>127)<<7),e=Math.floor(e/128)}}writeBoolean(e){this.writeByte(e?255:0)}writeNumber(e){let t=!(e%1);if(t&&e>=-64&&e<64){this.writeByte(wv|e&127);return}for(let n=1,r=256;n<=6;n++,r*=256){if(t&&e>=-r&&e<r){let t=e<0;this.writeByte(t<<3|n),this.writeUnsigned(t?-e-1:e,n);return}if(n==4){let t=new Float32Array([e]);if(+t[0].toPrecision(7)===e){this.writeByte(Ev),this.writeByteArray(new Uint8Array(t.buffer));return}}}this.writeByte(Dv),this.writeByteArray(new Uint8Array(new Float64Array([e]).buffer))}},jv=class{byteStream;lastPointer;pointer;constructor(e){this.byteStream=e,this.pointer=0}readJsonValue(e){switch(this.lastPointer=this.pointer,e){case 3:return this.readString();case 4:return this.readNumber();case 5:return this.readBoolean();case 6:return null;default:throw`Type ${e} is not a JSON type`}}readSchemaValue(e,t){switch(this.lastPointer=this.pointer,e){case 3:return this.readString(t);case 4:return this.readNumber();case 5:return this.readBoolean();case 6:return null;case 7:return this.readUint8();case 8:return this.readUint16();case 9:return this.readUint24();case 10:return this.readUint32();case 11:return this.readUint48();case 12:return this.readBinary(t);case 13:return this.readByteArray(32);case 14:return this.readHashString()}}getPointer(){return this.pointer}extractFrom(e){return this.byteStream.slice(e,this.pointer)}getLastField(){return this.byteStream.slice(this.lastPointer,this.pointer)}readByte(){return this.byteStream[this.pointer++]}readUnsigned(e){let t=0;for(;e--;)t=t*256+this.readByte();return t}readUint8(){return this.readUnsigned(1)}readUint16(){return this.readUnsigned(2)}readUint24(){return this.readUnsigned(3)}readUint32(){return this.readUnsigned(4)}readUint48(){return this.readUnsigned(6)}readBinary(e=-1){return this.readByteArray(e==-1?this.readVarUint():e)}readHashString(){return A.binaryToHexa(this.readByteArray(32))}readByteArray(e){return this.byteStream.slice(this.pointer,this.pointer+=e)}readString(e=-1){let t=this.readByteArray(e==-1?this.readVarUint():e);return Qa.decode(t)}readVarUint(){let e=[],t;do t=this.readByte(),e.push(t&127);while(t&128);return e.reduceRight((e,t)=>e*128+t,0)}readBoolean(){return!!this.readByte()}readNumber(){let e=this.readByte();if(e&wv)return(e&127^64)-64;switch(e&Tv){case Ev:return+new Float32Array(this.readByteArray(4).buffer)[0].toPrecision(7);case Dv:return new Float64Array(this.readByteArray(8).buffer)[0];default:{let t=this.readUnsigned(e&Ov);return e&kv?-t-1:t}}}},Mv=class{schema;stream;constructor(e){this.schema=e}serialize(e){if(this.schema===void 0)throw new Oe(`Provided schema is undefined: this should not happen`);return this.stream=new Av,this.serializeObject(this.schema.definition,e),this.stream.getByteStream()}serializeObject(e,t,n=``){for(let r of e){let e=n+(n&&`.`)+r.name,i=t[r.name];if(i===void 0)throw new Oe(`field '${e}' is missing`);if(r.type&32){if(ro.getType(i)!=1)throw new Oe(`'${e}' is not an array`);if(r.size!==void 0){if(i.length!=r.size)throw new Oe(`invalid size for '${e}' (expecting ${r.size} entries, got ${i.length})`)}else this.stream.writeVarUint(i.length);for(let t in i)this.serializeItem(r,i[t],e+`[${t}]`)}else this.serializeItem(r,i,e)}}serializeItem(e,t,n){let r=e.type&31;if(r==2){if(ro.getType(t)!=2)throw new Oe(`'${n}' is not an object`);if(e.definition)this.serializeObject(e.definition,t,n);else if(e.schema)this.serializeObject(e.schema.definition,t,n);else throw new Oe(`missing definition in schema`)}else{let i=new io(e,t);try{i.check()}catch(e){throw new Oe(`Error on field '${n}': ${e}`)}this.stream.writeSchemaValue(r,t,e.size)}}},Nv=class{schema;stream;constructor(e){this.schema=e}unserialize(e){this.stream=new jv(e);let t=this.unserializeObject(this.schema.definition),n=this.stream.getPointer(),r=e.length;if(n!=r)throw console.error(A.binaryToHexa(e)),new o(`Invalid stream length (decoded ${n} bytes, actual length is ${r} bytes)`);return t}unserializeObject(e){let t={};for(let n of e){let e;if(n.type&32){let t=n.size===void 0?this.stream.readVarUint():n.size;for(e=[];t--;)e.push(this.unserializeItem(n))}else e=this.unserializeItem(n);t[n.name]=e}return t}unserializeItem(e){let t=e.type&31;if(t==2){if(e.definition)return this.unserializeObject(e.definition);if(e.schema)return this.unserializeObject(e.schema.definition);throw`missing definition in schema`}return this.stream.readSchemaValue(t,e.size)}},Pv=class e{static schema={label:`PKE_ML_KEM_CIPHERTEXT`,definition:[{name:`encryptedSharedSecret`,type:12},{name:`encryptedMessage`,type:12}]};serializer=new Mv(e.schema);deserializer=new Nv(e.schema);encode(e,t){return this.serializer.serialize({encryptedSharedSecret:e,encryptedMessage:t})}decode(e){return this.deserializer.unserialize(e)}},Fv=class extends xv{static encoder=fg.bytesToBase64Encoder();constructor(e){super(),this.publicKey=e}async encrypt(e){let{cipherText:t,sharedSecret:n}=Hd.encapsulate(this.publicKey),r=await Ig.createFromBytes(n).encrypt(e);return new Pv().encode(t,r)}async getRawPublicKey(){return this.publicKey}getScheme(){return new Cv}},Iv=class e extends Sv{static async genFromSeed(t){if(t.length!==64)throw Error(`Seed must be 64 bytes long: got length: ${t?.length} bytes`);return new e(t)}static async gen(){return new e(Fu(64))}privateKey;publicKey;constructor(e){super(),this.seed=e;let{secretKey:t,publicKey:n}=Hd.keygen(e);this.privateKey=t,this.publicKey=n}getSupportedSeedLength(){return[64]}getScheme(){return new Cv}async getPublicKey(){return new Fv(this.publicKey)}getRawPrivateKey(){return this.privateKey}async decrypt(e){try{let{encryptedMessage:t,encryptedSharedSecret:n}=new Pv().decode(e),r=Hd.decapsulate(n,this.privateKey);return Ig.createFromBytes(r).decrypt(t)}catch(e){throw o.isCarmentisError(e)?new f:e}}},Lv=class e{static SIGNATURE_SIZE=65;getSignatureSchemeId(){return Ya.SECP256K1}getSignatureSize(){return e.SIGNATURE_SIZE}expectedSeedSize(){return 32}},Rv=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsBytes(){return this.publicKey}async verify(e,t){return ep(t,Gc(e),this.publicKey)}getScheme(){return new Lv}},zv=class e extends zg{constructor(e){super(),this.privateKey=e}getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}static gen(){return new e(op.randomPrivateKey())}static genFromSeed(t){return new e(ap.bytesToHex(t))}async getPublicKey(){if(this.privateKey instanceof Uint8Array)return new Rv(Gf(this.privateKey));throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}getPrivateKeyAsBytes(){if(this.privateKey instanceof Uint8Array)return this.privateKey;throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}async sign(e){return $f(Gc(e),this.privateKey).toCompactRawBytes()}getScheme(){return new Lv}},Bv=class e{static SIGNATURE_SIZE=65;getSignatureSchemeId(){return Ya.ED25519}getSignatureSize(){return e.SIGNATURE_SIZE}expectedSeedSize(){return 32}},Vv=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsBytes(){return this.publicKey}async verify(e,t){return K_(t,Gc(e),this.publicKey)}getScheme(){return new Bv}};q_.sha512=qc;var Hv=class e extends zg{constructor(e){super(),this.privateKey=e}getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}static gen(){return new e(J_.randomSecretKey())}static genFromSeed(t){return new e(t)}async getPublicKey(){if(this.privateKey instanceof Uint8Array)return new Vv(B_(this.privateKey));throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}getPrivateKeyAsBytes(){if(this.privateKey instanceof Uint8Array)return this.privateKey;throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}async sign(e){return U_(Gc(e),this.privateKey)}getScheme(){return new Bv}},Uv=class e{static createPrivateSignatureKey(e,t){switch(e){case Ya.SECP256K1:return new zv(t);case Ya.ML_DSA_65:return new Ug(t);case Ya.ED25519:return new Hv(t.slice(0,32));default:throw`Not supported signature scheme ID: ${e}`}}static createVirtualBlockchainPrivateSignature(e,t,n,r){let i=new Uint8Array([...n,...r]),a=new TextEncoder,o=e.deriveKeyNoSalt(i,a.encode(`VB_ACTOR_KEY`),32);switch(t){case Ya.ML_DSA_65:return new Ug(o);case Ya.SECP256K1:return zv.genFromSeed(o);case Ya.ED25519:return new Hv(o.slice(0,32));default:throw`Not supported signature scheme ID: ${t}`}}static deriveKeyFromPassword(t,n=sv.PBKDF2,r=Pg.AES_256_GCM){let i=e.createSymmetricEncryptionKeyScheme(r).getDefaultKeyLength(),a=e.createDefaultPBKDF().deriveKeyNoSalt(t,i);return e.createSymmetricEncryptionKey(r,a)}createDecapsulationKey(e,t){switch(e){default:throw`Not supported encryption scheme ID: ${e}`}}createVirtualBlockchainDecapsulationKey(e,t,n){switch(e){default:throw`Not supported encryption scheme ID: ${e}`}}async createPublicSignatureKey(t,n){return e.createPublicSignatureKey(t,n)}static async createPublicSignatureKey(e,t){switch(e){case Ya.SECP256K1:return new Rv(t);case Ya.ML_DSA_65:return new Hg(t);case Ya.ED25519:return new Vv(t);default:throw Error(`Not supported signature scheme ID: ${e}`)}}static async createPublicEncryptionKey(e,t){switch(e){case vv.ML_KEM_768_AES_256_GCM:return new Fv(t);default:throw Error(`Not supported scheme ID: ${e}`)}}static async createPrivateDecryptionKey(e,t){switch(e){case vv.ML_KEM_768_AES_256_GCM:return await Iv.genFromSeed(t);default:throw Error(`Not supported scheme ID: ${e}`)}}createSymmetricEncryptionKey(t,n){return e.createSymmetricEncryptionKey(t,n)}static createSymmetricEncryptionKey(e,t){switch(e){case Pg.AES_256_GCM:return Ig.createFromBytes(t);default:throw`Not supported encryption scheme ID: ${e}`}}static createSymmetricEncryptionKeyScheme(e){switch(e){case Pg.AES_256_GCM:return new Fg;default:throw`Not supported encryption scheme ID: ${e}`}}static createCryptographicHash(e){switch(e){case nv.SHA256:return new rv;default:throw`Not supported hash scheme ID: ${e}`}}static createDefaultCryptographicHash(){return new rv}static createDefaultPBKDF(){return new lv}static createDefaultKDF(){return new _v}static createSignatureScheme(e){switch(e){case Ya.SECP256K1:return new Lv;case Ya.ML_DSA_65:return new Vg;case Ya.ED25519:return new Bv;default:throw Error(`Not supported signature scheme ID: ${e}`)}}},Wv=class e{static PKE_KEY=`PKE`;static SK_PKE_KEY=`SK`;static PK_PKE_KEY=`PK`;static PKE_SCHEMES=[{algoId:vv.ML_KEM_768_AES_256_GCM,label:`MLKEM768AES256GCM`}];static createHexHCVPkeEncoder(){return new e(fg.bytesToHexEncoder())}static createBase64HCVPkeEncoder(){return new e(fg.bytesToBase64Encoder())}constructor(e){this.stringEncoder=e}async decodePrivateDecryptionKey(t){let n=gg.decode(t);for(let{algoId:t,label:r}of e.PKE_SCHEMES)if(n.matchesKeys(e.PKE_KEY,r,e.SK_PKE_KEY))return await Uv.createPrivateDecryptionKey(t,this.stringEncoder.decode(n.getValue()));throw Error(`Invalid private key format: no scheme key found`)}async decodePublicEncryptionKey(t){let n=gg.decode(t);for(let{algoId:t,label:r}of e.PKE_SCHEMES)if(n.matchesKeys(e.PKE_KEY,r,e.PK_PKE_KEY))return Uv.createPublicEncryptionKey(t,this.stringEncoder.decode(n.getValue()));throw Error(`Invalid private key format: no scheme key found`)}async encodePrivateDecryptionKey(t){return gg.encode(e.PKE_KEY,`MLKEM768AES256GCM`,e.SK_PKE_KEY,this.stringEncoder.encode(t.getRawPrivateKey()))}async encodePublicEncryptionKey(t){return gg.encode(e.PKE_KEY,`MLKEM768AES256GCM`,e.PK_PKE_KEY,this.stringEncoder.encode(await t.getRawPublicKey()))}},Gv=`SIG`,Kv=`SK`,qv=`PK`,Jv=class{bytesEncoder=fg.bytesToHexEncoder();constructor(e){this.labels=e}async encodePublicKey(e){return gg.encode(...this.getHCVPublicKeyEncodingPrefix(),this.bytesEncoder.encode(await e.getPublicKeyAsBytes()))}getHCVPrivateKeyEncodingPrefix(){return[Gv,...this.labels,Kv]}getHCVPublicKeyEncodingPrefix(){return[Gv,...this.labels,qv]}},Yv=class extends Jv{constructor(e){super(e)}async encodePrivateKey(e){return gg.encode(...this.getHCVPrivateKeyEncodingPrefix(),this.bytesEncoder.encode(e.getPrivateKeyAsBytes()))}},Xv=class extends Yv{constructor(){super([`SECP256K1`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof zv}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof Rv}},Zv=class extends Yv{constructor(){super([`MLDSA65`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof Ug}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof Hg}};function Qv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var $v={exports:{}},ey=$v.exports={},ty,ny;function ry(){throw Error(`setTimeout has not been defined`)}function iy(){throw Error(`clearTimeout has not been defined`)}(function(){try{ty=typeof setTimeout==`function`?setTimeout:ry}catch{ty=ry}try{ny=typeof clearTimeout==`function`?clearTimeout:iy}catch{ny=iy}})();function ay(e){if(ty===setTimeout)return setTimeout(e,0);if((ty===ry||!ty)&&setTimeout)return ty=setTimeout,setTimeout(e,0);try{return ty(e,0)}catch{try{return ty.call(null,e,0)}catch{return ty.call(this,e,0)}}}function oy(e){if(ny===clearTimeout)return clearTimeout(e);if((ny===iy||!ny)&&clearTimeout)return ny=clearTimeout,clearTimeout(e);try{return ny(e)}catch{try{return ny.call(null,e)}catch{return ny.call(this,e)}}}var sy=[],cy=!1,ly,uy=-1;function dy(){!cy||!ly||(cy=!1,ly.length?sy=ly.concat(sy):uy=-1,sy.length&&fy())}function fy(){if(!cy){var e=ay(dy);cy=!0;for(var t=sy.length;t;){for(ly=sy,sy=[];++uy<t;)ly&&ly[uy].run();uy=-1,t=sy.length}ly=null,cy=!1,oy(e)}}ey.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];sy.push(new py(e,t)),sy.length===1&&!cy&&ay(fy)};function py(e,t){this.fun=e,this.array=t}py.prototype.run=function(){this.fun.apply(null,this.array)},ey.title=`browser`,ey.browser=!0,ey.env={},ey.argv=[],ey.version=``,ey.versions={};function my(){}ey.on=my,ey.addListener=my,ey.once=my,ey.off=my,ey.removeListener=my,ey.removeAllListeners=my,ey.emit=my,ey.prependListener=my,ey.prependOnceListener=my,ey.listeners=function(e){return[]},ey.binding=function(e){throw Error(`process.binding is not supported`)},ey.cwd=function(){return`/`},ey.chdir=function(e){throw Error(`process.chdir is not supported`)},ey.umask=function(){return 0};var hy=$v.exports,gy=Qv(hy),_y=class{async getPkmsCredential(){let e=gy.env.PKMS_API_KEY;if(e===void 0)throw Error(`PKMS_API_KEY environment variable is not set.`);return e}},vy=`https://pkms.admin.carmentis.io`,yy=class e{static createFromKeyId(t){return new e(t)}credentialProvider=new _y;constructor(e,t={host:vy}){this.keyId=e,this.options=t}getKeyId(){return this.keyId}getPrivateKeyAsBytes(){throw Error(`Private key material cannot be exported.`)}async getPublicKey(){let e=await fetch(`${this.options.host}/api/keys/${this.keyId}/pk`,{method:`GET`,headers:{"Content-Type":`application/json`}});if(!e.ok)throw Error(`Failed to fetch public key with id ${this.keyId} at ${this.options.host}: ${e.statusText}.`);let t=(await e.json()).publicKey;if(t===void 0)throw Error(`Failed to fetch public key: no "publicKey" field found in response body.`);return new by(new Uint8Array(Ng.from(t,`base64`)))}getScheme(){return new Lv}getSignatureSchemeId(){return Ya.PKMS_SECP256K1}getSignatureSize(){return this.getScheme().getSignatureSize()}setCredentialProvider(e){this.credentialProvider=e}async sign(e){let t=await this.credentialProvider.getPkmsCredential();try{let n=await fetch(`${this.options.host}/api/sign`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"Content-Type":`application/json`},body:JSON.stringify({keyId:this.keyId,base64EncodedData:Ng.from(e).toString(`base64`)})});if(n.ok){let e=await n.json();return Ng.from(e.signature,`base64`)}else throw Error(`Failed to sign data.`)}catch(e){throw e}}},by=class extends Rv{getSignatureSchemeId(){return Ya.PKMS_SECP256K1}},xy=class extends Jv{constructor(){super([`PKMS`,`SECP256K1`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof yy}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof by}async encodePrivateKey(e){if(!(e instanceof yy))throw Error(`Invalid private key type: `+e.constructor.name);let t=e.getKeyId();return gg.encode(...this.getHCVPrivateKeyEncodingPrefix(),t)}},Sy=`SIG`,Cy=`SK`,wy=`PK`,Ty=class e{static logger=k.getLogger([`HCVSignatureDecoder`]);bytesEncoder=fg.bytesToHexEncoder();constructor(e){this.labels=e}async isAcceptingPrivateKeyDecodingRequest(t){try{let n=gg.decode(t);return e.logger.debug(`Attempt to decode private key for ${this.labels}: found ${n.getKeys()}`),n.matchesKeys(Sy,...this.labels,Cy)}catch(t){return e.logger.debug(`Fail to decode private key for ${this.labels}: ${t}`),!1}}async isAcceptingPublicKeyDecodingRequest(e){try{return gg.decode(e).matchesKeys(Sy,...this.labels,wy)}catch{return!1}}static getSignatureKey(){return Sy}static getSkSignatureKey(){return Cy}static getPkSignatureKey(){return wy}},Ey=class extends Ty{async decodePrivateKey(e){let t=gg.decode(e),n=this.bytesEncoder.decode(t.getValue());return this.bootstrapPrivateKey(n)}async decodePublicKey(e){let t=gg.decode(e),n=this.bytesEncoder.decode(t.getValue());return this.bootstrapPublicKey(n)}},Dy=class e extends Ey{static label=`SECP256K1`;constructor(){super([e.label])}bootstrapPrivateKey(e){return new zv(e)}bootstrapPublicKey(e){return new Rv(e)}},Oy=class e extends Ey{static ML_DSA65_SIGNATURE_KEY=`MLDSA65`;constructor(){super([e.ML_DSA65_SIGNATURE_KEY])}bootstrapPrivateKey(e){return new Ug(e)}bootstrapPublicKey(e){return new Hg(e)}},ky=class e extends Ty{static label=[`PKMS`,`SECP256K1`];constructor(){super(e.label)}async decodePrivateKey(e){return new yy(gg.decode(e).getValue())}async decodePublicKey(e){let t=gg.decode(e);return new by(this.bytesEncoder.decode(t.getValue()))}},Ay=class{encoders=[new Xv,new Zv,new xy];decoders=[new Dy,new Oy,new ky];constructor(e=fg.bytesToHexEncoder()){this.bytesEncoder=e}registerEncoder(e){this.encoders.push(e)}registerDecoder(e){this.decoders.push(e)}decodeMessage(e){return this.bytesEncoder.decode(e)}async decodePrivateKey(e){for(let t of this.decoders)if(await t.isAcceptingPrivateKeyDecodingRequest(e))return await t.decodePrivateKey(e);throw Error(`Invalid private key format: no decoder found`)}async decodePublicKey(e){for(let t of this.decoders)if(await t.isAcceptingPublicKeyDecodingRequest(e))return await t.decodePublicKey(e);throw Error(`Invalid private key format: no decoder found`)}decodeSignature(e){return this.bytesEncoder.decode(e)}encodeMessage(e){return this.bytesEncoder.encode(e)}async encodePrivateKey(e){for(let t of this.encoders)if(await t.isAcceptingPrivateKeyEncodingRequest(e))return await t.encodePrivateKey(e);throw Error(`No encoder found`)}async encodePublicKey(e){for(let t of this.encoders)if(await t.isAcceptingPublicKeyEncodingRequest(e))return await t.encodePublicKey(e);throw Error(`No encoder found`)}encodeSignature(e){return this.bytesEncoder.encode(e)}},jy;try{jy=new TextDecoder}catch{}var G,My,K=0,Ny=[],Py=105,Fy=57342,Iy=57343,Ly=57337,Ry=6,zy={},By=11281e4,Vy=1681e4,Hy=Ny,Uy=0,q={},Wy,Gy,Ky=0,qy=0,Jy,Yy,Xy=[],Zy=[],Qy,$y,eb,tb={useRecords:!1,mapsAsObjects:!0},nb=!1,rb=2;try{Function(``)}catch{rb=1/0}var ib=class e{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[t,n]of Object.entries(e.keyMap))this.mapKey.set(n,t)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let t=new Map;for(let[n,r]of Object.entries(e))t.set(this._keyMap.hasOwnProperty(n)?this._keyMap[n]:n,r);return t}decodeKeys(e){if(!this._keyMap||e.constructor.name!=`Map`)return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let t={};return e.forEach((e,n)=>t[cb(this._mapKey.has(n)?this._mapKey.get(n):n)]=e),t}mapDecode(e,t){let n=this.decode(e);if(this._keyMap)switch(n.constructor.name){case`Array`:return n.map(e=>this.decodeKeys(e))}return n}decode(t,n){if(G)return Mb(()=>(Nb(),this?this.decode(t,n):e.prototype.decode.call(tb,t,n)));My=n>-1?n:t.length,K=0,Uy=0,qy=0,Gy=null,Hy=Ny,Jy=null,G=t;try{$y=t.dataView||=new DataView(t.buffer,t.byteOffset,t.byteLength)}catch(e){throw G=null,t instanceof Uint8Array?e:Error(`Source must be a Uint8Array or Buffer but was a `+(t&&typeof t==`object`?t.constructor.name:typeof t))}if(this instanceof e){if(q=this,Qy=this.sharedValues&&(this.pack?Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return Wy=this.structures,ab();(!Wy||Wy.length>0)&&(Wy=[])}else q=tb,(!Wy||Wy.length>0)&&(Wy=[]),Qy=null;return ab()}decodeMultiple(e,t){let n,r=0;try{let i=e.length;nb=!0;let a=this?this.decode(e,i):Fb.decode(e,i);if(t){if(t(a)===!1)return;for(;K<i;)if(r=K,t(ab())===!1)return}else{for(n=[a];K<i;)r=K,n.push(ab());return n}}catch(e){throw e.lastPosition=r,e.values=n,e}finally{nb=!1,Nb()}}};function ab(){try{let e=J();if(Jy){if(K>=Jy.postBundlePosition){let e=Error(`Unexpected bundle position`);throw e.incomplete=!0,e}K=Jy.postBundlePosition,Jy=null}if(K==My)Wy=null,G=null,Yy&&=null;else if(K>My){let e=Error(`Unexpected end of CBOR data`);throw e.incomplete=!0,e}else if(!nb)throw Error(`Data read, but end of buffer not reached`);return e}catch(e){throw Nb(),(e instanceof RangeError||e.message.startsWith(`Unexpected end of buffer`))&&(e.incomplete=!0),e}}function J(){let e=G[K++],t=e>>5;if(e&=31,e>23)switch(e){case 24:e=G[K++];break;case 25:if(t==7)return _b();e=$y.getUint16(K),K+=2;break;case 26:if(t==7){let e=$y.getFloat32(K);if(q.useFloat32>2){let t=Pb[(G[K]&127)<<1|G[K+1]>>7];return K+=4,(t*e+(e>0?.5:-.5)>>0)/t}return K+=4,e}if(e=$y.getUint32(K),K+=4,t===1)return-1-e;break;case 27:if(t==7){let e=$y.getFloat64(K);return K+=8,e}if(t>1){if($y.getUint32(K)>0)throw Error(`JavaScript does not support arrays, maps, or strings with length over 4294967295`);e=$y.getUint32(K+4)}else q.int64AsNumber?(e=$y.getUint32(K)*4294967296,e+=$y.getUint32(K+4)):e=$y.getBigUint64(K);K+=8;break;case 31:switch(t){case 2:case 3:throw Error(`Indefinite length not supported for byte or text strings`);case 4:let e=[],n,r=0;for(;(n=J())!=zy;){if(r>=By)throw Error(`Array length exceeds ${By}`);e[r++]=n}return t==4?e:t==3?e.join(``):Ng.concat(e);case 5:let i;if(q.mapsAsObjects){let e={},t=0;if(q.keyMap)for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Property count exceeds ${Vy}`);e[cb(q.decodeKey(i))]=J()}else for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Property count exceeds ${Vy}`);e[cb(i)]=J()}return e}else{eb&&=(q.mapsAsObjects=!0,!1);let e=new Map;if(q.keyMap){let t=0;for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Map size exceeds ${Vy}`);e.set(q.decodeKey(i),J())}}else{let t=0;for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Map size exceeds ${Vy}`);e.set(i,J())}}return e}case 7:return zy;default:throw Error(`Invalid major type for indefinite length `+t)}default:throw Error(`Unknown token `+e)}switch(t){case 0:return e;case 1:return~e;case 2:return mb(e);case 3:if(qy>=K)return Gy.slice(K-Ky,(K+=e)-Ky);if(qy==0&&My<140&&e<32){let t=e<16?pb(e):fb(e);if(t!=null)return t}return lb(e);case 4:if(e>=By)throw Error(`Array length exceeds ${By}`);let t=Array(e);for(let n=0;n<e;n++)t[n]=J();return t;case 5:if(e>=Vy)throw Error(`Map size exceeds ${By}`);if(q.mapsAsObjects){let t={};if(q.keyMap)for(let n=0;n<e;n++)t[cb(q.decodeKey(J()))]=J();else for(let n=0;n<e;n++)t[cb(J())]=J();return t}else{eb&&=(q.mapsAsObjects=!0,!1);let t=new Map;if(q.keyMap)for(let n=0;n<e;n++)t.set(q.decodeKey(J()),J());else for(let n=0;n<e;n++)t.set(J(),J());return t}case 6:if(e>=Ly){let t=Wy[e&8191];if(t)return t.read||=sb(t),t.read();if(e<65536){if(e==Iy){let e=Ab(),t=J(),n=J();yb(t,n);let r={};if(q.keyMap)for(let t=2;t<e;t++){let e=q.decodeKey(n[t-2]);r[cb(e)]=J()}else for(let t=2;t<e;t++){let e=n[t-2];r[cb(e)]=J()}return r}else if(e==Fy){let e=Ab(),t=J();for(let n=2;n<e;n++)yb(t++,J());return J()}else if(e==Ly)return kb();if(q.getShared&&(jb(),t=Wy[e&8191],t))return t.read||=sb(t),t.read()}}let n=Xy[e];if(n)return n.handlesRead?n(J):n(J());{let t=J();for(let n=0;n<Zy.length;n++){let r=Zy[n](e,t);if(r!==void 0)return r}return new vb(t,e)}case 7:switch(e){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let t=(Qy||Cb())[e];if(t!==void 0)return t;throw Error(`Unknown token `+e)}default:if(isNaN(e)){let e=Error(`Unexpected end of CBOR data`);throw e.incomplete=!0,e}throw Error(`Unknown CBOR token `+e)}}var ob=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function sb(e){if(!e)throw Error(`Structure is required in record definition`);function t(){let e=G[K++];if(e&=31,e>23)switch(e){case 24:e=G[K++];break;case 25:e=$y.getUint16(K),K+=2;break;case 26:e=$y.getUint32(K),K+=4;break;default:throw Error(`Expected array header, but got `+G[K-1])}let t=this.compiledReader;for(;t;){if(t.propertyCount===e)return t(J);t=t.next}if(this.slowReads++>=rb){let n=this.length==e?this:this.slice(0,e);return t=q.keyMap?Function(`r`,`return {`+n.map(e=>q.decodeKey(e)).map(e=>ob.test(e)?cb(e)+`:r()`:`[`+JSON.stringify(e)+`]:r()`).join(`,`)+`}`):Function(`r`,`return {`+n.map(e=>ob.test(e)?cb(e)+`:r()`:`[`+JSON.stringify(e)+`]:r()`).join(`,`)+`}`),this.compiledReader&&(t.next=this.compiledReader),t.propertyCount=e,this.compiledReader=t,t(J)}let n={};if(q.keyMap)for(let t=0;t<e;t++)n[cb(q.decodeKey(this[t]))]=J();else for(let t=0;t<e;t++)n[cb(this[t])]=J();return n}return e.slowReads=0,t}function cb(e){if(typeof e==`string`)return e===`__proto__`?`__proto_`:e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return e.toString();if(e==null)return e+``;throw Error(`Invalid property name type `+typeof e)}var lb=ub;function ub(e){let t;if(e<16&&(t=pb(e)))return t;if(e>64&&jy)return jy.decode(G.subarray(K,K+=e));let n=K+e,r=[];for(t=``;K<n;){let e=G[K++];if(!(e&128))r.push(e);else if((e&224)==192){let t=G[K++]&63,n=(e&31)<<6|t;n<128?r.push(65533):r.push(n)}else if((e&240)==224){let t=G[K++]&63,n=G[K++]&63,i=(e&31)<<12|t<<6|n;i<2048||i>=55296&&i<=57343?r.push(65533):r.push(i)}else if((e&248)==240){let t=G[K++]&63,n=G[K++]&63,i=G[K++]&63,a=(e&7)<<18|t<<12|n<<6|i;a<65536||a>1114111?r.push(65533):a>65535?(a-=65536,r.push(a>>>10&1023|55296),a=56320|a&1023,r.push(a)):r.push(a)}else r.push(65533);r.length>=4096&&(t+=db.apply(String,r),r.length=0)}return r.length>0&&(t+=db.apply(String,r)),t}var db=String.fromCharCode;function fb(e){let t=K,n=Array(e);for(let r=0;r<e;r++){let e=G[K++];if((e&128)>0){K=t;return}n[r]=e}return db.apply(String,n)}function pb(e){if(e<4)if(e<2){if(e===0)return``;{let e=G[K++];if((e&128)>1){--K;return}return db(e)}}else{let t=G[K++],n=G[K++];if((t&128)>0||(n&128)>0){K-=2;return}if(e<3)return db(t,n);let r=G[K++];if((r&128)>0){K-=3;return}return db(t,n,r)}else{let t=G[K++],n=G[K++],r=G[K++],i=G[K++];if((t&128)>0||(n&128)>0||(r&128)>0||(i&128)>0){K-=4;return}if(e<6){if(e===4)return db(t,n,r,i);{let e=G[K++];if((e&128)>0){K-=5;return}return db(t,n,r,i,e)}}else if(e<8){let a=G[K++],o=G[K++];if((a&128)>0||(o&128)>0){K-=6;return}if(e<7)return db(t,n,r,i,a,o);let s=G[K++];if((s&128)>0){K-=7;return}return db(t,n,r,i,a,o,s)}else{let a=G[K++],o=G[K++],s=G[K++],c=G[K++];if((a&128)>0||(o&128)>0||(s&128)>0||(c&128)>0){K-=8;return}if(e<10){if(e===8)return db(t,n,r,i,a,o,s,c);{let e=G[K++];if((e&128)>0){K-=9;return}return db(t,n,r,i,a,o,s,c,e)}}else if(e<12){let l=G[K++],u=G[K++];if((l&128)>0||(u&128)>0){K-=10;return}if(e<11)return db(t,n,r,i,a,o,s,c,l,u);let d=G[K++];if((d&128)>0){K-=11;return}return db(t,n,r,i,a,o,s,c,l,u,d)}else{let l=G[K++],u=G[K++],d=G[K++],f=G[K++];if((l&128)>0||(u&128)>0||(d&128)>0||(f&128)>0){K-=12;return}if(e<14){if(e===12)return db(t,n,r,i,a,o,s,c,l,u,d,f);{let e=G[K++];if((e&128)>0){K-=13;return}return db(t,n,r,i,a,o,s,c,l,u,d,f,e)}}else{let p=G[K++],m=G[K++];if((p&128)>0||(m&128)>0){K-=14;return}if(e<15)return db(t,n,r,i,a,o,s,c,l,u,d,f,p,m);let h=G[K++];if((h&128)>0){K-=15;return}return db(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h)}}}}}function mb(e){return q.copyBuffers?Uint8Array.prototype.slice.call(G,K,K+=e):G.subarray(K,K+=e)}var hb=new Float32Array(1),gb=new Uint8Array(hb.buffer,0,4);function _b(){let e=G[K++],t=G[K++],n=(e&127)>>2;if(n===31)return t||e&3?NaN:e&128?-1/0:1/0;if(n===0){let n=((e&3)<<8|t)/(1<<24);return e&128?-n:n}return gb[3]=e&128|(n>>1)+56,gb[2]=(e&7)<<5|t>>3,gb[1]=t<<5,gb[0]=0,hb[0]}Array(4096);var vb=class{constructor(e,t){this.value=e,this.tag=t}};Xy[0]=e=>new Date(e),Xy[1]=e=>new Date(Math.round(e*1e3)),Xy[2]=e=>{let t=BigInt(0);for(let n=0,r=e.byteLength;n<r;n++)t=BigInt(e[n])+(t<<BigInt(8));return t},Xy[3]=e=>BigInt(-1)-Xy[2](e),Xy[4]=e=>+(e[1]+`e`+e[0]),Xy[5]=e=>e[1]*Math.exp(e[0]*Math.log(2));var yb=(e,t)=>{e-=57344;let n=Wy[e];n&&n.isShared&&((Wy.restoreStructures||=[])[e]=n),Wy[e]=t,t.read=sb(t)};Xy[Py]=e=>{let t=e.length,n=e[1];yb(e[0],n);let r={};for(let i=2;i<t;i++){let t=n[i-2];r[cb(t)]=e[i]}return r},Xy[14]=e=>Jy?Jy[0].slice(Jy.position0,Jy.position0+=e):new vb(e,14),Xy[15]=e=>Jy?Jy[1].slice(Jy.position1,Jy.position1+=e):new vb(e,15);var bb={Error,RegExp};Xy[27]=e=>(bb[e[0]]||Error)(e[1],e[2]);var xb=e=>{if(G[K++]!=132){let e=Error(`Packed values structure must be followed by a 4 element array`);throw G.length<K&&(e.incomplete=!0),e}let t=e();if(!t||!t.length){let e=Error(`Packed values structure must be followed by a 4 element array`);throw e.incomplete=!0,e}return Qy=Qy?t.concat(Qy.slice(t.length)):t,Qy.prefixes=e(),Qy.suffixes=e(),e()};xb.handlesRead=!0,Xy[51]=xb,Xy[Ry]=e=>{if(!Qy)if(q.getShared)jb();else return new vb(e,Ry);if(typeof e==`number`)return Qy[16+(e>=0?2*e:-2*e-1)];let t=Error(`No support for non-integer packed references yet`);throw e===void 0&&(t.incomplete=!0),t},Xy[28]=e=>{Yy||(Yy=new Map,Yy.id=0);let t=Yy.id++,n=K,r=G[K],i;i=r>>5==4?[]:{};let a={target:i};Yy.set(t,a);let o=e();return a.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(K=n,i=o,Yy.set(t,{target:i}),o=e()),Object.assign(i,o)):(a.target=o,o)},Xy[28].handlesRead=!0,Xy[29]=e=>{let t=Yy.get(e);return t.used=!0,t.target},Xy[258]=e=>new Set(e),(Xy[259]=e=>(q.mapsAsObjects&&(q.mapsAsObjects=!1,eb=!0),e())).handlesRead=!0;function Sb(e,t){return typeof e==`string`?e+t:e instanceof Array?e.concat(t):Object.assign({},e,t)}function Cb(){if(!Qy)if(q.getShared)jb();else throw Error(`No packed values available`);return Qy}var wb=1399353956;Zy.push((e,t)=>{if(e>=225&&e<=255)return Sb(Cb().prefixes[e-224],t);if(e>=28704&&e<=32767)return Sb(Cb().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return Sb(Cb().prefixes[e-1879048192],t);if(e>=216&&e<=223)return Sb(t,Cb().suffixes[e-216]);if(e>=27647&&e<=28671)return Sb(t,Cb().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return Sb(t,Cb().suffixes[e-1811939328]);if(e==wb)return{packedValues:Qy,structures:Wy.slice(0),version:t};if(e==55799)return t});var Tb=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,Eb=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>`u`?{name:`BigUint64Array`}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>`u`?{name:`BigInt64Array`}:BigInt64Array,Float32Array,Float64Array],Db=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e<Eb.length;e++)Ob(Eb[e],Db[e]);function Ob(e,t){let n=`get`+e.name.slice(0,-5),r;typeof e==`function`?r=e.BYTES_PER_ELEMENT:e=null;for(let i=0;i<2;i++){if(!i&&r==1)continue;let a=r==2?1:r==4?2:r==8?3:0;Xy[i?t:t-4]=r==1||i==Tb?n=>{if(!e)throw Error(`Could not find typed array for code `+t);return!q.copyBuffers&&(r===1||r===2&&!(n.byteOffset&1)||r===4&&!(n.byteOffset&3)||r===8&&!(n.byteOffset&7))?new e(n.buffer,n.byteOffset,n.byteLength>>a):new e(Uint8Array.prototype.slice.call(n,0).buffer)}:r=>{if(!e)throw Error(`Could not find typed array for code `+t);let o=new DataView(r.buffer,r.byteOffset,r.byteLength),s=r.length>>a,c=new e(s),l=o[n];for(let e=0;e<s;e++)c[e]=l.call(o,e<<a,i);return c}}}function kb(){let e=Ab(),t=K+J();for(let t=2;t<e;t++){let e=Ab();K+=e}let n=K;return K=t,Jy=[ub(Ab()),ub(Ab())],Jy.position0=0,Jy.position1=0,Jy.postBundlePosition=K,K=n,J()}function Ab(){let e=G[K++]&31;if(e>23)switch(e){case 24:e=G[K++];break;case 25:e=$y.getUint16(K),K+=2;break;case 26:e=$y.getUint32(K),K+=4;break}return e}function jb(){if(q.getShared){let e=Mb(()=>(G=null,q.getShared()))||{},t=e.structures||[];q.sharedVersion=e.version,Qy=q.sharedValues=e.packedValues,Wy===!0?q.structures=Wy=t:Wy.splice.apply(Wy,[0,t.length].concat(t))}}function Mb(e){let t=My,n=K,r=Uy,i=Ky,a=qy,o=Gy,s=Hy,c=Yy,l=Jy,u=new Uint8Array(G.slice(0,My)),d=Wy,f=q,p=nb,m=e();return My=t,K=n,Uy=r,Ky=i,qy=a,Gy=o,Hy=s,Yy=c,Jy=l,G=u,nb=p,Wy=d,q=f,$y=new DataView(G.buffer,G.byteOffset,G.byteLength),m}function Nb(){G=null,Yy=null,Wy=null}var Pb=Array(147);for(let e=0;e<256;e++)Pb[e]=+(`1e`+Math.floor(45.15-e*.30103));var Fb=new ib({useRecords:!1}),Ib=Fb.decode;Fb.decodeMultiple;var Lb={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Rb;try{Rb=new TextEncoder}catch{}var zb,Bb,Vb=typeof globalThis==`object`&&globalThis.Buffer,Hb=Vb!==void 0,Ub=Hb?Vb.allocUnsafeSlow:Uint8Array,Wb=Hb?Vb:Uint8Array,Gb=256,Kb=Hb?4294967296:2144337920,qb,Y,Jb,X=0,Yb,Xb=null,Zb=61440,Qb=/[\u0080-\uFFFF]/,$b=Symbol(`record-id`),ex=class extends ib{constructor(e){super(e),this.offset=0;let t,n,r,i,a;e||={};let o=Wb.prototype.utf8Write?function(e,t){return Y.utf8Write(e,t,Y.byteLength-t)}:Rb&&Rb.encodeInto?function(e,t){return Rb.encodeInto(e,Y.subarray(t)).written}:!1,s=this,c=e.structures||e.saveStructures,l=e.maxSharedStructures;if(l??=c?128:0,l>8190)throw Error(`Maximum maxSharedStructure is 8190`);let u=e.sequential;u&&(l=0),this.structures||=[],this.saveStructures&&(this.saveShared=this.saveStructures);let d,f,p=e.sharedValues,m;if(p){m=Object.create(null);for(let e=0,t=p.length;e<t;e++)m[p[e]]=e}let h=[],g=0,_=0;this.mapEncode=function(e,t){if(this._keyMap&&!this._mapped)switch(e.constructor.name){case`Array`:e=e.map(e=>this.encodeKeys(e));break}return this.encode(e,t)},this.encode=function(o,c){if(Y||(Y=new Ub(8192),Jb=new DataView(Y.buffer,0,8192),X=0),Yb=Y.length-10,Yb-X<2048?(Y=new Ub(Y.length),Jb=new DataView(Y.buffer,0,Y.length),Yb=Y.length-10,X=0):c===512&&(X=X+7&2147483640),t=X,s.useSelfDescribedHeader&&(Jb.setUint32(X,3654940416),X+=3),a=s.structuredClone?new Map:null,s.bundleStrings&&typeof o!=`string`?(Xb=[],Xb.size=1/0):Xb=null,n=s.structures,n){if(n.uninitialized){let e=s.getShared()||{};s.structures=n=e.structures||[],s.sharedVersion=e.version;let t=s.sharedValues=e.packedValues;if(t){m={};for(let e=0,n=t.length;e<n;e++)m[t[e]]=e}}let e=n.length;if(e>l&&!u&&(e=l),!n.transitions){n.transitions=Object.create(null);for(let t=0;t<e;t++){let e=n[t];if(!e)continue;let r,i=n.transitions;for(let n=0,a=e.length;n<a;n++){i[$b]===void 0&&(i[$b]=t);let a=e[n];r=i[a],r||=i[a]=Object.create(null),i=r}i[$b]=t|1048576}}u||(n.nextId=e)}if(r&&=!1,i=n||[],f=m,e.pack){let t=new Map;if(t.values=[],t.encoder=s,t.maxValues=e.maxPrivatePackedValues||(m?16:1/0),t.objectMap=m||!1,t.samplingPackedValues=d,ox(o,t),t.values.length>0){Y[X++]=216,Y[X++]=51,rx(4);let e=t.values;v(e),rx(0),rx(0),f=Object.create(m||null);for(let t=0,n=e.length;t<n;t++)f[e[t]]=t}}qb=c&vx;try{if(qb)return;if(v(o),Xb&&dx(t,v),s.offset=X,a&&a.idsToInsert){X+=a.idsToInsert.length*2,X>Yb&&b(X),s.offset=X;let e=ux(Y.subarray(t,X),a.idsToInsert);return a=null,e}return c&512?(Y.start=t,Y.end=X,Y):Y.subarray(t,X)}finally{if(n){if(_<10&&_++,n.length>l&&(n.length=l),g>1e4)n.transitions=null,_=0,g=0,h.length>0&&(h=[]);else if(h.length>0&&!u){for(let e=0,t=h.length;e<t;e++)h[e][$b]=void 0;h=[]}}if(r&&s.saveShared){s.structures.length>l&&(s.structures=s.structures.slice(0,l));let e=Y.subarray(t,X);return s.updateSharedData()===!1?s.encode(o):e}c&1024&&(X=t)}},this.findCommonStringsToPack=()=>(d=new Map,m||=Object.create(null),e=>{let t=e&&e.threshold||4,n=this.pack?e.maxPrivatePackedValues||16:0;p||=this.sharedValues=[];for(let[e,i]of d)i.count>t&&(m[e]=n++,p.push(e),r=!0);for(;this.saveShared&&this.updateSharedData()===!1;);d=null});let v=n=>{X>Yb&&(Y=b(X));var r=typeof n,i;if(r===`string`){if(f){let t=f[n];if(t>=0){t<16?Y[X++]=t+224:(Y[X++]=198,t&1?v(15-t>>1):v(t-16>>1));return}else if(d&&!e.pack){let e=d.get(n);e?e.count++:d.set(n,{count:1})}}let r=n.length;if(Xb&&r>=4&&r<1024){if((Xb.size+=r)>Zb){let e,n=(Xb[0]?Xb[0].length*3+Xb[1].length:0)+10;X+n>Yb&&(Y=b(X+n)),Y[X++]=217,Y[X++]=223,Y[X++]=249,Y[X++]=Xb.position?132:130,Y[X++]=26,e=X-t,X+=4,Xb.position&&dx(t,v),Xb=[``,``],Xb.size=0,Xb.position=e}let e=Qb.test(n);Xb[+!e]+=n,Y[X++]=e?206:207,v(r);return}let a;a=r<32?1:r<256?2:r<65536?3:5;let s=r*3;if(X+s>Yb&&(Y=b(X+s)),r<64||!o){let e,t,o,s=X+a;for(e=0;e<r;e++)t=n.charCodeAt(e),t<128?Y[s++]=t:t<2048?(Y[s++]=t>>6|192,Y[s++]=t&63|128):(t&64512)==55296&&((o=n.charCodeAt(e+1))&64512)==56320?(t=65536+((t&1023)<<10)+(o&1023),e++,Y[s++]=t>>18|240,Y[s++]=t>>12&63|128,Y[s++]=t>>6&63|128,Y[s++]=t&63|128):(Y[s++]=t>>12|224,Y[s++]=t>>6&63|128,Y[s++]=t&63|128);i=s-X-a}else i=o(n,X+a,s);i<24?Y[X++]=96|i:i<256?(a<2&&Y.copyWithin(X+2,X+1,X+1+i),Y[X++]=120,Y[X++]=i):i<65536?(a<3&&Y.copyWithin(X+3,X+2,X+2+i),Y[X++]=121,Y[X++]=i>>8,Y[X++]=i&255):(a<5&&Y.copyWithin(X+5,X+3,X+3+i),Y[X++]=122,Jb.setUint32(X,i),X+=4),X+=i}else if(r===`number`)if(!this.alwaysUseFloat&&n>>>0===n)n<24?Y[X++]=n:n<256?(Y[X++]=24,Y[X++]=n):n<65536?(Y[X++]=25,Y[X++]=n>>8,Y[X++]=n&255):(Y[X++]=26,Jb.setUint32(X,n),X+=4);else if(!this.alwaysUseFloat&&n>>0===n)n>=-24?Y[X++]=31-n:n>=-256?(Y[X++]=56,Y[X++]=~n):n>=-65536?(Y[X++]=57,Jb.setUint16(X,~n),X+=2):(Y[X++]=58,Jb.setUint32(X,~n),X+=4);else if(!this.alwaysUseFloat&&n<0&&n>=-4294967296&&Math.floor(n)===n)Y[X++]=58,Jb.setUint32(X,-1-n),X+=4;else{let e;if((e=this.useFloat32)>0&&n<4294967296&&n>=-2147483648){Y[X++]=250,Jb.setFloat32(X,n);let t;if(e<4||(t=n*Pb[(Y[X]&127)<<1|Y[X+1]>>7])>>0===t){X+=4;return}else X--}Y[X++]=251,Jb.setFloat64(X,n),X+=8}else if(r===`object`)if(!n)Y[X++]=246;else{if(a){let e=a.get(n);if(e){if(Y[X++]=216,Y[X++]=29,Y[X++]=25,!e.references){let t=a.idsToInsert||=[];e.references=[],t.push(e)}e.references.push(X-t),X+=2;return}else a.set(n,{offset:X-t})}let e=n.constructor;if(e===Object)this.skipFunction===!0&&(n=Object.fromEntries([...Object.keys(n).filter(e=>typeof n[e]!=`function`).map(e=>[e,n[e]])])),y(n);else if(e===Array){i=n.length,i<24?Y[X++]=128|i:rx(i);for(let e=0;e<i;e++)v(n[e])}else if(e===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(Y[X++]=217,Y[X++]=1,Y[X++]=3),i=n.size,i<24?Y[X++]=160|i:i<256?(Y[X++]=184,Y[X++]=i):i<65536?(Y[X++]=185,Y[X++]=i>>8,Y[X++]=i&255):(Y[X++]=186,Jb.setUint32(X,i),X+=4),s.keyMap)for(let[e,t]of n)v(s.encodeKey(e)),v(t);else for(let[e,t]of n)v(e),v(t);else{for(let e=0,t=zb.length;e<t;e++){let t=Bb[e];if(n instanceof t){let t=zb[e],r=t.tag;r??=t.getTag&&t.getTag.call(this,n),r<24?Y[X++]=192|r:r<256?(Y[X++]=216,Y[X++]=r):r<65536?(Y[X++]=217,Y[X++]=r>>8,Y[X++]=r&255):r>-1&&(Y[X++]=218,Jb.setUint32(X,r),X+=4),t.encode.call(this,n,v,b);return}}if(n[Symbol.iterator]){if(qb){let e=Error(`Iterable should be serialized as iterator`);throw e.iteratorNotHandled=!0,e}Y[X++]=159;for(let e of n)v(e);Y[X++]=255;return}if(n[Symbol.asyncIterator]||ax(n)){let e=Error(`Iterable/blob should be serialized as iterator`);throw e.iteratorNotHandled=!0,e}if(this.useToJSON&&n.toJSON){let e=n.toJSON();if(e!==n)return v(e)}y(n)}}else if(r===`boolean`)Y[X++]=n?245:244;else if(r===`bigint`){if(n<BigInt(1)<<BigInt(64)&&n>=0)Y[X++]=27,Jb.setBigUint64(X,n);else if(n>-(BigInt(1)<<BigInt(64))&&n<0)Y[X++]=59,Jb.setBigUint64(X,-n-BigInt(1));else if(this.largeBigIntToFloat)Y[X++]=251,Jb.setFloat64(X,Number(n));else{n>=BigInt(0)?Y[X++]=194:(Y[X++]=195,n=BigInt(-1)-n);let e=[];for(;n;)e.push(Number(n&BigInt(255))),n>>=BigInt(8);lx(new Uint8Array(e.reverse()),b);return}X+=8}else if(r===`undefined`)Y[X++]=247;else throw Error(`Unknown type: `+r)},y=this.useRecords===!1?this.variableMapSize?e=>{let t=Object.keys(e),n=Object.values(e),r=t.length;if(r<24?Y[X++]=160|r:r<256?(Y[X++]=184,Y[X++]=r):r<65536?(Y[X++]=185,Y[X++]=r>>8,Y[X++]=r&255):(Y[X++]=186,Jb.setUint32(X,r),X+=4),s.keyMap)for(let e=0;e<r;e++)v(s.encodeKey(t[e])),v(n[e]);else for(let e=0;e<r;e++)v(t[e]),v(n[e])}:e=>{Y[X++]=185;let n=X-t;X+=2;let r=0;if(s.keyMap)for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(v(s.encodeKey(t)),v(e[t]),r++);else for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(v(t),v(e[t]),r++);Y[n+++t]=r>>8,Y[n+t]=r&255}:(e,t)=>{let n,a=i.transitions||=Object.create(null),o=0,s=0,c,u;if(this.keyMap){u=Object.keys(e).map(e=>this.encodeKey(e)),s=u.length;for(let e=0;e<s;e++){let t=u[e];n=a[t],n||(n=a[t]=Object.create(null),o++),a=n}}else for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(n=a[t],n||(a[$b]&1048576&&(c=a[$b]&65535),n=a[t]=Object.create(null),o++),a=n,s++);let d=a[$b];if(d!==void 0)d&=65535,Y[X++]=217,Y[X++]=d>>8|224,Y[X++]=d&255;else if(u||=a.__keys__||=Object.keys(e),c===void 0?(d=i.nextId++,d||(d=0,i.nextId=1),d>=Gb&&(i.nextId=(d=l)+1)):d=c,i[d]=u,d<l){Y[X++]=217,Y[X++]=d>>8|224,Y[X++]=d&255,a=i.transitions;for(let e=0;e<s;e++)(a[$b]===void 0||a[$b]&1048576)&&(a[$b]=d),a=a[u[e]];a[$b]=d|1048576,r=!0}else{if(a[$b]=d,Jb.setUint32(X,3655335680),X+=3,o&&(g+=_*o),h.length>=Gb-l&&(h.shift()[$b]=void 0),h.push(a),rx(s+2),v(57344+d),v(u),t)return;for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&v(e[t]);return}if(s<24?Y[X++]=128|s:rx(s),!t)for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&v(e[t])},b=e=>{let n;if(e>16777216){if(e-t>Kb)throw Error(`Encoded buffer would be larger than maximum buffer size`);n=Math.min(Kb,Math.round(Math.max((e-t)*(e>67108864?1.25:2),4194304)/4096)*4096)}else n=(Math.max(e-t<<2,Y.length-1)>>12)+1<<12;let r=new Ub(n);return Jb=new DataView(r.buffer,0,n),Y.copy?Y.copy(r,0,t,e):r.set(Y.slice(t,e)),X-=t,t=0,Yb=r.length-10,Y=r},ee=100,x=1e3;this.encodeAsIterable=function(e,t){return ie(e,t,te)},this.encodeAsAsyncIterable=function(e,t){return ie(e,t,ae)};function*te(e,n,r){let i=e.constructor;if(i===Object){let t=s.useRecords!==!1;t?y(e,!0):tx(Object.keys(e).length,160);for(let r in e){let i=e[r];t||v(r),i&&typeof i==`object`?n[r]?yield*te(i,n[r]):yield*ne(i,n,r):v(i)}}else if(i===Array){let r=e.length;rx(r);for(let i=0;i<r;i++){let r=e[i];r&&(typeof r==`object`||X-t>ee)?n.element?yield*te(r,n.element):yield*ne(r,n,`element`):v(r)}}else if(e[Symbol.iterator]&&!e.buffer){Y[X++]=159;for(let r of e)r&&(typeof r==`object`||X-t>ee)?n.element?yield*te(r,n.element):yield*ne(r,n,`element`):v(r);Y[X++]=255}else ax(e)?(tx(e.size,64),yield Y.subarray(t,X),yield e,re()):e[Symbol.asyncIterator]?(Y[X++]=159,yield Y.subarray(t,X),yield e,re(),Y[X++]=255):v(e);r&&X>t?yield Y.subarray(t,X):X-t>ee&&(yield Y.subarray(t,X),re())}function*ne(e,n,r){let i=X-t;try{v(e),X-t>ee&&(yield Y.subarray(t,X),re())}catch(a){if(a.iteratorNotHandled)n[r]={},X=t+i,yield*te.call(this,e,n[r]);else throw a}}function re(){ee=x,s.encode(null,vx)}function ie(e,t,n){return ee=t&&t.chunkThreshold?x=t.chunkThreshold:100,e&&typeof e==`object`?(s.encode(null,vx),n(e,s.iterateProperties||={},!0)):[s.encode(e)]}async function*ae(e,t){for(let n of te(e,t,!0)){let e=n.constructor;if(e===Wb||e===Uint8Array)yield n;else if(ax(n)){let e=n.stream().getReader(),t;for(;!(t=await e.read()).done;)yield t.value}else if(n[Symbol.asyncIterator])for await(let e of n)re(),e?yield*ae(e,t.async||={}):yield s.encode(e);else yield n}}}useBuffer(e){Y=e,Jb=new DataView(Y.buffer,Y.byteOffset,Y.byteLength),X=0}clearSharedData(){this.structures&&=[],this.sharedValues&&=void 0}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let t=this.structures.slice(0),n=new nx(t,this.sharedValues,this.sharedVersion),r=this.saveShared(n,t=>(t&&t.version||0)==e);return r===!1?(n=this.getShared()||{},this.structures=n.structures||[],this.sharedValues=n.packedValues,this.sharedVersion=n.version,this.structures.nextId=this.structures.length):t.forEach((e,t)=>this.structures[t]=e),r}};function tx(e,t){e<24?Y[X++]=t|e:e<256?(Y[X++]=t|24,Y[X++]=e):e<65536?(Y[X++]=t|25,Y[X++]=e>>8,Y[X++]=e&255):(Y[X++]=t|26,Jb.setUint32(X,e),X+=4)}var nx=class{constructor(e,t,n){this.structures=e,this.packedValues=t,this.version=n}};function rx(e){e<24?Y[X++]=128|e:e<256?(Y[X++]=152,Y[X++]=e):e<65536?(Y[X++]=153,Y[X++]=e>>8,Y[X++]=e&255):(Y[X++]=154,Jb.setUint32(X,e),X+=4)}var ix=typeof Blob>`u`?function(){}:Blob;function ax(e){if(e instanceof ix)return!0;let t=e[Symbol.toStringTag];return t===`Blob`||t===`File`}function ox(e,t){switch(typeof e){case`string`:if(e.length>3){if(t.objectMap[e]>-1||t.values.length>=t.maxValues)return;let n=t.get(e);if(n)++n.count==2&&t.values.push(e);else if(t.set(e,{count:1}),t.samplingPackedValues){let n=t.samplingPackedValues.get(e);n?n.count++:t.samplingPackedValues.set(e,{count:1})}}break;case`object`:if(e)if(e instanceof Array)for(let n=0,r=e.length;n<r;n++)ox(e[n],t);else{let r=!t.encoder.useRecords;for(var n in e)e.hasOwnProperty(n)&&(r&&ox(n,t),ox(e[n],t))}break;case`function`:console.log(e)}}var sx=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;Bb=[Date,Set,Error,RegExp,vb,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>`u`?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>`u`?function(){}:BigInt64Array,Float32Array,Float64Array,nx],zb=[{tag:1,encode(e,t){let n=e.getTime()/1e3;(this.useTimestamp32||e.getMilliseconds()===0)&&n>=0&&n<4294967296?(Y[X++]=26,Jb.setUint32(X,n),X+=4):(Y[X++]=251,Jb.setFloat64(X,n),X+=8)}},{tag:258,encode(e,t){t(Array.from(e))}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t([`RegExp`,e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,n){lx(e,n)}},{getTag(e){if(e.constructor===Uint8Array&&(this.tagUint8Array||Hb&&this.tagUint8Array!==!1))return 64},encode(e,t,n){lx(e,n)}},cx(68,1),cx(69,2),cx(70,4),cx(71,8),cx(72,1),cx(77,2),cx(78,4),cx(79,8),cx(85,4),cx(86,8),{encode(e,t){let n=e.packedValues||[],r=e.structures||[];if(n.values.length>0){Y[X++]=216,Y[X++]=51,rx(4);let e=n.values;t(e),rx(0),rx(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let t=0,n=e.length;t<n;t++)packedObjectMap[e[t]]=t}if(r){Jb.setUint32(X,3655335424),X+=3;let n=r.slice(0);n.unshift(57344),n.push(new vb(e.version,1399353956)),t(n)}else t(new vb(e.version,1399353956))}}];function cx(e,t){return!sx&&t>1&&(e-=4),{tag:e,encode:function(e,t){let n=e.byteLength,r=e.byteOffset||0,i=e.buffer||e;t(Hb?Vb.from(i,r,n):new Uint8Array(i,r,n))}}}function lx(e,t){let n=e.byteLength;n<24?Y[X++]=64+n:n<256?(Y[X++]=88,Y[X++]=n):n<65536?(Y[X++]=89,Y[X++]=n>>8,Y[X++]=n&255):(Y[X++]=90,Jb.setUint32(X,n),X+=4),X+n>=Y.length&&t(X+n),Y.set(e.buffer?e:new Uint8Array(e),X),X+=n}function ux(e,t){let n,r=t.length*2,i=e.length-r;t.sort((e,t)=>e.offset>t.offset?1:-1);for(let n=0;n<t.length;n++){let r=t[n];r.id=n;for(let t of r.references)e[t++]=n>>8,e[t]=n&255}for(;n=t.pop();){let t=n.offset;e.copyWithin(t+r,t,i),r-=2;let a=t+r;e[a++]=216,e[a++]=28,i=t}return e}function dx(e,t){Jb.setUint32(Xb.position+e,X-Xb.position-e+1);let n=Xb;Xb=null,t(n[0]),t(n[1])}var fx=new ex({useRecords:!1}),px=fx.encode;fx.encodeAsIterable,fx.encodeAsAsyncIterable;var{NEVER:mx,ALWAYS:hx,DECIMAL_ROUND:gx,DECIMAL_FIT:_x}=Lb,vx=2048,yx=class e{static encoder=new ex({tagUint8Array:!1});decode(t){return e.encoder.decode(t)}encode(t){return e.encoder.encode(t)}},bx=class e{static defaultStringSignatureEncoder(){return new Ay(fg.defaultBytesToStringEncoder())}static defaultStringPublicKeyEncryptionEncoder(){return Wv.createBase64HCVPkeEncoder()}static cryptoBinaryEncoder=new yx;static getCryptoBinaryEncoder(){return e.cryptoBinaryEncoder}},xx=class e{static encoder=bx.getCryptoBinaryEncoder();static logger=k.getLogger([`utils`]);static computeMicroblockHashFromHeader(t){let n=e.encodeMicroblockHeader(t);return N.Hashes.sha256AsBinary(n)}static checkHeaderList(t){let n=t.length;if(n===0)return{valid:!0,hashes:[]};if(n===1)return{valid:!0,hashes:[N.Hashes.sha256AsBinary(t[0])]};let r=[],i=null,a=k.getProviderLogger();for(let n of t.reverse()){let t=N.Hashes.sha256AsBinary(n);if(i&&!A.binaryIsEqual(t,i))return a.error(`Received headers mismatch: Expected ${A.binaryToHexa(i)}, got ${A.binaryToHexa(t)}: aborting verification`),{valid:!1,hashes:[]};r.push(t),i=e.previousHashFromHeader(n)}return{valid:!0,hashes:r}}static previousHashFromHeader(t){return e.decodeMicroblockHeader(t).previousHash}static encodeVirtualBlockchainInfo(e){return this.encodeObjectToBinary(z(Vh,e))}static decodeVirtualBlockchainInfo(e){return z(Vh,this.decodeObjectFromBinary(e))}static encodeVirtualBlockchainState(e){return this.encodeObjectToBinary(z(Bh,e))}static decodeVirtualBlockchainState(e){return z(Bh,this.decodeObjectFromBinary(e))}static encodeMicroblockBody(e){return this.encodeObjectToBinary(z(Sh,e))}static decodeMicroblockBody(e){return z(Sh,this.decodeObjectFromBinary(e))}static encodeSection(e){return this.encodeObjectToBinary(z(xh,e))}static decodeSection(e){return z(xh,this.decodeObjectFromBinary(e))}static encodeMicroblockHeader(e){return this.encodeObjectToBinary(z(Mm,e))}static decodeMicroblockHeader(t){let n=this.decodeObjectFromBinary(t),r=z(Mm,n);if(!A.binaryIsEqual(n.bodyHash,r.bodyHash))throw e.logger.error(`Modified validated object: ${JSON.stringify(n)} vs ${JSON.stringify(r)}`),Error(`Modified body hash detected during deserialization: ${n.bodyHash} vs ${r.bodyHash}`);return r}static encodeEscrowParameters(e){return this.encodeObjectToBinary(z(Gh,e))}static decodeEscrowParameters(e){return z(Gh,this.decodeObjectFromBinary(e))}static encodeEscrowLock(e){return this.encodeObjectToBinary(z(Kh,e))}static decodeEscrowLock(e){return z(Kh,this.decodeObjectFromBinary(e))}static encodeVestingParameters(e){return this.encodeObjectToBinary(z(qh,e))}static decodeVestingParameters(e){return z(qh,this.decodeObjectFromBinary(e))}static encodeVestingLock(e){return this.encodeObjectToBinary(z(Jh,e))}static decodeVestingLock(e){return z(Jh,this.decodeObjectFromBinary(e))}static encodeNodeStakingParameters(e){return this.encodeObjectToBinary(z(Yh,e))}static decodeNodeStakingParameters(e){return z(Yh,this.decodeObjectFromBinary(e))}static encodeNodeStakingLock(e){return this.encodeObjectToBinary(z(Xh,e))}static decodeNodeStakingLock(e){return z(Xh,this.decodeObjectFromBinary(e))}static encodeLock(e){return this.encodeObjectToBinary(z(Zh,e))}static decodeLock(e){return z(Zh,this.decodeObjectFromBinary(e))}static encodeAccountBreakdown(e){return this.encodeObjectToBinary(z(Qh,e))}static decodeAccountBreakdown(e){return z(Qh,this.decodeObjectFromBinary(e))}static encodeAccountState(e){return this.encodeObjectToBinary(z($h,e))}static decodeAccountState(e){return z($h,this.decodeObjectFromBinary(e))}static encodeAccountInformation(e){return this.encodeObjectToBinary(z(eg,e))}static decodeAccountInformation(e){return z(eg,this.decodeObjectFromBinary(e))}static encodeMicroblockInformation(e){return this.encodeObjectToBinary(z(Hh,e))}static decodeMicroblockInformation(e){return z(Hh,this.decodeObjectFromBinary(e))}static encodeObjectToBinary(t){return e.encoder.encode(t)}static decodeObjectFromBinary(t){return e.encoder.decode(t)}},Sx=86400,Cx=class{constructor(e){this.retentionPolicy=e,this.retentionPolicy.sort((e,t)=>e.maximumNumberOfDays-t.maximumNumberOfDays)}getNumberOfDaysOfStorage(e,t){return t>0?Math.max(1,Math.round((t-e)/Sx)):this.retentionPolicy[this.retentionPolicy.length-1].maximumNumberOfDays}getStorageCost(e,t){return this.getBreakdown(e,t).reduce((e,t)=>e+t.costInGasAtoms,0)}getBreakdown(e,t){let n=[];for(let r=0,i=0;i<t;r++){let a=this.retentionPolicy[r],o,s,c;a==null?(o=t-i,s=0,c=1):(o=Math.min(a.maximumNumberOfDays,t)-i,s=a.retentionRatio,c=a.dayDivisor);let l=Math.floor(e*o*s/100/c);n.push({numberOfDays:o,retentionRatio:s,costInGasAtoms:l}),i+=o}return n}},wx=class e{static DEFAULT_GAS_PRICE=hn.createAtomic(1);constructor(e){this.provider=e}async computeFees(t,n,r,i=A.getTimestampInSeconds()){if(r<0)throw Error(`Invalid expiration day`);let a=n.getGasPrice(),o=a.isZero()?e.DEFAULT_GAS_PRICE:a,s=await this.computeGas(t,n,r,i);return hn.createAtomic(s*o.getAmountAsAtomic())}async computeGas(e,t,n,r=A.getTimestampInSeconds()){let i=1*this.computeSizeInBytesOfMicroblock(t)*mr,a=new Cx((await this.provider.getProtocolState()).getRetentionPolicy()),o=a.getNumberOfDaysOfStorage(r,n),s=a.getStorageCost(i,o),c=this.getAdditionalCosts(e);return Math.floor(s/mr)+c+fr}getAdditionalCosts(e){switch(e){case Ya.SECP256K1:return 1e3;case Ya.ML_DSA_65:return 5e3;case Ya.PKMS_SECP256K1:return 0}return 0}computeSizeInBytesOfMicroblock(e){let t=e.getAllSections();if(t.length===0)return 0;let n=t[t.length-1].type===O.SIGNATURE?t.slice(0,t.length-1):t;return this.getSizeOfListOfSections(n)}getSizeOfListOfSections(e){return e.reduce((e,t)=>e+xx.encodeSection(t).length,0)}},Tx=class{static getGenesisFeesCalculationFormula(e){return new wx(e)}static getFeesCalculationFormulaByVersion(e,t){return this.getGenesisFeesCalculationFormula(e)}},Ex=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({signatureSchemeId:0,publicKeyHeight:0})}toObject(){return this.internalState}updateSignatureScheme(e){this.internalState.signatureSchemeId=e}updatePublicKeyHeight(e){this.internalState.publicKeyHeight=e}getPublicKeyHeight(){return this.internalState.publicKeyHeight}getPublicKeySchemeId(){return this.internalState.signatureSchemeId}},Dx=class e{constructor(e){this.hash=e}static from(t){let n=typeof t==`string`,r=t instanceof Uint8Array;if(!n&&!r)throw TypeError(`Expected hash of type string or Uint8Array: got ${typeof t}`);let i=fg.bytesToHexEncoder();return new e(typeof t==`string`?i.decode(t):t)}static fromHex(t){return new e(fg.bytesToHexEncoder().decode(t))}encode(e=new mg){return e.encode(this.hash).toUpperCase()}toBytes(){return new Uint8Array(this.hash)}equals(e){return this.hash.every((t,n)=>t===e.hash[n])}},Ox=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({organizationId:A.getNullHash(),descriptionHeight:0})}clone(){return new e({...this.internalState})}toObject(){return this.internalState}setOrganizationId(e){this.internalState.organizationId=e}setDescriptionHeight(e){this.internalState.descriptionHeight=e}getOrganizationId(){return Dx.from(this.internalState.organizationId)}getDescriptionHeight(){return this.internalState.descriptionHeight}},kx=class e{static UNDEFINED_APPLICATION_ID=new Uint8Array;constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({allowedAdditionalWriters:[],actors:[],allowedPkeSchemeIds:[],allowedSignatureSchemeIds:[],applicationId:this.UNDEFINED_APPLICATION_ID,channels:[]})}getAdditionalAllowedWriters(){return this.internalState.allowedAdditionalWriters}addAdditionalWriter(e){this.internalState.allowedAdditionalWriters.push(e)}toObject(){return this.internalState}clone(){return new e(structuredClone(this.internalState))}createActor(e){this.internalState.actors.push(e)}createActorWithId(e,t){if(this.isActorDefinedById(e))throw new oe(`Id: ${e}`);this.internalState.actors[e]=t}setAllowedSignatureSchemeIds(e){this.internalState.allowedSignatureSchemeIds=e}setAllowedPkeSchemeIds(e){this.internalState.allowedPkeSchemeIds=e}setApplicationId(e){this.internalState.applicationId=e}isChannelDefinedById(e){return this.internalState.channels[e]!==void 0}isChannelDefinedByName(e){return this.internalState.channels.some(t=>t.name===e)}createChannel(e){if(!this.isActorDefinedById(e.creatorId))throw new oe(`Id: ${e.creatorId}`);if(this.isChannelDefinedByName(e.name))throw new ae(e.name);this.internalState.channels.push(e)}createChannelWithId(e,t){if(this.isChannelDefinedById(e))throw new ae(`Id: ${e}`);if(this.isActorDefinedById(t.creatorId))throw new oe(`Id: ${t.creatorId}`);if(this.isChannelDefinedByName(t.name))throw new ae(t.name);this.internalState.channels[e]=t}isActorDefinedByName(e){return this.internalState.actors.some(t=>t.name===e)}isActorDefinedById(e){return this.internalState.actors[e]!==void 0}getAllowedSignatureSchemes(){return this.internalState.allowedSignatureSchemeIds}getAllowedPkeSchemes(){return this.internalState.allowedPkeSchemeIds}getNumberOfActors(){return this.internalState.actors.length}getActorById(e){let t=this.internalState.actors[e];if(t===void 0)throw new oe(`ID: ${e}`);return t}getNumberOfChannels(){return this.internalState.channels.length}getApplicationId(){return Dx.from(this.internalState.applicationId)}getChannelIdFromChannelName(e){let t=this.internalState.channels.findIndex(t=>t.name===e);if(t===void 0)throw new se(e);return t}getChannelCreatorIdFromChannelId(e){return this.getChannelFromChannelId(e).creatorId}getChannelFromChannelId(e){let t=this.internalState.channels[e];if(t===void 0)throw new se(`ID: ${e}`);return t}getActorByName(e){let t=this.internalState.actors.find(t=>t.name===e);if(t===void 0)throw new oe(e);return t}getActorIdByName(e){let t=this.internalState.actors.findIndex(t=>t.name===e);if(t===-1)throw new oe(e);return t}updateActor(e,t){if(!this.isActorDefinedById(e))throw new oe(`Id: ${e}`);this.internalState.actors[e]=t}updateChannel(e,t){if(!this.isChannelDefinedById(e))throw new se(`Id: ${e}`);this.internalState.channels[e]=t}getAllActors(){return this.internalState.actors}getAllChannels(){return this.internalState.channels}},Ax=function(e){return e.INITIAL_PROTOCOL_VERSION_NAME=`Clermont`,e}(Ax||{}),jx=class e{constructor(e){this.internalState=e}static createFromObject(t){let n=im(Ch,t);if(n.success)return new e(n.output);throw Error(`Provided internal state is not valid: ${n.issues}`)}static createInitialState(){return new e({organizationId:A.getNullHash(),currentProtocolVariables:{protocolVersionName:Ax.INITIAL_PROTOCOL_VERSION_NAME,protocolVersion:1,feesCalculationVersion:1,globalStateUpdaterVersion:1,applicationLedgerInternalStateUpdaterVersion:1,applicationInternalStateUpdaterVersion:1,organizationInternalStateUpdaterVersion:1,validatorNodeInternalStateUpdaterVersion:1,accountInternalStateUpdaterVersion:1,protocolInternalStateUpdaterVersion:1,minimumNodeStakingAmountInAtomics:hn.create(1e6).getAmountAsAtomic(),maximumNodeStakingAmountInAtomics:hn.create(1e7).getAmountAsAtomic(),unstakingDelayInDays:30,maxBlockSizeInBytes:4194304,retentionPolicy:[{retentionRatio:100,maximumNumberOfDays:366,dayDivisor:366},{retentionRatio:50,maximumNumberOfDays:366*5,dayDivisor:366},{retentionRatio:20,maximumNumberOfDays:366*10,dayDivisor:366},{retentionRatio:100,maximumNumberOfDays:3661,dayDivisor:1}],abciVersion:1},protocolUpdates:[]})}getAbciVersion(){return this.internalState.currentProtocolVariables.abciVersion}getMaximumBlockSizeInBytes(){return this.internalState.currentProtocolVariables.maxBlockSizeInBytes}getProtocolVariables(){return this.internalState.currentProtocolVariables}getApplicationLedgerInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.applicationLedgerInternalStateUpdaterVersion}getApplicationInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.applicationInternalStateUpdaterVersion}getOrganizationInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.organizationInternalStateUpdaterVersion}getValidatorNodeInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.validatorNodeInternalStateUpdaterVersion}getAccountInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.accountInternalStateUpdaterVersion}getProtocolInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.protocolInternalStateUpdaterVersion}getMinimumNodeStakingAmountInAtomics(){return this.internalState.currentProtocolVariables.minimumNodeStakingAmountInAtomics}getMaximumNodeStakingAmountInAtomics(){return this.internalState.currentProtocolVariables.maximumNodeStakingAmountInAtomics}getUnstakingDelayInDays(){return this.internalState.currentProtocolVariables.unstakingDelayInDays}getRetentionPolicy(){return this.internalState.currentProtocolVariables.retentionPolicy}toObject(){return this.internalState}getFeesCalculationVersion(){return this.internalState.currentProtocolVariables.feesCalculationVersion}setProtocolVersion(e){this.internalState.currentProtocolVariables.protocolVersion=e}setProtocolVersionName(e){this.internalState.currentProtocolVariables.protocolVersionName=e}setProtocolVariables(e){this.internalState.currentProtocolVariables=e}setOrganizationId(e){this.internalState.organizationId=e}},Mx=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({accountId:A.getNullHash(),descriptionHeight:0})}toObject(){return this.internalState}getAccountIdAsBytes(){return this.internalState.accountId}getAccountId(){return Dx.from(this.internalState.accountId)}setAccountId(e){return this.internalState.accountId=e}getDescriptionHeight(){return this.internalState.descriptionHeight}updateDescriptionHeight(e){this.internalState.descriptionHeight=e}},Nx=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({cometbftPublicKeyDeclarationHeight:0,lastKnownApprovalStatus:!1,organizationId:A.getNullHash(),rpcEndpointHeight:0})}toObject(){return this.internalState}getOrganizationId(){return Dx.from(this.internalState.organizationId)}getLastKnownApprovalStatus(){return this.internalState.lastKnownApprovalStatus}getCometbftPublicKeyDeclarationHeight(){return this.internalState.cometbftPublicKeyDeclarationHeight}getRpcEndpointHeight(){return this.internalState.rpcEndpointHeight}clone(){return structuredClone(this)}setApprovalStatus(e){this.internalState.lastKnownApprovalStatus=e}setCometbftPublicKeyDeclarationHeight(e){this.internalState.cometbftPublicKeyDeclarationHeight=e}setOrganizationId(e){this.internalState.organizationId=e}setRpcEndpointDeclarationHeight(e){this.internalState.rpcEndpointHeight=e}},Px=class{static createInternalStateFromObject(e,t){switch(e){case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:return jx.createFromObject(t);case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:return Ex.createFromObject(t);case U.APPLICATION_VIRTUAL_BLOCKCHAIN:return Ox.createFromObject(t);case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:return kx.createFromObject(t);case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:return Mx.createFromObject(t);case U.NODE_VIRTUAL_BLOCKCHAIN:return Nx.createFromObject(t);default:throw Error(`Unknown virtual blockchain type: ${e}`)}}},Fx=class{constructor(){}async updateState(e,t,n){let r=Ex.createFromObject({...t.toObject()}),i=n.getAllSections();for(let e of i)switch(e.type){case O.ACCOUNT_PUBLIC_KEY:await this.publicKeyCallback(r,n,e);break;case O.ACCOUNT_TOKEN_ISSUANCE:await this.tokenIssuanceCallback(r,n,e);break;case O.ACCOUNT_CREATION:await this.creationCallback(r,n,e);break;case O.ACCOUNT_TRANSFER:await this.transferCallback(r,n,e);break;case O.ACCOUNT_VESTING_TRANSFER:await this.vestingTransferCallback(r,n,e);break;case O.ACCOUNT_ESCROW_TRANSFER:await this.escrowTransferCallback(r,n,e);break;case O.ACCOUNT_STAKE:await this.stakeCallback(r,n,e);break;case O.SIGNATURE:await this.signatureCallback(r,n,e);break}return r}async publicKeyCallback(e,t,n){e.updatePublicKeyHeight(t.getHeight()),e.updateSignatureScheme(n.schemeId)}async tokenIssuanceCallback(e,t,n){if(n.amount!=0x5af3107a4000)throw Error(`the amount of the initial token issuance is not the expected one`)}async creationCallback(e,t,n){}async transferCallback(e,t,n){}async vestingTransferCallback(e,t,n){if(n.cliffDurationDays<0)throw Error(`The cliff duration must be greater than or equal to 0`);if(n.vestingDurationDays<=0)throw Error(`The vesting duration must be greater than 0`);if(n.amount<=0)throw Error(`The amount must be greater than 0`)}async escrowTransferCallback(e,t,n){}async stakeCallback(e,t,n){}async signatureCallback(e,t,n){}},Ix=class{updateState(e,t,n){let r=t.clone();for(let e of n.getAllSections())e.type===O.APP_CREATION&&r.setOrganizationId(e.organizationId),e.type===O.APP_DESCRIPTION&&r.setDescriptionHeight(n.getHeight());return r}},Lx={[O.AUXILIARY_SIGNATURE]:`AUXILIARY_SIGNATURE`,[O.SIGNATURE]:`SIGNATURE`,[O.ALLOWED_ADDITIONAL_WRITER]:`ALLOWED_ADDITIONAL_WRITER_CREATION`,[O.CUSTOM]:`CUSTOM`,[O.PROTOCOL_CREATION]:`PROTOCOL_CREATION`,[O.PROTOCOL_UPDATE]:`PROTOCOL_UPDATE`,[O.PROTOCOL_VARIABLES]:`PROTOCOL_VARIABLES`,[O.ACCOUNT_PUBLIC_KEY]:`ACCOUNT_PUBLIC_KEY`,[O.ACCOUNT_TOKEN_ISSUANCE]:`ACCOUNT_TOKEN_ISSUANCE`,[O.ACCOUNT_CREATION]:`ACCOUNT_CREATION`,[O.ACCOUNT_TRANSFER]:`ACCOUNT_TRANSFER`,[O.ACCOUNT_VESTING_TRANSFER]:`ACCOUNT_VESTING_TRANSFER`,[O.ACCOUNT_ESCROW_TRANSFER]:`ACCOUNT_ESCROW_TRANSFER`,[O.ACCOUNT_ESCROW_SETTLEMENT]:`ACCOUNT_ESCROW_SETTLEMENT`,[O.ACCOUNT_STAKE]:`ACCOUNT_STAKE`,[O.ACCOUNT_UNSTAKE]:`ACCOUNT_UNSTAKE`,[O.VN_CREATION]:`VN_CREATION`,[O.VN_COMETBFT_PUBLIC_KEY_DECLARATION]:`VN_COMETBFT_PUBLIC_KEY_DECLARATION`,[O.VN_RPC_ENDPOINT]:`VN_RPC_ENDPOINT`,[O.VN_APPROVAL]:`VN_APPROVAL`,[O.VN_SLASHING_CANCELLATION]:`VN_SLASHING_CANCELLATION`,[O.ORG_CREATION]:`ORG_CREATION`,[O.ORG_DESCRIPTION]:`ORG_DESCRIPTION`,[O.APP_CREATION]:`APP_CREATION`,[O.APP_DESCRIPTION]:`APP_DESCRIPTION`,[O.APP_LEDGER_ALLOWED_SIG_SCHEMES]:`APP_LEDGER_ALLOWED_SIG_SCHEMES`,[O.APP_LEDGER_ALLOWED_PKE_SCHEMES]:`APP_LEDGER_ALLOWED_PKE_SCHEMES`,[O.APP_LEDGER_CREATION]:`APP_LEDGER_CREATION`,[O.APP_LEDGER_ACTOR_CREATION]:`APP_LEDGER_ACTOR_CREATION`,[O.APP_LEDGER_CHANNEL_CREATION]:`APP_LEDGER_CHANNEL_CREATION`,[O.APP_LEDGER_SHARED_SECRET]:`APP_LEDGER_SHARED_SECRET`,[O.APP_LEDGER_CHANNEL_INVITATION]:`APP_LEDGER_CHANNEL_INVITATION`,[O.APP_LEDGER_ACTOR_SUBSCRIPTION]:`APP_LEDGER_ACTOR_SUBSCRIPTION`,[O.APP_LEDGER_PUBLIC_CHANNEL_DATA]:`APP_LEDGER_PUBLIC_CHANNEL_DATA`,[O.APP_LEDGER_PRIVATE_CHANNEL_DATA]:`APP_LEDGER_PRIVATE_CHANNEL_DATA`,[O.APP_LEDGER_AUTHOR]:`APP_LEDGER_AUTHOR`,[O.APP_LEDGER_ENDORSEMENT_REQUEST]:`APP_LEDGER_ENDORSEMENT_REQUEST`},Rx=class{static getSectionLabelFromSection(e){return this.getSectionLabelFromSectionType(e.type)}static getSectionLabelFromSectionType(e){return Lx[e]}},zx=class e{logger=k.getInternalStateUpdaterLogger(e.name);async updateState(e,t,n){let r=t.clone(),i=n.getHeight();for(let a of n.getAllSections())r=await this.updateStateFromSection(e,t,a,i);return r}async updateStateFromSection(e,t,n,r){let i=t;switch(n.type){case O.APP_LEDGER_ALLOWED_SIG_SCHEMES:await this.allowedSignatureSchemesCallback(n,i);break;case O.APP_LEDGER_ALLOWED_PKE_SCHEMES:await this.allowedPkeSchemesCallback(n,i);break;case O.APP_LEDGER_CREATION:await this.declarationCallback(n,i);break;case O.APP_LEDGER_ACTOR_CREATION:await this.actorCreationCallback(n,i);break;case O.APP_LEDGER_ACTOR_SUBSCRIPTION:await this.actorSubscriptionCallback(r,n,i);break;case O.APP_LEDGER_CHANNEL_CREATION:await this.channelCreationCallback(n,i);break;case O.APP_LEDGER_SHARED_SECRET:await this.sharedSecretCallback(r,n,i);break;case O.APP_LEDGER_CHANNEL_INVITATION:await this.invitationCallback(r,n,i);break;case O.APP_LEDGER_PUBLIC_CHANNEL_DATA:await this.publicChannelDataCallback(n,i);break;case O.APP_LEDGER_PRIVATE_CHANNEL_DATA:await this.privateChannelDataCallback(n,i);break;case O.ALLOWED_ADDITIONAL_WRITER:i.addAdditionalWriter(n.allowedWriterAccountId);break;case O.SIGNATURE:await this.endorserSignatureCallback();break;default:k.getLogger().warn(`Unhandled section ${Rx.getSectionLabelFromSection(n)}`)}return i}async allowedSignatureSchemesCallback(e,t){t.setAllowedSignatureSchemeIds(e.schemeIds)}async allowedPkeSchemesCallback(e,t){t.setAllowedPkeSchemeIds(e.schemeIds)}async declarationCallback(e,t){t.setApplicationId(e.applicationId)}async actorCreationCallback(e,t){let{id:n,name:r}=e,i=t.getNumberOfActors();if(n!=i)throw this.logger.error(`Actor creation failure: Invalid actor identifier found for actor ${r}: expected ${i}, got ${n}`),new ie(n,t.getNumberOfActors());if(t.isActorDefinedByName(r))throw new re(r);this.logger.info(`Creating actor ${r} with id ${n} `),t.createActor({name:r,subscribed:!1,signatureKeyHeight:0,pkeKeyHeight:0,sharedSecrets:[],invitations:[]})}async actorSubscriptionCallback(e,t,n){let r=n.getActorById(t.actorId);if(r===void 0)throw new le(t.actorId);if(r.subscribed)throw new S(t.actorId);let i=t.signatureSchemeId,a=n.getAllowedSignatureSchemes(),o=a.length==0,s=a.includes(i);if(!o&&!s)throw new ue(t.signatureSchemeId);let c=t.pkeSchemeId,l=n.getAllowedPkeSchemes(),u=l.length===0,d=l.includes(c);if(!u&&!d)throw new de(t.pkeSchemeId);r.subscribed=!0,r.signatureKeyHeight=e,r.pkeKeyHeight=e}async channelCreationCallback(e,t){if(e.id!=t.getNumberOfChannels())throw new fe(e.id);let n=e.name;if(t.isChannelDefinedByName(n))throw new ae(n);t.createChannel({name:e.name,isPrivate:e.isPrivate,creatorId:e.creatorId})}async sharedSecretCallback(e,t,n){let{hostId:r,guestId:i}=t;n.getActorById(r).sharedSecrets.push({height:e,peerActorId:i}),n.getActorById(i).sharedSecrets.push({height:e,peerActorId:r})}async invitationCallback(e,t,n){let{guestId:r,channelId:i}=t;n.getActorById(r).invitations.push({channelId:i,height:e}),k.getLogger().debug(`Updated state after channel invitation callback: {state}`,{state:n})}async publicChannelDataCallback(e,t){if(!t.isChannelDefinedById(e.channelId))throw new se(`invalid channel ID ${e.channelId}`)}async privateChannelDataCallback(e,t){if(!t.isChannelDefinedById(e.channelId))throw new se(`invalid channel ID ${e.channelId}`)}async endorserSignatureCallback(){}},Bx=class{updateState(e,t,n){let r=t;for(let e of n.getAllSections())switch(e.type){case O.VN_CREATION:r.setOrganizationId(e.organizationId);break;case O.VN_APPROVAL:this.updateApproval(r,e);break;case O.VN_COMETBFT_PUBLIC_KEY_DECLARATION:r.setCometbftPublicKeyDeclarationHeight(n.getHeight());break;case O.VN_RPC_ENDPOINT:r.setRpcEndpointDeclarationHeight(n.getHeight());break}return r}updateApproval(e,t){e.setApprovalStatus(t.status)}},Vx=class e{logger=k.getInternalStateUpdaterLogger(e.name);updateState(e,t,n){for(let e of n.getAllSections()){if(e.type===O.PROTOCOL_UPDATE){let n=e;this.logger.debug(`Updating protocol variables: ${JSON.stringify(n.protocolVariables)}`),t.setProtocolVariables(n.protocolVariables)}if(e.type===O.PROTOCOL_CREATION){let n=e.organizationId;this.logger.debug(`Updating organization ID: ${A.binaryToHexa(n)}`),t.setOrganizationId(n)}}return t}},Hx=class{updateState(e,t,n){for(let e of n.getAllSections())e.type===O.ORG_CREATION&&t.setAccountId(e.accountId),e.type===O.ORG_DESCRIPTION&&t.updateDescriptionHeight(n.getHeight());return t}},Ux=class{static createApplicationLedgerInternalStateUpdater(e){return new zx}static createAccountInternalStateUpdater(e){switch(e){case 1:return new Fx;default:throw new i(`Unknown account local state version`)}}static createOrganizationInternalStateUpdater(e){switch(e){case 1:return new Hx;default:throw new i(`Unknown organization local state version`)}}static createProtocolInternalStateUpdater(e){return new Vx}static createValidatorNodeInternalStateUpdater(e){switch(e){case 1:return new Bx;default:throw new i(`Unknown validator node local state version`)}}static createApplicationInternalStateUpdater(e){switch(e){case 1:return new Ix;default:throw new i(`Unknown validator node local state version`)}}static defaultInternalStateUpdaterVersionByVbType(e){return 1}},Wx=function(e){return e[e.VALID=0]=`VALID`,e[e.TOO_FAR_IN_THE_PAST=1]=`TOO_FAR_IN_THE_PAST`,e[e.TOO_FAR_IN_THE_FUTURE=2]=`TOO_FAR_IN_THE_FUTURE`,e}({}),Gx=L({header:Mm,body:Sh}),Kx=class e{static createGenesisMicroblock(t,n=0){let r=new e(t);return r.create(1,null,n),r}static createMicroblock(t,n,r,i){let a=new e(t);return a.create(n,r,i),a}static createGenesisAccountMicroblock(){return new e(U.ACCOUNT_VIRTUAL_BLOCKCHAIN)}static createGenesisValidatorNodeMicroblock(){return new e(U.NODE_VIRTUAL_BLOCKCHAIN)}static createGenesisApplicationMicroblock(){return new e(U.APPLICATION_VIRTUAL_BLOCKCHAIN)}static createGenesisProtocolMicroblock(){return new e(U.PROTOCOL_VIRTUAL_BLOCKCHAIN)}static createGenesisOrganizationMicroblock(){return new e(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN)}static createGenesisApplicationLedgerMicroblock(){return new e(U.APPLICATION_VIRTUAL_BLOCKCHAIN)}static loadFromSerializedMicroblock(t,n){let r=z(Gx,Ib(t));return e.loadFromHeaderAndBody(r.header,r.body,n)}static loadFromHeaderAndBody(t,n,r){let i=t.microblockType;if(r!==void 0&&r!==i)throw new o(`Microblock type mismatch: expected ${r}, got ${i} from header`);if(t.magicString!=`CMTS`)throw Error(`magic string '${Un}' is missing`);let a=t.bodyHash,s=new e(i);s.header=structuredClone(t),s.addSections(n.sections);let c=s.computeBodyHash();if(!A.binaryIsEqual(a,c)){let e=fg.bytesToHexEncoder();throw new o(`Body hash in the header is different of the locally computed body hash: header.bodyHash=${e.encode(a)}, computed=${e.encode(c)}`)}return s.setMicroblockHash(s.computeHash()),s}static loadFromSerializedHeaderAndBody(t,n,r){let i=xx.decodeMicroblockHeader(t),a=xx.decodeMicroblockBody(n);return e.loadFromHeaderAndBody(i,a,r)}static computeInitialBodyHash(){return e.computeBodyHashFromSections([])}static computeMicroblockHash(e){let t=xx.encodeMicroblockHeader(e);return N.Hashes.sha256AsBinary(t)}static computeBodyHashFromSections(e){let t={sections:e},n=xx.encodeMicroblockBody(t);return N.Hashes.sha256AsBinary(n)}static generatePreviousHashForGenesisMicroblock(e,t=0){let n=N.Random.getBytes(24),r=A.getNullHash();return r[0]=e,r[1]=t>>24,r[2]=t>>16,r[3]=t>>8,r[4]=t,r.set(n,8),r}static logger=k.getMicroblockLogger();hash;header;sections;type;constructor(t){let n=Math.floor(Date.now()/1e3),r=hn.zero().getAmountAsAtomic(),i={magicString:Un,protocolVersion:1,microblockType:t,height:1,previousHash:e.generatePreviousHashForGenesisMicroblock(t,0),timestamp:n,gas:0,gasPrice:r,bodyHash:e.computeInitialBodyHash(),feesPayerAccount:A.getNullHash()};this.type=t,this.sections=[],this.header=i,this.hash=e.computeMicroblockHash(i)}create(t,n,r){if(t==1)n=e.generatePreviousHashForGenesisMicroblock(this.type,r);else if(n===null)throw Error(`previous hash not provided`);this.header={magicString:Un,protocolVersion:1,microblockType:this.type,height:t,previousHash:n,timestamp:A.getTimestampInSeconds(),gas:0,gasPrice:0,bodyHash:A.getNullHash(),feesPayerAccount:A.getNullHash()},this.hash=e.computeMicroblockHash(this.header)}isSigned(){return this.sections.length==0?!1:this.sections[this.sections.length-1].type===O.SIGNATURE}updateTimestamp(){this.header.timestamp=A.getTimestampInSeconds(),this.hash=e.computeMicroblockHash(this.header)}getHeader(){return this.header}getHash(){return Dx.from(this.hash)}getHashAsBytes(){return this.hash}getTimestampAsDate(){return new Date(this.header.timestamp*1e3)}getHeight(){return this.header.height}getPreviousHash(){return Dx.from(this.header.previousHash)}getTimestamp(){return this.header.timestamp}getGas(){return this.header.gas}getFees(){return hn.createAtomic(this.header.gas*this.header.gasPrice)}setGas(t){this.header.gas=t,this.hash=e.computeMicroblockHash(this.header)}setHeight(t){this.header.height=t,this.hash=e.computeMicroblockHash(this.header)}setGasPrice(t){this.header.gasPrice=t.getAmountAsAtomic(),this.hash=e.computeMicroblockHash(this.header)}getGasPrice(){return hn.createAtomic(this.header.gasPrice)}isFeesPayerAccountDefined(){return A.binaryIsEqual(this.getFeesPayerAccount(),A.getNullHash())==0}getFeesPayerAccount(){return this.header.feesPayerAccount}setTimestamp(t){this.header.timestamp=t,this.hash=e.computeMicroblockHash(this.header)}setFeesPayerAccount(t){this.header.feesPayerAccount=t,this.hash=e.computeMicroblockHash(this.header)}computeBodyHash(){return e.computeBodyHashFromSections(this.sections)}serializeHeader(){return xx.encodeMicroblockHeader(this.header)}serializedBody(){return xx.encodeMicroblockBody({sections:this.sections})}serialize(){let t=this.serializedBody(),n=this.header.bodyHash,r=this.serializeHeader();return{microblockHash:e.computeMicroblockHash(this.header),headerData:r,bodyHash:n,bodyData:t,microblockData:px(z(Gx,{header:this.header,body:{sections:this.sections}}))}}getSection(e){let t=this.sections.find(t=>e(t));if(t===void 0)throw new Ee;return t}getNumberOfSections(){return this.sections.length}getSections(e){return this.sections.filter(t=>e(t))}getSectionsByType(e){return this.getSections(t=>t.type===e)}getAllSections(){return this.sections}async setGasAndSeal(e,t,n={}){let r=await e.computeMicroblockGas(this,{signatureSchemeId:t.getSignatureSchemeId()});this.setGas(r),await this.seal(t,n)}async seal(e,t={}){let n=t.feesPayerAccount;n&&this.setFeesPayerAccount(n);let r=typeof t.includeGas==`boolean`?t.includeGas:!0,i=await this.sign(e,r),a={type:O.SIGNATURE,signature:i,schemeId:e.getSignatureSchemeId()};this.addSection(a)}async sign(t,n=!0){let r=this.sections,i=e.computeBodyHashFromSections(r),a={...this.header,gas:n?this.header.gas:0,gasPrice:n?this.header.gasPrice:0,bodyHash:i},o=xx.encodeMicroblockHeader(a);return await t.sign(o)}async verifySignature(e){let t=this.sections.filter(e=>e.type===O.SIGNATURE);if(t.length===0)throw new a(`The current microblock has no SIGNATURE section`);if(t.length!==1)throw new a(`There are several SIGNATURE sections`);if(this.sections[this.sections.length-1].type!==O.SIGNATURE)throw new a(`The SIGNATURE section is not the last one`);return this.verifySignatureOfSections(e,!0,this.sections.length-1)}async verifyAuxiliarySignature(e,t){let n=this.sections.filter(e=>e.type===O.AUXILIARY_SIGNATURE&&e.tag===t);if(n.length===0)throw new a(`The current microblock has no AUXILIARY_SIGNATURE section with tag '${t}'`);if(n.length!==1)throw new a(`The current microblock has several AUXILIARY_SIGNATURE section with tag '${t}'`);let r=this.sections.findIndex(e=>e.type===O.AUXILIARY_SIGNATURE&&e.tag===t);return this.verifySignatureOfSections(e,!1,r)}async verifySignatureOfSections(t,n,r){let i=this.sections[r];if(i.type!==O.SIGNATURE&&i.type!==O.AUXILIARY_SIGNATURE)throw new a(`Attempt to verify the signature of a non-signature section`);let o=this.sections.slice(0,r),s={...this.header,gas:n?this.header.gas:0,gasPrice:n?this.header.gasPrice:0,bodyHash:e.computeBodyHashFromSections(o)},c=xx.encodeMicroblockHeader(s),l=i.signature;return t.verify(c,l)}async verify(t,n={includeGas:!0,verifiedSignatureIndex:`last`}){let r=typeof n.includeGas==`boolean`?n.includeGas:!0,o=this.getNumberOfSignatures();if(o===0)throw new a(`Microblock verification failure: The current microblock is not signed`);let s=n.verifiedSignatureIndex,c=o;if(typeof s==`number`){if(s<=0)throw new i(`verifiedSignatureIndex must be positive`);if(o<s)throw new i(`Invalid provided signature index ${s}: this microblock contains ${o} signatures`);c=s}else if(!(s===`last`||s===void 0))throw new i(`Unknown signature index: ${s} (type ${typeof s})`);let{signatureSection:l,sectionIndexInMicroblock:u}=this.getNthSignatureSectionAndIndexInMicroblock(c),d=this.sections.slice(0,u),f={...this.header,gas:r?this.header.gas:0,gasPrice:r?this.header.gasPrice:0,bodyHash:e.computeBodyHashFromSections(d)},p=xx.encodeMicroblockHeader(f),m=l.signature;return await t.verify(p,m)}getNthSignatureSectionAndIndexInMicroblock(e){if(e<=0)throw new i(`Cannot return the ${e}-th signature: should be strictly positive`);let t=this.sections.map((e,t)=>({section:e,index:t})).filter(({section:e,index:t})=>e.type===O.SIGNATURE);if(t.length<e)throw new i(`Cannot return the ${e}-th signature: only ${t.length} signature (index starting at 1)`);let n=t[e-1];if(n.section.type!==O.SIGNATURE)throw Error(`Returned section is not a signature section`);return{signatureSection:n.section,sectionIndexInMicroblock:n.index}}getNumberOfSignatures(){return this.sections.filter(e=>e.type===O.SIGNATURE).length}isLastSectionSignature(){return this.sections.length==0?!1:this.sections[this.sections.length-1].type===O.SIGNATURE}isTemporallyCloseTo(e=A.getTimestampInSeconds()){return this.header.timestamp<e-300?Wx.TOO_FAR_IN_THE_PAST:this.header.timestamp>e+120?Wx.TOO_FAR_IN_THE_FUTURE:Wx.VALID}hasSection(e){try{return this.getSectionByType(e),!0}catch(e){if(e instanceof Ee)return!1;throw e}}containsOnlyTheseSections(e){return this.sections.every(t=>e.includes(t.type))}getIndexOfSection(e){return this.sections.findIndex(t=>t.type===e)}setAsSuccessorOf(t){let n=this.getType(),r=t.getType();if(n!==r)throw new i(`Cannot make this microblock the successor: expected microblock of type ${n}, got ${r}`);let a=t.getHash();this.setPreviousHash(a),this.setHeight(t.getHeight()+1),this.hash=e.computeMicroblockHash(this.header),e.logger.info(`Microblock ${A.binaryToHexa(this.hash)} updated as successor of microblock ${a.encode()}`)}countSectionsByType(e){return this.sections.filter(t=>t.type===e).length}addSections(t){e.logger.debug(`Adding sections to microblock: {names}`,()=>({names:t.map(e=>Rx.getSectionLabelFromSection(e)).join(`, `)})),this.sections.push(...t),this.header.bodyHash=this.computeBodyHash(),this.hash=e.computeMicroblockHash(this.header)}addSection(e){this.addSections([e])}popSection(){let t=this.sections.pop();if(this.getNumberOfSections()==0||t===void 0)throw new a(`Cannot pop section from empty microblock`);return this.header.bodyHash=this.computeBodyHash(),this.hash=e.computeMicroblockHash(this.header),t}getSectionByType(e){let t=this.sections.find(t=>t.type===e);if(t===void 0)throw new Ee;return t}toString(){let e=fg.bytesToHexEncoder(),t=`Microblock:
|
|
6
|
+
`}zo();var Bo={trace:`background-color: gray; color: white;`,debug:`background-color: gray; color: white;`,info:`background-color: white; color: black;`,warning:`background-color: orange; color: black;`,error:`background-color: red; color: white;`,fatal:`background-color: maroon; color: white;`};function Vo(e){let t=``,n=[];for(let r=0;r<e.message.length;r++)r%2==0?t+=e.message[r]:(t+=`%o`,n.push(e.message[r]));let r=new Date(e.timestamp);return[`%c${`${r.getUTCHours().toString().padStart(2,`0`)}:${r.getUTCMinutes().toString().padStart(2,`0`)}:${r.getUTCSeconds().toString().padStart(2,`0`)}.${r.getUTCMilliseconds().toString().padStart(3,`0`)}`} %c${Do[e.level]}%c %c${e.category.join(`·`)} %c${t}`,`color: gray;`,Bo[e.level],`background-color: default;`,`color: gray;`,`color: default;`,...n]}function Ho(e={}){let t=e.formatter??Vo,n={trace:`debug`,debug:`debug`,info:`info`,warning:`warn`,error:`error`,fatal:`error`,...e.levelMap??{}},r=e.console??globalThis.console,i=e=>{let i=t(e),a=n[e.level];if(a===void 0)throw TypeError(`Invalid log level: ${e.level}.`);if(typeof i==`string`){let e=i.replace(/\r?\n$/,``);r[a](e)}else r[a](...i)};if(!e.nonBlocking)return i;let a=e.nonBlocking===!0?{}:e.nonBlocking,o=a.bufferSize??100,s=a.flushInterval??100,c=[],l=null,u=!1,d=!1,f=o*2;function p(){if(c.length===0)return;let e=c.splice(0);for(let t of e)try{i(t)}catch{}}function m(){d||(d=!0,setTimeout(()=>{d=!1,p()},0))}function h(){l!==null||u||(l=setInterval(()=>{p()},s))}let g=e=>{u||(c.length>=f&&c.shift(),c.push(e),c.length>=o?m():l===null&&h())};return g[Symbol.dispose]=()=>{u=!0,l!==null&&(clearInterval(l),l=null),p()},g}var Uo=null,Wo=new Set,Go=new Set,Ko=new Set;function qo(e){return e.category.length===0||e.category.length===1&&e.category[0]===`logtape`||e.category.length===2&&e.category[0]===`logtape`&&e.category[1]===`meta`}function Jo(e){if(Uo!=null&&!e.reset)throw new es(`Already configured; if you want to reset, turn on the reset flag.`);if(Ko.size>0)throw new es(`Previously configured async disposables are still active. Use configure() instead or explicitly dispose them using dispose().`);Xo();try{Yo(e,!1)}catch(e){throw e instanceof es&&Xo(),e}}function Yo(e,t){Uo=e;let n=!1,r=new Set;for(let t of e.loggers){qo(t)&&(n=!0);let i=Array.isArray(t.category)?JSON.stringify(t.category):JSON.stringify([t.category]);if(r.has(i))throw new es(`Duplicate logger configuration for category: ${i}. Each category can only be configured once.`);r.add(i);let a=fo.getLogger(t.category);for(let n of t.sinks??[]){let t=e.sinks[n];if(!t)throw new es(`Sink not found: ${n}.`);a.sinks.push(t)}a.parentSinks=t.parentSinks??`inherit`,t.lowestLevel!==void 0&&(a.lowestLevel=t.lowestLevel);for(let n of t.filters??[]){let t=e.filters?.[n];if(t===void 0)throw new es(`Filter not found: ${n}.`);a.filters.push(ao(t))}Wo.add(a)}fo.getLogger().contextLocalStorage=e.contextLocalStorage;for(let n of Object.values(e.sinks)){if(Symbol.asyncDispose in n)if(t)Ko.add(n);else throw new es(`Async disposables cannot be used with configureSync().`);Symbol.dispose in n&&Go.add(n)}for(let n of Object.values(e.filters??{}))if(!(n==null||typeof n==`string`)){if(Symbol.asyncDispose in n)if(t)Ko.add(n);else throw new es(`Async disposables cannot be used with configureSync().`);Symbol.dispose in n&&Go.add(n)}if(typeof globalThis.EdgeRuntime!=`string`&&`process`in globalThis&&!(`Deno`in globalThis)){let e=globalThis.process,n=e?.on;typeof n==`function`&&n.call(e,`exit`,t?Qo:$o)}else addEventListener(`unload`,t?Qo:$o);let i=fo.getLogger([`logtape`,`meta`]);n||i.sinks.push(Ho()),i.info(`LogTape loggers are configured. Note that LogTape itself uses the meta logger, which has category {metaLoggerCategory}. The meta logger purposes to log internal errors such as sink exceptions. If you are seeing this message, the meta logger is automatically configured. It's recommended to configure the meta logger with a separate sink so that you can easily notice if logging itself fails or is misconfigured. To turn off this message, configure the meta logger with higher log levels than {dismissLevel}. See also <https://logtape.org/manual/categories#meta-logger>.`,{metaLoggerCategory:[`logtape`,`meta`],dismissLevel:`info`})}function Xo(){$o(),Zo()}function Zo(){let e=fo.getLogger([]);e.resetDescendants(),delete e.contextLocalStorage,Wo.clear(),Uo=null}async function Qo(){$o();let e=[];for(let t of Ko)e.push(t[Symbol.asyncDispose]()),Ko.delete(t);await Promise.all(e)}function $o(){for(let e of Go)e[Symbol.dispose]();Go.clear()}var es=class extends Error{constructor(e){super(e),this.name=`ConfigureError`}},k=class{static getLogger(e=[]){return lo([`@cmts-dev/carmentis-sdk-core`,...e])}static getProviderLogger(){return this.getLogger([`provider`])}static getMemoryProviderLogger(){return this.getLogger([`provider`,`memory`])}static async enableLogs(){this.enableLogsSync()}static enableLogsSync(){Jo({sinks:{console:Ho()},loggers:[{category:`@cmts-dev/carmentis-sdk-core`,lowestLevel:`debug`,sinks:[`console`]}]})}static getNetworkProviderLogger(){return this.getLogger([`provider`,`network`])}static getMicroblockLogger(){return this.getLogger([`microblock`])}static getVirtualBlockchainLogger(){return this.getLogger([`virtual-blockchain`])}static getInternalStateUpdaterLogger(e){return this.getLogger([`internal-state-updater`,e])}static getAbstractProviderLogger(e){return this.getLogger([`provider`,e])}static getMicroblockStructureCheckerLogger(){return this.getLogger([`microblock`,`structure-checker`])}},A={numberToHexa:ns,truncateString:rs,truncateStringMiddle:is,getNullHash:as,getTimestampInSeconds:os,encodeDay:cs,decodeDay:ls,dateToDay:us,dayToDate:ds,addDaysToTimestamp:fs,timestampDifferenceInDays:ps,bufferToUint8Array:ms,binaryToHexa:hs,binaryFromHexa:gs,binaryFrom:_s,binaryIsEqual:vs,binaryCompare:ys,intToByteArray:bs,byteArrayToInt:xs,getGenesisEpochInTimestamp:ss,jsonPrettify:Ss},ts=k.getLogger([`utils`]);function ns(e,t){return e.toString(16).toUpperCase().padStart(t||1,`0`)}function rs(e,t){return e.slice(0,t)+(e.length>t?`(...)`:``)}function is(e,t,n){return e.length<=t+n?e:e.slice(0,t)+`(...)`+e.slice(e.length-n)}function as(){return new Uint8Array(32)}function os(){return Math.floor(Date.now()/1e3)}function ss(){return 0}function cs(e,t,n){return e<<9|t<<5|n}function ls(e){let t=e&31,n=e>>5&15;return[e>>>9,n,t]}function us(e){let t=e.getDate(),n=e.getMonth()+1;return cs(e.getFullYear(),n,t)}function ds(e){let[t,n,r]=ls(e);return new Date(Date.UTC(t,n-1,r))}function fs(e,t){let n=new Date(e*1e3);return Math.floor(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()+t)/1e3)}function ps(e,t){return Math.round((t-e)/86400)}function ms(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)}function hs(e){return[...e].map(e=>e.toString(16).toUpperCase().padStart(2,`0`)).join(``)}function gs(e){if(typeof e!=`string`)throw new i(`Expecting hex-string value: received ${typeof e}`);if(!e.match(/^([\da-f]{2})*$/gi))throw new i(`Expecting hex-string value: received '${e}'`);let t=(e.match(/../g)||[]).map(e=>parseInt(e,16));return new Uint8Array(t)}function _s(...e){let t=Array(e.length),n=Array(e.length),r=0;e.forEach((i,a)=>{let o=ro.getType(i);switch(o){case 4:n[a]=new Uint8Array(bs(i));break;case 3:n[a]=Qa.encode(i);break;case 12:n[a]=i;break;default:{let t=e.length,n=e.map(e=>Pn[ro.getType(e)]).join(`, `);throw Error(`unsupported type '${Pn[o]}' for Utils.binaryFrom(): got ${t} arguments of type ${n}`)}}t[a]=r,r+=n[a].length});let i=new Uint8Array(r);return t.forEach((e,t)=>{i.set(n[t],e)}),i}function vs(e,t){if(!(e instanceof Uint8Array))throw Error(`Excepted Uint8array, got ${typeof e}`);if(!(t instanceof Uint8Array))throw Error(`Excepted Uint8array, got ${typeof t}`);let n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);if(n.byteLength!==r.byteLength)return ts.debug(`Comparison result is false (distinct length): ${n.byteLength} != ${r.byteLength}`),!1;for(let e=0;e<n.byteLength;e++)if(n[e]!==r[e])return ts.debug(`Comparison result is false (distinct value): ${n[e]} != ${r[e]}`),!1;return ts.debug(`Comparison result is true`),!0}function ys(e,t){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!=t.length)throw`cannot compare`;for(let n in e)if(e[n]<t[n])return-1;else if(e[n]>t[n])return 1;return 0}function bs(e,t=1){let n=[],r=e,i=t;for(;r>0||i>0;)n.push(r&255),r=Math.floor(r/256),i--;return n.reverse()}function xs(e){return e.reduce((e,t)=>e*256+t,0)}function Ss(e,t=2){return JSON.stringify(e,(e,t)=>{if(t instanceof Uint8Array){let e=t.length>32,n=hs(t.slice(0,e?24:32)),r=e?`(...)`+hs(t.slice(-8)):``;return`Uint8Array[${t.length}]:${n}${r}`}return t},t)}var Cs=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0;function ws(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function Ts(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function Es(e,...t){if(!ws(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function Ds(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);Ts(e.outputLen),Ts(e.blockLen)}function Os(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function ks(e,t){Es(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function As(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function js(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ms(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Ns(e,t){return e<<32-t|e>>>t}function j(e,t){return e<<t|e>>>32-t>>>0}var Ps=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Fs(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Is(e){for(let t=0;t<e.length;t++)e[t]=Fs(e[t]);return e}var Ls=Ps?e=>e:Is,Rs=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,zs={_0:48,_9:57,A:65,F:70,a:97,f:102};function Bs(e){if(e>=zs._0&&e<=zs._9)return e-zs._0;if(e>=zs.A&&e<=zs.F)return e-(zs.A-10);if(e>=zs.a&&e<=zs.f)return e-(zs.a-10)}function Vs(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(Rs)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=Bs(e.charCodeAt(i)),a=Bs(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Hs(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function Us(e){return typeof e==`string`&&(e=Hs(e)),Es(e),e}function Ws(e){return typeof e==`string`&&(e=Hs(e)),Es(e),e}function Gs(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];Es(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function Ks(e,t){if(t!==void 0&&{}.toString.call(t)!==`[object Object]`)throw Error(`options should be object or undefined`);return Object.assign(e,t)}var qs=class{};function Js(e){let t=t=>e().update(Us(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ys(e){let t=(t,n)=>e(n).update(Us(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Xs(e=32){if(Cs&&typeof Cs.getRandomValues==`function`)return Cs.getRandomValues(new Uint8Array(e));if(Cs&&typeof Cs.randomBytes==`function`)return Uint8Array.from(Cs.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}var Zs={getBytes:Qs,getInteger:$s,getKey256:ec};function Qs(e){return Xs(e)}function $s(e){let t=Qs(6),n=0;for(let e=0;e<6;e++)n=n*256+t[e];return Math.floor(n/2**48*e)}function ec(){let e=Qs(32);return A.binaryToHexa(e)}function tc(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function nc(e,t,n){return e&t^~e&n}function rc(e,t,n){return e&t^e&n^t&n}var ic=class extends qs{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=Ms(this.buffer)}update(e){Os(this),e=Us(e),Es(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=Ms(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Os(this),ks(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,js(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;tc(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=Ms(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},ac=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),oc=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),sc=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),cc=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),lc=BigInt(2**32-1),uc=BigInt(32);function dc(e,t=!1){return t?{h:Number(e&lc),l:Number(e>>uc&lc)}:{h:Number(e>>uc&lc)|0,l:Number(e&lc)|0}}function fc(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=dc(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}var pc=(e,t,n)=>e>>>n,mc=(e,t,n)=>e<<32-n|t>>>n,hc=(e,t,n)=>e>>>n|t<<32-n,gc=(e,t,n)=>e<<32-n|t>>>n,_c=(e,t,n)=>e<<64-n|t>>>n-32,vc=(e,t,n)=>e>>>n-32|t<<64-n,yc=(e,t,n)=>e<<n|t>>>32-n,bc=(e,t,n)=>t<<n|e>>>32-n,xc=(e,t,n)=>t<<n-32|e>>>64-n,Sc=(e,t,n)=>e<<n-32|t>>>64-n;function Cc(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var wc=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Tc=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Ec=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Dc=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,Oc=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),kc=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0,Ac=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),jc=new Uint32Array(64),Mc=class extends ic{constructor(e=32){super(64,e,8,!1),this.A=ac[0]|0,this.B=ac[1]|0,this.C=ac[2]|0,this.D=ac[3]|0,this.E=ac[4]|0,this.F=ac[5]|0,this.G=ac[6]|0,this.H=ac[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)jc[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=jc[e-15],n=jc[e-2],r=Ns(t,7)^Ns(t,18)^t>>>3;jc[e]=(Ns(n,17)^Ns(n,19)^n>>>10)+jc[e-7]+r+jc[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=Ns(o,6)^Ns(o,11)^Ns(o,25),u=l+t+nc(o,s,c)+Ac[e]+jc[e]|0,d=(Ns(n,2)^Ns(n,13)^Ns(n,22))+rc(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){js(jc)}destroy(){this.set(0,0,0,0,0,0,0,0),js(this.buffer)}},Nc=class extends Mc{constructor(){super(28),this.A=oc[0]|0,this.B=oc[1]|0,this.C=oc[2]|0,this.D=oc[3]|0,this.E=oc[4]|0,this.F=oc[5]|0,this.G=oc[6]|0,this.H=oc[7]|0}},Pc=fc(`0x428a2f98d728ae22.0x7137449123ef65cd.0xb5c0fbcfec4d3b2f.0xe9b5dba58189dbbc.0x3956c25bf348b538.0x59f111f1b605d019.0x923f82a4af194f9b.0xab1c5ed5da6d8118.0xd807aa98a3030242.0x12835b0145706fbe.0x243185be4ee4b28c.0x550c7dc3d5ffb4e2.0x72be5d74f27b896f.0x80deb1fe3b1696b1.0x9bdc06a725c71235.0xc19bf174cf692694.0xe49b69c19ef14ad2.0xefbe4786384f25e3.0x0fc19dc68b8cd5b5.0x240ca1cc77ac9c65.0x2de92c6f592b0275.0x4a7484aa6ea6e483.0x5cb0a9dcbd41fbd4.0x76f988da831153b5.0x983e5152ee66dfab.0xa831c66d2db43210.0xb00327c898fb213f.0xbf597fc7beef0ee4.0xc6e00bf33da88fc2.0xd5a79147930aa725.0x06ca6351e003826f.0x142929670a0e6e70.0x27b70a8546d22ffc.0x2e1b21385c26c926.0x4d2c6dfc5ac42aed.0x53380d139d95b3df.0x650a73548baf63de.0x766a0abb3c77b2a8.0x81c2c92e47edaee6.0x92722c851482353b.0xa2bfe8a14cf10364.0xa81a664bbc423001.0xc24b8b70d0f89791.0xc76c51a30654be30.0xd192e819d6ef5218.0xd69906245565a910.0xf40e35855771202a.0x106aa07032bbd1b8.0x19a4c116b8d2d0c8.0x1e376c085141ab53.0x2748774cdf8eeb99.0x34b0bcb5e19b48a8.0x391c0cb3c5c95a63.0x4ed8aa4ae3418acb.0x5b9cca4f7763e373.0x682e6ff3d6b2b8a3.0x748f82ee5defb2fc.0x78a5636f43172f60.0x84c87814a1f0ab72.0x8cc702081a6439ec.0x90befffa23631e28.0xa4506cebde82bde9.0xbef9a3f7b2c67915.0xc67178f2e372532b.0xca273eceea26619c.0xd186b8c721c0c207.0xeada7dd6cde0eb1e.0xf57d4f7fee6ed178.0x06f067aa72176fba.0x0a637dc5a2c898a6.0x113f9804bef90dae.0x1b710b35131c471b.0x28db77f523047d84.0x32caab7b40c72493.0x3c9ebe0a15c9bebc.0x431d67c49c100d4c.0x4cc5d4becb3e42b6.0x597f299cfc657e2a.0x5fcb6fab3ad6faec.0x6c44198c4a475817`.split(`.`).map(e=>BigInt(e))),Fc=Pc[0],Ic=Pc[1],Lc=new Uint32Array(80),Rc=new Uint32Array(80),zc=class extends ic{constructor(e=64){super(128,e,16,!1),this.Ah=cc[0]|0,this.Al=cc[1]|0,this.Bh=cc[2]|0,this.Bl=cc[3]|0,this.Ch=cc[4]|0,this.Cl=cc[5]|0,this.Dh=cc[6]|0,this.Dl=cc[7]|0,this.Eh=cc[8]|0,this.El=cc[9]|0,this.Fh=cc[10]|0,this.Fl=cc[11]|0,this.Gh=cc[12]|0,this.Gl=cc[13]|0,this.Hh=cc[14]|0,this.Hl=cc[15]|0}get(){let{Ah:e,Al:t,Bh:n,Bl:r,Ch:i,Cl:a,Dh:o,Dl:s,Eh:c,El:l,Fh:u,Fl:d,Gh:f,Gl:p,Hh:m,Hl:h}=this;return[e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h]}set(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=r|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=s|0,this.Eh=c|0,this.El=l|0,this.Fh=u|0,this.Fl=d|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=h|0}process(e,t){for(let n=0;n<16;n++,t+=4)Lc[n]=e.getUint32(t),Rc[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=Lc[e-15]|0,n=Rc[e-15]|0,r=hc(t,n,1)^hc(t,n,8)^pc(t,n,7),i=gc(t,n,1)^gc(t,n,8)^mc(t,n,7),a=Lc[e-2]|0,o=Rc[e-2]|0,s=hc(a,o,19)^_c(a,o,61)^pc(a,o,6),c=Ec(i,gc(a,o,19)^vc(a,o,61)^mc(a,o,6),Rc[e-7],Rc[e-16]);Lc[e]=Dc(c,r,s,Lc[e-7],Lc[e-16])|0,Rc[e]=c|0}let{Ah:n,Al:r,Bh:i,Bl:a,Ch:o,Cl:s,Dh:c,Dl:l,Eh:u,El:d,Fh:f,Fl:p,Gh:m,Gl:h,Hh:g,Hl:_}=this;for(let e=0;e<80;e++){let t=hc(u,d,14)^hc(u,d,18)^_c(u,d,41),v=gc(u,d,14)^gc(u,d,18)^vc(u,d,41),y=u&f^~u&m,b=d&p^~d&h,ee=Oc(_,v,b,Ic[e],Rc[e]),x=kc(ee,g,t,y,Fc[e],Lc[e]),te=ee|0,ne=hc(n,r,28)^_c(n,r,34)^_c(n,r,39),re=gc(n,r,28)^vc(n,r,34)^vc(n,r,39),ie=n&i^n&o^i&o,ae=r&a^r&s^a&s;g=m|0,_=h|0,m=f|0,h=p|0,f=u|0,p=d|0,{h:u,l:d}=Cc(c|0,l|0,x|0,te|0),c=o|0,l=s|0,o=i|0,s=a|0,i=n|0,a=r|0;let oe=wc(te,re,ae);n=Tc(oe,x,ne,ie),r=oe|0}({h:n,l:r}=Cc(this.Ah|0,this.Al|0,n|0,r|0)),{h:i,l:a}=Cc(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:s}=Cc(this.Ch|0,this.Cl|0,o|0,s|0),{h:c,l}=Cc(this.Dh|0,this.Dl|0,c|0,l|0),{h:u,l:d}=Cc(this.Eh|0,this.El|0,u|0,d|0),{h:f,l:p}=Cc(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:h}=Cc(this.Gh|0,this.Gl|0,m|0,h|0),{h:g,l:_}=Cc(this.Hh|0,this.Hl|0,g|0,_|0),this.set(n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}roundClean(){js(Lc,Rc)}destroy(){js(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Bc=class extends zc{constructor(){super(48),this.Ah=sc[0]|0,this.Al=sc[1]|0,this.Bh=sc[2]|0,this.Bl=sc[3]|0,this.Ch=sc[4]|0,this.Cl=sc[5]|0,this.Dh=sc[6]|0,this.Dl=sc[7]|0,this.Eh=sc[8]|0,this.El=sc[9]|0,this.Fh=sc[10]|0,this.Fl=sc[11]|0,this.Gh=sc[12]|0,this.Gl=sc[13]|0,this.Hh=sc[14]|0,this.Hl=sc[15]|0}},Vc=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Hc=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Uc=class extends zc{constructor(){super(28),this.Ah=Vc[0]|0,this.Al=Vc[1]|0,this.Bh=Vc[2]|0,this.Bl=Vc[3]|0,this.Ch=Vc[4]|0,this.Cl=Vc[5]|0,this.Dh=Vc[6]|0,this.Dl=Vc[7]|0,this.Eh=Vc[8]|0,this.El=Vc[9]|0,this.Fh=Vc[10]|0,this.Fl=Vc[11]|0,this.Gh=Vc[12]|0,this.Gl=Vc[13]|0,this.Hh=Vc[14]|0,this.Hl=Vc[15]|0}},Wc=class extends zc{constructor(){super(32),this.Ah=Hc[0]|0,this.Al=Hc[1]|0,this.Bh=Hc[2]|0,this.Bl=Hc[3]|0,this.Ch=Hc[4]|0,this.Cl=Hc[5]|0,this.Dh=Hc[6]|0,this.Dl=Hc[7]|0,this.Eh=Hc[8]|0,this.El=Hc[9]|0,this.Fh=Hc[10]|0,this.Fl=Hc[11]|0,this.Gh=Hc[12]|0,this.Gl=Hc[13]|0,this.Hh=Hc[14]|0,this.Hl=Hc[15]|0}},Gc=Js(()=>new Mc),Kc=Js(()=>new Nc),qc=Js(()=>new zc),Jc=Js(()=>new Bc),Yc=Js(()=>new Wc),Xc=Js(()=>new Uc),Zc=qc,Qc={sha256AsBinary:$c,sha256:el,sha512AsBinary:tl,sha512:nl};k.getLogger([`utils`,`crypto`]);function $c(e){if(!(e instanceof Uint8Array))throw new m(`Argument passed to compute sha256 is not an instance of Uint8Array: got ${typeof e}`);return Gc(e)}function el(e){return A.binaryToHexa($c(e))}function tl(e){if(!(e instanceof Uint8Array))throw`Argument passed to compute sha512 is not an instance of Uint8Array`;return Zc(e)}function nl(e){return A.binaryToHexa(tl(e))}function rl(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function il(e){if(typeof e!=`boolean`)throw Error(`boolean expected, not ${e}`)}function al(e,...t){if(!rl(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function ol(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function sl(e,t){al(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function cl(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function ll(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ul(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function dl(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var fl=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,pl=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ml=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function hl(e){if(al(e),pl)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ml[e[n]];return t}var gl={_0:48,_9:57,A:65,F:70,a:97,f:102};function _l(e){if(e>=gl._0&&e<=gl._9)return e-gl._0;if(e>=gl.A&&e<=gl.F)return e-(gl.A-10);if(e>=gl.a&&e<=gl.f)return e-(gl.a-10)}function vl(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(pl)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=_l(e.charCodeAt(i)),a=_l(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function yl(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function bl(e){return new TextDecoder().decode(e)}function xl(e){if(typeof e==`string`)e=yl(e);else if(rl(e))e=Ol(e);else throw Error(`Uint8Array expected, got `+typeof e);return e}function Sl(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Cl=(e,t)=>{function n(n,...r){if(al(n),!fl)throw Error(`Non little-endian hardware is not yet supported`);if(e.nonceLength!==void 0){let t=r[0];if(!t)throw Error(`nonce / iv required`);e.varSizeNonce?al(t):al(t,e.nonceLength)}let i=e.tagLength;i&&r[1]!==void 0&&al(r[1]);let a=t(n,...r),o=(e,t)=>{if(t!==void 0){if(e!==2)throw Error(`cipher output not supported`);al(t)}},s=!1;return{encrypt(e,t){if(s)throw Error(`cannot encrypt() twice with same key + nonce`);return s=!0,al(e),o(a.encrypt.length,t),a.encrypt(e,t)},decrypt(e,t){if(al(e),i&&e.length<i)throw Error(`invalid ciphertext length: smaller than tagLength=`+i);return o(a.decrypt.length,t),a.decrypt(e,t)}}}return Object.assign(n,e),n};function wl(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw Error(`invalid output length, expected `+e+`, got: `+t.length);if(n&&!Dl(t))throw Error(`invalid output, must be aligned`);return t}function Tl(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function El(e,t,n){il(n);let r=new Uint8Array(16),i=dl(r);return Tl(i,0,BigInt(t),n),Tl(i,8,BigInt(e),n),r}function Dl(e){return e.byteOffset%4==0}function Ol(e){return Uint8Array.from(e)}var kl=16,Al=new Uint8Array(16),jl=ll(Al),Ml=225,Nl=(e,t,n,r)=>{let i=r&1;return{s3:n<<31|r>>>1,s2:t<<31|n>>>1,s1:e<<31|t>>>1,s0:e>>>1^Ml<<24&-(i&1)}},Pl=e=>(e>>>0&255)<<24|(e>>>8&255)<<16|(e>>>16&255)<<8|e>>>24&255|0;function Fl(e){e.reverse();let t=e[15]&1,n=0;for(let t=0;t<e.length;t++){let r=e[t];e[t]=r>>>1|n,n=(r&1)<<7}return e[0]^=-t&225,e}var Il=e=>e>64*1024?8:e>1024?4:2,Ll=class{constructor(e,t){this.blockLen=kl,this.outputLen=kl,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=xl(e),al(e,16);let n=dl(e),r=n.getUint32(0,!1),i=n.getUint32(4,!1),a=n.getUint32(8,!1),o=n.getUint32(12,!1),s=[];for(let e=0;e<128;e++)s.push({s0:Pl(r),s1:Pl(i),s2:Pl(a),s3:Pl(o)}),{s0:r,s1:i,s2:a,s3:o}=Nl(r,i,a,o);let c=Il(t||1024);if(![1,2,4,8].includes(c))throw Error(`ghash: invalid window size, expected 2, 4 or 8`);this.W=c;let l=128/c,u=this.windowSize=2**c,d=[];for(let e=0;e<l;e++)for(let t=0;t<u;t++){let n=0,r=0,i=0,a=0;for(let o=0;o<c;o++){if(!(t>>>c-o-1&1))continue;let{s0:l,s1:u,s2:d,s3:f}=s[c*e+o];n^=l,r^=u,i^=d,a^=f}d.push({s0:n,s1:r,s2:i,s3:a})}this.t=d}_updateBlock(e,t,n,r){e^=this.s0,t^=this.s1,n^=this.s2,r^=this.s3;let{W:i,t:a,windowSize:o}=this,s=0,c=0,l=0,u=0,d=(1<<i)-1,f=0;for(let p of[e,t,n,r])for(let e=0;e<4;e++){let t=p>>>8*e&255;for(let e=8/i-1;e>=0;e--){let n=t>>>i*e&d,{s0:r,s1:p,s2:m,s3:h}=a[f*o+n];s^=r,c^=p,l^=m,u^=h,f+=1}}this.s0=s,this.s1=c,this.s2=l,this.s3=u}update(e){ol(this),e=xl(e),al(e);let t=ll(e),n=Math.floor(e.length/kl),r=e.length%kl;for(let e=0;e<n;e++)this._updateBlock(t[e*4+0],t[e*4+1],t[e*4+2],t[e*4+3]);return r&&(Al.set(e.subarray(n*kl)),this._updateBlock(jl[0],jl[1],jl[2],jl[3]),ul(jl)),this}destroy(){let{t:e}=this;for(let t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){ol(this),sl(e,this),this.finished=!0;let{s0:t,s1:n,s2:r,s3:i}=this,a=ll(e);return a[0]=t,a[1]=n,a[2]=r,a[3]=i,e}digest(){let e=new Uint8Array(kl);return this.digestInto(e),this.destroy(),e}},Rl=class extends Ll{constructor(e,t){e=xl(e),al(e);let n=Fl(Ol(e));super(n,t),ul(n)}update(e){e=xl(e),ol(this);let t=ll(e),n=e.length%kl,r=Math.floor(e.length/kl);for(let e=0;e<r;e++)this._updateBlock(Pl(t[e*4+3]),Pl(t[e*4+2]),Pl(t[e*4+1]),Pl(t[e*4+0]));return n&&(Al.set(e.subarray(r*kl)),this._updateBlock(Pl(jl[3]),Pl(jl[2]),Pl(jl[1]),Pl(jl[0])),ul(jl)),this}digestInto(e){ol(this),sl(e,this),this.finished=!0;let{s0:t,s1:n,s2:r,s3:i}=this,a=ll(e);return a[0]=t,a[1]=n,a[2]=r,a[3]=i,e.reverse()}};function zl(e){let t=(t,n)=>e(n,t.length).update(xl(t)).digest(),n=e(new Uint8Array(16),0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=(t,n)=>e(t,n),t}var Bl=zl((e,t)=>new Ll(e,t));zl((e,t)=>new Rl(e,t));var Vl=16,Hl=4,Ul=new Uint8Array(Vl),Wl=283;function Gl(e){return e<<1^Wl&-(e>>7)}function Kl(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=Gl(e);return n}var ql=(()=>{let e=new Uint8Array(256);for(let t=0,n=1;t<256;t++,n^=Gl(n))e[t]=n;let t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=(r^r>>4^r>>5^r>>6^r>>7^99)&255}return ul(e),t})(),Jl=e=>e<<24|e>>>8,Yl=e=>e<<8|e>>>24;function Xl(e,t){if(e.length!==256)throw Error(`Wrong sbox length`);let n=new Uint32Array(256).map((n,r)=>t(e[r])),r=n.map(Yl),i=r.map(Yl),a=i.map(Yl),o=new Uint32Array(256*256),s=new Uint32Array(256*256),c=new Uint16Array(256*256);for(let t=0;t<256;t++)for(let l=0;l<256;l++){let u=t*256+l;o[u]=n[t]^r[l],s[u]=i[t]^a[l],c[u]=e[t]<<8|e[l]}return{sbox:e,sbox2:c,T0:n,T1:r,T2:i,T3:a,T01:o,T23:s}}var Zl=Xl(ql,e=>Kl(e,3)<<24|e<<16|e<<8|Kl(e,2)),Ql=(()=>{let e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=Gl(n))e[t]=n;return e})();function $l(e){al(e);let t=e.length;if(![16,24,32].includes(t))throw Error(`aes: invalid key size, should be 16, 24 or 32, got `+t);let{sbox2:n}=Zl,r=[];Dl(e)||r.push(e=Ol(e));let i=ll(e),a=i.length,o=e=>tu(n,e,e,e,e),s=new Uint32Array(t+28);s.set(i);for(let e=a;e<s.length;e++){let t=s[e-1];e%a===0?t=o(Jl(t))^Ql[e/a-1]:a>6&&e%a===4&&(t=o(t)),s[e]=s[e-a]^t}return ul(...r),s}function eu(e,t,n,r,i,a){return e[n<<8&65280|r>>>8&255]^t[i>>>8&65280|a>>>24&255]}function tu(e,t,n,r,i){return e[t&255|n&65280]|e[r>>>16&255|i>>>16&65280]<<16}function nu(e,t,n,r,i){let{sbox2:a,T01:o,T23:s}=Zl,c=0;t^=e[c++],n^=e[c++],r^=e[c++],i^=e[c++];let l=e.length/4-2;for(let a=0;a<l;a++){let a=e[c++]^eu(o,s,t,n,r,i),l=e[c++]^eu(o,s,n,r,i,t),u=e[c++]^eu(o,s,r,i,t,n),d=e[c++]^eu(o,s,i,t,n,r);t=a,n=l,r=u,i=d}return{s0:e[c++]^tu(a,t,n,r,i),s1:e[c++]^tu(a,n,r,i,t),s2:e[c++]^tu(a,r,i,t,n),s3:e[c++]^tu(a,i,t,n,r)}}function ru(e,t,n,r,i){al(n,Vl),al(r),i=wl(r.length,i);let a=n,o=ll(a),s=dl(a),c=ll(r),l=ll(i),u=t?0:12,d=r.length,f=s.getUint32(u,t),{s0:p,s1:m,s2:h,s3:g}=nu(e,o[0],o[1],o[2],o[3]);for(let n=0;n+4<=c.length;n+=4)l[n+0]=c[n+0]^p,l[n+1]=c[n+1]^m,l[n+2]=c[n+2]^h,l[n+3]=c[n+3]^g,f=f+1>>>0,s.setUint32(u,f,t),{s0:p,s1:m,s2:h,s3:g}=nu(e,o[0],o[1],o[2],o[3]);let _=Vl*Math.floor(c.length/Hl);if(_<d){let e=new Uint32Array([p,m,h,g]),t=cl(e);for(let e=_,n=0;e<d;e++,n++)i[e]=r[e]^t[n];ul(e)}return i}function iu(e,t,n,r,i){let a=i?i.length:0,o=e.create(n,r.length+a);i&&o.update(i);let s=El(8*r.length,8*a,t);o.update(r),o.update(s);let c=o.digest();return ul(s),c}var au=Cl({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,n){if(t.length<8)throw Error(`aes/gcm: invalid nonce length`);function r(e,t,r){let i=iu(Bl,!1,e,r,n);for(let e=0;e<t.length;e++)i[e]^=t[e];return i}function i(){let n=$l(e),r=Ul.slice(),i=Ul.slice();if(ru(n,!1,i,i,r),t.length===12)i.set(t);else{let e=Ul.slice();Tl(dl(e),8,BigInt(t.length*8),!1);let n=Bl.create(r).update(t).update(e);n.digestInto(i),n.destroy()}return{xk:n,authKey:r,counter:i,tagMask:ru(n,!1,i,Ul)}}return{encrypt(e){let{xk:t,authKey:n,counter:a,tagMask:o}=i(),s=new Uint8Array(e.length+16),c=[t,n,a,o];Dl(e)||c.push(e=Ol(e)),ru(t,!1,a,e,s.subarray(0,e.length));let l=r(n,o,s.subarray(0,s.length-16));return c.push(l),s.set(l,e.length),ul(...c),s},decrypt(e){let{xk:t,authKey:n,counter:a,tagMask:o}=i(),s=[t,n,o,a];Dl(e)||s.push(e=Ol(e));let c=e.subarray(0,-16),l=e.subarray(-16),u=r(n,o,c);if(s.push(u),!Sl(u,l))throw Error(`aes/gcm: invalid ghash tag`);let d=ru(t,!1,a,c);return ul(...s),d}}}),ou=k.getLogger([`crypto`,`aes-gcm`]),su={encryptGcm:cu,decryptGcm:lu};function cu(e,t,n){return au(e,n).encrypt(t)}function lu(e,t,n){try{return au(e,n).decrypt(t)}catch(e){throw ou.warn(`{e}`,{e}),new f}}var uu=BigInt(0),du=BigInt(1),fu=BigInt(2),pu=BigInt(7),mu=BigInt(256),hu=BigInt(113),gu=[],_u=[],vu=[];for(let e=0,t=du,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],gu.push(2*(5*r+n)),_u.push((e+1)*(e+2)/2%64);let i=uu;for(let e=0;e<7;e++)t=(t<<du^(t>>pu)*hu)%mu,t&fu&&(i^=du<<(du<<BigInt(e))-du);vu.push(i)}var yu=fc(vu,!0),bu=yu[0],xu=yu[1],Su=(e,t,n)=>n>32?xc(e,t,n):yc(e,t,n),Cu=(e,t,n)=>n>32?Sc(e,t,n):bc(e,t,n);function wu(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=Su(a,o,1)^n[r],c=Cu(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=_u[n],a=Su(t,i,r),o=Cu(t,i,r),s=gu[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=bu[r],e[1]^=xu[r]}js(n)}var Tu=class e extends qs{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,Ts(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=As(this.state)}clone(){return this._cloneInto()}keccak(){Ls(this.state32),wu(this.state32,this.rounds),Ls(this.state32),this.posOut=0,this.pos=0}update(e){Os(this),e=Us(e),Es(e);let{blockLen:t,state:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){Os(this,!1),Es(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return Ts(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ks(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,js(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}},Eu=(e,t,n)=>Js(()=>new Tu(t,e,n)),Du=Eu(6,144,224/8),Ou=Eu(6,136,256/8),ku=Eu(6,104,384/8),Au=Eu(6,72,512/8);Eu(1,144,224/8),Eu(1,136,256/8),Eu(1,104,384/8),Eu(1,72,512/8);var ju=(e,t,n)=>Ys((r={})=>new Tu(t,e,r.dkLen===void 0?n:r.dkLen,!0)),Mu=ju(31,168,128/8),Nu=ju(31,136,256/8),Pu=Es,Fu=Xs;function Iu(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function Lu(...e){let t=e=>typeof e==`number`?e:e.bytesLen,n=e.reduce((e,n)=>e+t(n),0);return{bytesLen:n,encode:r=>{let i=new Uint8Array(n);for(let n=0,a=0;n<e.length;n++){let o=e[n],s=t(o),c=typeof o==`number`?r[n]:o.encode(r[n]);Pu(c,s),i.set(c,a),typeof o!=`number`&&c.fill(0),a+=s}return i},decode:r=>{Pu(r,n);let i=[];for(let n of e){let e=t(n),a=r.subarray(0,e);i.push(typeof n==`number`?a:n.decode(a)),r=r.subarray(e)}return i}}}function Ru(e,t){let n=t*e.bytesLen;return{bytesLen:n,encode:r=>{if(r.length!==t)throw Error(`vecCoder.encode: wrong length=${r.length}. Expected: ${t}`);let i=new Uint8Array(n);for(let t=0,n=0;t<r.length;t++){let a=e.encode(r[t]);i.set(a,n),a.fill(0),n+=a.length}return i},decode:t=>{Pu(t,n);let r=[];for(let n=0;n<t.length;n+=e.bytesLen)r.push(e.decode(t.subarray(n,n+e.bytesLen)));return r}}}function zu(...e){for(let t of e)if(Array.isArray(t))for(let e of t)e.fill(0);else t.fill(0)}function Bu(e){return(1<<e)-1}var Vu=new Uint8Array;function Hu(e,t=Vu){if(Pu(e),Pu(t),t.length>255)throw Error(`context should be less than 255 bytes`);return Gs(new Uint8Array([0,t.length]),t,e)}var Uu={"SHA2-256":{oid:Vs(`0609608648016503040201`),hash:Gc},"SHA2-384":{oid:Vs(`0609608648016503040202`),hash:Jc},"SHA2-512":{oid:Vs(`0609608648016503040203`),hash:qc},"SHA2-224":{oid:Vs(`0609608648016503040204`),hash:Kc},"SHA2-512/224":{oid:Vs(`0609608648016503040205`),hash:Xc},"SHA2-512/256":{oid:Vs(`0609608648016503040206`),hash:Yc},"SHA3-224":{oid:Vs(`0609608648016503040207`),hash:Du},"SHA3-256":{oid:Vs(`0609608648016503040208`),hash:Ou},"SHA3-384":{oid:Vs(`0609608648016503040209`),hash:ku},"SHA3-512":{oid:Vs(`060960864801650304020A`),hash:Au},"SHAKE-128":{oid:Vs(`060960864801650304020B`),hash:e=>Mu(e,{dkLen:32})},"SHAKE-256":{oid:Vs(`060960864801650304020C`),hash:e=>Nu(e,{dkLen:64})}};function Wu(e,t,n=Vu){if(Pu(t),Pu(n),n.length>255)throw Error(`context should be less than 255 bytes`);if(!Uu[e])throw Error(`unknown hash: `+e);let{oid:r,hash:i}=Uu[e],a=i(t);return Gs(new Uint8Array([1,n.length]),n,r,a)}function Gu(e,t=8){let n=e.toString(2).padStart(8,`0`).slice(-t).padStart(7,`0`).split(``).reverse().join(``);return Number.parseInt(n,2)}var Ku=e=>{let{newPoly:t,N:n,Q:r,F:i,ROOT_OF_UNITY:a,brvBits:o,isKyber:s}=e,c=(e,t=r)=>{let n=e%t|0;return(n>=0?n|0:t+n|0)|0},l=(e,t=r)=>{let n=c(e,t)|0;return(n>t>>1?n-t|0:n)|0};function u(){let e=t(n);for(let t=0;t<n;t++){let n=Gu(t,o),i=BigInt(a)**BigInt(n)%BigInt(r);e[t]=Number(i)|0}return e}let d=u(),f=s?128:n,p=+!!s;return{mod:c,smod:l,nttZetas:d,NTT:{encode:e=>{for(let t=1,r=128;r>p;r>>=1)for(let i=0;i<n;i+=2*r){let n=d[t++];for(let t=i;t<i+r;t++){let i=c(n*e[t+r]);e[t+r]=c(e[t]-i)|0,e[t]=c(e[t]+i)|0}}return e},decode:e=>{for(let t=f-1,r=1+p;r<f+p;r<<=1)for(let i=0;i<n;i+=2*r){let n=d[t--];for(let t=i;t<i+r;t++){let i=e[t];e[t]=c(i+e[t+r]),e[t+r]=c(n*(e[t+r]-i))}}for(let t=0;t<e.length;t++)e[t]=c(i*e[t]);return e}},bitsCoder:(e,r)=>{let i=Bu(e),a=n/8*e;return{bytesLen:a,encode:t=>{let n=new Uint8Array(a);for(let a=0,o=0,s=0,c=0;a<t.length;a++)for(o|=(r.encode(t[a])&i)<<s,s+=e;s>=8;s-=8,o>>=8)n[c++]=o&Bu(s);return n},decode:a=>{let o=t(n);for(let t=0,n=0,s=0,c=0;t<a.length;t++)for(n|=a[t]<<s,s+=8;s>=e;s-=e,n>>=e)o[c++]=r.decode(n&i);return o}}}}},qu=e=>(t,n)=>{n||=e.blockLen;let r=new Uint8Array(t.length+2);r.set(t);let i=t.length,a=new Uint8Array(n),o=e.create({}),s=0,c=0;return{stats:()=>({calls:s,xofs:c}),get:(t,n)=>(r[i+0]=t,r[i+1]=n,o.destroy(),o=e.create({}).update(r),s++,()=>(c++,o.xofInto(a))),clean:()=>{o.destroy(),a.fill(0),r.fill(0)}}},Ju=qu(Mu),Yu=qu(Nu),Xu=256,Zu=8380417,Qu=1753,$u=8347681,ed=13,td=Math.floor((Zu-1)/88)|0,nd=Math.floor((Zu-1)/32)|0,rd={2:{K:4,L:4,D:ed,GAMMA1:2**17,GAMMA2:td,TAU:39,ETA:2,OMEGA:80},3:{K:6,L:5,D:ed,GAMMA1:2**19,GAMMA2:nd,TAU:49,ETA:4,OMEGA:55},5:{K:8,L:7,D:ed,GAMMA1:2**19,GAMMA2:nd,TAU:60,ETA:2,OMEGA:75}},id=e=>new Int32Array(e),{mod:ad,smod:od,NTT:sd,bitsCoder:cd}=Ku({N:Xu,Q:Zu,F:$u,ROOT_OF_UNITY:Qu,newPoly:id,isKyber:!1,brvBits:8}),ld=e=>e,ud=(e,t=ld,n=ld)=>cd(e,{encode:e=>t(n(e)),decode:e=>n(t(e))}),dd=(e,t)=>{for(let n=0;n<e.length;n++)e[n]=ad(e[n]+t[n]);return e},fd=(e,t)=>{for(let n=0;n<e.length;n++)e[n]=ad(e[n]-t[n]);return e},pd=e=>{for(let t=0;t<Xu;t++)e[t]<<=ed;return e},md=(e,t)=>{for(let n=0;n<Xu;n++)if(Math.abs(od(e[n]))>=t)return!0;return!1},hd=(e,t)=>{let n=id(Xu);for(let r=0;r<e.length;r++)n[r]=ad(e[r]*t[r]);return n};function gd(e){let t=id(Xu);for(let n=0;n<Xu;){let r=e();if(r.length%3)throw Error(`RejNTTPoly: unaligned block`);for(let e=0;n<Xu&&e<=r.length-3;e+=3){let i=(r[e+0]|r[e+1]<<8|r[e+2]<<16)&8388607;i<Zu&&(t[n++]=i)}}return t}function _d(e){let{K:t,L:n,GAMMA1:r,GAMMA2:i,TAU:a,ETA:o,OMEGA:s}=e,{CRH_BYTES:c,TR_BYTES:l,C_TILDE_BYTES:u,XOF128:d,XOF256:f}=e;if(![2,4].includes(o))throw Error(`Wrong ETA`);if(![1<<17,1<<19].includes(r))throw Error(`Wrong GAMMA1`);if(![td,nd].includes(i))throw Error(`Wrong GAMMA2`);let p=a*o,m=e=>{let t=ad(e),n=od(t,2*i)|0;return t-n===Zu-1?{r1:0,r0:n-1|0}:{r1:Math.floor((t-n)/(2*i))|0,r0:n}},h=e=>m(e).r1,g=e=>m(e).r0,_=(e,t)=>e<=i||e>Zu-i||e===Zu-i&&t===0?0:1,v=(e,t)=>{let n=Math.floor((Zu-1)/(2*i)),{r1:r,r0:a}=m(t);return e===1?a>0?ad(r+1,n)|0:ad(r-1,n)|0:r|0},y=e=>{let t=ad(e),n=od(t,2**ed)|0;return{r1:Math.floor((t-n)/2**ed)|0,r0:n}},b={bytesLen:s+t,encode:e=>{if(e===!1)throw Error(`hint.encode: hint is false`);let n=new Uint8Array(s+t);for(let r=0,i=0;r<t;r++){for(let t=0;t<Xu;t++)e[r][t]!==0&&(n[i++]=t);n[s+r]=i}return n},decode:e=>{let n=[],r=0;for(let i=0;i<t;i++){let t=id(Xu);if(e[s+i]<r||e[s+i]>s)return!1;for(let n=r;n<e[s+i];n++){if(n>r&&e[n]<=e[n-1])return!1;t[e[n]]=1}r=e[s+i],n.push(t)}for(let t=r;t<s;t++)if(e[t]!==0)return!1;return n}},ee=ud(o===2?3:4,e=>o-e,e=>{if(!(-o<=e&&e<=o))throw Error(`malformed key s1/s3 ${e} outside of ETA range [${-o}, ${o}]`);return e}),x=ud(13,e=>(1<<ed-1)-e),te=ud(10),ne=ud(r===1<<17?18:20,e=>od(r-e)),re=Ru(ud(i===td?6:4),t),ie=Lu(32,Ru(te,t)),ae=Lu(32,32,l,Ru(ee,n),Ru(ee,t),Ru(x,t)),oe=Lu(u,Ru(ne,n),b),se=o===2?e=>e<15?2-e%5:!1:e=>e<9?4-e:!1;function ce(e){let t=id(Xu);for(let n=0;n<Xu;){let r=e();for(let e=0;n<Xu&&e<r.length;e+=1){let i=se(r[e]&15),a=se(r[e]>>4&15);i!==!1&&(t[n++]=i),n<Xu&&a!==!1&&(t[n++]=a)}}return t}let le=e=>{let t=id(Xu),n=Nu.create({}).update(e),r=new Uint8Array(Nu.blockLen);n.xofInto(r);let i=r.slice(0,8);for(let e=Xu-a,o=8,s=0,c=0;e<Xu;e++){let a=e+1;for(;a>e;)a=r[o++],!(o<Nu.blockLen)&&(n.xofInto(r),o=0);t[e]=t[a],t[a]=1-((i[s]>>c++&1)<<1),c>=8&&(s++,c=0)}return t},S=e=>{let t=id(Xu),n=id(Xu);for(let r=0;r<e.length;r++){let{r0:i,r1:a}=y(e[r]);t[r]=i,n[r]=a}return{r0:t,r1:n}},ue=(e,t)=>{for(let n=0;n<Xu;n++)e[n]=v(t[n],e[n]);return e},de=(e,t)=>{let n=id(Xu),r=0;for(let i=0;i<Xu;i++){let a=_(e[i],t[i]);n[i]=a,r+=a}return{v:n,cnt:r}},fe=Lu(32,64,32),pe={signRandBytes:32,keygen:e=>{let r=new Uint8Array(34),i=e===void 0;i&&(e=Fu(32)),Pu(e,32),r.set(e),i&&e.fill(0),r[32]=t,r[33]=n;let[a,o,s]=fe.decode(Nu(r,{dkLen:fe.bytesLen})),c=f(o),u=[];for(let e=0;e<n;e++)u.push(ce(c.get(e&255,e>>8&255)));let p=[];for(let e=n;e<n+t;e++)p.push(ce(c.get(e&255,e>>8&255)));let m=u.map(e=>sd.encode(e.slice())),h=[],g=[],_=d(a),v=id(Xu);for(let e=0;e<t;e++){v.fill(0);for(let t=0;t<n;t++)dd(v,hd(gd(_.get(t,e)),m[t]));sd.decode(v);let{r0:t,r1:r}=S(dd(v,p[e]));h.push(t),g.push(r)}let y=ie.encode([a,g]),b=Nu(y,{dkLen:l}),ee=ae.encode([a,s,b,u,p,h]);return _.clean(),c.clean(),zu(a,o,s,u,p,m,v,h,g,b,r),{publicKey:y,secretKey:ee}},sign:(e,a,o,l=!1)=>{let[m,_,v,y,b,ee]=ae.decode(e),x=[],te=d(m);for(let e=0;e<t;e++){let t=[];for(let r=0;r<n;r++)t.push(gd(te.get(r,e)));x.push(t)}te.clean();for(let e=0;e<n;e++)sd.encode(y[e]);for(let e=0;e<t;e++)sd.encode(b[e]),sd.encode(ee[e]);let ie=l?a:Nu.create({dkLen:c}).update(v).update(a).digest(),se=o||new Uint8Array(32);Pu(se);let ce=Nu.create({dkLen:c}).update(_).update(se).update(ie).digest();Pu(ce,c);let S=f(ce,ne.bytesLen);main_loop:for(let e=0;;){let a=[];for(let t=0;t<n;t++,e++)a.push(ne.decode(S.get(e&255,e>>8)()));let o=a.map(e=>sd.encode(e.slice())),c=[];for(let e=0;e<t;e++){let t=id(Xu);for(let r=0;r<n;r++)dd(t,hd(x[e][r],o[r]));sd.decode(t),c.push(t)}let l=c.map(e=>e.map(h)),d=Nu.create({dkLen:u}).update(ie).update(re.encode(l)).digest(),f=sd.encode(le(d)),m=y.map(e=>hd(e,f));for(let e=0;e<n;e++)if(dd(sd.decode(m[e]),a[e]),md(m[e],r-p))continue main_loop;let _=0,v=[];for(let e=0;e<t;e++){let t=sd.decode(hd(b[e],f)),n=fd(c[e],t).map(g);if(md(n,i-p))continue main_loop;let r=sd.decode(hd(ee[e],f));if(md(r,i))continue main_loop;dd(n,r);let a=de(n,l[e]);v.push(a.v),_+=a.cnt}if(_>s)continue;S.clean();let te=oe.encode([d,m,v]);return zu(d,m,v,f,l,c,o,a,ce,ie,y,b,ee,...x),te}throw Error(`Unreachable code path reached, report this error`)},verify:(e,i,a,o=!1)=>{let[f,m]=ie.decode(e),h=Nu(e,{dkLen:l});if(a.length!==oe.bytesLen)return!1;let[g,_,v]=oe.decode(a);if(v===!1)return!1;for(let e=0;e<n;e++)if(md(_[e],r-p))return!1;let y=o?i:Nu.create({dkLen:c}).update(h).update(i).digest(),b=sd.encode(le(g)),ee=_.map(e=>e.slice());for(let e=0;e<n;e++)sd.encode(ee[e]);let x=[],te=d(f);for(let e=0;e<t;e++){let t=hd(sd.encode(pd(m[e])),b),r=id(Xu);for(let t=0;t<n;t++)dd(r,hd(gd(te.get(t,e)),ee[t]));let i=sd.decode(fd(r,t));x.push(ue(i,v[e]))}te.clean();let ne=Nu.create({dkLen:u}).update(y).update(re.encode(x)).digest();for(let e of v)if(!(e.reduce((e,t)=>e+t,0)<=s))return!1;for(let e of _)if(md(e,r-p))return!1;return Iu(g,ne)}};return{internal:pe,keygen:pe.keygen,signRandBytes:pe.signRandBytes,sign:(e,t,n=Vu,r)=>{let i=Hu(t,n),a=pe.sign(e,i,r);return i.fill(0),a},verify:(e,t,n,r=Vu)=>pe.verify(e,Hu(t,r),n),prehash:e=>({sign:(t,n,r=Vu,i)=>{let a=Wu(e,n,r),o=pe.sign(t,a,i);return a.fill(0),o},verify:(t,n,r,i=Vu)=>pe.verify(t,Wu(e,n,i),r)})}}({...rd[2]});var vd=_d({...rd[3],CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:48,XOF128:Ju,XOF256:Yu});({...rd[5]});var yd={generateKeyPair:bd,sign:xd,verify:Sd};function bd(e){e??=Fu(32);let t=vd.keygen(e);return{publicKey:t.publicKey,privateKey:t.secretKey}}function xd(e,t){return vd.sign(e,t)}function Sd(e,t,n){return vd.verify(e,t,n)}var Cd=256,wd=3329,{mod:Td,nttZetas:Ed,NTT:Dd,bitsCoder:Od}=Ku({N:Cd,Q:wd,F:3303,ROOT_OF_UNITY:17,newPoly:e=>new Uint16Array(e),brvBits:7,isKyber:!0}),kd={512:{N:Cd,Q:wd,K:2,ETA1:3,ETA2:2,du:10,dv:4,RBGstrength:128},768:{N:Cd,Q:wd,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192},1024:{N:Cd,Q:wd,K:4,ETA1:2,ETA2:2,du:11,dv:5,RBGstrength:256}},Ad=e=>{if(e>=12)return{encode:e=>e,decode:e=>e};let t=2**(e-1);return{encode:t=>((t<<e)+wd/2)/wd,decode:n=>n*wd+t>>>e}},jd=e=>Od(e,Ad(e));function Md(e,t){for(let n=0;n<Cd;n++)e[n]=Td(e[n]+t[n])}function Nd(e,t){for(let n=0;n<Cd;n++)e[n]=Td(e[n]-t[n])}function Pd(e,t,n,r,i){return{c0:Td(t*r*i+e*n),c1:Td(e*r+t*n)}}function Fd(e,t){for(let n=0;n<Cd/2;n++){let r=Ed[64+(n>>1)];n&1&&(r=-r);let{c0:i,c1:a}=Pd(e[2*n+0],e[2*n+1],t[2*n+0],t[2*n+1],r);e[2*n+0]=i,e[2*n+1]=a}return e}function Id(e){let t=new Uint16Array(Cd);for(let n=0;n<Cd;){let r=e();if(r.length%3)throw Error(`SampleNTT: unaligned block`);for(let e=0;n<Cd&&e+3<=r.length;e+=3){let i=(r[e+0]>>0|r[e+1]<<8)&4095,a=(r[e+1]>>4|r[e+2]<<4)&4095;i<wd&&(t[n++]=i),n<Cd&&a<wd&&(t[n++]=a)}}return t}function Ld(e,t,n,r){let i=e(r*Cd/4,t,n),a=new Uint16Array(Cd),o=As(i),s=0;for(let e=0,t=0,n=0,i=0;e<o.length;e++){let c=o[e];for(let e=0;e<32;e++)n+=c&1,c>>=1,s+=1,s===r?(i=n,n=0):s===2*r&&(a[t++]=Td(i-n),n=0,s=0)}if(s)throw Error(`sampleCBD: leftover bits: ${s}`);return a}var Rd=e=>{let{K:t,PRF:n,XOF:r,HASH512:i,ETA1:a,ETA2:o,du:s,dv:c}=e,l=jd(1),u=jd(c),d=jd(s),f=Lu(Ru(jd(12),t),32),p=Ru(jd(12),t),m=Lu(Ru(d,t),u),h=Lu(32,32);return{secretCoder:p,secretKeyLen:p.bytesLen,publicKeyLen:f.bytesLen,cipherTextLen:m.bytesLen,keygen:e=>{Pu(e,32);let o=new Uint8Array(33);o.set(e),o[32]=t;let s=i(o),[c,l]=h.decode(s),u=[],d=[];for(let e=0;e<t;e++)u.push(Dd.encode(Ld(n,l,e,a)));let m=r(c);for(let e=0;e<t;e++){let r=Dd.encode(Ld(n,l,t+e,a));for(let n=0;n<t;n++)Md(r,Fd(Id(m.get(n,e)),u[n]));d.push(r)}m.clean();let g={publicKey:f.encode([d,c]),secretKey:p.encode(u)};return zu(c,l,u,d,o,s),g},encrypt:(e,i,s)=>{let[c,u]=f.decode(e),d=[];for(let e=0;e<t;e++)d.push(Dd.encode(Ld(n,s,e,a)));let p=r(u),h=new Uint16Array(Cd),g=[];for(let e=0;e<t;e++){let r=Ld(n,s,t+e,o),i=new Uint16Array(Cd);for(let n=0;n<t;n++)Md(i,Fd(Id(p.get(e,n)),d[n]));Md(r,Dd.decode(i)),g.push(r),Md(h,Fd(c[e],d[e])),i.fill(0)}p.clean();let _=Ld(n,s,2*t,o);Md(_,Dd.decode(h));let v=l.decode(i);return Md(v,_),zu(c,d,h,_),m.encode([g,v])},decrypt:(e,n)=>{let[r,i]=m.decode(e),a=p.decode(n),o=new Uint16Array(Cd);for(let e=0;e<t;e++)Md(o,Fd(a[e],Dd.encode(r[e])));return Nd(i,Dd.decode(o)),zu(o,a,r),l.encode(i)}}};function zd(e){let t=Rd(e),{HASH256:n,HASH512:r,KDF:i}=e,{secretCoder:a,cipherTextLen:o}=t,s=t.publicKeyLen,c=Lu(t.secretKeyLen,t.publicKeyLen,32,32),l=c.bytesLen;return{publicKeyLen:s,msgLen:32,keygen:(e=Fu(64))=>{Pu(e,64);let{publicKey:r,secretKey:i}=t.keygen(e.subarray(0,32)),a=n(r),o=c.encode([i,r,a,e.subarray(32)]);return zu(i,a),{publicKey:r,secretKey:o}},encapsulate:(i,o=Fu(32))=>{Pu(i,s),Pu(o,32);let c=i.subarray(0,384*e.K),l=a.encode(a.decode(c.slice()));if(!Iu(l,c))throw zu(l),Error(`ML-KEM.encapsulate: wrong publicKey modulus`);zu(l);let u=r.create().update(o).update(n(i)).digest(),d=t.encrypt(i,o,u.subarray(32,64));return u.subarray(32).fill(0),{cipherText:d,sharedSecret:u.subarray(0,32)}},decapsulate:(e,n)=>{Pu(n,l),Pu(e,o);let[a,s,u,d]=c.decode(n),f=t.decrypt(e,a),p=r.create().update(f).update(u).digest(),m=p.subarray(0,32),h=t.encrypt(s,f,p.subarray(32,64)),g=Iu(e,h),_=i.create({dkLen:32}).update(d).update(e).digest();return zu(f,h,g?_:m),g?m:_}}}function Bd(e,t,n){return Nu.create({dkLen:e}).update(t).update(new Uint8Array([n])).digest()}var Vd={HASH256:Ou,HASH512:Au,KDF:Nu,XOF:Ju,PRF:Bd};({...Vd,...kd[512]});var Hd=zd({...Vd,...kd[768]});({...Vd,...kd[1024]});var Ud={generateKeyPair:Wd,encapsulate:Gd,decapsulate:Kd};function Wd(e){return e??=Fu(64),Hd.keygen(e)}function Gd(e){return Hd.encapsulate(e)}function Kd(e,t){return Hd.decapsulate(e,t)}var qd=Gc,Jd=class extends qs{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ds(e);let n=Us(t);if(this.iHash=e.create(),typeof this.iHash.update!=`function`)throw Error(`Expected instance of class which extends utils.Hash`);this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),js(i)}update(e){return Os(this),this.iHash.update(e),this}digestInto(e){Os(this),Es(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=r,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Yd=(e,t,n)=>new Jd(e,t).update(n).digest();Yd.create=(e,t)=>new Jd(e,t);var{p:Xd,n:Zd,Gx:Qd,Gy:$d,b:ef}={p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n},tf=32,nf=64,rf=(e=``)=>{throw Error(e)},af=e=>typeof e==`bigint`,of=e=>typeof e==`string`,sf=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`,cf=(e,t)=>!sf(e)||typeof t==`number`&&t>0&&e.length!==t?rf(`Uint8Array expected`):e,lf=e=>new Uint8Array(e),uf=e=>Uint8Array.from(e),df=(e,t)=>e.toString(16).padStart(t,`0`),ff=e=>Array.from(cf(e)).map(e=>df(e,2)).join(``),pf={_0:48,_9:57,A:65,F:70,a:97,f:102},mf=e=>{if(e>=pf._0&&e<=pf._9)return e-pf._0;if(e>=pf.A&&e<=pf.F)return e-(pf.A-10);if(e>=pf.a&&e<=pf.f)return e-(pf.a-10)},hf=e=>{let t=`hex invalid`;if(!of(e))return rf(t);let n=e.length,r=n/2;if(n%2)return rf(t);let i=lf(r);for(let n=0,a=0;n<r;n++,a+=2){let r=mf(e.charCodeAt(a)),o=mf(e.charCodeAt(a+1));if(r===void 0||o===void 0)return rf(t);i[n]=r*16+o}return i},gf=(e,t)=>cf(of(e)?hf(e):uf(cf(e)),t),_f=()=>globalThis?.crypto,vf=()=>_f()?.subtle??rf(`crypto.subtle must be defined`),yf=(...e)=>{let t=lf(e.reduce((e,t)=>e+cf(t).length,0)),n=0;return e.forEach(e=>{t.set(e,n),n+=e.length}),t},bf=(e=tf)=>_f().getRandomValues(lf(e)),xf=BigInt,Sf=(e,t,n,r=`bad number: out of range`)=>af(e)&&t<=e&&e<n?e:rf(r),M=(e,t=Xd)=>{let n=e%t;return n>=0n?n:t+n},Cf=e=>M(e,Zd),wf=(e,t)=>{(e===0n||t<=0n)&&rf(`no inverse n=`+e+` mod=`+t);let n=M(e,t),r=t,i=0n,a=1n,o=1n,s=0n;for(;n!==0n;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}return r===1n?M(i,t):rf(`no inverse`)},Tf=e=>{let t=ap[e];return typeof t!=`function`&&rf(`hashes.`+e+` not set`),t},Ef=e=>e instanceof Ff?e:rf(`Point expected`),Df=e=>M(M(e*e)*e+ef),Of=e=>Sf(e,0n,Xd),kf=e=>Sf(e,1n,Xd),Af=e=>Sf(e,1n,Zd),jf=e=>(e&1n)==0n,Mf=e=>Uint8Array.of(e),Nf=e=>Mf(jf(e)?2:3),Pf=e=>{let t=Df(kf(e)),n=1n;for(let e=t,r=(Xd+1n)/4n;r>0n;r>>=1n)r&1n&&(n=n*e%Xd),e=e*e%Xd;return M(n*n)===t?n:rf(`sqrt invalid`)},Ff=class e{static BASE;static ZERO;px;py;pz;constructor(e,t,n){this.px=Of(e),this.py=kf(t),this.pz=Of(n),Object.freeze(this)}static fromBytes(t){cf(t);let n,r=t[0],i=t.subarray(1),a=Bf(i,0,tf),o=t.length;if(o===tf+1&&[2,3].includes(r)){let t=Pf(a),i=jf(t);jf(xf(r))!==i&&(t=M(-t)),n=new e(a,t,1n)}return o===nf+1&&r===4&&(n=new e(a,Bf(i,tf,nf),1n)),n?n.assertValidity():rf(`bad point: not on curve`)}equals(e){let{px:t,py:n,pz:r}=this,{px:i,py:a,pz:o}=Ef(e),s=M(t*o),c=M(i*r),l=M(n*o),u=M(a*r);return s===c&&l===u}is0(){return this.equals(Lf)}negate(){return new e(this.px,M(-this.py),this.pz)}double(){return this.add(this)}add(t){let{px:n,py:r,pz:i}=this,{px:a,py:o,pz:s}=Ef(t),c=0n,l=ef,u=0n,d=0n,f=0n,p=M(l*3n),m=M(n*a),h=M(r*o),g=M(i*s),_=M(n+r),v=M(a+o);_=M(_*v),v=M(m+h),_=M(_-v),v=M(n+i);let y=M(a+s);return v=M(v*y),y=M(m+g),v=M(v-y),y=M(r+i),u=M(o+s),y=M(y*u),u=M(h+g),y=M(y-u),f=M(c*v),u=M(p*g),f=M(u+f),u=M(h-f),f=M(h+f),d=M(u*f),h=M(m+m),h=M(h+m),g=M(c*g),v=M(p*v),h=M(h+g),g=M(m-g),g=M(c*g),v=M(v+g),m=M(h*v),d=M(d+m),m=M(y*v),u=M(_*u),u=M(u-m),m=M(_*h),f=M(y*f),f=M(f+m),new e(u,d,f)}multiply(e,t=!0){if(!t&&e===0n)return Lf;if(Af(e),e===1n)return this;if(this.equals(If))return pp(e).p;let n=Lf,r=If;for(let i=this;e>0n;i=i.double(),e>>=1n)e&1n?n=n.add(i):t&&(r=r.add(i));return n}toAffine(){let{px:e,py:t,pz:n}=this;if(this.equals(Lf))return{x:0n,y:0n};if(n===1n)return{x:e,y:t};let r=wf(n,Xd);return M(n*r)!==1n&&rf(`inverse invalid`),{x:M(e*r),y:M(t*r)}}assertValidity(){let{x:e,y:t}=this.toAffine();return kf(e),kf(t),M(t*t)===Df(e)?this:rf(`bad point: not on curve`)}toBytes(e=!0){let{x:t,y:n}=this.assertValidity().toAffine(),r=Hf(t);return e?yf(Nf(n),r):yf(Mf(4),r,Hf(n))}static fromAffine(t){let{x:n,y:r}=t;return n===0n&&r===0n?Lf:new e(n,r,1n)}toHex(e){return ff(this.toBytes(e))}static fromPrivateKey(e){return If.multiply(Uf(e))}static fromHex(t){return e.fromBytes(gf(t))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(e){return this.toBytes(e)}},If=new Ff(Qd,$d,1n),Lf=new Ff(0n,1n,0n);Ff.BASE=If,Ff.ZERO=Lf;var Rf=(e,t,n)=>If.multiply(t,!1).add(e.multiply(n,!1)).assertValidity(),zf=e=>xf(`0x`+(ff(e)||`0`)),Bf=(e,t,n)=>zf(e.subarray(t,n)),Vf=2n**256n,Hf=e=>hf(df(Sf(e,0n,Vf),nf)),Uf=e=>Sf(af(e)?e:zf(gf(e,tf)),1n,Zd,`private key invalid 3`),Wf=e=>e>Zd>>1n,Gf=(e,t=!0)=>If.multiply(Uf(e)).toBytes(t),Kf=class e{r;s;recovery;constructor(e,t,n){this.r=Af(e),this.s=Af(t),n!=null&&(this.recovery=n),Object.freeze(this)}static fromBytes(t){return cf(t,nf),new e(Bf(t,0,tf),Bf(t,tf,nf))}toBytes(){let{r:e,s:t}=this;return yf(Hf(e),Hf(t))}addRecoveryBit(t){return new e(this.r,this.s,t)}hasHighS(){return Wf(this.s)}toCompactRawBytes(){return this.toBytes()}toCompactHex(){return ff(this.toBytes())}recoverPublicKey(e){return tp(this,e)}static fromCompact(t){return e.fromBytes(gf(t,nf))}assertValidity(){return this}normalizeS(){let{r:t,s:n,recovery:r}=this;return Wf(n)?new e(t,Cf(-n),r):this}},qf=e=>{let t=e.length*8-256;t>1024&&rf(`msg invalid`);let n=zf(e);return t>0?n>>xf(t):n},Jf=e=>Cf(qf(cf(e))),Yf={lowS:!0},Xf={lowS:!0},Zf=(e,t,n=Yf)=>{[`der`,`recovered`,`canonical`].some(e=>e in n)&&rf(`option not supported`);let{lowS:r,extraEntropy:i}=n;r??=!0;let a=Hf,o=Jf(gf(e)),s=a(o),c=Uf(t),l=[a(c),s];i&&l.push(i===!0?bf(tf):gf(i));let u=o,d=e=>{let t=qf(e);if(!(1n<=t&&t<Zd))return;let n=If.multiply(t).toAffine(),i=Cf(n.x);if(i===0n)return;let a=Cf(wf(t,Zd)*Cf(u+Cf(c*i)));if(a===0n)return;let o=a,s=(n.x===i?0:2)|Number(n.y&1n);return r&&Wf(a)&&(o=Cf(-a),s^=1),new Kf(i,o,s)};return{seed:yf(...l),k2sig:d}},Qf=e=>{let t=lf(tf),n=lf(tf),r=0,i=lf(0),a=()=>{t.fill(1),n.fill(0),r=0},o=1e3,s=`drbg: tried 1000 values`;if(e){let e=(...e)=>ap.hmacSha256Async(n,t,...e),c=async(r=i)=>{n=await e(Mf(0),r),t=await e(),r.length!==0&&(n=await e(Mf(1),r),t=await e())},l=async()=>(r++>=o&&rf(s),t=await e(),t);return async(e,t)=>{a(),await c(e);let n;for(;!(n=t(await l()));)await c();return a(),n}}else{let e=(...e)=>Tf(`hmacSha256Sync`)(n,t,...e),c=(r=i)=>{n=e(Mf(0),r),t=e(),r.length!==0&&(n=e(Mf(1),r),t=e())},l=()=>(r++>=o&&rf(s),t=e(),t);return(e,t)=>{a(),c(e);let n;for(;!(n=t(l()));)c();return a(),n}}},$f=(e,t,n=Yf)=>{let{seed:r,k2sig:i}=Zf(e,t,n);return Qf(!1)(r,i)},ep=(e,t,n,r=Xf)=>{let{lowS:i}=r;i??=!0,`strict`in r&&rf(`option not supported`);let a,o=e&&typeof e==`object`&&`r`in e;!o&&gf(e).length!==nf&&rf(`signature must be 64 bytes`);try{a=o?new Kf(e.r,e.s):Kf.fromCompact(e);let r=Jf(gf(t)),s=Ff.fromBytes(gf(n)),{r:c,s:l}=a;if(i&&Wf(l))return!1;let u=wf(l,Zd);return Cf(Rf(s,Cf(r*u),Cf(c*u)).toAffine().x)===c}catch{return!1}},tp=(e,t)=>{let{r:n,s:r,recovery:i}=e;[0,1,2,3].includes(i)||rf(`recovery id invalid`);let a=Jf(gf(t,tf)),o=i===2||i===3?n+Zd:n;kf(o);let s=yf(Nf(xf(i)),Hf(o)),c=Ff.fromBytes(s),l=wf(o,Zd);return Rf(c,Cf(-a*l),Cf(r*l))},np=e=>(e=gf(e),(e.length<tf+8||e.length>1024)&&rf(`expected 40-1024b`),Hf(M(zf(e),Zd-1n)+1n)),rp=()=>np(bf(tf+16)),ip=`SHA-256`,ap={hexToBytes:hf,bytesToHex:ff,concatBytes:yf,bytesToNumberBE:zf,numberToBytesBE:Hf,mod:M,invert:wf,hmacSha256Async:async(e,...t)=>{let n=vf(),r=`HMAC`,i=await n.importKey(`raw`,e,{name:r,hash:{name:ip}},!1,[`sign`]);return lf(await n.sign(r,i,yf(...t)))},hmacSha256Sync:void 0,hashToPrivateKey:np,randomBytes:bf},op={normPrivateKeyToScalar:Uf,isValidPrivateKey:e=>{try{return!!Uf(e)}catch{return!1}},randomPrivateKey:rp,precompute:(e=8,t=If)=>(t.multiply(3n),t)},sp=8,cp=Math.ceil(256/sp)+1,lp=2**(sp-1),up=()=>{let e=[],t=If,n=t;for(let r=0;r<cp;r++){n=t,e.push(n);for(let r=1;r<lp;r++)n=n.add(t),e.push(n);t=n.double()}return e},dp=void 0,fp=(e,t)=>{let n=t.negate();return e?n:t},pp=e=>{let t=dp||=up(),n=Lf,r=If,i=2**sp,a=i,o=xf(i-1),s=xf(sp);for(let i=0;i<cp;i++){let c=Number(e&o);e>>=s,c>lp&&(c-=a,e+=1n);let l=i*lp,u=l,d=l+Math.abs(c)-1,f=i%2!=0,p=c<0;c===0?r=r.add(fp(f,t[u])):n=n.add(fp(p,t[d]))}return{p:n,f:r}};ap.hmacSha256Sync=(e,...t)=>Yd(qd,e,ap.concatBytes(...t));var mp={publicKeyFromPrivateKey:hp,sign:gp,verify:_p};function hp(e){return Gf(e)}function gp(e,t){return $f(qd(t),e).toCompactRawBytes()}function _p(e,t,n){return ep(n,qd(t),e)}var vp={SECP256K1:0,ML_DSA:1},yp=[{name:`SECP256K1`,signatureSectionSize:65},{name:`ML_DSA`,signatureSectionSize:3311}],bp={ML_KEM:0},xp=[{name:`ML-KEM`}],N={...vp,SIG_SCHEMES:yp,...bp,KEM_SCHEMES:xp,Random:Zs,Hashes:Qc,Aes:su,MLDsa:yd,MLKem:Ud,Secp256k1:mp},Sp;function Cp(e){return{lang:e?.lang??Sp?.lang,message:e?.message,abortEarly:e?.abortEarly??Sp?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Sp?.abortPipeEarly}}var wp;function Tp(e){return wp?.get(e)}var Ep;function Dp(e){return Ep?.get(e)}var Op;function kp(e,t){return Op?.get(e)?.get(t)}function Ap(e){let t=typeof e;return t===`string`?`"${e}"`:t===`number`||t===`bigint`||t===`boolean`?`${e}`:t===`object`||t===`function`?(e&&Object.getPrototypeOf(e)?.constructor?.name)??`null`:t}function jp(e,t,n,r,i){let a=i&&`input`in i?i.input:n.value,o=i?.expected??e.expects??null,s=i?.received??Ap(a),c={kind:e.kind,type:e.type,input:a,expected:o,received:s,message:`Invalid ${t}: ${o?`Expected ${o} but r`:`R`}eceived ${s}`,requirement:e.requirement,path:i?.path,issues:i?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},l=e.kind===`schema`,u=i?.message??e.message??kp(e.reference,c.lang)??(l?Dp(c.lang):null)??r.message??Tp(c.lang);u!==void 0&&(c.message=typeof u==`function`?u(c):u),l&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function Mp(e){return{version:1,vendor:`valibot`,validate(t){return e[`~run`]({value:t},Cp())}}}function Np(e,t){return Object.hasOwn(e,t)&&t!==`__proto__`&&t!==`prototype`&&t!==`constructor`}function Pp(e,t){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??`never`}var Fp=class extends Error{constructor(e){super(e[0].message),this.name=`ValiError`,this.issues=e}};function Ip(e){return{kind:`validation`,type:`integer`,reference:Ip,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&jp(this,`integer`,e,t),e}}}function Lp(e,t){return{kind:`validation`,type:`max_length`,reference:Lp,async:!1,expects:`<=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length>this.requirement&&jp(this,`length`,e,t,{received:`${e.value.length}`}),e}}}function Rp(e,t){return{kind:`validation`,type:`max_value`,reference:Rp,async:!1,expects:`<=${e instanceof Date?e.toJSON():Ap(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value<=this.requirement)&&jp(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():Ap(e.value)}),e}}}function zp(e){return{kind:`metadata`,type:`metadata`,reference:zp,metadata:e}}function Bp(e,t){return{kind:`validation`,type:`min_value`,reference:Bp,async:!1,expects:`>=${e instanceof Date?e.toJSON():Ap(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value>=this.requirement)&&jp(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():Ap(e.value)}),e}}}function Vp(e,t,n){return typeof e.fallback==`function`?e.fallback(t,n):e.fallback}function Hp(e,t,n){return typeof e.default==`function`?e.default(t,n):e.default}function Up(e,t){return!e[`~run`]({value:t},{abortEarly:!0}).issues}function Wp(){return{kind:`schema`,type:`any`,reference:Wp,expects:`any`,async:!1,get"~standard"(){return Mp(this)},"~run"(e){return e.typed=!0,e}}}function P(e,t){return{kind:`schema`,type:`array`,reference:P,expects:`Array`,async:!1,item:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){let i=n[r],a=this.item[`~run`]({value:i},t);if(a.issues){let o={type:`array`,origin:`value`,input:n,key:r,value:i};for(let t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value.push(a.value)}}else jp(this,`type`,e,t);return e}}}function Gp(e){return{kind:`schema`,type:`boolean`,reference:Gp,expects:`boolean`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`boolean`?e.typed=!0:jp(this,`type`,e,t),e}}}function Kp(e,t){return{kind:`schema`,type:`custom`,reference:Kp,expects:`unknown`,async:!1,check:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return this.check(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function qp(e,t){return{kind:`schema`,type:`instance`,reference:qp,expects:e.name,async:!1,class:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value instanceof this.class?e.typed=!0:jp(this,`type`,e,t),e}}}function Jp(e){return{kind:`schema`,type:`lazy`,reference:Jp,expects:`unknown`,async:!1,getter:e,get"~standard"(){return Mp(this)},"~run"(e,t){return this.getter(e.value)[`~run`](e,t)}}}function F(e,t){return{kind:`schema`,type:`literal`,reference:F,expects:Ap(e),async:!1,literal:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:jp(this,`type`,e,t),e}}}function Yp(e){return{kind:`schema`,type:`null`,reference:Yp,expects:`null`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===null?e.typed=!0:jp(this,`type`,e,t),e}}}function I(e){return{kind:`schema`,type:`number`,reference:I,expects:`number`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`number`&&!isNaN(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function L(e,t){return{kind:`schema`,type:`object`,reference:L,expects:`Object`,async:!1,entries:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in this.entries){let i=this.entries[r];if(r in n||(i.type===`exact_optional`||i.type===`optional`||i.type===`nullish`)&&i.default!==void 0){let a=r in n?n[r]:Hp(i),o=i[`~run`]({value:a},t);if(o.issues){let i={type:`object`,origin:`value`,input:n,key:r,value:a};for(let t of o.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[r]=o.value}else if(i.fallback!==void 0)e.value[r]=Vp(i);else if(i.type!==`exact_optional`&&i.type!==`optional`&&i.type!==`nullish`&&(jp(this,`key`,e,t,{input:void 0,expected:`"${r}"`,path:[{type:`object`,origin:`key`,input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else jp(this,`type`,e,t);return e}}}function Xp(e,t,n){return{kind:`schema`,type:`object_with_rest`,reference:Xp,expects:`Object`,async:!1,entries:e,rest:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in this.entries){let i=this.entries[r];if(r in n||(i.type===`exact_optional`||i.type===`optional`||i.type===`nullish`)&&i.default!==void 0){let a=r in n?n[r]:Hp(i),o=i[`~run`]({value:a},t);if(o.issues){let i={type:`object`,origin:`value`,input:n,key:r,value:a};for(let t of o.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[r]=o.value}else if(i.fallback!==void 0)e.value[r]=Vp(i);else if(i.type!==`exact_optional`&&i.type!==`optional`&&i.type!==`nullish`&&(jp(this,`key`,e,t,{input:void 0,expected:`"${r}"`,path:[{type:`object`,origin:`key`,input:n,key:r,value:n[r]}]}),t.abortEarly))break}if(!e.issues||!t.abortEarly){for(let r in n)if(Np(n,r)&&!(r in this.entries)){let i=this.rest[`~run`]({value:n[r]},t);if(i.issues){let a={type:`object`,origin:`value`,input:n,key:r,value:n[r]};for(let t of i.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=i.issues,t.abortEarly){e.typed=!1;break}}i.typed||(e.typed=!1),e.value[r]=i.value}}}else jp(this,`type`,e,t);return e}}}function Zp(e,t){return{kind:`schema`,type:`optional`,reference:Zp,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return Mp(this)},"~run"(e,t){return e.value===void 0&&(this.default!==void 0&&(e.value=Hp(this,e,t)),e.value===void 0)?(e.typed=!0,e):this.wrapped[`~run`](e,t)}}}function Qp(e,t){return{kind:`schema`,type:`picklist`,reference:Qp,expects:Pp(e.map(Ap),`|`),async:!1,options:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:jp(this,`type`,e,t),e}}}function $p(e,t,n){return{kind:`schema`,type:`record`,reference:$p,expects:`Object`,async:!1,key:e,value:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in n)if(Np(n,r)){let i=n[r],a=this.key[`~run`]({value:r},t);if(a.issues){let o={type:`object`,origin:`key`,input:n,key:r,value:i};for(let t of a.issues)t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}let o=this.value[`~run`]({value:i},t);if(o.issues){let a={type:`object`,origin:`value`,input:n,key:r,value:i};for(let t of o.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}(!a.typed||!o.typed)&&(e.typed=!1),a.typed&&(e.value[a.value]=o.value)}}else jp(this,`type`,e,t);return e}}}function R(e){return{kind:`schema`,type:`string`,reference:R,expects:`string`,async:!1,message:e,get"~standard"(){return Mp(this)},"~run"(e,t){return typeof e.value==`string`?e.typed=!0:jp(this,`type`,e,t),e}}}function em(e){let t;if(e)for(let n of e)t?t.push(...n.issues):t=n.issues;return t}function tm(e,t){return{kind:`schema`,type:`union`,reference:tm,expects:Pp(e.map(e=>e.expects),`|`),async:!1,options:e,message:t,get"~standard"(){return Mp(this)},"~run"(e,t){let n,r,i;for(let a of this.options){let o=a[`~run`]({value:e.value},t);if(o.typed)if(o.issues)r?r.push(o):r=[o];else{n=o;break}else i?i.push(o):i=[o]}if(n)return n;if(r){if(r.length===1)return r[0];jp(this,`type`,e,t,{issues:em(r)}),e.typed=!0}else if(i?.length===1)return i[0];else jp(this,`type`,e,t,{issues:em(i)});return e}}}function nm(){return{kind:`schema`,type:`unknown`,reference:nm,expects:`unknown`,async:!1,get"~standard"(){return Mp(this)},"~run"(e){return e.typed=!0,e}}}function rm(e,t,n){return{kind:`schema`,type:`variant`,reference:rm,expects:`Object`,async:!1,key:e,options:t,message:n,get"~standard"(){return Mp(this)},"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){let r,i=0,a=this.key,o=[],s=(e,c)=>{for(let l of e.options){if(l.type===`variant`)s(l,new Set(c).add(l.key));else{let e=!0,s=0;for(let t of c){let r=l.entries[t];if(t in n?r[`~run`]({typed:!1,value:n[t]},{abortEarly:!0}).issues:r.type!==`exact_optional`&&r.type!==`optional`&&r.type!==`nullish`){e=!1,a!==t&&(i<s||i===s&&t in n&&!(a in n))&&(i=s,a=t,o=[]),a===t&&o.push(l.entries[t].expects);break}s++}if(e){let e=l[`~run`]({value:n},t);(!r||!r.typed&&e.typed)&&(r=e)}}if(r&&!r.issues)break}};if(s(this,new Set([this.key])),r)return r;jp(this,`type`,e,t,{input:n[a],expected:Pp(o,`|`),path:[{type:`object`,origin:`value`,input:n,key:a,value:n[a]}]})}else jp(this,`type`,e,t);return e}}}function z(e,t,n){let r=e[`~run`]({value:t},Cp(n));if(r.issues)throw new Fp(r.issues);return r.value}function B(...e){return{...e[0],pipe:e,get"~standard"(){return Mp(this)},"~run"(t,n){for(let r of e)if(r.kind!==`metadata`){if(t.issues&&(r.kind===`schema`||r.kind===`transformation`)){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r[`~run`](t,n))}return t}}}function im(e,t,n){let r=e[`~run`]({value:t},Cp(n));return{typed:r.typed,success:!r.issues,output:r.value,issues:r.issues}}var am=0,om=1,sm=2,cm=3,lm=4,um=5,dm=6,fm=7,pm=8,mm=9,hm=10,gm=11,_m=12,vm=13;function ym(e){return B(P(e.items),zp({typeId:0,elementSchema:e.items,...e}))}function bm(e={}){let t=e&&e.size||-1;return B(R(),Kp(e=>typeof e==`string`&&(t===-1||e.length===t),`Expected size is ${t} bytes`),zp({typeId:2,size:t,...e}))}function V(e={}){return B(I(),zp({typeId:3,...e}))}function xm(e={}){return B(Gp(),zp({typeId:4,...e}))}function Sm(e,t,n){return B(I(),Ip(),Bp(0),Rp(2**t-1),zp({typeId:e,...n}))}function Cm(e={}){return Sm(6,8,e)}function wm(e={}){return Sm(7,16,e)}function Tm(e={}){return Sm(8,24,e)}function Em(e={}){return Sm(9,32,e)}function Dm(e={}){return Sm(10,48,e)}function Om(e={}){let t=e&&e.size||-1;return B(qp(Uint8Array),Kp(e=>e instanceof Uint8Array&&(t===-1||e.length===t),`Expected size is ${t} bytes`),zp({typeId:11,...e}))}function km(e={}){return B(qp(Uint8Array),Kp(e=>e instanceof Uint8Array&&e.length===32,`Expected Uint8Array of 32 bytes`),zp({typeId:12,...e}))}function H(){return qp(Uint8Array)}function Am(){return H()}function jm(){return B(I(),Bp(0))}var Mm=L({magicString:F(Un),protocolVersion:I(),microblockType:I(),height:I(),previousHash:H(),timestamp:I(),gas:I(),gasPrice:I(),bodyHash:H(),feesPayerAccount:H()}),Nm=L({retentionRatio:I(),maximumNumberOfDays:I(),dayDivisor:I()}),Pm=P(Nm),Fm=L({numberOfDays:I(),retentionRatio:I(),costInGasAtoms:I()}),Im=L({protocolVersionName:R(),protocolVersion:I(),feesCalculationVersion:I(),globalStateUpdaterVersion:I(),applicationLedgerInternalStateUpdaterVersion:I(),applicationInternalStateUpdaterVersion:I(),organizationInternalStateUpdaterVersion:I(),validatorNodeInternalStateUpdaterVersion:I(),accountInternalStateUpdaterVersion:I(),protocolInternalStateUpdaterVersion:I(),minimumNodeStakingAmountInAtomics:I(),maximumNodeStakingAmountInAtomics:I(),unstakingDelayInDays:I(),maxBlockSizeInBytes:I(),retentionPolicy:Pm,abciVersion:I()}),Lm=L({protocolVersion:I(),protocolVersionName:R(),changeLog:R(),protocolVariables:Im}),Rm=Xp({type:F(O.CUSTOM)},nm()),zm=L({type:F(O.SIGNATURE),signature:H(),schemeId:Cm()}),Bm=L({type:F(O.AUXILIARY_SIGNATURE),tag:bm(),signature:H(),schemeId:Cm()}),Vm=L({type:F(O.ALLOWED_ADDITIONAL_WRITER),allowedWriterAccountId:H()}),Hm=L({type:F(O.PROTOCOL_CREATION),organizationId:Am()}),Um=L({type:F(O.PROTOCOL_UPDATE),...Lm.entries}),Wm=L({type:F(O.PROTOCOL_VARIABLES),protocolVariables:Wp()}),Gm=L({type:F(O.ACCOUNT_PUBLIC_KEY),publicKey:H(),schemeId:Cm()}),Km=L({type:F(O.ACCOUNT_TOKEN_ISSUANCE),amount:V()}),qm=L({type:F(O.ACCOUNT_CREATION),sellerAccount:Am(),amount:V()}),Jm=L({type:F(O.ACCOUNT_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm()}),Ym=L({type:F(O.ACCOUNT_VESTING_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm(),cliffDurationDays:V(),vestingDurationDays:V()}),Xm=L({type:F(O.ACCOUNT_ESCROW_TRANSFER),account:Am(),amount:V(),publicReference:bm(),privateReference:bm(),escrowIdentifier:Am(),agentAccount:Am(),durationDays:V()}),Zm=L({type:F(O.ACCOUNT_ESCROW_SETTLEMENT),escrowIdentifier:Am(),confirmed:xm()}),Qm=L({type:F(O.ACCOUNT_STAKE),amount:V(),objectType:V(),objectIdentifier:Am()}),$m=L({type:F(O.ACCOUNT_UNSTAKE),amount:V(),objectType:V(),objectIdentifier:Am()}),eh=L({type:F(O.VN_CREATION),organizationId:Am()}),th=L({type:F(O.VN_COMETBFT_PUBLIC_KEY_DECLARATION),cometPublicKeyType:bm(),cometPublicKey:bm()}),nh=L({type:F(O.VN_RPC_ENDPOINT),rpcEndpoint:bm()}),rh=L({type:F(O.VN_APPROVAL),status:xm()}),ih=L({type:F(O.VN_SLASHING_CANCELLATION),reason:bm()}),ah=L({type:F(O.ORG_CREATION),accountId:Am()}),oh=L({type:F(O.ORG_DESCRIPTION),name:bm(),city:bm(),countryCode:bm(),website:bm(),misc:Zp($p(R(),R()))}),sh=L({type:F(O.APP_CREATION),organizationId:Am()}),ch=L({type:F(O.APP_DESCRIPTION),name:bm(),logoUrl:bm(),homepageUrl:bm(),description:bm(),misc:Zp($p(R(),R()))}),lh=L({type:F(O.APP_LEDGER_ALLOWED_SIG_SCHEMES),schemeIds:P(Cm())}),uh=L({type:F(O.APP_LEDGER_ALLOWED_PKE_SCHEMES),schemeIds:P(Cm())}),dh=L({type:F(O.APP_LEDGER_CREATION),applicationId:Am()}),fh=L({type:F(O.APP_LEDGER_ACTOR_CREATION),id:V(),actorType:V(),name:bm()}),ph=L({type:F(O.APP_LEDGER_CHANNEL_CREATION),id:V(),isPrivate:xm(),creatorId:V(),name:bm()}),mh=L({type:F(O.APP_LEDGER_SHARED_SECRET),hostId:V(),guestId:V(),encryptedSharedKey:H()}),hh=L({type:F(O.APP_LEDGER_CHANNEL_INVITATION),channelId:V(),hostId:V(),guestId:V(),encryptedChannelKey:H()}),gh=L({type:F(O.APP_LEDGER_ACTOR_SUBSCRIPTION),actorId:V(),actorType:V(),organizationId:Am(),signatureSchemeId:Cm(),signaturePublicKey:H(),pkeSchemeId:Cm(),pkePublicKey:H()}),_h=L({type:F(O.APP_LEDGER_PUBLIC_CHANNEL_DATA),channelId:V(),data:H()}),vh=L({type:F(O.APP_LEDGER_PRIVATE_CHANNEL_DATA),channelId:V(),merkleRootHash:Am(),encryptedData:H()}),yh=L({type:F(O.APP_LEDGER_AUTHOR),authorId:V()}),bh=L({type:F(O.APP_LEDGER_ENDORSEMENT_REQUEST),endorserId:V(),message:bm()}),xh=rm(`type`,[Bm,zm,Vm,Rm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh]),Sh=L({sections:P(xh)}),U=function(e){return e[e.ACCOUNT_VIRTUAL_BLOCKCHAIN=1]=`ACCOUNT_VIRTUAL_BLOCKCHAIN`,e[e.NODE_VIRTUAL_BLOCKCHAIN=2]=`NODE_VIRTUAL_BLOCKCHAIN`,e[e.APPLICATION_VIRTUAL_BLOCKCHAIN=4]=`APPLICATION_VIRTUAL_BLOCKCHAIN`,e[e.ORGANIZATION_VIRTUAL_BLOCKCHAIN=3]=`ORGANIZATION_VIRTUAL_BLOCKCHAIN`,e[e.APP_LEDGER_VIRTUAL_BLOCKCHAIN=5]=`APP_LEDGER_VIRTUAL_BLOCKCHAIN`,e[e.PROTOCOL_VIRTUAL_BLOCKCHAIN=0]=`PROTOCOL_VIRTUAL_BLOCKCHAIN`,e}({}),Ch=L({organizationId:Am(),currentProtocolVariables:Im,protocolUpdates:P(Lm)}),wh=L({signatureSchemeId:V(),publicKeyHeight:jm()}),Th=L({accountId:Am(),descriptionHeight:jm()}),Eh=L({organizationId:Am(),cometbftPublicKeyDeclarationHeight:jm(),rpcEndpointHeight:jm(),lastKnownApprovalStatus:xm()}),Dh=L({organizationId:Am(),descriptionHeight:jm()}),Oh=L({name:bm(),isPrivate:xm(),creatorId:V()}),kh=L({channelId:V(),height:jm()}),Ah=L({peerActorId:V(),height:jm()}),jh=L({name:bm(),subscribed:xm(),signatureKeyHeight:V(),pkeKeyHeight:V(),sharedSecrets:P(Ah),invitations:P(kh)}),Mh=L({allowedAdditionalWriters:P(Am()),allowedSignatureSchemeIds:P(V()),allowedPkeSchemeIds:P(V()),applicationId:Am(),channels:P(Oh),actors:P(jh)}),Nh=L({height:V(),expirationDay:V(),lastMicroblockHash:H(),merkleRootHash:H()}),Ph=L({type:F(U.ACCOUNT_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:wh}),Fh=L({type:F(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Th}),Ih=L({type:F(U.NODE_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Eh}),Lh=L({type:F(U.APPLICATION_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Dh}),Rh=L({type:F(U.APP_LEDGER_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Mh}),zh=L({type:F(U.PROTOCOL_VIRTUAL_BLOCKCHAIN),...Nh.entries,internalState:Ch}),Bh=rm(`type`,[Ph,Fh,Ih,Lh,Rh,zh]),Vh=L({virtualBlockchainType:I(),virtualBlockchainId:Am()}),Hh=L({virtualBlockchainId:H(),virtualBlockchainType:I(),header:Mm}),Uh=3,Wh=function(e){return e[e.Escrow=0]=`Escrow`,e[e.Vesting=1]=`Vesting`,e[e.NodeStaking=2]=`NodeStaking`,e}({}),Gh=L({escrowIdentifier:H(),fundEmitterAccountId:H(),transferAuthorizerAccountId:H(),startTimestamp:I(),durationDays:I()}),Kh=L({type:F(Wh.Escrow),lockedAmountInAtomics:I(),parameters:Gh}),qh=L({initialVestedAmountInAtomics:I(),cliffStartTimestamp:I(),cliffDurationDays:I(),vestingDurationDays:I()}),Jh=L({type:F(Wh.Vesting),lockedAmountInAtomics:I(),parameters:qh}),Yh=L({validatorNodeId:H(),plannedUnlockAmountInAtomics:I(),plannedUnlockTimestamp:I(),slashed:Gp(),plannedSlashingAmountInAtomics:I(),plannedSlashingTimestamp:I()}),Xh=L({type:F(Wh.NodeStaking),lockedAmountInAtomics:I(),parameters:Yh}),Zh=rm(`type`,[Kh,Jh,Xh]),Qh=L({balance:I(),escrowed:I(),vested:I(),releasable:I(),staked:I(),stakeable:I(),locked:I(),spendable:I()}),$h=L({height:I(),balance:I(),lastHistoryHash:H(),locks:P(Zh)}),eg=L({type:I(),exists:Gp(),state:$h}),tg=L({height:B(I(),Ip(),Bp(0)),previousHistoryHash:km(),type:B(I(),Ip(),Bp(0),Rp(255)),publicReference:R(),privateReference:R(),timestamp:B(I(),Ip(),Bp(0)),linkedAccount:km(),amount:B(I(),Ip(),Bp(0)),chainReference:H()}),ng=P(tg),rg=L({accountHash:H(),lastKnownHistoryHash:H()}),ig=L({accountHash:H(),currentState:$h,historyUpdate:ng}),ag=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,og=ag+`+/=`,sg={BASE64:og,URL:ag+`-_=`,encodeString:cg,decodeString:lg,encodeBinary:ug,decodeBinary:dg};function cg(e,t=og,n=!1){return ug(Qa.encode(e),t,n)}function lg(e,t=og){return Qa.decode(dg(e,t))}function ug(e,t=og,n=!1){let r=e.length%3,i=0,a=``;for(let n=0;n<e.length||n%3;)if(i=i<<8|e[n++],!(n%3)){for(let e=4;e--;)a+=t[i>>e*6&63];i=0}return r?a.slice(0,r-3)+t[64].repeat(n?3-r:0):a}function dg(e,t=og){let n=0,r=0,i=[];e+=t[64].repeat(-e.length&3);for(let a=0;a<e.length;){let o=t.indexOf(e[a++]);o==64&&n++,r=r<<6|o,a&3||i.push(r>>16&255,r>>8&255,r&255)}return new Uint8Array(n?i.slice(0,-n):i)}var fg=class{static defaultBytesToStringEncoder(){return new mg}static bytesToBase64Encoder(){return new pg}static bytesToHexEncoder(){return new mg}},pg=class{static decode(e){return sg.decodeBinary(e,sg.BASE64)}static encode(e){return sg.encodeBinary(e,sg.BASE64,!0)}decode(e){return sg.decodeBinary(e,sg.BASE64)}encode(e){return sg.encodeBinary(e,sg.BASE64,!0)}},mg=class{decode(e){return vl(e)}encode(e){if(!(e instanceof Uint8Array))throw TypeError(`Encoding data must be a Uint8Array, got ${typeof e}`);return hl(e)}},hg=class{keys;value;constructor(e,t){this.keys=e,this.value=t}matchesKeys(...e){return e.length===this.keys.length?e.every((e,t)=>e===this.keys[t]):!1}getKeys(){return[...this.keys]}getValue(){return this.value}},gg=class{static encode(...e){if(e.length<2)throw Error(`At least one key and one value must be provided`);let t=e.slice(0,-1),n=e[e.length-1];return`${t.join(`:`)}${n?`{${n}}`:`{}`}`}static decode(e){let t=e.match(/^(.*?)(?:\{(.*)\})?$/);if(!t)throw Error(`Invalid encoded string format`);let n=t[1],r=t[2]||``;return new hg(n?n.split(`:`):[],r)}},_g={},vg={};vg.byteLength=Eg,vg.toByteArray=Og,vg.fromByteArray=jg;for(var yg=[],bg=[],xg=typeof Uint8Array<`u`?Uint8Array:Array,Sg=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Cg=0,wg=Sg.length;Cg<wg;++Cg)yg[Cg]=Sg[Cg],bg[Sg.charCodeAt(Cg)]=Cg;bg[45]=62,bg[95]=63;function Tg(e){var t=e.length;if(t%4>0)throw Error(`Invalid string. Length must be a multiple of 4`);var n=e.indexOf(`=`);n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function Eg(e){var t=Tg(e),n=t[0],r=t[1];return(n+r)*3/4-r}function Dg(e,t,n){return(t+n)*3/4-n}function Og(e){var t,n=Tg(e),r=n[0],i=n[1],a=new xg(Dg(e,r,i)),o=0,s=i>0?r-4:r,c;for(c=0;c<s;c+=4)t=bg[e.charCodeAt(c)]<<18|bg[e.charCodeAt(c+1)]<<12|bg[e.charCodeAt(c+2)]<<6|bg[e.charCodeAt(c+3)],a[o++]=t>>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=bg[e.charCodeAt(c)]<<2|bg[e.charCodeAt(c+1)]>>4,a[o++]=t&255),i===1&&(t=bg[e.charCodeAt(c)]<<10|bg[e.charCodeAt(c+1)]<<4|bg[e.charCodeAt(c+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function kg(e){return yg[e>>18&63]+yg[e>>12&63]+yg[e>>6&63]+yg[e&63]}function Ag(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(kg(r));return i.join(``)}function jg(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(Ag(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(yg[t>>2]+yg[t<<4&63]+`==`)):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(yg[t>>10]+yg[t>>4&63]+yg[t<<2&63]+`=`)),i.join(``)}var Mg={};Mg.read=function(e,t,n,r,i){var a,o,s=i*8-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=a*256+e[t+d],d+=f,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=o*256+e[t+d],d+=f,u-=8);if(a===0)a=1-l;else if(a===c)return o?NaN:(p?-1:1)*(1/0);else o+=2**r,a-=l;return(p?-1:1)*o*2**(a-r)},Mg.write=function(e,t,n,r,i,a){var o,s,c,l=a*8-i-1,u=(1<<l)-1,d=u>>1,f=i===23?2**-24-2**-77:0,p=r?0:a-1,m=r?1:-1,h=+(t<0||t===0&&1/t<0);for(t=Math.abs(t),isNaN(t)||t===1/0?(s=+!!isNaN(t),o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=2**-o)<1&&(o--,c*=2),o+d>=1?t+=f/c:t+=f*2**(1-d),t*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*2**i,o+=d):(s=t*2**(d-1)*2**i,o=0));i>=8;e[n+p]=s&255,p+=m,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+p]=o&255,p+=m,o/=256,l-=8);e[n+p-m]|=h*128},(function(e){let t=vg,n=Mg,r=typeof Symbol==`function`&&typeof Symbol.for==`function`?Symbol.for(`nodejs.util.inspect.custom`):null;e.Buffer=u,e.SlowBuffer=ee,e.INSPECT_MAX_BYTES=50;let i=2147483647;e.kMaxLength=i;let{Uint8Array:a,ArrayBuffer:o,SharedArrayBuffer:s}=globalThis;u.TYPED_ARRAY_SUPPORT=c(),!u.TYPED_ARRAY_SUPPORT&&typeof console<`u`&&typeof console.error==`function`&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let e=new a(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,a.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,`parent`,{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,`offset`,{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function l(e){if(e>i)throw RangeError(`The value "`+e+`" is invalid for option "size"`);let t=new a(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if(typeof e==`number`){if(typeof t==`string`)throw TypeError(`The "string" argument must be of type string. Received type number`);return m(e)}return d(e,t,n)}u.poolSize=8192;function d(e,t,n){if(typeof e==`string`)return h(e,t);if(o.isView(e))return _(e);if(e==null)throw TypeError(`The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type `+typeof e);if(Le(e,o)||e&&Le(e.buffer,o)||s!==void 0&&(Le(e,s)||e&&Le(e.buffer,s)))return v(e,t,n);if(typeof e==`number`)throw TypeError(`The "value" argument must not be of type number. Received type number`);let r=e.valueOf&&e.valueOf();if(r!=null&&r!==e)return u.from(r,t,n);let i=y(e);if(i)return i;if(typeof Symbol<`u`&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]==`function`)return u.from(e[Symbol.toPrimitive](`string`),t,n);throw TypeError(`The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type `+typeof e)}u.from=function(e,t,n){return d(e,t,n)},Object.setPrototypeOf(u.prototype,a.prototype),Object.setPrototypeOf(u,a);function f(e){if(typeof e!=`number`)throw TypeError(`"size" argument must be of type number`);if(e<0)throw RangeError(`The value "`+e+`" is invalid for option "size"`)}function p(e,t,n){return f(e),e<=0||t===void 0?l(e):typeof n==`string`?l(e).fill(t,n):l(e).fill(t)}u.alloc=function(e,t,n){return p(e,t,n)};function m(e){return f(e),l(e<0?0:b(e)|0)}u.allocUnsafe=function(e){return m(e)},u.allocUnsafeSlow=function(e){return m(e)};function h(e,t){if((typeof t!=`string`||t===``)&&(t=`utf8`),!u.isEncoding(t))throw TypeError(`Unknown encoding: `+t);let n=x(e,t)|0,r=l(n),i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}function g(e){let t=e.length<0?0:b(e.length)|0,n=l(t);for(let r=0;r<t;r+=1)n[r]=e[r]&255;return n}function _(e){if(Le(e,a)){let t=new a(e);return v(t.buffer,t.byteOffset,t.byteLength)}return g(e)}function v(e,t,n){if(t<0||e.byteLength<t)throw RangeError(`"offset" is outside of buffer bounds`);if(e.byteLength<t+(n||0))throw RangeError(`"length" is outside of buffer bounds`);let r;return r=t===void 0&&n===void 0?new a(e):n===void 0?new a(e,t):new a(e,t,n),Object.setPrototypeOf(r,u.prototype),r}function y(e){if(u.isBuffer(e)){let t=b(e.length)|0,n=l(t);return n.length===0||e.copy(n,0,0,t),n}if(e.length!==void 0)return typeof e.length!=`number`||Re(e.length)?l(0):g(e);if(e.type===`Buffer`&&Array.isArray(e.data))return g(e.data)}function b(e){if(e>=i)throw RangeError(`Attempt to allocate Buffer larger than maximum size: 0x`+i.toString(16)+` bytes`);return e|0}function ee(e){return+e!=e&&(e=0),u.alloc(+e)}u.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==u.prototype},u.compare=function(e,t){if(Le(e,a)&&(e=u.from(e,e.offset,e.byteLength)),Le(t,a)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw TypeError(`The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array`);if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:+(r<n)},u.isEncoding=function(e){switch(String(e).toLowerCase()){case`hex`:case`utf8`:case`utf-8`:case`ascii`:case`latin1`:case`binary`:case`base64`:case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw TypeError(`"list" argument must be an Array of Buffers`);if(e.length===0)return u.alloc(0);let n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;let r=u.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){let t=e[n];if(Le(t,a))i+t.length>r.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):a.prototype.set.call(r,t,i);else if(u.isBuffer(t))t.copy(r,i);else throw TypeError(`"list" argument must be an Array of Buffers`);i+=t.length}return r};function x(e,t){if(u.isBuffer(e))return e.length;if(o.isView(e)||Le(e,o))return e.byteLength;if(typeof e!=`string`)throw TypeError(`The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type `+typeof e);let n=e.length,r=arguments.length>2&&arguments[2]===!0;if(!r&&n===0)return 0;let i=!1;for(;;)switch(t){case`ascii`:case`latin1`:case`binary`:return n;case`utf8`:case`utf-8`:return Ne(e).length;case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return n*2;case`hex`:return n>>>1;case`base64`:return Ie(e).length;default:if(i)return r?-1:Ne(e).length;t=(``+t).toLowerCase(),i=!0}}u.byteLength=x;function te(e,t,n){let r=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((n===void 0||n>this.length)&&(n=this.length),n<=0)||(n>>>=0,t>>>=0,n<=t))return``;for(e||=`utf8`;;)switch(e){case`hex`:return he(this,t,n);case`utf8`:case`utf-8`:return ue(this,t,n);case`ascii`:return pe(this,t,n);case`latin1`:case`binary`:return me(this,t,n);case`base64`:return S(this,t,n);case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return ge(this,t,n);default:if(r)throw TypeError(`Unknown encoding: `+e);e=(e+``).toLowerCase(),r=!0}}u.prototype._isBuffer=!0;function ne(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}u.prototype.swap16=function(){let e=this.length;if(e%2!=0)throw RangeError(`Buffer size must be a multiple of 16-bits`);for(let t=0;t<e;t+=2)ne(this,t,t+1);return this},u.prototype.swap32=function(){let e=this.length;if(e%4!=0)throw RangeError(`Buffer size must be a multiple of 32-bits`);for(let t=0;t<e;t+=4)ne(this,t,t+3),ne(this,t+1,t+2);return this},u.prototype.swap64=function(){let e=this.length;if(e%8!=0)throw RangeError(`Buffer size must be a multiple of 64-bits`);for(let t=0;t<e;t+=8)ne(this,t,t+7),ne(this,t+1,t+6),ne(this,t+2,t+5),ne(this,t+3,t+4);return this},u.prototype.toString=function(){let e=this.length;return e===0?``:arguments.length===0?ue(this,0,e):te.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw TypeError(`Argument must be a Buffer`);return this===e?!0:u.compare(this,e)===0},u.prototype.inspect=function(){let t=``,n=e.INSPECT_MAX_BYTES;return t=this.toString(`hex`,0,n).replace(/(.{2})/g,`$1 `).trim(),this.length>n&&(t+=` ... `),`<Buffer `+t+`>`},r&&(u.prototype[r]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(Le(e,a)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw TypeError(`The "target" argument must be one of type Buffer or Uint8Array. Received type `+typeof e);if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),r===void 0&&(r=0),i===void 0&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw RangeError(`out of range index`);if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;let o=i-r,s=n-t,c=Math.min(o,s),l=this.slice(r,i),d=e.slice(t,n);for(let e=0;e<c;++e)if(l[e]!==d[e]){o=l[e],s=d[e];break}return o<s?-1:+(s<o)};function re(e,t,n,r,i){if(e.length===0)return-1;if(typeof n==`string`?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,Re(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0)if(i)n=0;else return-1;if(typeof t==`string`&&(t=u.from(t,r)),u.isBuffer(t))return t.length===0?-1:ie(e,t,n,r,i);if(typeof t==`number`)return t&=255,typeof a.prototype.indexOf==`function`?i?a.prototype.indexOf.call(e,t,n):a.prototype.lastIndexOf.call(e,t,n):ie(e,[t],n,r,i);throw TypeError(`val must be string, number or Buffer`)}function ie(e,t,n,r,i){let a=1,o=e.length,s=t.length;if(r!==void 0&&(r=String(r).toLowerCase(),r===`ucs2`||r===`ucs-2`||r===`utf16le`||r===`utf-16le`)){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,n/=2}function c(e,t){return a===1?e[t]:e.readUInt16BE(t*a)}let l;if(i){let r=-1;for(l=n;l<o;l++)if(c(e,l)===c(t,r===-1?0:l-r)){if(r===-1&&(r=l),l-r+1===s)return r*a}else r!==-1&&(l-=l-r),r=-1}else for(n+s>o&&(n=o-s),l=n;l>=0;l--){let n=!0;for(let r=0;r<s;r++)if(c(e,l+r)!==c(t,r)){n=!1;break}if(n)return l}return-1}u.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},u.prototype.indexOf=function(e,t,n){return re(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return re(this,e,t,n,!1)};function ae(e,t,n,r){n=Number(n)||0;let i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;let a=t.length;r>a/2&&(r=a/2);let o;for(o=0;o<r;++o){let r=parseInt(t.substr(o*2,2),16);if(Re(r))return o;e[n+o]=r}return o}function oe(e,t,n,r){return C(Ne(t,e.length-n),e,n,r)}function se(e,t,n,r){return C(Pe(t),e,n,r)}function ce(e,t,n,r){return C(Ie(t),e,n,r)}function le(e,t,n,r){return C(Fe(t,e.length-n),e,n,r)}u.prototype.write=function(e,t,n,r){if(t===void 0)r=`utf8`,n=this.length,t=0;else if(n===void 0&&typeof t==`string`)r=t,n=this.length,t=0;else if(isFinite(t))t>>>=0,isFinite(n)?(n>>>=0,r===void 0&&(r=`utf8`)):(r=n,n=void 0);else throw Error(`Buffer.write(string, encoding, offset[, length]) is no longer supported`);let i=this.length-t;if((n===void 0||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw RangeError(`Attempt to write outside buffer bounds`);r||=`utf8`;let a=!1;for(;;)switch(r){case`hex`:return ae(this,e,t,n);case`utf8`:case`utf-8`:return oe(this,e,t,n);case`ascii`:case`latin1`:case`binary`:return se(this,e,t,n);case`base64`:return ce(this,e,t,n);case`ucs2`:case`ucs-2`:case`utf16le`:case`utf-16le`:return le(this,e,t,n);default:if(a)throw TypeError(`Unknown encoding: `+r);r=(``+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:`Buffer`,data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,n,r){return n===0&&r===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(n,r))}function ue(e,t,n){n=Math.min(e.length,n);let r=[],i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o<=n){let n,r,s,c;switch(o){case 1:t<128&&(a=t);break;case 2:n=e[i+1],(n&192)==128&&(c=(t&31)<<6|n&63,c>127&&(a=c));break;case 3:n=e[i+1],r=e[i+2],(n&192)==128&&(r&192)==128&&(c=(t&15)<<12|(n&63)<<6|r&63,c>2047&&(c<55296||c>57343)&&(a=c));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],(n&192)==128&&(r&192)==128&&(s&192)==128&&(c=(t&15)<<18|(n&63)<<12|(r&63)<<6|s&63,c>65535&&c<1114112&&(a=c))}}a===null?(a=65533,o=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|a&1023),r.push(a),i+=o}return fe(r)}let de=4096;function fe(e){let t=e.length;if(t<=de)return String.fromCharCode.apply(String,e);let n=``,r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=de));return n}function pe(e,t,n){let r=``;n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]&127);return r}function me(e,t,n){let r=``;n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function he(e,t,n){let r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i=``;for(let r=t;r<n;++r)i+=ze[e[r]];return i}function ge(e,t,n){let r=e.slice(t,n),i=``;for(let e=0;e<r.length-1;e+=2)i+=String.fromCharCode(r[e]+r[e+1]*256);return i}u.prototype.slice=function(e,t){let n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);let r=this.subarray(e,t);return Object.setPrototypeOf(r,u.prototype),r};function _e(e,t,n){if(e%1!=0||e<0)throw RangeError(`offset is not uint`);if(e+t>n)throw RangeError(`Trying to access beyond buffer length`)}u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e],i=1,a=0;for(;++a<t&&(i*=256);)r+=this[e+a]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||_e(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||_e(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||_e(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||_e(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))}),u.prototype.readBigUInt64BE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(r)<<BigInt(32))+BigInt(i)}),u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=this[e],i=1,a=0;for(;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=2**(8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||_e(e,t,this.length);let r=t,i=1,a=this[e+--r];for(;r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=2**(8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||_e(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||_e(e,2,this.length);let n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||_e(e,2,this.length);let n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||_e(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)}),u.prototype.readBigInt64BE=Be(function(e){e>>>=0,ke(e,`offset`);let t=this[e],n=this[e+7];(t===void 0||n===void 0)&&Ae(e,this.length-8);let r=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n)}),u.prototype.readFloatLE=function(e,t){return e>>>=0,t||_e(e,4,this.length),n.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||_e(e,4,this.length),n.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||_e(e,8,this.length),n.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||_e(e,8,this.length),n.read(this,e,!1,52,8)};function ve(e,t,n,r,i,a){if(!u.isBuffer(e))throw TypeError(`"buffer" argument must be a Buffer instance`);if(t>i||t<a)throw RangeError(`"value" argument is out of bounds`);if(n+r>e.length)throw RangeError(`Index out of range`)}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){let r=2**(8*n)-1;ve(this,e,t,n,r,0)}let i=1,a=0;for(this[t]=e&255;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){let r=2**(8*n)-1;ve(this,e,t,n,r,0)}let i=n-1,a=1;for(this[t+i]=e&255;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,1,255,0),this[t]=e&255,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function ye(e,t,n,r,i){Oe(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,n}function be(e,t,n,r,i){Oe(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=o,o>>=8,e[n+2]=o,o>>=8,e[n+1]=o,o>>=8,e[n]=o,n+8}u.prototype.writeBigUInt64LE=Be(function(e,t=0){return ye(this,e,t,BigInt(0),BigInt(`0xffffffffffffffff`))}),u.prototype.writeBigUInt64BE=Be(function(e,t=0){return be(this,e,t,BigInt(0),BigInt(`0xffffffffffffffff`))}),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){let r=2**(8*n-1);ve(this,e,t,n,r-1,-r)}let i=0,a=1,o=0;for(this[t]=e&255;++i<n&&(a*=256);)e<0&&o===0&&this[t+i-1]!==0&&(o=1),this[t+i]=(e/a>>0)-o&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){let r=2**(8*n-1);ve(this,e,t,n,r-1,-r)}let i=n-1,a=1,o=0;for(this[t+i]=e&255;--i>=0&&(a*=256);)e<0&&o===0&&this[t+i+1]!==0&&(o=1),this[t+i]=(e/a>>0)-o&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||ve(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4},u.prototype.writeBigInt64LE=Be(function(e,t=0){return ye(this,e,t,-BigInt(`0x8000000000000000`),BigInt(`0x7fffffffffffffff`))}),u.prototype.writeBigInt64BE=Be(function(e,t=0){return be(this,e,t,-BigInt(`0x8000000000000000`),BigInt(`0x7fffffffffffffff`))});function xe(e,t,n,r,i,a){if(n+r>e.length||n<0)throw RangeError(`Index out of range`)}function Se(e,t,r,i,a){return t=+t,r>>>=0,a||xe(e,t,r,4),n.write(e,t,r,i,23,4),r+4}u.prototype.writeFloatLE=function(e,t,n){return Se(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return Se(this,e,t,!1,n)};function Ce(e,t,r,i,a){return t=+t,r>>>=0,a||xe(e,t,r,8),n.write(e,t,r,i,52,8),r+8}u.prototype.writeDoubleLE=function(e,t,n){return Ce(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return Ce(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw TypeError(`argument should be a Buffer`);if(n||=0,!r&&r!==0&&(r=this.length),t>=e.length&&(t=e.length),t||=0,r>0&&r<n&&(r=n),r===n||e.length===0||this.length===0)return 0;if(t<0)throw RangeError(`targetStart out of bounds`);if(n<0||n>=this.length)throw RangeError(`Index out of range`);if(r<0)throw RangeError(`sourceEnd out of bounds`);r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);let i=r-n;return this===e&&typeof a.prototype.copyWithin==`function`?this.copyWithin(t,n,r):a.prototype.set.call(e,this.subarray(n,r),t),i},u.prototype.fill=function(e,t,n,r){if(typeof e==`string`){if(typeof t==`string`?(r=t,t=0,n=this.length):typeof n==`string`&&(r=n,n=this.length),r!==void 0&&typeof r!=`string`)throw TypeError(`encoding must be a string`);if(typeof r==`string`&&!u.isEncoding(r))throw TypeError(`Unknown encoding: `+r);if(e.length===1){let t=e.charCodeAt(0);(r===`utf8`&&t<128||r===`latin1`)&&(e=t)}}else typeof e==`number`?e&=255:typeof e==`boolean`&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw RangeError(`Out of range index`);if(n<=t)return this;t>>>=0,n=n===void 0?this.length:n>>>0,e||=0;let i;if(typeof e==`number`)for(i=t;i<n;++i)this[i]=e;else{let a=u.isBuffer(e)?e:u.from(e,r),o=a.length;if(o===0)throw TypeError(`The value "`+e+`" is invalid for argument "value"`);for(i=0;i<n-t;++i)this[i+t]=a[i%o]}return this};let we={};function Te(e,t,n){we[e]=class extends n{constructor(){super(),Object.defineProperty(this,`message`,{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,`code`,{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}Te(`ERR_BUFFER_OUT_OF_BOUNDS`,function(e){return e?`${e} is outside of buffer bounds`:`Attempt to access memory outside buffer bounds`},RangeError),Te(`ERR_INVALID_ARG_TYPE`,function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),Te(`ERR_OUT_OF_RANGE`,function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=Ee(String(n)):typeof n==`bigint`&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=Ee(i)),i+=`n`),r+=` It must be ${t}. Received ${i}`,r},RangeError);function Ee(e){let t=``,n=e.length,r=+(e[0]===`-`);for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function De(e,t,n){ke(t,`offset`),(e[t]===void 0||e[t+n]===void 0)&&Ae(t,e.length-(n+1))}function Oe(e,t,n,r,i,a){if(e>n||e<t){let r=typeof t==`bigint`?`n`:``,i;throw i=a>3?t===0||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${(a+1)*8}${r}`:`>= -(2${r} ** ${(a+1)*8-1}${r}) and < 2 ** ${(a+1)*8-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new we.ERR_OUT_OF_RANGE(`value`,i,e)}De(r,i,a)}function ke(e,t){if(typeof e!=`number`)throw new we.ERR_INVALID_ARG_TYPE(t,`number`,e)}function Ae(e,t,n){throw Math.floor(e)===e?t<0?new we.ERR_BUFFER_OUT_OF_BOUNDS:new we.ERR_OUT_OF_RANGE(n||`offset`,`>= ${+!!n} and <= ${t}`,e):(ke(e,n),new we.ERR_OUT_OF_RANGE(n||`offset`,`an integer`,e))}let je=/[^+/0-9A-Za-z-_]/g;function Me(e){if(e=e.split(`=`)[0],e=e.trim().replace(je,``),e.length<2)return``;for(;e.length%4!=0;)e+=`=`;return e}function Ne(e,t){t||=1/0;let n,r=e.length,i=null,a=[];for(let o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if(--t<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,n&63|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,n&63|128)}else if(n<1114112){if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128)}else throw Error(`Invalid code point`)}return a}function Pe(e){let t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n)&255);return t}function Fe(e,t){let n,r,i,a=[];for(let o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function Ie(e){return t.toByteArray(Me(e))}function C(e,t,n,r){let i;for(i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Le(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function Re(e){return e!==e}let ze=(function(){let e=`0123456789abcdef`,t=Array(256);for(let n=0;n<16;++n){let r=n*16;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t})();function Be(e){return typeof BigInt>`u`?Ve:e}function Ve(){throw Error(`BigInt not supported`)}})(_g);var Ng=_g.Buffer;_g.Blob,_g.BlobOptions,_g.Buffer,_g.File,_g.FileOptions,_g.INSPECT_MAX_BYTES,_g.SlowBuffer,_g.TranscodeEncoding,_g.atob,_g.btoa,_g.constants,_g.isAscii,_g.isUtf8,_g.kMaxLength,_g.kStringMaxLength,_g.resolveObjectURL,_g.transcode;var Pg=function(e){return e[e.AES_256_GCM=0]=`AES_256_GCM`,e}({}),Fg=class e{static KEY_LENGTH_IN_BYTES=32;getSymmetricEncryptionSchemeId(){return Pg.AES_256_GCM}getSupportedKeyLengths(){return[e.KEY_LENGTH_IN_BYTES]}getDefaultKeyLength(){return e.KEY_LENGTH_IN_BYTES}},Ig=class e{constructor(e){this.key=e}static async generate(){let t=new Uint8Array(32);return crypto.getRandomValues(t),new e(t)}static createFromBytes(t){return new e(t)}getRawSecretKey(){return this.key}getSymmetricEncryptionSchemeId(){return Pg.AES_256_GCM}async encrypt(e){let t=new Uint8Array(12);crypto.getRandomValues(t);let n=au(this.key,t).encrypt(e),r=new Uint8Array(t.length+n.length);return r.set(t),r.set(n,t.length),r}async decrypt(e){try{let t=e.slice(0,12),n=e.slice(12);return au(this.key,t).decrypt(n)}catch(e){throw o.isCarmentisError(e)?new f:e}}},Lg=class{constructor(e){this.wrappedKey=e}async encryptString(e){let t=new TextEncoder().encode(e),n=await this.encrypt(t);return Ng.from(n).toString(`base64`)}async decryptString(e){let t=Ng.from(e,`base64`),n=await this.decrypt(t);return new TextDecoder().decode(n)}getSymmetricEncryptionSchemeId(){return this.wrappedKey.getSymmetricEncryptionSchemeId()}async encrypt(e){return this.wrappedKey.encrypt(e)}async decrypt(e){return this.wrappedKey.decrypt(e)}getRawSecretKey(){return this.wrappedKey.getRawSecretKey()}},Rg=function(e){return e[e.ML_KEM=0]=`ML_KEM`,e}({}),zg=class{getPrivateKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(this.getPrivateKeyAsBytes())}getSignatureSchemeId(){return this.getScheme().getSignatureSchemeId()}getSignatureSize(){return this.getScheme().getSignatureSize()}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}},Bg=class{async getPublicKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getPublicKeyAsBytes())}getSignatureSize(){return this.getScheme().getSignatureSize()}getSignatureSchemeId(){return this.getScheme().getSignatureSchemeId()}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}},Vg=class e{static SIGNATURE_SIZE=3311;getSignatureSchemeId(){return Ya.ML_DSA_65}getSignatureSize(){return e.SIGNATURE_SIZE}getSignatureAlgorithmId(){return this.getSignatureSchemeId()}expectedSeedSize(){return 32}},Hg=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsString(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getPublicKeyAsBytes())}async verify(e,t){return vd.verify(this.publicKey,e,t)}async getPublicKeyAsBytes(){return this.publicKey}getScheme(){return new Vg}},Ug=class e extends zg{static async gen(){return new e(Fu(32))}verificationKey;signatureKey;getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}constructor(e){super(),this.seed=e;let t=vd.keygen(e);this.signatureKey=t.secretKey,this.verificationKey=t.publicKey}async getPublicKey(){return new Hg(this.verificationKey)}getPrivateKeyAsBytes(){return this.seed}async sign(e){return vd.sign(this.signatureKey,e)}getScheme(){return new Vg}},Wg={p:57896044618658097711785492504343953926634992332820282019728792003956564819949n,n:7237005577332262213973186563042994240857116359379907606001950938285454250989n,h:8n,a:57896044618658097711785492504343953926634992332820282019728792003956564819948n,d:37095705934669439343138083508754565189542113879843219016388785533085940283555n,Gx:15112221349535400772501151409588531511454012693041857206046113283949847762202n,Gy:46316835694926478169428394003475163141307993866256225615783033603165251855960n},{p:Gg,n:Kg,Gx:qg,Gy:Jg,a:Yg,d:Xg,h:Zg}=Wg,Qg=32,$g=(...e)=>{`captureStackTrace`in Error&&typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(...e)},e_=(e=``)=>{let t=Error(e);throw $g(t,e_),t},t_=e=>typeof e==`bigint`,n_=e=>typeof e==`string`,r_=e=>e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`,i_=(e,t,n=``)=>{let r=r_(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`;e_(o+`expected Uint8Array`+s+`, got `+c)}return e},a_=e=>new Uint8Array(e),o_=e=>Uint8Array.from(e),s_=(e,t)=>e.toString(16).padStart(t,`0`),c_=e=>Array.from(i_(e)).map(e=>s_(e,2)).join(``),l_={_0:48,_9:57,A:65,F:70,a:97,f:102},u_=e=>{if(e>=l_._0&&e<=l_._9)return e-l_._0;if(e>=l_.A&&e<=l_.F)return e-(l_.A-10);if(e>=l_.a&&e<=l_.f)return e-(l_.a-10)},d_=e=>{let t=`hex invalid`;if(!n_(e))return e_(t);let n=e.length,r=n/2;if(n%2)return e_(t);let i=a_(r);for(let n=0,a=0;n<r;n++,a+=2){let r=u_(e.charCodeAt(a)),o=u_(e.charCodeAt(a+1));if(r===void 0||o===void 0)return e_(t);i[n]=r*16+o}return i},f_=()=>globalThis?.crypto,p_=()=>f_()?.subtle??e_(`crypto.subtle must be defined, consider polyfill`),m_=(...e)=>{let t=a_(e.reduce((e,t)=>e+i_(t).length,0)),n=0;return e.forEach(e=>{t.set(e,n),n+=e.length}),t},h_=(e=Qg)=>f_().getRandomValues(a_(e)),g_=BigInt,__=(e,t,n,r=`bad number: out of range`)=>t_(e)&&t<=e&&e<n?e:e_(r),v_=(e,t=Gg)=>{let n=e%t;return n>=0n?n:t+n},y_=(1n<<255n)-1n,W=e=>{e<0n&&e_(`negative coordinate`);let t=(e>>255n)*19n+(e&y_);return t=(t>>255n)*19n+(t&y_),t%Gg},b_=e=>v_(e,Kg),x_=(e,t)=>{(e===0n||t<=0n)&&e_(`no inverse n=`+e+` mod=`+t);let n=v_(e,t),r=t,i=0n,a=1n,o=1n,s=0n;for(;n!==0n;){let e=r/n,t=r%n,c=i-o*e,l=a-s*e;r=n,n=t,i=o,a=s,o=c,s=l}return r===1n?v_(i,t):e_(`no inverse`)},S_=e=>{let t=q_[e];return typeof t!=`function`&&e_(`hashes.`+e+` not set`),t},C_=e=>e instanceof T_?e:e_(`Point expected`),w_=2n**256n,T_=class e{static BASE;static ZERO;X;Y;Z;T;constructor(e,t,n,r){let i=w_;this.X=__(e,0n,i),this.Y=__(t,0n,i),this.Z=__(n,1n,i),this.T=__(r,0n,i),Object.freeze(this)}static CURVE(){return Wg}static fromAffine(t){return new e(t.x,t.y,1n,W(t.x*t.y))}static fromBytes(t,n=!1){let r=Xg,i=o_(i_(t,Qg)),a=t[31];i[31]=a&-129;let o=k_(i);__(o,0n,n?w_:Gg);let s=W(o*o),{isValid:c,value:l}=N_(v_(s-1n),W(r*s+1n));c||e_(`bad point: y not sqrt`);let u=(l&1n)==1n,d=(a&128)!=0;return!n&&l===0n&&d&&e_(`bad point: x==0, isLastByteOdd`),d!==u&&(l=v_(-l)),new e(l,o,1n,W(l*o))}static fromHex(t,n){return e.fromBytes(d_(t),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=Yg,t=Xg,n=this;if(n.is0())return e_(`bad point: ZERO`);let{X:r,Y:i,Z:a,T:o}=n,s=W(r*r),c=W(i*i),l=W(a*a),u=W(l*l);return W(l*(W(s*e)+c))===v_(u+W(t*W(s*c)))?W(r*i)===W(a*o)?this:e_(`bad point: equation left != right (2)`):e_(`bad point: equation left != right (1)`)}equals(e){let{X:t,Y:n,Z:r}=this,{X:i,Y:a,Z:o}=C_(e),s=W(t*o),c=W(i*r),l=W(n*o),u=W(a*r);return s===c&&l===u}is0(){return this.equals(D_)}negate(){return new e(v_(-this.X),this.Y,this.Z,v_(-this.T))}double(){let{X:t,Y:n,Z:r}=this,i=Yg,a=W(t*t),o=W(n*n),s=W(2n*r*r),c=W(i*a),l=v_(t+n),u=v_(W(l*l)-a-o),d=v_(c+o),f=v_(d-s),p=v_(c-o),m=W(u*f),h=W(d*p),g=W(u*p);return new e(m,h,W(f*d),g)}add(t){let{X:n,Y:r,Z:i,T:a}=this,{X:o,Y:s,Z:c,T:l}=C_(t),u=Yg,d=Xg,f=W(n*o),p=W(r*s),m=W(W(a*d)*l),h=W(i*c),g=v_(W(v_(n+r)*v_(o+s))-f-p),_=v_(h-m),v=v_(h+m),y=v_(p-W(u*f)),b=W(g*_),ee=W(v*y),x=W(g*y);return new e(b,ee,W(_*v),x)}subtract(e){return this.add(C_(e).negate())}multiply(e,t=!0){if(!t&&(e===0n||this.is0()))return D_;if(__(e,1n,Kg),e===1n)return this;if(this.equals(E_))return tv(e).p;let n=D_,r=E_;for(let i=this;e>0n;i=i.double(),e>>=1n)e&1n?n=n.add(i):t&&(r=r.add(i));return n}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:t,Z:n}=this;if(this.equals(D_))return{x:0n,y:1n};let r=x_(n,Gg);return W(n*r)!==1n&&e_(`invalid inverse`),{x:W(e*r),y:W(t*r)}}toBytes(){let{x:e,y:t}=this.toAffine(),n=O_(t);return n[31]|=e&1n?128:0,n}toHex(){return c_(this.toBytes())}clearCofactor(){return this.multiply(g_(Zg),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(Kg/2n,!1).double();return Kg%2n&&(e=e.add(this)),e.is0()}},E_=new T_(qg,Jg,1n,v_(qg*Jg)),D_=new T_(0n,1n,1n,0n);T_.BASE=E_,T_.ZERO=D_;var O_=e=>d_(s_(__(e,0n,w_),64)).reverse(),k_=e=>g_(`0x`+c_(o_(i_(e)).reverse())),A_=(e,t)=>{let n=e;for(;t-- >0n;)n=W(n*n);return n},j_=e=>{let t=W(W(e*e)*e),n=W(A_(W(A_(t,2n)*t),1n)*e),r=W(A_(n,5n)*n),i=W(A_(r,10n)*r),a=W(A_(i,20n)*i),o=W(A_(a,40n)*a);return{pow_p_5_8:W(A_(W(A_(W(A_(W(A_(o,80n)*o),80n)*o),10n)*r),2n)*e),b2:t}},M_=19681161376707505956807079304988542015446066515923890162744021073123829784752n,N_=(e,t)=>{let n=W(t*W(t*t)),r=j_(W(e*W(W(n*n)*t))).pow_p_5_8,i=W(e*W(n*r)),a=W(t*W(i*i)),o=i,s=W(i*M_),c=a===e,l=a===v_(-e),u=a===v_(-e*M_);return c&&(i=o),(l||u)&&(i=s),(v_(i)&1n)==1n&&(i=v_(-i)),{isValid:c||l,value:i}},P_=e=>b_(k_(e)),F_=(...e)=>q_.sha512Async(m_(...e)),I_=(...e)=>S_(`sha512`)(m_(...e)),L_=e=>{let t=e.slice(0,32);t[0]&=248,t[31]&=127,t[31]|=64;let n=e.slice(32,64),r=P_(t),i=E_.multiply(r);return{head:t,prefix:n,scalar:r,point:i,pointBytes:i.toBytes()}},R_=e=>F_(i_(e,Qg)).then(L_),z_=e=>L_(I_(i_(e,Qg))),B_=e=>z_(e).pointBytes,V_=e=>e.finish(I_(e.hashable)),H_=(e,t,n)=>{let{pointBytes:r,scalar:i}=e,a=P_(t),o=E_.multiply(a).toBytes();return{hashable:m_(o,r,n),finish:e=>i_(m_(o,O_(b_(a+P_(e)*i))),64)}},U_=(e,t)=>{let n=i_(e),r=z_(t);return V_(H_(r,I_(r.prefix,n),n))},W_={zip215:!0},G_=(e,t,n,r=W_)=>{e=i_(e,64),t=i_(t),n=i_(n,Qg);let{zip215:i}=r,a=e.subarray(0,Qg),o=k_(e.subarray(Qg,Qg*2)),s,c,l,u=Uint8Array.of(),d=!1;try{s=T_.fromBytes(n,i),c=T_.fromBytes(a,i),l=E_.multiply(o,!1),u=m_(c.toBytes(),s.toBytes(),t),d=!0}catch{}return{hashable:u,finish:e=>{if(!d||!i&&s.isSmallOrder())return!1;let t=P_(e);return c.add(s.multiply(t,!1)).subtract(l).clearCofactor().is0()}}},K_=(e,t,n,r=W_)=>V_(G_(e,t,n,r)),q_={sha512Async:async e=>{let t=p_(),n=m_(e);return a_(await t.digest(`SHA-512`,n.buffer))},sha512:void 0},J_={getExtendedPublicKeyAsync:R_,getExtendedPublicKey:z_,randomSecretKey:(e=h_(Qg))=>e},Y_=8,X_=Math.ceil(256/Y_)+1,Z_=2**(Y_-1),Q_=()=>{let e=[],t=E_,n=t;for(let r=0;r<X_;r++){n=t,e.push(n);for(let r=1;r<Z_;r++)n=n.add(t),e.push(n);t=n.double()}return e},$_=void 0,ev=(e,t)=>{let n=t.negate();return e?n:t},tv=e=>{let t=$_||=Q_(),n=D_,r=E_,i=2**Y_,a=i,o=g_(i-1),s=g_(Y_);for(let i=0;i<X_;i++){let c=Number(e&o);e>>=s,c>Z_&&(c-=a,e+=1n);let l=i*Z_,u=l,d=l+Math.abs(c)-1,f=i%2!=0,p=c<0;c===0?r=r.add(ev(f,t[u])):n=n.add(ev(p,t[d]))}return e!==0n&&e_(`invalid wnaf`),{p:n,f:r}};q_.sha512=qc;var nv=function(e){return e[e.SHA256=0]=`SHA256`,e}({}),rv=class{getHashSchemeId(){return nv.SHA256}hash(e){return Gc(e)}};function iv(e,t,n,r){Ds(e);let{c:i,dkLen:a,asyncTick:o}=Ks({dkLen:32,asyncTick:10},r);if(Ts(i),Ts(a),Ts(o),i<1)throw Error(`iterations (c) should be >= 1`);let s=Ws(t),c=Ws(n),l=new Uint8Array(a),u=Yd.create(e,s);return{c:i,dkLen:a,asyncTick:o,DK:l,PRF:u,PRFSalt:u._cloneInto().update(c)}}function av(e,t,n,r,i){return e.destroy(),t.destroy(),r&&r.destroy(),js(i),n}function ov(e,t,n,r){let{c:i,dkLen:a,DK:o,PRF:s,PRFSalt:c}=iv(e,t,n,r),l,u=new Uint8Array(4),d=Ms(u),f=new Uint8Array(s.outputLen);for(let e=1,t=0;t<a;e++,t+=s.outputLen){let n=o.subarray(t,t+s.outputLen);d.setInt32(0,e,!1),(l=c._cloneInto(l)).update(u).digestInto(f),n.set(f.subarray(0,n.length));for(let e=1;e<i;e++){s._cloneInto(l).update(f).digestInto(f);for(let e=0;e<n.length;e++)n[e]^=f[e]}}return av(s,c,o,l,f)}var sv=function(e){return e[e.PBKDF2=0]=`PBKDF2`,e[e.SCRYPT=1]=`SCRYPT`,e}({}),cv=class{deriveKeyNoSalt(e,t){return this.deriveKey(e,``,t)}},lv=class extends cv{getKeyDerivationFunctionSchemeId(){return sv.PBKDF2}deriveKey(e,t,n){return ov(Gc,e,t,{c:1e5,dkLen:n})}};function uv(e,t,n){return Ds(e),n===void 0&&(n=new Uint8Array(e.outputLen)),Yd(e,Us(n),Us(t))}var dv=Uint8Array.from([0]),fv=Uint8Array.of();function pv(e,t,n,r=32){Ds(e),Ts(r);let i=e.outputLen;if(r>255*i)throw Error(`Length should be <= 255*HashLen`);let a=Math.ceil(r/i);n===void 0&&(n=fv);let o=new Uint8Array(a*i),s=Yd.create(e,t),c=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let e=0;e<a;e++)dv[0]=e+1,c.update(e===0?fv:l).update(n).update(dv).digestInto(l),o.set(l,i*e),s._cloneInto(c);return s.destroy(),c.destroy(),js(l,dv),o.slice(0,r)}var mv=(e,t,n,r,i)=>pv(e,uv(e,t,n),r,i),hv=class{deriveKeyNoSalt(e,t,n){let r=new Uint8Array;return this.deriveKey(e,r,t,n)}},gv=function(e){return e[e.HKDF=0]=`HKDF`,e}({}),_v=class extends hv{getKeyDerivationFunctionSchemeId(){return gv.HKDF}deriveKey(e,t,n,r){return mv(Gc,e,t,n,r)}},vv=function(e){return e[e.ML_KEM_768_AES_256_GCM=0]=`ML_KEM_768_AES_256_GCM`,e}({}),yv=function(e){return e[e.ML_KEM_768_AES_256_GCM=0]=`ML_KEM_768_AES_256_GCM`,e}({}),bv=class{},xv=class{async encode(e=fg.defaultBytesToStringEncoder()){return e.encode(await this.getRawPublicKey())}getSchemeId(){return this.getScheme().getSchemeId()}},Sv=class{encode(e=fg.defaultBytesToStringEncoder()){return e.encode(this.getRawPrivateKey())}},Cv=class extends bv{getSchemeId(){return vv.ML_KEM_768_AES_256_GCM}getSupportedSeedLength(){return[32]}},wv=128,Tv=96,Ev=32,Dv=64,Ov=7,kv=8,Av=class{byteStream;constructor(){this.clear()}clear(){this.byteStream=[]}getByteStream(){return new Uint8Array(this.byteStream)}writeJsonValue(e,t){switch(e){case 3:this.writeString(t);break;case 4:this.writeNumber(t);break;case 5:this.writeBoolean(t);break;case 6:break;default:throw`Type ${e} is not a JSON type`}}writeSchemaValue(e,t,n){switch(e){case 3:this.writeString(t,n);break;case 4:this.writeNumber(t);break;case 5:this.writeBoolean(t);break;case 6:break;case 7:this.writeUint8(t);break;case 8:this.writeUint16(t);break;case 9:this.writeUint24(t);break;case 10:this.writeUint32(t);break;case 11:this.writeUint48(t);break;case 12:this.writeBinary(t,n);break;case 13:this.writeByteArray(t);break;case 14:this.writeHashString(t);break;default:throw`Unexpected type ${e}`}}writeByte(e){this.byteStream.push(e&255)}writeUnsigned(e,t){for(;t--;)this.writeByte(e/2**(t*8))}writeUint8(e){this.writeUnsigned(e,1)}writeUint16(e){this.writeUnsigned(e,2)}writeUint24(e){this.writeUnsigned(e,3)}writeUint32(e){this.writeUnsigned(e,4)}writeUint48(e){this.writeUnsigned(e,6)}writeBinary(e,t=-1){t==-1&&this.writeVarUint(e.length),this.writeByteArray(e)}writeHashString(e){this.writeByteArray(A.binaryFromHexa(e))}writeByteArray(e){for(let t of e)this.writeByte(t)}writeString(e,t=-1){let n=Qa.encode(e);t==-1&&this.writeVarUint(n.length),this.writeByteArray(n)}writeVarUint(e){if(e==0)this.writeByte(0);else{if(e<0||e%1||e>2**53-1)throw`Invalid varUint ${e}`;for(;e;)this.writeByte(e%128|(e>127)<<7),e=Math.floor(e/128)}}writeBoolean(e){this.writeByte(e?255:0)}writeNumber(e){let t=!(e%1);if(t&&e>=-64&&e<64){this.writeByte(wv|e&127);return}for(let n=1,r=256;n<=6;n++,r*=256){if(t&&e>=-r&&e<r){let t=e<0;this.writeByte(t<<3|n),this.writeUnsigned(t?-e-1:e,n);return}if(n==4){let t=new Float32Array([e]);if(+t[0].toPrecision(7)===e){this.writeByte(Ev),this.writeByteArray(new Uint8Array(t.buffer));return}}}this.writeByte(Dv),this.writeByteArray(new Uint8Array(new Float64Array([e]).buffer))}},jv=class{byteStream;lastPointer;pointer;constructor(e){this.byteStream=e,this.pointer=0}readJsonValue(e){switch(this.lastPointer=this.pointer,e){case 3:return this.readString();case 4:return this.readNumber();case 5:return this.readBoolean();case 6:return null;default:throw`Type ${e} is not a JSON type`}}readSchemaValue(e,t){switch(this.lastPointer=this.pointer,e){case 3:return this.readString(t);case 4:return this.readNumber();case 5:return this.readBoolean();case 6:return null;case 7:return this.readUint8();case 8:return this.readUint16();case 9:return this.readUint24();case 10:return this.readUint32();case 11:return this.readUint48();case 12:return this.readBinary(t);case 13:return this.readByteArray(32);case 14:return this.readHashString()}}getPointer(){return this.pointer}extractFrom(e){return this.byteStream.slice(e,this.pointer)}getLastField(){return this.byteStream.slice(this.lastPointer,this.pointer)}readByte(){return this.byteStream[this.pointer++]}readUnsigned(e){let t=0;for(;e--;)t=t*256+this.readByte();return t}readUint8(){return this.readUnsigned(1)}readUint16(){return this.readUnsigned(2)}readUint24(){return this.readUnsigned(3)}readUint32(){return this.readUnsigned(4)}readUint48(){return this.readUnsigned(6)}readBinary(e=-1){return this.readByteArray(e==-1?this.readVarUint():e)}readHashString(){return A.binaryToHexa(this.readByteArray(32))}readByteArray(e){return this.byteStream.slice(this.pointer,this.pointer+=e)}readString(e=-1){let t=this.readByteArray(e==-1?this.readVarUint():e);return Qa.decode(t)}readVarUint(){let e=[],t;do t=this.readByte(),e.push(t&127);while(t&128);return e.reduceRight((e,t)=>e*128+t,0)}readBoolean(){return!!this.readByte()}readNumber(){let e=this.readByte();if(e&wv)return(e&127^64)-64;switch(e&Tv){case Ev:return+new Float32Array(this.readByteArray(4).buffer)[0].toPrecision(7);case Dv:return new Float64Array(this.readByteArray(8).buffer)[0];default:{let t=this.readUnsigned(e&Ov);return e&kv?-t-1:t}}}},Mv=class{schema;stream;constructor(e){this.schema=e}serialize(e){if(this.schema===void 0)throw new Oe(`Provided schema is undefined: this should not happen`);return this.stream=new Av,this.serializeObject(this.schema.definition,e),this.stream.getByteStream()}serializeObject(e,t,n=``){for(let r of e){let e=n+(n&&`.`)+r.name,i=t[r.name];if(i===void 0)throw new Oe(`field '${e}' is missing`);if(r.type&32){if(ro.getType(i)!=1)throw new Oe(`'${e}' is not an array`);if(r.size!==void 0){if(i.length!=r.size)throw new Oe(`invalid size for '${e}' (expecting ${r.size} entries, got ${i.length})`)}else this.stream.writeVarUint(i.length);for(let t in i)this.serializeItem(r,i[t],e+`[${t}]`)}else this.serializeItem(r,i,e)}}serializeItem(e,t,n){let r=e.type&31;if(r==2){if(ro.getType(t)!=2)throw new Oe(`'${n}' is not an object`);if(e.definition)this.serializeObject(e.definition,t,n);else if(e.schema)this.serializeObject(e.schema.definition,t,n);else throw new Oe(`missing definition in schema`)}else{let i=new io(e,t);try{i.check()}catch(e){throw new Oe(`Error on field '${n}': ${e}`)}this.stream.writeSchemaValue(r,t,e.size)}}},Nv=class{schema;stream;constructor(e){this.schema=e}unserialize(e){this.stream=new jv(e);let t=this.unserializeObject(this.schema.definition),n=this.stream.getPointer(),r=e.length;if(n!=r)throw console.error(A.binaryToHexa(e)),new o(`Invalid stream length (decoded ${n} bytes, actual length is ${r} bytes)`);return t}unserializeObject(e){let t={};for(let n of e){let e;if(n.type&32){let t=n.size===void 0?this.stream.readVarUint():n.size;for(e=[];t--;)e.push(this.unserializeItem(n))}else e=this.unserializeItem(n);t[n.name]=e}return t}unserializeItem(e){let t=e.type&31;if(t==2){if(e.definition)return this.unserializeObject(e.definition);if(e.schema)return this.unserializeObject(e.schema.definition);throw`missing definition in schema`}return this.stream.readSchemaValue(t,e.size)}},Pv=class e{static schema={label:`PKE_ML_KEM_CIPHERTEXT`,definition:[{name:`encryptedSharedSecret`,type:12},{name:`encryptedMessage`,type:12}]};serializer=new Mv(e.schema);deserializer=new Nv(e.schema);encode(e,t){return this.serializer.serialize({encryptedSharedSecret:e,encryptedMessage:t})}decode(e){return this.deserializer.unserialize(e)}},Fv=class extends xv{static encoder=fg.bytesToBase64Encoder();constructor(e){super(),this.publicKey=e}async encrypt(e){let{cipherText:t,sharedSecret:n}=Hd.encapsulate(this.publicKey),r=await Ig.createFromBytes(n).encrypt(e);return new Pv().encode(t,r)}async getRawPublicKey(){return this.publicKey}getScheme(){return new Cv}},Iv=class e extends Sv{static async genFromSeed(t){if(t.length!==64)throw Error(`Seed must be 64 bytes long: got length: ${t?.length} bytes`);return new e(t)}static async gen(){return new e(Fu(64))}privateKey;publicKey;constructor(e){super(),this.seed=e;let{secretKey:t,publicKey:n}=Hd.keygen(e);this.privateKey=t,this.publicKey=n}getSupportedSeedLength(){return[64]}getScheme(){return new Cv}async getPublicKey(){return new Fv(this.publicKey)}getRawPrivateKey(){return this.privateKey}async decrypt(e){try{let{encryptedMessage:t,encryptedSharedSecret:n}=new Pv().decode(e),r=Hd.decapsulate(n,this.privateKey);return Ig.createFromBytes(r).decrypt(t)}catch(e){throw o.isCarmentisError(e)?new f:e}}},Lv=class e{static SIGNATURE_SIZE=65;getSignatureSchemeId(){return Ya.SECP256K1}getSignatureSize(){return e.SIGNATURE_SIZE}expectedSeedSize(){return 32}},Rv=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsBytes(){return this.publicKey}async verify(e,t){return ep(t,Gc(e),this.publicKey)}getScheme(){return new Lv}},zv=class e extends zg{constructor(e){super(),this.privateKey=e}getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}static gen(){return new e(op.randomPrivateKey())}static genFromSeed(t){return new e(ap.bytesToHex(t))}async getPublicKey(){if(this.privateKey instanceof Uint8Array)return new Rv(Gf(this.privateKey));throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}getPrivateKeyAsBytes(){if(this.privateKey instanceof Uint8Array)return this.privateKey;throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}async sign(e){return $f(Gc(e),this.privateKey).toCompactRawBytes()}getScheme(){return new Lv}},Bv=class e{static SIGNATURE_SIZE=65;getSignatureSchemeId(){return Ya.ED25519}getSignatureSize(){return e.SIGNATURE_SIZE}expectedSeedSize(){return 32}},Vv=class extends Bg{constructor(e){super(),this.publicKey=e}async getPublicKeyAsBytes(){return this.publicKey}async verify(e,t){return K_(t,Gc(e),this.publicKey)}getScheme(){return new Bv}};q_.sha512=qc;var Hv=class e extends zg{constructor(e){super(),this.privateKey=e}getPrivateKeyAsString(e){return e.encode(this.getPrivateKeyAsBytes())}static gen(){return new e(J_.randomSecretKey())}static genFromSeed(t){return new e(t)}async getPublicKey(){if(this.privateKey instanceof Uint8Array)return new Vv(B_(this.privateKey));throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}getPrivateKeyAsBytes(){if(this.privateKey instanceof Uint8Array)return this.privateKey;throw Error(`Invalid private key format: expected Uint8Array, got `+typeof this.privateKey+` instead.`)}async sign(e){return U_(Gc(e),this.privateKey)}getScheme(){return new Bv}},Uv=class e{static createPrivateSignatureKey(e,t){switch(e){case Ya.SECP256K1:return new zv(t);case Ya.ML_DSA_65:return new Ug(t);case Ya.ED25519:return new Hv(t.slice(0,32));default:throw`Not supported signature scheme ID: ${e}`}}static createVirtualBlockchainPrivateSignature(e,t,n,r){let i=new Uint8Array([...n,...r]),a=new TextEncoder,o=e.deriveKeyNoSalt(i,a.encode(`VB_ACTOR_KEY`),32);switch(t){case Ya.ML_DSA_65:return new Ug(o);case Ya.SECP256K1:return zv.genFromSeed(o);case Ya.ED25519:return new Hv(o.slice(0,32));default:throw`Not supported signature scheme ID: ${t}`}}static deriveKeyFromPassword(t,n=sv.PBKDF2,r=Pg.AES_256_GCM){let i=e.createSymmetricEncryptionKeyScheme(r).getDefaultKeyLength(),a=e.createDefaultPBKDF().deriveKeyNoSalt(t,i);return e.createSymmetricEncryptionKey(r,a)}createDecapsulationKey(e,t){switch(e){default:throw`Not supported encryption scheme ID: ${e}`}}createVirtualBlockchainDecapsulationKey(e,t,n){switch(e){default:throw`Not supported encryption scheme ID: ${e}`}}async createPublicSignatureKey(t,n){return e.createPublicSignatureKey(t,n)}static async createPublicSignatureKey(e,t){switch(e){case Ya.SECP256K1:return new Rv(t);case Ya.ML_DSA_65:return new Hg(t);case Ya.ED25519:return new Vv(t);default:throw Error(`Not supported signature scheme ID: ${e}`)}}static async createPublicEncryptionKey(e,t){switch(e){case vv.ML_KEM_768_AES_256_GCM:return new Fv(t);default:throw Error(`Not supported scheme ID: ${e}`)}}static async createPrivateDecryptionKey(e,t){switch(e){case vv.ML_KEM_768_AES_256_GCM:return await Iv.genFromSeed(t);default:throw Error(`Not supported scheme ID: ${e}`)}}createSymmetricEncryptionKey(t,n){return e.createSymmetricEncryptionKey(t,n)}static createSymmetricEncryptionKey(e,t){switch(e){case Pg.AES_256_GCM:return Ig.createFromBytes(t);default:throw`Not supported encryption scheme ID: ${e}`}}static createSymmetricEncryptionKeyScheme(e){switch(e){case Pg.AES_256_GCM:return new Fg;default:throw`Not supported encryption scheme ID: ${e}`}}static createCryptographicHash(e){switch(e){case nv.SHA256:return new rv;default:throw`Not supported hash scheme ID: ${e}`}}static createDefaultCryptographicHash(){return new rv}static createDefaultPBKDF(){return new lv}static createDefaultKDF(){return new _v}static createSignatureScheme(e){switch(e){case Ya.SECP256K1:return new Lv;case Ya.ML_DSA_65:return new Vg;case Ya.ED25519:return new Bv;default:throw Error(`Not supported signature scheme ID: ${e}`)}}},Wv=class e{static PKE_KEY=`PKE`;static SK_PKE_KEY=`SK`;static PK_PKE_KEY=`PK`;static PKE_SCHEMES=[{algoId:vv.ML_KEM_768_AES_256_GCM,label:`MLKEM768AES256GCM`}];static createHexHCVPkeEncoder(){return new e(fg.bytesToHexEncoder())}static createBase64HCVPkeEncoder(){return new e(fg.bytesToBase64Encoder())}constructor(e){this.stringEncoder=e}async decodePrivateDecryptionKey(t){let n=gg.decode(t);for(let{algoId:t,label:r}of e.PKE_SCHEMES)if(n.matchesKeys(e.PKE_KEY,r,e.SK_PKE_KEY))return await Uv.createPrivateDecryptionKey(t,this.stringEncoder.decode(n.getValue()));throw Error(`Invalid private key format: no scheme key found`)}async decodePublicEncryptionKey(t){let n=gg.decode(t);for(let{algoId:t,label:r}of e.PKE_SCHEMES)if(n.matchesKeys(e.PKE_KEY,r,e.PK_PKE_KEY))return Uv.createPublicEncryptionKey(t,this.stringEncoder.decode(n.getValue()));throw Error(`Invalid private key format: no scheme key found`)}async encodePrivateDecryptionKey(t){return gg.encode(e.PKE_KEY,`MLKEM768AES256GCM`,e.SK_PKE_KEY,this.stringEncoder.encode(t.getRawPrivateKey()))}async encodePublicEncryptionKey(t){return gg.encode(e.PKE_KEY,`MLKEM768AES256GCM`,e.PK_PKE_KEY,this.stringEncoder.encode(await t.getRawPublicKey()))}},Gv=`SIG`,Kv=`SK`,qv=`PK`,Jv=class{bytesEncoder=fg.bytesToHexEncoder();constructor(e){this.labels=e}async encodePublicKey(e){return gg.encode(...this.getHCVPublicKeyEncodingPrefix(),this.bytesEncoder.encode(await e.getPublicKeyAsBytes()))}getHCVPrivateKeyEncodingPrefix(){return[Gv,...this.labels,Kv]}getHCVPublicKeyEncodingPrefix(){return[Gv,...this.labels,qv]}},Yv=class extends Jv{constructor(e){super(e)}async encodePrivateKey(e){return gg.encode(...this.getHCVPrivateKeyEncodingPrefix(),this.bytesEncoder.encode(e.getPrivateKeyAsBytes()))}},Xv=class extends Yv{constructor(){super([`SECP256K1`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof zv}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof Rv}},Zv=class extends Yv{constructor(){super([`MLDSA65`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof Ug}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof Hg}};function Qv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var $v={exports:{}},ey=$v.exports={},ty,ny;function ry(){throw Error(`setTimeout has not been defined`)}function iy(){throw Error(`clearTimeout has not been defined`)}(function(){try{ty=typeof setTimeout==`function`?setTimeout:ry}catch{ty=ry}try{ny=typeof clearTimeout==`function`?clearTimeout:iy}catch{ny=iy}})();function ay(e){if(ty===setTimeout)return setTimeout(e,0);if((ty===ry||!ty)&&setTimeout)return ty=setTimeout,setTimeout(e,0);try{return ty(e,0)}catch{try{return ty.call(null,e,0)}catch{return ty.call(this,e,0)}}}function oy(e){if(ny===clearTimeout)return clearTimeout(e);if((ny===iy||!ny)&&clearTimeout)return ny=clearTimeout,clearTimeout(e);try{return ny(e)}catch{try{return ny.call(null,e)}catch{return ny.call(this,e)}}}var sy=[],cy=!1,ly,uy=-1;function dy(){!cy||!ly||(cy=!1,ly.length?sy=ly.concat(sy):uy=-1,sy.length&&fy())}function fy(){if(!cy){var e=ay(dy);cy=!0;for(var t=sy.length;t;){for(ly=sy,sy=[];++uy<t;)ly&&ly[uy].run();uy=-1,t=sy.length}ly=null,cy=!1,oy(e)}}ey.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];sy.push(new py(e,t)),sy.length===1&&!cy&&ay(fy)};function py(e,t){this.fun=e,this.array=t}py.prototype.run=function(){this.fun.apply(null,this.array)},ey.title=`browser`,ey.browser=!0,ey.env={},ey.argv=[],ey.version=``,ey.versions={};function my(){}ey.on=my,ey.addListener=my,ey.once=my,ey.off=my,ey.removeListener=my,ey.removeAllListeners=my,ey.emit=my,ey.prependListener=my,ey.prependOnceListener=my,ey.listeners=function(e){return[]},ey.binding=function(e){throw Error(`process.binding is not supported`)},ey.cwd=function(){return`/`},ey.chdir=function(e){throw Error(`process.chdir is not supported`)},ey.umask=function(){return 0};var hy=$v.exports,gy=Qv(hy),_y=class{async getPkmsCredential(){let e=gy.env.PKMS_API_KEY;if(e===void 0)throw Error(`PKMS_API_KEY environment variable is not set.`);return e}},vy=`https://pkms.admin.carmentis.io`,yy=class e{static createFromKeyId(t){return new e(t)}credentialProvider=new _y;constructor(e,t={host:vy}){this.keyId=e,this.options=t}getKeyId(){return this.keyId}getPrivateKeyAsBytes(){throw Error(`Private key material cannot be exported.`)}async getPublicKey(){let e=await fetch(`${this.options.host}/api/keys/${this.keyId}/pk`,{method:`GET`,headers:{"Content-Type":`application/json`}});if(!e.ok)throw Error(`Failed to fetch public key with id ${this.keyId} at ${this.options.host}: ${e.statusText}.`);let t=(await e.json()).publicKey;if(t===void 0)throw Error(`Failed to fetch public key: no "publicKey" field found in response body.`);return new by(new Uint8Array(Ng.from(t,`base64`)))}getScheme(){return new Lv}getSignatureSchemeId(){return Ya.PKMS_SECP256K1}getSignatureSize(){return this.getScheme().getSignatureSize()}setCredentialProvider(e){this.credentialProvider=e}async sign(e){let t=await this.credentialProvider.getPkmsCredential();try{let n=await fetch(`${this.options.host}/api/sign`,{method:`POST`,headers:{authorization:`Bearer ${t}`,"Content-Type":`application/json`},body:JSON.stringify({keyId:this.keyId,base64EncodedData:Ng.from(e).toString(`base64`)})});if(n.ok){let e=await n.json();return Ng.from(e.signature,`base64`)}else throw Error(`Failed to sign data.`)}catch(e){throw e}}},by=class extends Rv{getSignatureSchemeId(){return Ya.PKMS_SECP256K1}},xy=class extends Jv{constructor(){super([`PKMS`,`SECP256K1`])}async isAcceptingPrivateKeyEncodingRequest(e){return e instanceof yy}async isAcceptingPublicKeyEncodingRequest(e){return e instanceof by}async encodePrivateKey(e){if(!(e instanceof yy))throw Error(`Invalid private key type: `+e.constructor.name);let t=e.getKeyId();return gg.encode(...this.getHCVPrivateKeyEncodingPrefix(),t)}},Sy=`SIG`,Cy=`SK`,wy=`PK`,Ty=class e{static logger=k.getLogger([`HCVSignatureDecoder`]);bytesEncoder=fg.bytesToHexEncoder();constructor(e){this.labels=e}async isAcceptingPrivateKeyDecodingRequest(t){try{let n=gg.decode(t);return e.logger.debug(`Attempt to decode private key for ${this.labels}: found ${n.getKeys()}`),n.matchesKeys(Sy,...this.labels,Cy)}catch(t){return e.logger.debug(`Fail to decode private key for ${this.labels}: ${t}`),!1}}async isAcceptingPublicKeyDecodingRequest(e){try{return gg.decode(e).matchesKeys(Sy,...this.labels,wy)}catch{return!1}}static getSignatureKey(){return Sy}static getSkSignatureKey(){return Cy}static getPkSignatureKey(){return wy}},Ey=class extends Ty{async decodePrivateKey(e){let t=gg.decode(e),n=this.bytesEncoder.decode(t.getValue());return this.bootstrapPrivateKey(n)}async decodePublicKey(e){let t=gg.decode(e),n=this.bytesEncoder.decode(t.getValue());return this.bootstrapPublicKey(n)}},Dy=class e extends Ey{static label=`SECP256K1`;constructor(){super([e.label])}bootstrapPrivateKey(e){return new zv(e)}bootstrapPublicKey(e){return new Rv(e)}},Oy=class e extends Ey{static ML_DSA65_SIGNATURE_KEY=`MLDSA65`;constructor(){super([e.ML_DSA65_SIGNATURE_KEY])}bootstrapPrivateKey(e){return new Ug(e)}bootstrapPublicKey(e){return new Hg(e)}},ky=class e extends Ty{static label=[`PKMS`,`SECP256K1`];constructor(){super(e.label)}async decodePrivateKey(e){return new yy(gg.decode(e).getValue())}async decodePublicKey(e){let t=gg.decode(e);return new by(this.bytesEncoder.decode(t.getValue()))}},Ay=class{encoders=[new Xv,new Zv,new xy];decoders=[new Dy,new Oy,new ky];constructor(e=fg.bytesToHexEncoder()){this.bytesEncoder=e}registerEncoder(e){this.encoders.push(e)}registerDecoder(e){this.decoders.push(e)}decodeMessage(e){return this.bytesEncoder.decode(e)}async decodePrivateKey(e){for(let t of this.decoders)if(await t.isAcceptingPrivateKeyDecodingRequest(e))return await t.decodePrivateKey(e);throw Error(`Invalid private key format: no decoder found`)}async decodePublicKey(e){for(let t of this.decoders)if(await t.isAcceptingPublicKeyDecodingRequest(e))return await t.decodePublicKey(e);throw Error(`Invalid private key format: no decoder found`)}decodeSignature(e){return this.bytesEncoder.decode(e)}encodeMessage(e){return this.bytesEncoder.encode(e)}async encodePrivateKey(e){for(let t of this.encoders)if(await t.isAcceptingPrivateKeyEncodingRequest(e))return await t.encodePrivateKey(e);throw Error(`No encoder found`)}async encodePublicKey(e){for(let t of this.encoders)if(await t.isAcceptingPublicKeyEncodingRequest(e))return await t.encodePublicKey(e);throw Error(`No encoder found`)}encodeSignature(e){return this.bytesEncoder.encode(e)}},jy;try{jy=new TextDecoder}catch{}var G,My,K=0,Ny=[],Py=105,Fy=57342,Iy=57343,Ly=57337,Ry=6,zy={},By=11281e4,Vy=1681e4,Hy=Ny,Uy=0,q={},Wy,Gy,Ky=0,qy=0,Jy,Yy,Xy=[],Zy=[],Qy,$y,eb,tb={useRecords:!1,mapsAsObjects:!0},nb=!1,rb=2;try{Function(``)}catch{rb=1/0}var ib=class e{constructor(e){if(e&&((e.keyMap||e._keyMap)&&!e.useRecords&&(e.useRecords=!1,e.mapsAsObjects=!0),e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.getStructures&&(e.getShared=e.getStructures),e.getShared&&!e.structures&&((e.structures=[]).uninitialized=!0),e.keyMap)){this.mapKey=new Map;for(let[t,n]of Object.entries(e.keyMap))this.mapKey.set(n,t)}Object.assign(this,e)}decodeKey(e){return this.keyMap&&this.mapKey.get(e)||e}encodeKey(e){return this.keyMap&&this.keyMap.hasOwnProperty(e)?this.keyMap[e]:e}encodeKeys(e){if(!this._keyMap)return e;let t=new Map;for(let[n,r]of Object.entries(e))t.set(this._keyMap.hasOwnProperty(n)?this._keyMap[n]:n,r);return t}decodeKeys(e){if(!this._keyMap||e.constructor.name!=`Map`)return e;if(!this._mapKey){this._mapKey=new Map;for(let[e,t]of Object.entries(this._keyMap))this._mapKey.set(t,e)}let t={};return e.forEach((e,n)=>t[cb(this._mapKey.has(n)?this._mapKey.get(n):n)]=e),t}mapDecode(e,t){let n=this.decode(e);if(this._keyMap)switch(n.constructor.name){case`Array`:return n.map(e=>this.decodeKeys(e))}return n}decode(t,n){if(G)return Mb(()=>(Nb(),this?this.decode(t,n):e.prototype.decode.call(tb,t,n)));My=n>-1?n:t.length,K=0,Uy=0,qy=0,Gy=null,Hy=Ny,Jy=null,G=t;try{$y=t.dataView||=new DataView(t.buffer,t.byteOffset,t.byteLength)}catch(e){throw G=null,t instanceof Uint8Array?e:Error(`Source must be a Uint8Array or Buffer but was a `+(t&&typeof t==`object`?t.constructor.name:typeof t))}if(this instanceof e){if(q=this,Qy=this.sharedValues&&(this.pack?Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return Wy=this.structures,ab();(!Wy||Wy.length>0)&&(Wy=[])}else q=tb,(!Wy||Wy.length>0)&&(Wy=[]),Qy=null;return ab()}decodeMultiple(e,t){let n,r=0;try{let i=e.length;nb=!0;let a=this?this.decode(e,i):Fb.decode(e,i);if(t){if(t(a)===!1)return;for(;K<i;)if(r=K,t(ab())===!1)return}else{for(n=[a];K<i;)r=K,n.push(ab());return n}}catch(e){throw e.lastPosition=r,e.values=n,e}finally{nb=!1,Nb()}}};function ab(){try{let e=J();if(Jy){if(K>=Jy.postBundlePosition){let e=Error(`Unexpected bundle position`);throw e.incomplete=!0,e}K=Jy.postBundlePosition,Jy=null}if(K==My)Wy=null,G=null,Yy&&=null;else if(K>My){let e=Error(`Unexpected end of CBOR data`);throw e.incomplete=!0,e}else if(!nb)throw Error(`Data read, but end of buffer not reached`);return e}catch(e){throw Nb(),(e instanceof RangeError||e.message.startsWith(`Unexpected end of buffer`))&&(e.incomplete=!0),e}}function J(){let e=G[K++],t=e>>5;if(e&=31,e>23)switch(e){case 24:e=G[K++];break;case 25:if(t==7)return _b();e=$y.getUint16(K),K+=2;break;case 26:if(t==7){let e=$y.getFloat32(K);if(q.useFloat32>2){let t=Pb[(G[K]&127)<<1|G[K+1]>>7];return K+=4,(t*e+(e>0?.5:-.5)>>0)/t}return K+=4,e}if(e=$y.getUint32(K),K+=4,t===1)return-1-e;break;case 27:if(t==7){let e=$y.getFloat64(K);return K+=8,e}if(t>1){if($y.getUint32(K)>0)throw Error(`JavaScript does not support arrays, maps, or strings with length over 4294967295`);e=$y.getUint32(K+4)}else q.int64AsNumber?(e=$y.getUint32(K)*4294967296,e+=$y.getUint32(K+4)):e=$y.getBigUint64(K);K+=8;break;case 31:switch(t){case 2:case 3:throw Error(`Indefinite length not supported for byte or text strings`);case 4:let e=[],n,r=0;for(;(n=J())!=zy;){if(r>=By)throw Error(`Array length exceeds ${By}`);e[r++]=n}return t==4?e:t==3?e.join(``):Ng.concat(e);case 5:let i;if(q.mapsAsObjects){let e={},t=0;if(q.keyMap)for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Property count exceeds ${Vy}`);e[cb(q.decodeKey(i))]=J()}else for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Property count exceeds ${Vy}`);e[cb(i)]=J()}return e}else{eb&&=(q.mapsAsObjects=!0,!1);let e=new Map;if(q.keyMap){let t=0;for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Map size exceeds ${Vy}`);e.set(q.decodeKey(i),J())}}else{let t=0;for(;(i=J())!=zy;){if(t++>=Vy)throw Error(`Map size exceeds ${Vy}`);e.set(i,J())}}return e}case 7:return zy;default:throw Error(`Invalid major type for indefinite length `+t)}default:throw Error(`Unknown token `+e)}switch(t){case 0:return e;case 1:return~e;case 2:return mb(e);case 3:if(qy>=K)return Gy.slice(K-Ky,(K+=e)-Ky);if(qy==0&&My<140&&e<32){let t=e<16?pb(e):fb(e);if(t!=null)return t}return lb(e);case 4:if(e>=By)throw Error(`Array length exceeds ${By}`);let t=Array(e);for(let n=0;n<e;n++)t[n]=J();return t;case 5:if(e>=Vy)throw Error(`Map size exceeds ${By}`);if(q.mapsAsObjects){let t={};if(q.keyMap)for(let n=0;n<e;n++)t[cb(q.decodeKey(J()))]=J();else for(let n=0;n<e;n++)t[cb(J())]=J();return t}else{eb&&=(q.mapsAsObjects=!0,!1);let t=new Map;if(q.keyMap)for(let n=0;n<e;n++)t.set(q.decodeKey(J()),J());else for(let n=0;n<e;n++)t.set(J(),J());return t}case 6:if(e>=Ly){let t=Wy[e&8191];if(t)return t.read||=sb(t),t.read();if(e<65536){if(e==Iy){let e=Ab(),t=J(),n=J();yb(t,n);let r={};if(q.keyMap)for(let t=2;t<e;t++){let e=q.decodeKey(n[t-2]);r[cb(e)]=J()}else for(let t=2;t<e;t++){let e=n[t-2];r[cb(e)]=J()}return r}else if(e==Fy){let e=Ab(),t=J();for(let n=2;n<e;n++)yb(t++,J());return J()}else if(e==Ly)return kb();if(q.getShared&&(jb(),t=Wy[e&8191],t))return t.read||=sb(t),t.read()}}let n=Xy[e];if(n)return n.handlesRead?n(J):n(J());{let t=J();for(let n=0;n<Zy.length;n++){let r=Zy[n](e,t);if(r!==void 0)return r}return new vb(t,e)}case 7:switch(e){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;default:let t=(Qy||Cb())[e];if(t!==void 0)return t;throw Error(`Unknown token `+e)}default:if(isNaN(e)){let e=Error(`Unexpected end of CBOR data`);throw e.incomplete=!0,e}throw Error(`Unknown CBOR token `+e)}}var ob=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function sb(e){if(!e)throw Error(`Structure is required in record definition`);function t(){let e=G[K++];if(e&=31,e>23)switch(e){case 24:e=G[K++];break;case 25:e=$y.getUint16(K),K+=2;break;case 26:e=$y.getUint32(K),K+=4;break;default:throw Error(`Expected array header, but got `+G[K-1])}let t=this.compiledReader;for(;t;){if(t.propertyCount===e)return t(J);t=t.next}if(this.slowReads++>=rb){let n=this.length==e?this:this.slice(0,e);return t=q.keyMap?Function(`r`,`return {`+n.map(e=>q.decodeKey(e)).map(e=>ob.test(e)?cb(e)+`:r()`:`[`+JSON.stringify(e)+`]:r()`).join(`,`)+`}`):Function(`r`,`return {`+n.map(e=>ob.test(e)?cb(e)+`:r()`:`[`+JSON.stringify(e)+`]:r()`).join(`,`)+`}`),this.compiledReader&&(t.next=this.compiledReader),t.propertyCount=e,this.compiledReader=t,t(J)}let n={};if(q.keyMap)for(let t=0;t<e;t++)n[cb(q.decodeKey(this[t]))]=J();else for(let t=0;t<e;t++)n[cb(this[t])]=J();return n}return e.slowReads=0,t}function cb(e){if(typeof e==`string`)return e===`__proto__`?`__proto_`:e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return e.toString();if(e==null)return e+``;throw Error(`Invalid property name type `+typeof e)}var lb=ub;function ub(e){let t;if(e<16&&(t=pb(e)))return t;if(e>64&&jy)return jy.decode(G.subarray(K,K+=e));let n=K+e,r=[];for(t=``;K<n;){let e=G[K++];if(!(e&128))r.push(e);else if((e&224)==192){let t=G[K++]&63,n=(e&31)<<6|t;n<128?r.push(65533):r.push(n)}else if((e&240)==224){let t=G[K++]&63,n=G[K++]&63,i=(e&31)<<12|t<<6|n;i<2048||i>=55296&&i<=57343?r.push(65533):r.push(i)}else if((e&248)==240){let t=G[K++]&63,n=G[K++]&63,i=G[K++]&63,a=(e&7)<<18|t<<12|n<<6|i;a<65536||a>1114111?r.push(65533):a>65535?(a-=65536,r.push(a>>>10&1023|55296),a=56320|a&1023,r.push(a)):r.push(a)}else r.push(65533);r.length>=4096&&(t+=db.apply(String,r),r.length=0)}return r.length>0&&(t+=db.apply(String,r)),t}var db=String.fromCharCode;function fb(e){let t=K,n=Array(e);for(let r=0;r<e;r++){let e=G[K++];if((e&128)>0){K=t;return}n[r]=e}return db.apply(String,n)}function pb(e){if(e<4)if(e<2){if(e===0)return``;{let e=G[K++];if((e&128)>1){--K;return}return db(e)}}else{let t=G[K++],n=G[K++];if((t&128)>0||(n&128)>0){K-=2;return}if(e<3)return db(t,n);let r=G[K++];if((r&128)>0){K-=3;return}return db(t,n,r)}else{let t=G[K++],n=G[K++],r=G[K++],i=G[K++];if((t&128)>0||(n&128)>0||(r&128)>0||(i&128)>0){K-=4;return}if(e<6){if(e===4)return db(t,n,r,i);{let e=G[K++];if((e&128)>0){K-=5;return}return db(t,n,r,i,e)}}else if(e<8){let a=G[K++],o=G[K++];if((a&128)>0||(o&128)>0){K-=6;return}if(e<7)return db(t,n,r,i,a,o);let s=G[K++];if((s&128)>0){K-=7;return}return db(t,n,r,i,a,o,s)}else{let a=G[K++],o=G[K++],s=G[K++],c=G[K++];if((a&128)>0||(o&128)>0||(s&128)>0||(c&128)>0){K-=8;return}if(e<10){if(e===8)return db(t,n,r,i,a,o,s,c);{let e=G[K++];if((e&128)>0){K-=9;return}return db(t,n,r,i,a,o,s,c,e)}}else if(e<12){let l=G[K++],u=G[K++];if((l&128)>0||(u&128)>0){K-=10;return}if(e<11)return db(t,n,r,i,a,o,s,c,l,u);let d=G[K++];if((d&128)>0){K-=11;return}return db(t,n,r,i,a,o,s,c,l,u,d)}else{let l=G[K++],u=G[K++],d=G[K++],f=G[K++];if((l&128)>0||(u&128)>0||(d&128)>0||(f&128)>0){K-=12;return}if(e<14){if(e===12)return db(t,n,r,i,a,o,s,c,l,u,d,f);{let e=G[K++];if((e&128)>0){K-=13;return}return db(t,n,r,i,a,o,s,c,l,u,d,f,e)}}else{let p=G[K++],m=G[K++];if((p&128)>0||(m&128)>0){K-=14;return}if(e<15)return db(t,n,r,i,a,o,s,c,l,u,d,f,p,m);let h=G[K++];if((h&128)>0){K-=15;return}return db(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h)}}}}}function mb(e){return q.copyBuffers?Uint8Array.prototype.slice.call(G,K,K+=e):G.subarray(K,K+=e)}var hb=new Float32Array(1),gb=new Uint8Array(hb.buffer,0,4);function _b(){let e=G[K++],t=G[K++],n=(e&127)>>2;if(n===31)return t||e&3?NaN:e&128?-1/0:1/0;if(n===0){let n=((e&3)<<8|t)/(1<<24);return e&128?-n:n}return gb[3]=e&128|(n>>1)+56,gb[2]=(e&7)<<5|t>>3,gb[1]=t<<5,gb[0]=0,hb[0]}Array(4096);var vb=class{constructor(e,t){this.value=e,this.tag=t}};Xy[0]=e=>new Date(e),Xy[1]=e=>new Date(Math.round(e*1e3)),Xy[2]=e=>{let t=BigInt(0);for(let n=0,r=e.byteLength;n<r;n++)t=BigInt(e[n])+(t<<BigInt(8));return t},Xy[3]=e=>BigInt(-1)-Xy[2](e),Xy[4]=e=>+(e[1]+`e`+e[0]),Xy[5]=e=>e[1]*Math.exp(e[0]*Math.log(2));var yb=(e,t)=>{e-=57344;let n=Wy[e];n&&n.isShared&&((Wy.restoreStructures||=[])[e]=n),Wy[e]=t,t.read=sb(t)};Xy[Py]=e=>{let t=e.length,n=e[1];yb(e[0],n);let r={};for(let i=2;i<t;i++){let t=n[i-2];r[cb(t)]=e[i]}return r},Xy[14]=e=>Jy?Jy[0].slice(Jy.position0,Jy.position0+=e):new vb(e,14),Xy[15]=e=>Jy?Jy[1].slice(Jy.position1,Jy.position1+=e):new vb(e,15);var bb={Error,RegExp};Xy[27]=e=>(bb[e[0]]||Error)(e[1],e[2]);var xb=e=>{if(G[K++]!=132){let e=Error(`Packed values structure must be followed by a 4 element array`);throw G.length<K&&(e.incomplete=!0),e}let t=e();if(!t||!t.length){let e=Error(`Packed values structure must be followed by a 4 element array`);throw e.incomplete=!0,e}return Qy=Qy?t.concat(Qy.slice(t.length)):t,Qy.prefixes=e(),Qy.suffixes=e(),e()};xb.handlesRead=!0,Xy[51]=xb,Xy[Ry]=e=>{if(!Qy)if(q.getShared)jb();else return new vb(e,Ry);if(typeof e==`number`)return Qy[16+(e>=0?2*e:-2*e-1)];let t=Error(`No support for non-integer packed references yet`);throw e===void 0&&(t.incomplete=!0),t},Xy[28]=e=>{Yy||(Yy=new Map,Yy.id=0);let t=Yy.id++,n=K,r=G[K],i;i=r>>5==4?[]:{};let a={target:i};Yy.set(t,a);let o=e();return a.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(o)&&(K=n,i=o,Yy.set(t,{target:i}),o=e()),Object.assign(i,o)):(a.target=o,o)},Xy[28].handlesRead=!0,Xy[29]=e=>{let t=Yy.get(e);return t.used=!0,t.target},Xy[258]=e=>new Set(e),(Xy[259]=e=>(q.mapsAsObjects&&(q.mapsAsObjects=!1,eb=!0),e())).handlesRead=!0;function Sb(e,t){return typeof e==`string`?e+t:e instanceof Array?e.concat(t):Object.assign({},e,t)}function Cb(){if(!Qy)if(q.getShared)jb();else throw Error(`No packed values available`);return Qy}var wb=1399353956;Zy.push((e,t)=>{if(e>=225&&e<=255)return Sb(Cb().prefixes[e-224],t);if(e>=28704&&e<=32767)return Sb(Cb().prefixes[e-28672],t);if(e>=1879052288&&e<=2147483647)return Sb(Cb().prefixes[e-1879048192],t);if(e>=216&&e<=223)return Sb(t,Cb().suffixes[e-216]);if(e>=27647&&e<=28671)return Sb(t,Cb().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return Sb(t,Cb().suffixes[e-1811939328]);if(e==wb)return{packedValues:Qy,structures:Wy.slice(0),version:t};if(e==55799)return t});var Tb=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,Eb=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>`u`?{name:`BigUint64Array`}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>`u`?{name:`BigInt64Array`}:BigInt64Array,Float32Array,Float64Array],Db=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e<Eb.length;e++)Ob(Eb[e],Db[e]);function Ob(e,t){let n=`get`+e.name.slice(0,-5),r;typeof e==`function`?r=e.BYTES_PER_ELEMENT:e=null;for(let i=0;i<2;i++){if(!i&&r==1)continue;let a=r==2?1:r==4?2:r==8?3:0;Xy[i?t:t-4]=r==1||i==Tb?n=>{if(!e)throw Error(`Could not find typed array for code `+t);return!q.copyBuffers&&(r===1||r===2&&!(n.byteOffset&1)||r===4&&!(n.byteOffset&3)||r===8&&!(n.byteOffset&7))?new e(n.buffer,n.byteOffset,n.byteLength>>a):new e(Uint8Array.prototype.slice.call(n,0).buffer)}:r=>{if(!e)throw Error(`Could not find typed array for code `+t);let o=new DataView(r.buffer,r.byteOffset,r.byteLength),s=r.length>>a,c=new e(s),l=o[n];for(let e=0;e<s;e++)c[e]=l.call(o,e<<a,i);return c}}}function kb(){let e=Ab(),t=K+J();for(let t=2;t<e;t++){let e=Ab();K+=e}let n=K;return K=t,Jy=[ub(Ab()),ub(Ab())],Jy.position0=0,Jy.position1=0,Jy.postBundlePosition=K,K=n,J()}function Ab(){let e=G[K++]&31;if(e>23)switch(e){case 24:e=G[K++];break;case 25:e=$y.getUint16(K),K+=2;break;case 26:e=$y.getUint32(K),K+=4;break}return e}function jb(){if(q.getShared){let e=Mb(()=>(G=null,q.getShared()))||{},t=e.structures||[];q.sharedVersion=e.version,Qy=q.sharedValues=e.packedValues,Wy===!0?q.structures=Wy=t:Wy.splice.apply(Wy,[0,t.length].concat(t))}}function Mb(e){let t=My,n=K,r=Uy,i=Ky,a=qy,o=Gy,s=Hy,c=Yy,l=Jy,u=new Uint8Array(G.slice(0,My)),d=Wy,f=q,p=nb,m=e();return My=t,K=n,Uy=r,Ky=i,qy=a,Gy=o,Hy=s,Yy=c,Jy=l,G=u,nb=p,Wy=d,q=f,$y=new DataView(G.buffer,G.byteOffset,G.byteLength),m}function Nb(){G=null,Yy=null,Wy=null}var Pb=Array(147);for(let e=0;e<256;e++)Pb[e]=+(`1e`+Math.floor(45.15-e*.30103));var Fb=new ib({useRecords:!1}),Ib=Fb.decode;Fb.decodeMultiple;var Lb={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Rb;try{Rb=new TextEncoder}catch{}var zb,Bb,Vb=typeof globalThis==`object`&&globalThis.Buffer,Hb=Vb!==void 0,Ub=Hb?Vb.allocUnsafeSlow:Uint8Array,Wb=Hb?Vb:Uint8Array,Gb=256,Kb=Hb?4294967296:2144337920,qb,Y,Jb,X=0,Yb,Xb=null,Zb=61440,Qb=/[\u0080-\uFFFF]/,$b=Symbol(`record-id`),ex=class extends ib{constructor(e){super(e),this.offset=0;let t,n,r,i,a;e||={};let o=Wb.prototype.utf8Write?function(e,t){return Y.utf8Write(e,t,Y.byteLength-t)}:Rb&&Rb.encodeInto?function(e,t){return Rb.encodeInto(e,Y.subarray(t)).written}:!1,s=this,c=e.structures||e.saveStructures,l=e.maxSharedStructures;if(l??=c?128:0,l>8190)throw Error(`Maximum maxSharedStructure is 8190`);let u=e.sequential;u&&(l=0),this.structures||=[],this.saveStructures&&(this.saveShared=this.saveStructures);let d,f,p=e.sharedValues,m;if(p){m=Object.create(null);for(let e=0,t=p.length;e<t;e++)m[p[e]]=e}let h=[],g=0,_=0;this.mapEncode=function(e,t){if(this._keyMap&&!this._mapped)switch(e.constructor.name){case`Array`:e=e.map(e=>this.encodeKeys(e));break}return this.encode(e,t)},this.encode=function(o,c){if(Y||(Y=new Ub(8192),Jb=new DataView(Y.buffer,0,8192),X=0),Yb=Y.length-10,Yb-X<2048?(Y=new Ub(Y.length),Jb=new DataView(Y.buffer,0,Y.length),Yb=Y.length-10,X=0):c===512&&(X=X+7&2147483640),t=X,s.useSelfDescribedHeader&&(Jb.setUint32(X,3654940416),X+=3),a=s.structuredClone?new Map:null,s.bundleStrings&&typeof o!=`string`?(Xb=[],Xb.size=1/0):Xb=null,n=s.structures,n){if(n.uninitialized){let e=s.getShared()||{};s.structures=n=e.structures||[],s.sharedVersion=e.version;let t=s.sharedValues=e.packedValues;if(t){m={};for(let e=0,n=t.length;e<n;e++)m[t[e]]=e}}let e=n.length;if(e>l&&!u&&(e=l),!n.transitions){n.transitions=Object.create(null);for(let t=0;t<e;t++){let e=n[t];if(!e)continue;let r,i=n.transitions;for(let n=0,a=e.length;n<a;n++){i[$b]===void 0&&(i[$b]=t);let a=e[n];r=i[a],r||=i[a]=Object.create(null),i=r}i[$b]=t|1048576}}u||(n.nextId=e)}if(r&&=!1,i=n||[],f=m,e.pack){let t=new Map;if(t.values=[],t.encoder=s,t.maxValues=e.maxPrivatePackedValues||(m?16:1/0),t.objectMap=m||!1,t.samplingPackedValues=d,ox(o,t),t.values.length>0){Y[X++]=216,Y[X++]=51,rx(4);let e=t.values;v(e),rx(0),rx(0),f=Object.create(m||null);for(let t=0,n=e.length;t<n;t++)f[e[t]]=t}}qb=c&vx;try{if(qb)return;if(v(o),Xb&&dx(t,v),s.offset=X,a&&a.idsToInsert){X+=a.idsToInsert.length*2,X>Yb&&b(X),s.offset=X;let e=ux(Y.subarray(t,X),a.idsToInsert);return a=null,e}return c&512?(Y.start=t,Y.end=X,Y):Y.subarray(t,X)}finally{if(n){if(_<10&&_++,n.length>l&&(n.length=l),g>1e4)n.transitions=null,_=0,g=0,h.length>0&&(h=[]);else if(h.length>0&&!u){for(let e=0,t=h.length;e<t;e++)h[e][$b]=void 0;h=[]}}if(r&&s.saveShared){s.structures.length>l&&(s.structures=s.structures.slice(0,l));let e=Y.subarray(t,X);return s.updateSharedData()===!1?s.encode(o):e}c&1024&&(X=t)}},this.findCommonStringsToPack=()=>(d=new Map,m||=Object.create(null),e=>{let t=e&&e.threshold||4,n=this.pack?e.maxPrivatePackedValues||16:0;p||=this.sharedValues=[];for(let[e,i]of d)i.count>t&&(m[e]=n++,p.push(e),r=!0);for(;this.saveShared&&this.updateSharedData()===!1;);d=null});let v=n=>{X>Yb&&(Y=b(X));var r=typeof n,i;if(r===`string`){if(f){let t=f[n];if(t>=0){t<16?Y[X++]=t+224:(Y[X++]=198,t&1?v(15-t>>1):v(t-16>>1));return}else if(d&&!e.pack){let e=d.get(n);e?e.count++:d.set(n,{count:1})}}let r=n.length;if(Xb&&r>=4&&r<1024){if((Xb.size+=r)>Zb){let e,n=(Xb[0]?Xb[0].length*3+Xb[1].length:0)+10;X+n>Yb&&(Y=b(X+n)),Y[X++]=217,Y[X++]=223,Y[X++]=249,Y[X++]=Xb.position?132:130,Y[X++]=26,e=X-t,X+=4,Xb.position&&dx(t,v),Xb=[``,``],Xb.size=0,Xb.position=e}let e=Qb.test(n);Xb[+!e]+=n,Y[X++]=e?206:207,v(r);return}let a;a=r<32?1:r<256?2:r<65536?3:5;let s=r*3;if(X+s>Yb&&(Y=b(X+s)),r<64||!o){let e,t,o,s=X+a;for(e=0;e<r;e++)t=n.charCodeAt(e),t<128?Y[s++]=t:t<2048?(Y[s++]=t>>6|192,Y[s++]=t&63|128):(t&64512)==55296&&((o=n.charCodeAt(e+1))&64512)==56320?(t=65536+((t&1023)<<10)+(o&1023),e++,Y[s++]=t>>18|240,Y[s++]=t>>12&63|128,Y[s++]=t>>6&63|128,Y[s++]=t&63|128):(Y[s++]=t>>12|224,Y[s++]=t>>6&63|128,Y[s++]=t&63|128);i=s-X-a}else i=o(n,X+a,s);i<24?Y[X++]=96|i:i<256?(a<2&&Y.copyWithin(X+2,X+1,X+1+i),Y[X++]=120,Y[X++]=i):i<65536?(a<3&&Y.copyWithin(X+3,X+2,X+2+i),Y[X++]=121,Y[X++]=i>>8,Y[X++]=i&255):(a<5&&Y.copyWithin(X+5,X+3,X+3+i),Y[X++]=122,Jb.setUint32(X,i),X+=4),X+=i}else if(r===`number`)if(!this.alwaysUseFloat&&n>>>0===n)n<24?Y[X++]=n:n<256?(Y[X++]=24,Y[X++]=n):n<65536?(Y[X++]=25,Y[X++]=n>>8,Y[X++]=n&255):(Y[X++]=26,Jb.setUint32(X,n),X+=4);else if(!this.alwaysUseFloat&&n>>0===n)n>=-24?Y[X++]=31-n:n>=-256?(Y[X++]=56,Y[X++]=~n):n>=-65536?(Y[X++]=57,Jb.setUint16(X,~n),X+=2):(Y[X++]=58,Jb.setUint32(X,~n),X+=4);else if(!this.alwaysUseFloat&&n<0&&n>=-4294967296&&Math.floor(n)===n)Y[X++]=58,Jb.setUint32(X,-1-n),X+=4;else{let e;if((e=this.useFloat32)>0&&n<4294967296&&n>=-2147483648){Y[X++]=250,Jb.setFloat32(X,n);let t;if(e<4||(t=n*Pb[(Y[X]&127)<<1|Y[X+1]>>7])>>0===t){X+=4;return}else X--}Y[X++]=251,Jb.setFloat64(X,n),X+=8}else if(r===`object`)if(!n)Y[X++]=246;else{if(a){let e=a.get(n);if(e){if(Y[X++]=216,Y[X++]=29,Y[X++]=25,!e.references){let t=a.idsToInsert||=[];e.references=[],t.push(e)}e.references.push(X-t),X+=2;return}else a.set(n,{offset:X-t})}let e=n.constructor;if(e===Object)this.skipFunction===!0&&(n=Object.fromEntries([...Object.keys(n).filter(e=>typeof n[e]!=`function`).map(e=>[e,n[e]])])),y(n);else if(e===Array){i=n.length,i<24?Y[X++]=128|i:rx(i);for(let e=0;e<i;e++)v(n[e])}else if(e===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(Y[X++]=217,Y[X++]=1,Y[X++]=3),i=n.size,i<24?Y[X++]=160|i:i<256?(Y[X++]=184,Y[X++]=i):i<65536?(Y[X++]=185,Y[X++]=i>>8,Y[X++]=i&255):(Y[X++]=186,Jb.setUint32(X,i),X+=4),s.keyMap)for(let[e,t]of n)v(s.encodeKey(e)),v(t);else for(let[e,t]of n)v(e),v(t);else{for(let e=0,t=zb.length;e<t;e++){let t=Bb[e];if(n instanceof t){let t=zb[e],r=t.tag;r??=t.getTag&&t.getTag.call(this,n),r<24?Y[X++]=192|r:r<256?(Y[X++]=216,Y[X++]=r):r<65536?(Y[X++]=217,Y[X++]=r>>8,Y[X++]=r&255):r>-1&&(Y[X++]=218,Jb.setUint32(X,r),X+=4),t.encode.call(this,n,v,b);return}}if(n[Symbol.iterator]){if(qb){let e=Error(`Iterable should be serialized as iterator`);throw e.iteratorNotHandled=!0,e}Y[X++]=159;for(let e of n)v(e);Y[X++]=255;return}if(n[Symbol.asyncIterator]||ax(n)){let e=Error(`Iterable/blob should be serialized as iterator`);throw e.iteratorNotHandled=!0,e}if(this.useToJSON&&n.toJSON){let e=n.toJSON();if(e!==n)return v(e)}y(n)}}else if(r===`boolean`)Y[X++]=n?245:244;else if(r===`bigint`){if(n<BigInt(1)<<BigInt(64)&&n>=0)Y[X++]=27,Jb.setBigUint64(X,n);else if(n>-(BigInt(1)<<BigInt(64))&&n<0)Y[X++]=59,Jb.setBigUint64(X,-n-BigInt(1));else if(this.largeBigIntToFloat)Y[X++]=251,Jb.setFloat64(X,Number(n));else{n>=BigInt(0)?Y[X++]=194:(Y[X++]=195,n=BigInt(-1)-n);let e=[];for(;n;)e.push(Number(n&BigInt(255))),n>>=BigInt(8);lx(new Uint8Array(e.reverse()),b);return}X+=8}else if(r===`undefined`)Y[X++]=247;else throw Error(`Unknown type: `+r)},y=this.useRecords===!1?this.variableMapSize?e=>{let t=Object.keys(e),n=Object.values(e),r=t.length;if(r<24?Y[X++]=160|r:r<256?(Y[X++]=184,Y[X++]=r):r<65536?(Y[X++]=185,Y[X++]=r>>8,Y[X++]=r&255):(Y[X++]=186,Jb.setUint32(X,r),X+=4),s.keyMap)for(let e=0;e<r;e++)v(s.encodeKey(t[e])),v(n[e]);else for(let e=0;e<r;e++)v(t[e]),v(n[e])}:e=>{Y[X++]=185;let n=X-t;X+=2;let r=0;if(s.keyMap)for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(v(s.encodeKey(t)),v(e[t]),r++);else for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(v(t),v(e[t]),r++);Y[n+++t]=r>>8,Y[n+t]=r&255}:(e,t)=>{let n,a=i.transitions||=Object.create(null),o=0,s=0,c,u;if(this.keyMap){u=Object.keys(e).map(e=>this.encodeKey(e)),s=u.length;for(let e=0;e<s;e++){let t=u[e];n=a[t],n||(n=a[t]=Object.create(null),o++),a=n}}else for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&(n=a[t],n||(a[$b]&1048576&&(c=a[$b]&65535),n=a[t]=Object.create(null),o++),a=n,s++);let d=a[$b];if(d!==void 0)d&=65535,Y[X++]=217,Y[X++]=d>>8|224,Y[X++]=d&255;else if(u||=a.__keys__||=Object.keys(e),c===void 0?(d=i.nextId++,d||(d=0,i.nextId=1),d>=Gb&&(i.nextId=(d=l)+1)):d=c,i[d]=u,d<l){Y[X++]=217,Y[X++]=d>>8|224,Y[X++]=d&255,a=i.transitions;for(let e=0;e<s;e++)(a[$b]===void 0||a[$b]&1048576)&&(a[$b]=d),a=a[u[e]];a[$b]=d|1048576,r=!0}else{if(a[$b]=d,Jb.setUint32(X,3655335680),X+=3,o&&(g+=_*o),h.length>=Gb-l&&(h.shift()[$b]=void 0),h.push(a),rx(s+2),v(57344+d),v(u),t)return;for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&v(e[t]);return}if(s<24?Y[X++]=128|s:rx(s),!t)for(let t in e)(typeof e.hasOwnProperty!=`function`||e.hasOwnProperty(t))&&v(e[t])},b=e=>{let n;if(e>16777216){if(e-t>Kb)throw Error(`Encoded buffer would be larger than maximum buffer size`);n=Math.min(Kb,Math.round(Math.max((e-t)*(e>67108864?1.25:2),4194304)/4096)*4096)}else n=(Math.max(e-t<<2,Y.length-1)>>12)+1<<12;let r=new Ub(n);return Jb=new DataView(r.buffer,0,n),Y.copy?Y.copy(r,0,t,e):r.set(Y.slice(t,e)),X-=t,t=0,Yb=r.length-10,Y=r},ee=100,x=1e3;this.encodeAsIterable=function(e,t){return ie(e,t,te)},this.encodeAsAsyncIterable=function(e,t){return ie(e,t,ae)};function*te(e,n,r){let i=e.constructor;if(i===Object){let t=s.useRecords!==!1;t?y(e,!0):tx(Object.keys(e).length,160);for(let r in e){let i=e[r];t||v(r),i&&typeof i==`object`?n[r]?yield*te(i,n[r]):yield*ne(i,n,r):v(i)}}else if(i===Array){let r=e.length;rx(r);for(let i=0;i<r;i++){let r=e[i];r&&(typeof r==`object`||X-t>ee)?n.element?yield*te(r,n.element):yield*ne(r,n,`element`):v(r)}}else if(e[Symbol.iterator]&&!e.buffer){Y[X++]=159;for(let r of e)r&&(typeof r==`object`||X-t>ee)?n.element?yield*te(r,n.element):yield*ne(r,n,`element`):v(r);Y[X++]=255}else ax(e)?(tx(e.size,64),yield Y.subarray(t,X),yield e,re()):e[Symbol.asyncIterator]?(Y[X++]=159,yield Y.subarray(t,X),yield e,re(),Y[X++]=255):v(e);r&&X>t?yield Y.subarray(t,X):X-t>ee&&(yield Y.subarray(t,X),re())}function*ne(e,n,r){let i=X-t;try{v(e),X-t>ee&&(yield Y.subarray(t,X),re())}catch(a){if(a.iteratorNotHandled)n[r]={},X=t+i,yield*te.call(this,e,n[r]);else throw a}}function re(){ee=x,s.encode(null,vx)}function ie(e,t,n){return ee=t&&t.chunkThreshold?x=t.chunkThreshold:100,e&&typeof e==`object`?(s.encode(null,vx),n(e,s.iterateProperties||={},!0)):[s.encode(e)]}async function*ae(e,t){for(let n of te(e,t,!0)){let e=n.constructor;if(e===Wb||e===Uint8Array)yield n;else if(ax(n)){let e=n.stream().getReader(),t;for(;!(t=await e.read()).done;)yield t.value}else if(n[Symbol.asyncIterator])for await(let e of n)re(),e?yield*ae(e,t.async||={}):yield s.encode(e);else yield n}}}useBuffer(e){Y=e,Jb=new DataView(Y.buffer,Y.byteOffset,Y.byteLength),X=0}clearSharedData(){this.structures&&=[],this.sharedValues&&=void 0}updateSharedData(){let e=this.sharedVersion||0;this.sharedVersion=e+1;let t=this.structures.slice(0),n=new nx(t,this.sharedValues,this.sharedVersion),r=this.saveShared(n,t=>(t&&t.version||0)==e);return r===!1?(n=this.getShared()||{},this.structures=n.structures||[],this.sharedValues=n.packedValues,this.sharedVersion=n.version,this.structures.nextId=this.structures.length):t.forEach((e,t)=>this.structures[t]=e),r}};function tx(e,t){e<24?Y[X++]=t|e:e<256?(Y[X++]=t|24,Y[X++]=e):e<65536?(Y[X++]=t|25,Y[X++]=e>>8,Y[X++]=e&255):(Y[X++]=t|26,Jb.setUint32(X,e),X+=4)}var nx=class{constructor(e,t,n){this.structures=e,this.packedValues=t,this.version=n}};function rx(e){e<24?Y[X++]=128|e:e<256?(Y[X++]=152,Y[X++]=e):e<65536?(Y[X++]=153,Y[X++]=e>>8,Y[X++]=e&255):(Y[X++]=154,Jb.setUint32(X,e),X+=4)}var ix=typeof Blob>`u`?function(){}:Blob;function ax(e){if(e instanceof ix)return!0;let t=e[Symbol.toStringTag];return t===`Blob`||t===`File`}function ox(e,t){switch(typeof e){case`string`:if(e.length>3){if(t.objectMap[e]>-1||t.values.length>=t.maxValues)return;let n=t.get(e);if(n)++n.count==2&&t.values.push(e);else if(t.set(e,{count:1}),t.samplingPackedValues){let n=t.samplingPackedValues.get(e);n?n.count++:t.samplingPackedValues.set(e,{count:1})}}break;case`object`:if(e)if(e instanceof Array)for(let n=0,r=e.length;n<r;n++)ox(e[n],t);else{let r=!t.encoder.useRecords;for(var n in e)e.hasOwnProperty(n)&&(r&&ox(n,t),ox(e[n],t))}break;case`function`:console.log(e)}}var sx=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;Bb=[Date,Set,Error,RegExp,vb,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>`u`?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>`u`?function(){}:BigInt64Array,Float32Array,Float64Array,nx],zb=[{tag:1,encode(e,t){let n=e.getTime()/1e3;(this.useTimestamp32||e.getMilliseconds()===0)&&n>=0&&n<4294967296?(Y[X++]=26,Jb.setUint32(X,n),X+=4):(Y[X++]=251,Jb.setFloat64(X,n),X+=8)}},{tag:258,encode(e,t){t(Array.from(e))}},{tag:27,encode(e,t){t([e.name,e.message])}},{tag:27,encode(e,t){t([`RegExp`,e.source,e.flags])}},{getTag(e){return e.tag},encode(e,t){t(e.value)}},{encode(e,t,n){lx(e,n)}},{getTag(e){if(e.constructor===Uint8Array&&(this.tagUint8Array||Hb&&this.tagUint8Array!==!1))return 64},encode(e,t,n){lx(e,n)}},cx(68,1),cx(69,2),cx(70,4),cx(71,8),cx(72,1),cx(77,2),cx(78,4),cx(79,8),cx(85,4),cx(86,8),{encode(e,t){let n=e.packedValues||[],r=e.structures||[];if(n.values.length>0){Y[X++]=216,Y[X++]=51,rx(4);let e=n.values;t(e),rx(0),rx(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let t=0,n=e.length;t<n;t++)packedObjectMap[e[t]]=t}if(r){Jb.setUint32(X,3655335424),X+=3;let n=r.slice(0);n.unshift(57344),n.push(new vb(e.version,1399353956)),t(n)}else t(new vb(e.version,1399353956))}}];function cx(e,t){return!sx&&t>1&&(e-=4),{tag:e,encode:function(e,t){let n=e.byteLength,r=e.byteOffset||0,i=e.buffer||e;t(Hb?Vb.from(i,r,n):new Uint8Array(i,r,n))}}}function lx(e,t){let n=e.byteLength;n<24?Y[X++]=64+n:n<256?(Y[X++]=88,Y[X++]=n):n<65536?(Y[X++]=89,Y[X++]=n>>8,Y[X++]=n&255):(Y[X++]=90,Jb.setUint32(X,n),X+=4),X+n>=Y.length&&t(X+n),Y.set(e.buffer?e:new Uint8Array(e),X),X+=n}function ux(e,t){let n,r=t.length*2,i=e.length-r;t.sort((e,t)=>e.offset>t.offset?1:-1);for(let n=0;n<t.length;n++){let r=t[n];r.id=n;for(let t of r.references)e[t++]=n>>8,e[t]=n&255}for(;n=t.pop();){let t=n.offset;e.copyWithin(t+r,t,i),r-=2;let a=t+r;e[a++]=216,e[a++]=28,i=t}return e}function dx(e,t){Jb.setUint32(Xb.position+e,X-Xb.position-e+1);let n=Xb;Xb=null,t(n[0]),t(n[1])}var fx=new ex({useRecords:!1}),px=fx.encode;fx.encodeAsIterable,fx.encodeAsAsyncIterable;var{NEVER:mx,ALWAYS:hx,DECIMAL_ROUND:gx,DECIMAL_FIT:_x}=Lb,vx=2048,yx=class e{static encoder=new ex({tagUint8Array:!1});decode(t){return e.encoder.decode(t)}encode(t){return e.encoder.encode(t)}},bx=class e{static defaultStringSignatureEncoder(){return new Ay(fg.defaultBytesToStringEncoder())}static defaultStringPublicKeyEncryptionEncoder(){return Wv.createBase64HCVPkeEncoder()}static cryptoBinaryEncoder=new yx;static getCryptoBinaryEncoder(){return e.cryptoBinaryEncoder}},xx=class e{static encoder=bx.getCryptoBinaryEncoder();static logger=k.getLogger([`utils`]);static computeMicroblockHashFromHeader(t){let n=e.encodeMicroblockHeader(t);return N.Hashes.sha256AsBinary(n)}static checkHeaderList(t){let n=t.length;if(n===0)return{valid:!0,hashes:[]};if(n===1)return{valid:!0,hashes:[N.Hashes.sha256AsBinary(t[0])]};let r=[],i=null,a=k.getProviderLogger();for(let n of t.reverse()){let t=N.Hashes.sha256AsBinary(n);if(i&&!A.binaryIsEqual(t,i))return a.error(`Received headers mismatch: Expected ${A.binaryToHexa(i)}, got ${A.binaryToHexa(t)}: aborting verification`),{valid:!1,hashes:[]};r.push(t),i=e.previousHashFromHeader(n)}return{valid:!0,hashes:r}}static previousHashFromHeader(t){return e.decodeMicroblockHeader(t).previousHash}static encodeVirtualBlockchainInfo(e){return this.encodeObjectToBinary(z(Vh,e))}static decodeVirtualBlockchainInfo(e){return z(Vh,this.decodeObjectFromBinary(e))}static encodeVirtualBlockchainState(e){return this.encodeObjectToBinary(z(Bh,e))}static decodeVirtualBlockchainState(e){return z(Bh,this.decodeObjectFromBinary(e))}static encodeMicroblockBody(e){return this.encodeObjectToBinary(z(Sh,e))}static decodeMicroblockBody(e){return z(Sh,this.decodeObjectFromBinary(e))}static encodeSection(e){return this.encodeObjectToBinary(z(xh,e))}static decodeSection(e){return z(xh,this.decodeObjectFromBinary(e))}static encodeMicroblockHeader(e){return this.encodeObjectToBinary(z(Mm,e))}static decodeMicroblockHeader(t){let n=this.decodeObjectFromBinary(t),r=z(Mm,n);if(!A.binaryIsEqual(n.bodyHash,r.bodyHash))throw e.logger.error(`Modified validated object: ${JSON.stringify(n)} vs ${JSON.stringify(r)}`),Error(`Modified body hash detected during deserialization: ${n.bodyHash} vs ${r.bodyHash}`);return r}static encodeEscrowParameters(e){return this.encodeObjectToBinary(z(Gh,e))}static decodeEscrowParameters(e){return z(Gh,this.decodeObjectFromBinary(e))}static encodeEscrowLock(e){return this.encodeObjectToBinary(z(Kh,e))}static decodeEscrowLock(e){return z(Kh,this.decodeObjectFromBinary(e))}static encodeVestingParameters(e){return this.encodeObjectToBinary(z(qh,e))}static decodeVestingParameters(e){return z(qh,this.decodeObjectFromBinary(e))}static encodeVestingLock(e){return this.encodeObjectToBinary(z(Jh,e))}static decodeVestingLock(e){return z(Jh,this.decodeObjectFromBinary(e))}static encodeNodeStakingParameters(e){return this.encodeObjectToBinary(z(Yh,e))}static decodeNodeStakingParameters(e){return z(Yh,this.decodeObjectFromBinary(e))}static encodeNodeStakingLock(e){return this.encodeObjectToBinary(z(Xh,e))}static decodeNodeStakingLock(e){return z(Xh,this.decodeObjectFromBinary(e))}static encodeLock(e){return this.encodeObjectToBinary(z(Zh,e))}static decodeLock(e){return z(Zh,this.decodeObjectFromBinary(e))}static encodeAccountBreakdown(e){return this.encodeObjectToBinary(z(Qh,e))}static decodeAccountBreakdown(e){return z(Qh,this.decodeObjectFromBinary(e))}static encodeAccountState(e){return this.encodeObjectToBinary(z($h,e))}static decodeAccountState(e){return z($h,this.decodeObjectFromBinary(e))}static encodeAccountInformation(e){return this.encodeObjectToBinary(z(eg,e))}static decodeAccountInformation(e){return z(eg,this.decodeObjectFromBinary(e))}static encodeMicroblockInformation(e){return this.encodeObjectToBinary(z(Hh,e))}static decodeMicroblockInformation(e){return z(Hh,this.decodeObjectFromBinary(e))}static encodeObjectToBinary(t){return e.encoder.encode(t)}static decodeObjectFromBinary(t){return e.encoder.decode(t)}},Sx=86400,Cx=class{constructor(e){this.retentionPolicy=e,this.retentionPolicy.sort((e,t)=>e.maximumNumberOfDays-t.maximumNumberOfDays)}getNumberOfDaysOfStorage(e,t){return t>0?Math.max(1,Math.round((t-e)/Sx)):this.retentionPolicy[this.retentionPolicy.length-1].maximumNumberOfDays}getStorageCost(e,t){return this.getBreakdown(e,t).reduce((e,t)=>e+t.costInGasAtoms,0)}getBreakdown(e,t){let n=[];for(let r=0,i=0;i<t;r++){let a=this.retentionPolicy[r],o,s,c;a==null?(o=t-i,s=0,c=1):(o=Math.min(a.maximumNumberOfDays,t)-i,s=a.retentionRatio,c=a.dayDivisor);let l=Math.floor(e*o*s/100/c);n.push({numberOfDays:o,retentionRatio:s,costInGasAtoms:l}),i+=o}return n}},wx=class e{static DEFAULT_GAS_PRICE=hn.createAtomic(1);constructor(e){this.provider=e}async computeFees(t,n,r,i=A.getTimestampInSeconds()){if(r<0)throw Error(`Invalid expiration day`);let a=n.getGasPrice(),o=a.isZero()?e.DEFAULT_GAS_PRICE:a,s=await this.computeGas(t,n,r,i);return hn.createAtomic(s*o.getAmountAsAtomic())}async computeGas(e,t,n,r=A.getTimestampInSeconds()){let i=1*this.computeSizeInBytesOfMicroblock(t)*mr,a=new Cx((await this.provider.getProtocolState()).getRetentionPolicy()),o=a.getNumberOfDaysOfStorage(r,n),s=a.getStorageCost(i,o),c=this.getAdditionalCosts(e);return Math.floor(s/mr)+c+fr}getAdditionalCosts(e){switch(e){case Ya.SECP256K1:return 1e3;case Ya.ML_DSA_65:return 5e3;case Ya.PKMS_SECP256K1:return 0}return 0}computeSizeInBytesOfMicroblock(e){let t=e.getAllSections();if(t.length===0)return 0;let n=t[t.length-1].type===O.SIGNATURE?t.slice(0,t.length-1):t;return this.getSizeOfListOfSections(n)}getSizeOfListOfSections(e){return e.reduce((e,t)=>e+xx.encodeSection(t).length,0)}},Tx=class{static getGenesisFeesCalculationFormula(e){return new wx(e)}static getFeesCalculationFormulaByVersion(e,t){return this.getGenesisFeesCalculationFormula(e)}},Ex=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({signatureSchemeId:0,publicKeyHeight:0})}toObject(){return this.internalState}updateSignatureScheme(e){this.internalState.signatureSchemeId=e}updatePublicKeyHeight(e){this.internalState.publicKeyHeight=e}getPublicKeyHeight(){return this.internalState.publicKeyHeight}getPublicKeySchemeId(){return this.internalState.signatureSchemeId}},Dx=class e{constructor(e){this.hash=e}static from(t){let n=typeof t==`string`,r=t instanceof Uint8Array;if(!n&&!r)throw TypeError(`Expected hash of type string or Uint8Array: got ${typeof t}`);let i=fg.bytesToHexEncoder();return new e(typeof t==`string`?i.decode(t):t)}static fromHex(t){return new e(fg.bytesToHexEncoder().decode(t))}encode(e=new mg){return e.encode(this.hash).toUpperCase()}toBytes(){return new Uint8Array(this.hash)}equals(e){return this.hash.every((t,n)=>t===e.hash[n])}},Ox=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({organizationId:A.getNullHash(),descriptionHeight:0})}clone(){return new e({...this.internalState})}toObject(){return this.internalState}setOrganizationId(e){this.internalState.organizationId=e}setDescriptionHeight(e){this.internalState.descriptionHeight=e}getOrganizationId(){return Dx.from(this.internalState.organizationId)}getDescriptionHeight(){return this.internalState.descriptionHeight}},kx=class e{static UNDEFINED_APPLICATION_ID=new Uint8Array;constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({allowedAdditionalWriters:[],actors:[],allowedPkeSchemeIds:[],allowedSignatureSchemeIds:[],applicationId:this.UNDEFINED_APPLICATION_ID,channels:[]})}getAdditionalAllowedWriters(){return this.internalState.allowedAdditionalWriters}addAdditionalWriter(e){this.internalState.allowedAdditionalWriters.push(e)}toObject(){return this.internalState}clone(){return new e(structuredClone(this.internalState))}createActor(e){this.internalState.actors.push(e)}createActorWithId(e,t){if(this.isActorDefinedById(e))throw new oe(`Id: ${e}`);this.internalState.actors[e]=t}setAllowedSignatureSchemeIds(e){this.internalState.allowedSignatureSchemeIds=e}setAllowedPkeSchemeIds(e){this.internalState.allowedPkeSchemeIds=e}setApplicationId(e){this.internalState.applicationId=e}isChannelDefinedById(e){return this.internalState.channels[e]!==void 0}isChannelDefinedByName(e){return this.internalState.channels.some(t=>t.name===e)}createChannel(e){if(!this.isActorDefinedById(e.creatorId))throw new oe(`Id: ${e.creatorId}`);if(this.isChannelDefinedByName(e.name))throw new ae(e.name);this.internalState.channels.push(e)}createChannelWithId(e,t){if(this.isChannelDefinedById(e))throw new ae(`Id: ${e}`);if(this.isActorDefinedById(t.creatorId))throw new oe(`Id: ${t.creatorId}`);if(this.isChannelDefinedByName(t.name))throw new ae(t.name);this.internalState.channels[e]=t}isActorDefinedByName(e){return this.internalState.actors.some(t=>t.name===e)}isActorDefinedById(e){return this.internalState.actors[e]!==void 0}getAllowedSignatureSchemes(){return this.internalState.allowedSignatureSchemeIds}getAllowedPkeSchemes(){return this.internalState.allowedPkeSchemeIds}getNumberOfActors(){return this.internalState.actors.length}getActorById(e){let t=this.internalState.actors[e];if(t===void 0)throw new oe(`ID: ${e}`);return t}getNumberOfChannels(){return this.internalState.channels.length}getApplicationId(){return Dx.from(this.internalState.applicationId)}getChannelIdFromChannelName(e){let t=this.internalState.channels.findIndex(t=>t.name===e);if(t===void 0)throw new se(e);return t}getChannelCreatorIdFromChannelId(e){return this.getChannelFromChannelId(e).creatorId}getChannelFromChannelId(e){let t=this.internalState.channels[e];if(t===void 0)throw new se(`ID: ${e}`);return t}getActorByName(e){let t=this.internalState.actors.find(t=>t.name===e);if(t===void 0)throw new oe(e);return t}getActorIdByName(e){let t=this.internalState.actors.findIndex(t=>t.name===e);if(t===-1)throw new oe(e);return t}updateActor(e,t){if(!this.isActorDefinedById(e))throw new oe(`Id: ${e}`);this.internalState.actors[e]=t}updateChannel(e,t){if(!this.isChannelDefinedById(e))throw new se(`Id: ${e}`);this.internalState.channels[e]=t}getAllActors(){return this.internalState.actors}getAllChannels(){return this.internalState.channels}},Ax=function(e){return e.INITIAL_PROTOCOL_VERSION_NAME=`Clermont`,e}(Ax||{}),jx=class e{constructor(e){this.internalState=e}static createFromObject(t){let n=im(Ch,t);if(n.success)return new e(n.output);throw Error(`Provided internal state is not valid: ${n.issues}`)}static createInitialState(){return new e({organizationId:A.getNullHash(),currentProtocolVariables:{protocolVersionName:Ax.INITIAL_PROTOCOL_VERSION_NAME,protocolVersion:1,feesCalculationVersion:1,globalStateUpdaterVersion:1,applicationLedgerInternalStateUpdaterVersion:1,applicationInternalStateUpdaterVersion:1,organizationInternalStateUpdaterVersion:1,validatorNodeInternalStateUpdaterVersion:1,accountInternalStateUpdaterVersion:1,protocolInternalStateUpdaterVersion:1,minimumNodeStakingAmountInAtomics:hn.create(1e6).getAmountAsAtomic(),maximumNodeStakingAmountInAtomics:hn.create(1e7).getAmountAsAtomic(),unstakingDelayInDays:30,maxBlockSizeInBytes:4194304,retentionPolicy:[{retentionRatio:100,maximumNumberOfDays:366,dayDivisor:366},{retentionRatio:50,maximumNumberOfDays:366*5,dayDivisor:366},{retentionRatio:20,maximumNumberOfDays:366*10,dayDivisor:366},{retentionRatio:100,maximumNumberOfDays:3661,dayDivisor:1}],abciVersion:1},protocolUpdates:[]})}getAbciVersion(){return this.internalState.currentProtocolVariables.abciVersion}getMaximumBlockSizeInBytes(){return this.internalState.currentProtocolVariables.maxBlockSizeInBytes}getProtocolVariables(){return this.internalState.currentProtocolVariables}getApplicationLedgerInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.applicationLedgerInternalStateUpdaterVersion}getApplicationInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.applicationInternalStateUpdaterVersion}getOrganizationInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.organizationInternalStateUpdaterVersion}getValidatorNodeInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.validatorNodeInternalStateUpdaterVersion}getAccountInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.accountInternalStateUpdaterVersion}getProtocolInternalStateUpdaterVersion(){return this.internalState.currentProtocolVariables.protocolInternalStateUpdaterVersion}getMinimumNodeStakingAmountInAtomics(){return this.internalState.currentProtocolVariables.minimumNodeStakingAmountInAtomics}getMaximumNodeStakingAmountInAtomics(){return this.internalState.currentProtocolVariables.maximumNodeStakingAmountInAtomics}getUnstakingDelayInDays(){return this.internalState.currentProtocolVariables.unstakingDelayInDays}getRetentionPolicy(){return this.internalState.currentProtocolVariables.retentionPolicy}toObject(){return this.internalState}getFeesCalculationVersion(){return this.internalState.currentProtocolVariables.feesCalculationVersion}setProtocolVersion(e){this.internalState.currentProtocolVariables.protocolVersion=e}setProtocolVersionName(e){this.internalState.currentProtocolVariables.protocolVersionName=e}setProtocolVariables(e){this.internalState.currentProtocolVariables=e}setOrganizationId(e){this.internalState.organizationId=e}},Mx=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({accountId:A.getNullHash(),descriptionHeight:0})}toObject(){return this.internalState}getAccountIdAsBytes(){return this.internalState.accountId}getAccountId(){return Dx.from(this.internalState.accountId)}setAccountId(e){return this.internalState.accountId=e}getDescriptionHeight(){return this.internalState.descriptionHeight}updateDescriptionHeight(e){this.internalState.descriptionHeight=e}},Nx=class e{constructor(e){this.internalState=e}static createFromObject(t){return new e(t)}static createInitialState(){return new e({cometbftPublicKeyDeclarationHeight:0,lastKnownApprovalStatus:!1,organizationId:A.getNullHash(),rpcEndpointHeight:0})}toObject(){return this.internalState}getOrganizationId(){return Dx.from(this.internalState.organizationId)}getLastKnownApprovalStatus(){return this.internalState.lastKnownApprovalStatus}getCometbftPublicKeyDeclarationHeight(){return this.internalState.cometbftPublicKeyDeclarationHeight}getRpcEndpointHeight(){return this.internalState.rpcEndpointHeight}clone(){return structuredClone(this)}setApprovalStatus(e){this.internalState.lastKnownApprovalStatus=e}setCometbftPublicKeyDeclarationHeight(e){this.internalState.cometbftPublicKeyDeclarationHeight=e}setOrganizationId(e){this.internalState.organizationId=e}setRpcEndpointDeclarationHeight(e){this.internalState.rpcEndpointHeight=e}},Px=class{static createInternalStateFromObject(e,t){switch(e){case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:return jx.createFromObject(t);case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:return Ex.createFromObject(t);case U.APPLICATION_VIRTUAL_BLOCKCHAIN:return Ox.createFromObject(t);case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:return kx.createFromObject(t);case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:return Mx.createFromObject(t);case U.NODE_VIRTUAL_BLOCKCHAIN:return Nx.createFromObject(t);default:throw Error(`Unknown virtual blockchain type: ${e}`)}}},Fx=class{constructor(){}async updateState(e,t,n){let r=Ex.createFromObject({...t.toObject()}),i=n.getAllSections();for(let e of i)switch(e.type){case O.ACCOUNT_PUBLIC_KEY:await this.publicKeyCallback(r,n,e);break;case O.ACCOUNT_TOKEN_ISSUANCE:await this.tokenIssuanceCallback(r,n,e);break;case O.ACCOUNT_CREATION:await this.creationCallback(r,n,e);break;case O.ACCOUNT_TRANSFER:await this.transferCallback(r,n,e);break;case O.ACCOUNT_VESTING_TRANSFER:await this.vestingTransferCallback(r,n,e);break;case O.ACCOUNT_ESCROW_TRANSFER:await this.escrowTransferCallback(r,n,e);break;case O.ACCOUNT_STAKE:await this.stakeCallback(r,n,e);break;case O.SIGNATURE:await this.signatureCallback(r,n,e);break}return r}async publicKeyCallback(e,t,n){e.updatePublicKeyHeight(t.getHeight()),e.updateSignatureScheme(n.schemeId)}async tokenIssuanceCallback(e,t,n){if(n.amount!=0x5af3107a4000)throw Error(`the amount of the initial token issuance is not the expected one`)}async creationCallback(e,t,n){}async transferCallback(e,t,n){}async vestingTransferCallback(e,t,n){if(n.cliffDurationDays<0)throw Error(`The cliff duration must be greater than or equal to 0`);if(n.vestingDurationDays<=0)throw Error(`The vesting duration must be greater than 0`);if(n.amount<=0)throw Error(`The amount must be greater than 0`)}async escrowTransferCallback(e,t,n){}async stakeCallback(e,t,n){}async signatureCallback(e,t,n){}},Ix=class{updateState(e,t,n){let r=t.clone();for(let e of n.getAllSections())e.type===O.APP_CREATION&&r.setOrganizationId(e.organizationId),e.type===O.APP_DESCRIPTION&&r.setDescriptionHeight(n.getHeight());return r}},Lx={[O.AUXILIARY_SIGNATURE]:`AUXILIARY_SIGNATURE`,[O.SIGNATURE]:`SIGNATURE`,[O.ALLOWED_ADDITIONAL_WRITER]:`ALLOWED_ADDITIONAL_WRITER_CREATION`,[O.CUSTOM]:`CUSTOM`,[O.PROTOCOL_CREATION]:`PROTOCOL_CREATION`,[O.PROTOCOL_UPDATE]:`PROTOCOL_UPDATE`,[O.PROTOCOL_VARIABLES]:`PROTOCOL_VARIABLES`,[O.ACCOUNT_PUBLIC_KEY]:`ACCOUNT_PUBLIC_KEY`,[O.ACCOUNT_TOKEN_ISSUANCE]:`ACCOUNT_TOKEN_ISSUANCE`,[O.ACCOUNT_CREATION]:`ACCOUNT_CREATION`,[O.ACCOUNT_TRANSFER]:`ACCOUNT_TRANSFER`,[O.ACCOUNT_VESTING_TRANSFER]:`ACCOUNT_VESTING_TRANSFER`,[O.ACCOUNT_ESCROW_TRANSFER]:`ACCOUNT_ESCROW_TRANSFER`,[O.ACCOUNT_ESCROW_SETTLEMENT]:`ACCOUNT_ESCROW_SETTLEMENT`,[O.ACCOUNT_STAKE]:`ACCOUNT_STAKE`,[O.ACCOUNT_UNSTAKE]:`ACCOUNT_UNSTAKE`,[O.VN_CREATION]:`VN_CREATION`,[O.VN_COMETBFT_PUBLIC_KEY_DECLARATION]:`VN_COMETBFT_PUBLIC_KEY_DECLARATION`,[O.VN_RPC_ENDPOINT]:`VN_RPC_ENDPOINT`,[O.VN_APPROVAL]:`VN_APPROVAL`,[O.VN_SLASHING_CANCELLATION]:`VN_SLASHING_CANCELLATION`,[O.ORG_CREATION]:`ORG_CREATION`,[O.ORG_DESCRIPTION]:`ORG_DESCRIPTION`,[O.APP_CREATION]:`APP_CREATION`,[O.APP_DESCRIPTION]:`APP_DESCRIPTION`,[O.APP_LEDGER_ALLOWED_SIG_SCHEMES]:`APP_LEDGER_ALLOWED_SIG_SCHEMES`,[O.APP_LEDGER_ALLOWED_PKE_SCHEMES]:`APP_LEDGER_ALLOWED_PKE_SCHEMES`,[O.APP_LEDGER_CREATION]:`APP_LEDGER_CREATION`,[O.APP_LEDGER_ACTOR_CREATION]:`APP_LEDGER_ACTOR_CREATION`,[O.APP_LEDGER_CHANNEL_CREATION]:`APP_LEDGER_CHANNEL_CREATION`,[O.APP_LEDGER_SHARED_SECRET]:`APP_LEDGER_SHARED_SECRET`,[O.APP_LEDGER_CHANNEL_INVITATION]:`APP_LEDGER_CHANNEL_INVITATION`,[O.APP_LEDGER_ACTOR_SUBSCRIPTION]:`APP_LEDGER_ACTOR_SUBSCRIPTION`,[O.APP_LEDGER_PUBLIC_CHANNEL_DATA]:`APP_LEDGER_PUBLIC_CHANNEL_DATA`,[O.APP_LEDGER_PRIVATE_CHANNEL_DATA]:`APP_LEDGER_PRIVATE_CHANNEL_DATA`,[O.APP_LEDGER_AUTHOR]:`APP_LEDGER_AUTHOR`,[O.APP_LEDGER_ENDORSEMENT_REQUEST]:`APP_LEDGER_ENDORSEMENT_REQUEST`},Rx=class{static getSectionLabelFromSection(e){return this.getSectionLabelFromSectionType(e.type)}static getSectionLabelFromSectionType(e){return Lx[e]}},zx=class e{logger=k.getInternalStateUpdaterLogger(e.name);async updateState(e,t,n){let r=t.clone(),i=n.getHeight();for(let a of n.getAllSections())r=await this.updateStateFromSection(e,t,a,i);return r}async updateStateFromSection(e,t,n,r){let i=t;switch(n.type){case O.APP_LEDGER_ALLOWED_SIG_SCHEMES:await this.allowedSignatureSchemesCallback(n,i);break;case O.APP_LEDGER_ALLOWED_PKE_SCHEMES:await this.allowedPkeSchemesCallback(n,i);break;case O.APP_LEDGER_CREATION:await this.declarationCallback(n,i);break;case O.APP_LEDGER_ACTOR_CREATION:await this.actorCreationCallback(n,i);break;case O.APP_LEDGER_ACTOR_SUBSCRIPTION:await this.actorSubscriptionCallback(r,n,i);break;case O.APP_LEDGER_CHANNEL_CREATION:await this.channelCreationCallback(n,i);break;case O.APP_LEDGER_SHARED_SECRET:await this.sharedSecretCallback(r,n,i);break;case O.APP_LEDGER_CHANNEL_INVITATION:await this.invitationCallback(r,n,i);break;case O.APP_LEDGER_PUBLIC_CHANNEL_DATA:await this.publicChannelDataCallback(n,i);break;case O.APP_LEDGER_PRIVATE_CHANNEL_DATA:await this.privateChannelDataCallback(n,i);break;case O.ALLOWED_ADDITIONAL_WRITER:i.addAdditionalWriter(n.allowedWriterAccountId);break;case O.SIGNATURE:await this.endorserSignatureCallback();break;default:k.getLogger().warn(`Unhandled section ${Rx.getSectionLabelFromSection(n)}`)}return i}async allowedSignatureSchemesCallback(e,t){t.setAllowedSignatureSchemeIds(e.schemeIds)}async allowedPkeSchemesCallback(e,t){t.setAllowedPkeSchemeIds(e.schemeIds)}async declarationCallback(e,t){t.setApplicationId(e.applicationId)}async actorCreationCallback(e,t){let{id:n,name:r}=e,i=t.getNumberOfActors();if(n!=i)throw this.logger.error(`Actor creation failure: Invalid actor identifier found for actor ${r}: expected ${i}, got ${n}`),new ie(n,t.getNumberOfActors());if(t.isActorDefinedByName(r))throw new re(r);this.logger.info(`Creating actor ${r} with id ${n} `),t.createActor({name:r,subscribed:!1,signatureKeyHeight:0,pkeKeyHeight:0,sharedSecrets:[],invitations:[]})}async actorSubscriptionCallback(e,t,n){let r=n.getActorById(t.actorId);if(r===void 0)throw new le(t.actorId);if(r.subscribed)throw new S(t.actorId);let i=t.signatureSchemeId,a=n.getAllowedSignatureSchemes(),o=a.length==0,s=a.includes(i);if(!o&&!s)throw new ue(t.signatureSchemeId);let c=t.pkeSchemeId,l=n.getAllowedPkeSchemes(),u=l.length===0,d=l.includes(c);if(!u&&!d)throw new de(t.pkeSchemeId);r.subscribed=!0,r.signatureKeyHeight=e,r.pkeKeyHeight=e}async channelCreationCallback(e,t){if(e.id!=t.getNumberOfChannels())throw new fe(e.id);let n=e.name;if(t.isChannelDefinedByName(n))throw new ae(n);t.createChannel({name:e.name,isPrivate:e.isPrivate,creatorId:e.creatorId})}async sharedSecretCallback(e,t,n){let{hostId:r,guestId:i}=t;n.getActorById(r).sharedSecrets.push({height:e,peerActorId:i}),n.getActorById(i).sharedSecrets.push({height:e,peerActorId:r})}async invitationCallback(e,t,n){let{guestId:r,channelId:i}=t;n.getActorById(r).invitations.push({channelId:i,height:e}),k.getLogger().debug(`Updated state after channel invitation callback: {state}`,{state:n})}async publicChannelDataCallback(e,t){if(!t.isChannelDefinedById(e.channelId))throw new se(`invalid channel ID ${e.channelId}`)}async privateChannelDataCallback(e,t){if(!t.isChannelDefinedById(e.channelId))throw new se(`invalid channel ID ${e.channelId}`)}async endorserSignatureCallback(){}},Bx=class{updateState(e,t,n){let r=t;for(let e of n.getAllSections())switch(e.type){case O.VN_CREATION:r.setOrganizationId(e.organizationId);break;case O.VN_APPROVAL:this.updateApproval(r,e);break;case O.VN_COMETBFT_PUBLIC_KEY_DECLARATION:r.setCometbftPublicKeyDeclarationHeight(n.getHeight());break;case O.VN_RPC_ENDPOINT:r.setRpcEndpointDeclarationHeight(n.getHeight());break}return r}updateApproval(e,t){e.setApprovalStatus(t.status)}},Vx=class e{logger=k.getInternalStateUpdaterLogger(e.name);updateState(e,t,n){for(let e of n.getAllSections()){if(e.type===O.PROTOCOL_UPDATE){let n=e;this.logger.debug(`Updating protocol variables: ${JSON.stringify(n.protocolVariables)}`),t.setProtocolVariables(n.protocolVariables)}if(e.type===O.PROTOCOL_CREATION){let n=e.organizationId;this.logger.debug(`Updating organization ID: ${A.binaryToHexa(n)}`),t.setOrganizationId(n)}}return t}},Hx=class{updateState(e,t,n){for(let e of n.getAllSections())e.type===O.ORG_CREATION&&t.setAccountId(e.accountId),e.type===O.ORG_DESCRIPTION&&t.updateDescriptionHeight(n.getHeight());return t}},Ux=class{static createApplicationLedgerInternalStateUpdater(e){return new zx}static createAccountInternalStateUpdater(e){switch(e){case 1:return new Fx;default:throw new i(`Unknown account local state version`)}}static createOrganizationInternalStateUpdater(e){switch(e){case 1:return new Hx;default:throw new i(`Unknown organization local state version`)}}static createProtocolInternalStateUpdater(e){return new Vx}static createValidatorNodeInternalStateUpdater(e){switch(e){case 1:return new Bx;default:throw new i(`Unknown validator node local state version`)}}static createApplicationInternalStateUpdater(e){switch(e){case 1:return new Ix;default:throw new i(`Unknown validator node local state version`)}}static defaultInternalStateUpdaterVersionByVbType(e){return 1}},Wx=function(e){return e[e.VALID=0]=`VALID`,e[e.TOO_FAR_IN_THE_PAST=1]=`TOO_FAR_IN_THE_PAST`,e[e.TOO_FAR_IN_THE_FUTURE=2]=`TOO_FAR_IN_THE_FUTURE`,e}({}),Gx=L({header:Mm,body:Sh}),Kx=class e{static createGenesisMicroblock(t,n=0){let r=new e(t);return r.create(1,null,n),r}static createMicroblock(t,n,r,i){let a=new e(t);return a.create(n,r,i),a}static createGenesisAccountMicroblock(){return new e(U.ACCOUNT_VIRTUAL_BLOCKCHAIN)}static createGenesisValidatorNodeMicroblock(){return new e(U.NODE_VIRTUAL_BLOCKCHAIN)}static createGenesisApplicationMicroblock(){return new e(U.APPLICATION_VIRTUAL_BLOCKCHAIN)}static createGenesisProtocolMicroblock(){return new e(U.PROTOCOL_VIRTUAL_BLOCKCHAIN)}static createGenesisOrganizationMicroblock(){return new e(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN)}static createGenesisApplicationLedgerMicroblock(){return new e(U.APP_LEDGER_VIRTUAL_BLOCKCHAIN)}static loadFromSerializedMicroblock(t,n){let r=z(Gx,Ib(t));return e.loadFromHeaderAndBody(r.header,r.body,n)}static loadFromHeaderAndBody(t,n,r){let i=t.microblockType;if(r!==void 0&&r!==i)throw new o(`Microblock type mismatch: expected ${r}, got ${i} from header`);if(t.magicString!=`CMTS`)throw Error(`magic string '${Un}' is missing`);let a=t.bodyHash,s=new e(i);s.header=structuredClone(t),s.addSections(n.sections);let c=s.computeBodyHash();if(!A.binaryIsEqual(a,c)){let e=fg.bytesToHexEncoder();throw new o(`Body hash in the header is different of the locally computed body hash: header.bodyHash=${e.encode(a)}, computed=${e.encode(c)}`)}return s.setMicroblockHash(s.computeHash()),s}static loadFromSerializedHeaderAndBody(t,n,r){let i=xx.decodeMicroblockHeader(t),a=xx.decodeMicroblockBody(n);return e.loadFromHeaderAndBody(i,a,r)}static computeInitialBodyHash(){return e.computeBodyHashFromSections([])}static computeMicroblockHash(e){let t=xx.encodeMicroblockHeader(e);return N.Hashes.sha256AsBinary(t)}static computeBodyHashFromSections(e){let t={sections:e},n=xx.encodeMicroblockBody(t);return N.Hashes.sha256AsBinary(n)}static generatePreviousHashForGenesisMicroblock(e,t=0){let n=N.Random.getBytes(24),r=A.getNullHash();return r[0]=e,r[1]=t>>24,r[2]=t>>16,r[3]=t>>8,r[4]=t,r.set(n,8),r}static logger=k.getMicroblockLogger();hash;header;sections;type;constructor(t){let n=Math.floor(Date.now()/1e3),r=hn.zero().getAmountAsAtomic(),i={magicString:Un,protocolVersion:1,microblockType:t,height:1,previousHash:e.generatePreviousHashForGenesisMicroblock(t,0),timestamp:n,gas:0,gasPrice:r,bodyHash:e.computeInitialBodyHash(),feesPayerAccount:A.getNullHash()};this.type=t,this.sections=[],this.header=i,this.hash=e.computeMicroblockHash(i)}create(t,n,r){if(t==1)n=e.generatePreviousHashForGenesisMicroblock(this.type,r);else if(n===null)throw Error(`previous hash not provided`);this.header={magicString:Un,protocolVersion:1,microblockType:this.type,height:t,previousHash:n,timestamp:A.getTimestampInSeconds(),gas:0,gasPrice:0,bodyHash:A.getNullHash(),feesPayerAccount:A.getNullHash()},this.hash=e.computeMicroblockHash(this.header)}isSigned(){return this.sections.length==0?!1:this.sections[this.sections.length-1].type===O.SIGNATURE}updateTimestamp(){this.header.timestamp=A.getTimestampInSeconds(),this.hash=e.computeMicroblockHash(this.header)}getHeader(){return this.header}getHash(){return Dx.from(this.hash)}getHashAsBytes(){return this.hash}getTimestampAsDate(){return new Date(this.header.timestamp*1e3)}getHeight(){return this.header.height}getPreviousHash(){return Dx.from(this.header.previousHash)}getTimestamp(){return this.header.timestamp}getGas(){return this.header.gas}getFees(){return hn.createAtomic(this.header.gas*this.header.gasPrice)}setGas(t){this.header.gas=t,this.hash=e.computeMicroblockHash(this.header)}setHeight(t){this.header.height=t,this.hash=e.computeMicroblockHash(this.header)}setGasPrice(t){this.header.gasPrice=t.getAmountAsAtomic(),this.hash=e.computeMicroblockHash(this.header)}getGasPrice(){return hn.createAtomic(this.header.gasPrice)}isFeesPayerAccountDefined(){return A.binaryIsEqual(this.getFeesPayerAccount(),A.getNullHash())==0}getFeesPayerAccount(){return this.header.feesPayerAccount}setTimestamp(t){this.header.timestamp=t,this.hash=e.computeMicroblockHash(this.header)}setFeesPayerAccount(t){this.header.feesPayerAccount=t,this.hash=e.computeMicroblockHash(this.header)}computeBodyHash(){return e.computeBodyHashFromSections(this.sections)}serializeHeader(){return xx.encodeMicroblockHeader(this.header)}serializedBody(){return xx.encodeMicroblockBody({sections:this.sections})}serialize(){let t=this.serializedBody(),n=this.header.bodyHash,r=this.serializeHeader();return{microblockHash:e.computeMicroblockHash(this.header),headerData:r,bodyHash:n,bodyData:t,microblockData:px(z(Gx,{header:this.header,body:{sections:this.sections}}))}}getSection(e){let t=this.sections.find(t=>e(t));if(t===void 0)throw new Ee;return t}getNumberOfSections(){return this.sections.length}getSections(e){return this.sections.filter(t=>e(t))}getSectionsByType(e){return this.getSections(t=>t.type===e)}getAllSections(){return this.sections}async setGasAndSeal(e,t,n={}){let r=await e.computeMicroblockGas(this,{signatureSchemeId:t.getSignatureSchemeId()});this.setGas(r),await this.seal(t,n)}async seal(e,t={}){let n=t.feesPayerAccount;n&&this.setFeesPayerAccount(n);let r=typeof t.includeGas==`boolean`?t.includeGas:!0,i=await this.sign(e,r),a={type:O.SIGNATURE,signature:i,schemeId:e.getSignatureSchemeId()};this.addSection(a)}async sign(t,n=!0){let r=this.sections,i=e.computeBodyHashFromSections(r),a={...this.header,gas:n?this.header.gas:0,gasPrice:n?this.header.gasPrice:0,bodyHash:i},o=xx.encodeMicroblockHeader(a);return await t.sign(o)}async verifySignature(e){let t=this.sections.filter(e=>e.type===O.SIGNATURE);if(t.length===0)throw new a(`The current microblock has no SIGNATURE section`);if(t.length!==1)throw new a(`There are several SIGNATURE sections`);if(this.sections[this.sections.length-1].type!==O.SIGNATURE)throw new a(`The SIGNATURE section is not the last one`);return this.verifySignatureOfSections(e,!0,this.sections.length-1)}async verifyAuxiliarySignature(e,t){let n=this.sections.filter(e=>e.type===O.AUXILIARY_SIGNATURE&&e.tag===t);if(n.length===0)throw new a(`The current microblock has no AUXILIARY_SIGNATURE section with tag '${t}'`);if(n.length!==1)throw new a(`The current microblock has several AUXILIARY_SIGNATURE section with tag '${t}'`);let r=this.sections.findIndex(e=>e.type===O.AUXILIARY_SIGNATURE&&e.tag===t);return this.verifySignatureOfSections(e,!1,r)}async verifySignatureOfSections(t,n,r){let i=this.sections[r];if(i.type!==O.SIGNATURE&&i.type!==O.AUXILIARY_SIGNATURE)throw new a(`Attempt to verify the signature of a non-signature section`);let o=this.sections.slice(0,r),s={...this.header,gas:n?this.header.gas:0,gasPrice:n?this.header.gasPrice:0,bodyHash:e.computeBodyHashFromSections(o)},c=xx.encodeMicroblockHeader(s),l=i.signature;return t.verify(c,l)}async verify(t,n={includeGas:!0,verifiedSignatureIndex:`last`}){let r=typeof n.includeGas==`boolean`?n.includeGas:!0,o=this.getNumberOfSignatures();if(o===0)throw new a(`Microblock verification failure: The current microblock is not signed`);let s=n.verifiedSignatureIndex,c=o;if(typeof s==`number`){if(s<=0)throw new i(`verifiedSignatureIndex must be positive`);if(o<s)throw new i(`Invalid provided signature index ${s}: this microblock contains ${o} signatures`);c=s}else if(!(s===`last`||s===void 0))throw new i(`Unknown signature index: ${s} (type ${typeof s})`);let{signatureSection:l,sectionIndexInMicroblock:u}=this.getNthSignatureSectionAndIndexInMicroblock(c),d=this.sections.slice(0,u),f={...this.header,gas:r?this.header.gas:0,gasPrice:r?this.header.gasPrice:0,bodyHash:e.computeBodyHashFromSections(d)},p=xx.encodeMicroblockHeader(f),m=l.signature;return await t.verify(p,m)}getNthSignatureSectionAndIndexInMicroblock(e){if(e<=0)throw new i(`Cannot return the ${e}-th signature: should be strictly positive`);let t=this.sections.map((e,t)=>({section:e,index:t})).filter(({section:e,index:t})=>e.type===O.SIGNATURE);if(t.length<e)throw new i(`Cannot return the ${e}-th signature: only ${t.length} signature (index starting at 1)`);let n=t[e-1];if(n.section.type!==O.SIGNATURE)throw Error(`Returned section is not a signature section`);return{signatureSection:n.section,sectionIndexInMicroblock:n.index}}getNumberOfSignatures(){return this.sections.filter(e=>e.type===O.SIGNATURE).length}isLastSectionSignature(){return this.sections.length==0?!1:this.sections[this.sections.length-1].type===O.SIGNATURE}isTemporallyCloseTo(e=A.getTimestampInSeconds()){return this.header.timestamp<e-300?Wx.TOO_FAR_IN_THE_PAST:this.header.timestamp>e+120?Wx.TOO_FAR_IN_THE_FUTURE:Wx.VALID}hasSection(e){try{return this.getSectionByType(e),!0}catch(e){if(e instanceof Ee)return!1;throw e}}containsOnlyTheseSections(e){return this.sections.every(t=>e.includes(t.type))}getIndexOfSection(e){return this.sections.findIndex(t=>t.type===e)}setAsSuccessorOf(t){let n=this.getType(),r=t.getType();if(n!==r)throw new i(`Cannot make this microblock the successor: expected microblock of type ${n}, got ${r}`);let a=t.getHash();this.setPreviousHash(a),this.setHeight(t.getHeight()+1),this.hash=e.computeMicroblockHash(this.header),e.logger.info(`Microblock ${A.binaryToHexa(this.hash)} updated as successor of microblock ${a.encode()}`)}countSectionsByType(e){return this.sections.filter(t=>t.type===e).length}addSections(t){e.logger.debug(`Adding sections to microblock: {names}`,()=>({names:t.map(e=>Rx.getSectionLabelFromSection(e)).join(`, `)})),this.sections.push(...t),this.header.bodyHash=this.computeBodyHash(),this.hash=e.computeMicroblockHash(this.header)}addSection(e){this.addSections([e])}popSection(){let t=this.sections.pop();if(this.getNumberOfSections()==0||t===void 0)throw new a(`Cannot pop section from empty microblock`);return this.header.bodyHash=this.computeBodyHash(),this.hash=e.computeMicroblockHash(this.header),t}getSectionByType(e){let t=this.sections.find(t=>t.type===e);if(t===void 0)throw new Ee;return t}toString(){let e=fg.bytesToHexEncoder(),t=`Microblock:
|
|
7
7
|
`;return t+=` Hash: ${e.encode(this.hash)}\n`,t+=` Recomputed hash: ${e.encode(this.computeHash())}\n`,t+=` Header:
|
|
8
|
-
`,t+=` Microblock type: ${this.header.microblockType} or ${this.type}\n`,t+=` Magic String: ${this.header.magicString}\n`,t+=` Protocol Version: ${this.header.protocolVersion}\n`,t+=` Fees payer account: ${e.encode(this.header.feesPayerAccount)}\n`,t+=` Height: ${this.header.height}\n`,t+=` Previous Hash: ${e.encode(this.header.previousHash)}\n`,t+=` Timestamp: ${this.header.timestamp}\n`,t+=` Gas: ${this.header.gas}\n`,t+=` Gas Price: ${this.header.gasPrice}\n`,t+=` Body Hash: ${e.encode(this.header.bodyHash)}\n`,t+=` Computed body Hash: ${e.encode(this.computeBodyHash())}\n`,t+=` Sections (${this.sections.length}):\n`,this.sections.forEach((e,n)=>{t+=` Section ${n}:\n`,t+=` Section Type: ${Rx.getSectionLabelFromSection(e)} (type ${e.type})\n`,t+=` Section Data: ${A.binaryToHexa(xx.encodeSection(e))}\n`}),t}getType(){return this.type}setPreviousHash(e){this.header.previousHash=e.toBytes()}static extractTypeFromGenesisPreviousHash(e){return e[0]}static extractExpirationDayFromGenesisPreviousHash(e){return e[1]<<24|e[2]<<16|e[3]<<8|e[4]}getBodyHashInHeader(){return this.header.bodyHash}isDeclaringConsistentBodyHash(){let e=this.computeBodyHash();return A.binaryIsEqual(e,this.header.bodyHash)}isGenesisMicroblock(){return this.getHeight()===1}setBodyHash(e){this.header.bodyHash=e}computeHash(){let{microblockHash:e}=this.serialize();return e}setMicroblockHash(e){this.hash=e}getLastSignatureSection(){let e=this.sections[this.sections.length-1];if(e.type!==O.SIGNATURE)throw Error(`Last section is not a signature section`);return e}},qx=class{onMicroblockSearchFailureForExceedingHeight(e,t){throw e.isEmpty()?new x(Dx.from(A.getNullHash()),t):new x(e.getIdentifier(),t)}},Jx=class e{static INITIAL_HEIGHT=1;static staticLogger=k.getVirtualBlockchainLogger();logger=e.staticLogger;internalState;height;identifier;microblockHashByHeight;microblockByHeight;provider;type;merkleRootHash;expirationDay;microblockSearchFailureFallback;onMicroblockInsertionEventListeners=[];constructor(e,t,n){this.internalState=n,this.provider=e,this.microblockHashByHeight=new Map,this.microblockByHeight=new Map,this.type=t,this.merkleRootHash=A.getNullHash(),this.expirationDay=0,this.height=0,this.microblockSearchFailureFallback=new qx}async isAccountIdAllowedToWrite(e){if(this.height===0)return!0;let t=await this.getVirtualBlockchainOwnerId();return A.binaryIsEqual(t.toBytes(),e.toBytes())}getProvider(){return this.provider}addOnMicroblockInsertionEventListener(e){this.onMicroblockInsertionEventListeners.push(e)}getInternalState(){return this.internalState}setInternalState(e){this.internalState=e}setMerkleRootHash(e){this.merkleRootHash=e}getMerkleRootHash(){return this.merkleRootHash}async createMicroblock(){if(this.isEmpty())return new Kx(this.type);let e=await this.getLastMicroblock(),t=new Kx(this.type);return t.setPreviousHash(e.getHash()),t.setHeight(this.getHeight()+1),t}getLastMicroblock(){return this.getMicroblock(this.getHeight())}setHeight(e){this.height=e}setIdentifier(e){this.logger.debug(`Updating virtual blockchain identifier to ${A.binaryToHexa(e)}`),this.identifier=e}setMicroblockHashes(e){let t=1;for(let n of e)this.microblockHashByHeight.set(t,n),t++}setExpirationDay(e){this.expirationDay=e}async getSerializedVirtualBlockchainState(){return xx.encodeVirtualBlockchainState(await this.getVirtualBlockchainState())}async getGenesisSeed(){return(await this.getFirstMicroBlock()).getPreviousHash()}getHeight(){return this.height}getId(){return this.identifier}isVirtualBlockchainIdDefined(){return this.identifier instanceof Uint8Array}async getFirstMicroBlock(){return this.getMicroblock(1)}getAllMicroblockHashes(){let e=[];for(let t of this.microblockHashByHeight.entries())e.push(Dx.from(t[1]));return e}async getMicroblock(e){if(this.logger.debug(`Accessing microblock at height ${e} of vb`),e<1)throw new i(`Cannot retrieve microblock at height strictly lower than 1: got ${e}`);if(this.getHeight()<e)return await this.microblockSearchFailureFallback.onMicroblockSearchFailureForExceedingHeight(this,e);let t=this.microblockByHeight.get(e);if(t!==void 0)return t;let n=await this.provider.getSerializedMicroblockByHeight(this.getId(),e);if(n===null)throw fg.bytesToHexEncoder(),Error(`Unable to load microblock at height ${e}`);let r=Kx.loadFromSerializedMicroblock(n,this.type);if(r.getHeight()!==e)throw Error(`Received microblock contains an unexpected height: expected ${e}, got ${r.getHeight()} `);this.microblockByHeight.set(e,r);for(let e of this.onMicroblockInsertionEventListeners)e.onMicroblockInserted(this,r);return r}getIdentifier(){if(this.identifier===void 0)throw new a(`You cannot access identifier of an empty virtual blockchain (current height is ${this.height})`);return Dx.from(this.identifier)}isEmpty(){return this.getHeight()===0}async appendMicroBlock(e){if(this.isEmpty()&&this.identifier instanceof Uint8Array)throw Error(`Virtual blockchain is empty but is initialized: should not happen`);if(!this.isEmpty()&&!(this.identifier instanceof Uint8Array))throw Error(`Virtual blockchain is empty but has an identifier: should not happen`);let t=this.height+1,n=e.getHeight();if(t!==n)throw Error(`Microblock height mismatch: expected ${t} but got ${n}`);if(!this.isEmpty()){let t=(await this.getLastMicroblock()).getHash().toBytes(),n=e.getPreviousHash().toBytes();if(!A.binaryIsEqual(n,t))throw Error(`Previous hash mismatch: microblock's previous hash ${A.binaryToHexa(n)} does not match the last microblock's hash ${A.binaryToHexa(t)}`)}if(!this.checkMicroblockStructure(e))throw new i(`Provided microblock has an invalid structure`);let r=await this.provider.getProtocolState();this.internalState=await this.updateInternalState(r,this.internalState,e),this.identifier===void 0&&(this.identifier=e.getHash().toBytes()),this.height+=1;let a=e.getHash().toBytes();this.microblockHashByHeight.set(this.height,a),this.microblockByHeight.set(this.height,e),this.logger.debug(`Microblock ${A.binaryToHexa(a)} added to vb (now at height ${this.height} `)}setMicroblockSearchFailureFallback(e){this.microblockSearchFailureFallback=e}getType(){return this.type}getExpirationDay(){return this.expirationDay}},Z=function(e){return e[e.ANY=0]=`ANY`,e[e.ZERO=1]=`ZERO`,e[e.ONE=2]=`ONE`,e[e.AT_MOST_ONE=3]=`AT_MOST_ONE`,e[e.AT_LEAST_ONE=4]=`AT_LEAST_ONE`,e}({}),Yx={[Z.ANY]:`Any`,[Z.ONE]:`Exactly one`,[Z.ZERO]:`Exactly zero`,[Z.AT_LEAST_ONE]:`At least one`,[Z.AT_MOST_ONE]:`At most one`},Xx=class{microblock;pointer;constructor(e){this.microblock=e,this.pointer=0}isFirstBlock(){return this.microblock.getHeight()==1}expects(e,t){let n=0;for(;!this.endOfList()&&this.currentSection().type==t;)n++,this.pointer++;if(!this.checkConstraint(e,n))throw new s(`expected ${Yx[e]} of type ${this.getSectionLabelBySectionType(t)} in section, got ${n}`);return n}group(e,t){let n=new Map,r=0;for(let[e,r]of t)n.set(r,0);for(;!this.endOfList();){let e=this.currentSection().type;if(!t.some(([t,n])=>n==e))break;n.set(e,n.get(e)+1),r++,this.pointer++}if(!this.checkConstraint(e,r))throw new s(`expected ${Yx[e]} section(s) in group, got ${r}`);for(let[e,r]of t){let t=n.get(r);if(!this.checkConstraint(e,t))throw new s(`expected ${Yx[e]} of type ${this.getSectionLabelBySectionType(r)} in group section, got ${t}`)}}endsHere(){if(!this.endOfList()){let e=this.currentSection().type;throw new s(`Unexpected section ${this.getSectionLabelBySectionType(e)}`)}}currentSection(){return this.microblock.getAllSections()[this.pointer]}endOfList(){return!this.currentSection()}checkConstraint(e,t){switch(e){case Z.ANY:return!0;case Z.ZERO:return t==0;case Z.ONE:return t==1;case Z.AT_LEAST_ONE:return t>=1;case Z.AT_MOST_ONE:return t<=1}return!1}getSectionLabelBySectionType(e){return Rx.getSectionLabelFromSectionType(e)}},Zx=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.ORG_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.ORG_DESCRIPTION],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},Qx=class e extends Jx{static createOrganizationVirtualBlockchain(t){return new e(t)}constructor(e,t=Mx.createInitialState()){super(e,U.ORGANIZATION_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getOrganizationInternalStateUpdaterVersion();return Ux.createOrganizationInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){return this.internalState.getAccountId()}checkMicroblockStructure(e){return new Zx().checkMicroblockStructure(e)}getAccountId(){return this.internalState.getAccountId()}async getDescription(){let e=this.internalState.getDescriptionHeight(),t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type===O.ORG_DESCRIPTION)return e;throw new a(`No description found for the organization`)}},$x=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.ACCOUNT_ESCROW_SETTLEMENT)===1||(t.expects(t.isFirstBlock()?Z.ONE:Z.AT_MOST_ONE,O.ACCOUNT_PUBLIC_KEY),t.isFirstBlock()?t.group(Z.ONE,[[Z.AT_MOST_ONE,O.ACCOUNT_TOKEN_ISSUANCE],[Z.AT_MOST_ONE,O.ACCOUNT_CREATION],[Z.ANY,O.CUSTOM]]):t.group(Z.AT_LEAST_ONE,[[Z.ANY,O.ACCOUNT_TRANSFER],[Z.ANY,O.ACCOUNT_VESTING_TRANSFER],[Z.ANY,O.ACCOUNT_STAKE],[Z.ANY,O.ACCOUNT_UNSTAKE],[Z.ANY,O.ACCOUNT_ESCROW_TRANSFER],[Z.ANY,O.CUSTOM]])),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},eS=class extends Jx{constructor(e,t=Ex.createInitialState()){super(e,U.ACCOUNT_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getAccountInternalStateUpdaterVersion();return Ux.createAccountInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){return Dx.from(this.getId())}checkMicroblockStructure(e){return new $x().checkMicroblockStructure(e)}async getPublicKey(){let e=this.internalState.getPublicKeyHeight(),t=this.internalState.getPublicKeySchemeId(),n=await this.getMicroblock(e);for(let e of n.getAllSections())if(e.type===O.ACCOUNT_PUBLIC_KEY)return new Uv().createPublicSignatureKey(t,e.publicKey);throw new a(`Account public key not found`)}async isIssuer(){let e=await this.getFirstMicroBlock();for(let t of e.getAllSections())if(t.type===O.ACCOUNT_TOKEN_ISSUANCE)return!0;return!1}static async createAccountCreationMicroblock(e,t,n,r=``){let i=Kx.createGenesisAccountMicroblock();return i.addSection({type:O.ACCOUNT_PUBLIC_KEY,publicKey:await e.getPublicKeyAsBytes(),schemeId:e.getSignatureSchemeId()}),i.addSection({type:O.ACCOUNT_CREATION,amount:t.getAmountAsAtomic(),sellerAccount:n}),i}static async createIssuerAccountCreationMicroblock(e){let t=e,n=Kx.createGenesisAccountMicroblock();return n.addSection({type:O.ACCOUNT_PUBLIC_KEY,publicKey:await t.getPublicKeyAsBytes(),schemeId:t.getSignatureSchemeId()}),n.addSection({type:O.ACCOUNT_TOKEN_ISSUANCE,amount:lr}),n}},tS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.APP_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.APP_DESCRIPTION],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},nS=class extends Jx{constructor(e,t=Ox.createInitialState()){super(e,U.APPLICATION_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getApplicationInternalStateUpdaterVersion();return Ux.createApplicationInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=this.internalState.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}checkMicroblockStructure(e){return new tS().checkMicroblockStructure(e)}getOrganizationId(){return this.internalState.getOrganizationId()}async getApplicationDescription(){let e=this.internalState.getDescriptionHeight(),t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type==O.APP_DESCRIPTION)return e;throw Error(`Application description not found`)}},rS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e),n=!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.VN_APPROVAL)===1,r=!n&&!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.VN_SLASHING_CANCELLATION)===1;return!n&&!r&&(t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.VN_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.VN_COMETBFT_PUBLIC_KEY_DECLARATION],[Z.AT_MOST_ONE,O.VN_RPC_ENDPOINT],[Z.ANY,O.CUSTOM]])),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},iS=class extends Jx{constructor(e,t=Nx.createInitialState()){super(e,U.NODE_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getValidatorNodeInternalStateUpdaterVersion();return Ux.createValidatorNodeInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=await this.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async getOrganizationId(){return this.internalState.getOrganizationId()}checkMicroblockStructure(e){return new rS().checkMicroblockStructure(e)}async getCometbftPublicKeyDeclaration(){let e=this.internalState.getCometbftPublicKeyDeclarationHeight();if(e===0)throw new a(`Node has not declared its CometBFT public key yet`);let t=await this.getMicroblock(e);for(let e of t.getAllSections()){if(e.type!==O.VN_COMETBFT_PUBLIC_KEY_DECLARATION)continue;let t=e.cometPublicKey;return{cometbftPublicKeyType:e.cometPublicKeyType,cometbftPublicKey:t}}throw new a(`Node has not declared its CometBFT public key yet`)}async getRpcEndpointDeclaration(){let e=this.internalState.getRpcEndpointHeight();if(e===0)throw new a(`Node has not declared its RPC endpoint yet`);let t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type===O.VN_RPC_ENDPOINT)return e.rpcEndpoint;throw new a(`Node has not declared its RPC endpoint yet`)}getNodeDeclarationHeight(){return this.getInternalState().getCometbftPublicKeyDeclarationHeight()}async getOrganizationVirtualBlockchain(){let e=this.internalState.getOrganizationId();return await this.provider.loadOrganizationVirtualBlockchain(e)}},aS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.PROTOCOL_CREATION),t.isFirstBlock()||t.group(Z.AT_MOST_ONE,[[Z.ONE,O.PROTOCOL_UPDATE],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},oS=class extends Jx{constructor(e,t=jx.createInitialState()){super(e,U.PROTOCOL_VIRTUAL_BLOCKCHAIN,t)}checkMicroblockStructure(e){return new aS().checkMicroblockStructure(e)}async updateInternalState(e,t,n){let r=e.getProtocolInternalStateUpdaterVersion();return Ux.createProtocolInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=await this.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async getOrganizationId(){let e=(await this.getFirstMicroBlock()).getAllSections();for(let t of e)if(t.type===O.PROTOCOL_CREATION)return Dx.from(t.organizationId);throw Error(`Organization ID not found in protocol vb`)}},sS=class{static assert(e,t=`Unspecified verification`){if(!e)throw new m(`Assertion failed: ${t}`)}},cS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.APP_LEDGER_CREATION),t.group(Z.ANY,[[Z.ANY,O.APP_LEDGER_ACTOR_CREATION],[Z.ANY,O.APP_LEDGER_ACTOR_SUBSCRIPTION],[Z.ANY,O.APP_LEDGER_ENDORSEMENT_REQUEST],[Z.ANY,O.APP_LEDGER_AUTHOR],[Z.ANY,O.APP_LEDGER_PUBLIC_CHANNEL_DATA],[Z.ANY,O.APP_LEDGER_PRIVATE_CHANNEL_DATA],[Z.ANY,O.APP_LEDGER_SHARED_SECRET],[Z.ANY,O.APP_LEDGER_CHANNEL_CREATION],[Z.ANY,O.APP_LEDGER_CHANNEL_INVITATION],[Z.ANY,O.ALLOWED_ADDITIONAL_WRITER],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},lS=class e{identifier;microblocks;constructor(){this.identifier=``,this.microblocks=[]}static fromObject(t){let n=new e;n.setIdentifier(t.id);for(let e of t.microblocks)n.addMicroblock(e.height,e.channels);return n}toObject(){return{id:this.identifier,microblocks:this.microblocks}}setIdentifier(e){this.identifier=e}getIdentifier(){return this.identifier}addMicroblock(e,t){let n={height:e,channels:t};this.microblocks.push(n)}getMicroblock(e){let t=this.microblocks.find(t=>t.height===e);if(!t)throw Error(`no microblock found for height ${e}`);return t}getMicroblocks(){return this.microblocks}},uS=Jp(()=>tm([R(),I(),Gp(),Yp(),P(uS),$p(R(),uS)])),dS=P(tm([R(),I()])),fS=function(e){return e[e.None=0]=`None`,e[e.Hashable=1]=`Hashable`,e[e.Maskable=2]=`Maskable`,e}({}),pS=rm(`type`,[L({type:F(fS.None)}),L({type:F(fS.Hashable)}),L({type:F(fS.Maskable),visibleParts:P(R()),hiddenParts:P(R())})]),mS=function(e){return e[e.String=0]=`String`,e[e.Number=1]=`Number`,e[e.Boolean=2]=`Boolean`,e[e.Null=3]=`Null`,e[e.Array=4]=`Array`,e[e.Object=5]=`Object`,e}({}),hS,gS={channelId:I()};hS=rm(`type`,[L({...gS,type:F(mS.String),value:R(),transformation:pS}),L({...gS,type:F(mS.Number),value:I()}),L({...gS,type:F(mS.Boolean),value:Gp()}),L({...gS,type:F(mS.Null),value:Yp()}),L({type:F(mS.Array),value:P(Jp(()=>hS))}),L({type:F(mS.Object),value:P(L({key:R(),value:Jp(()=>hS)}))})]);var _S=tm([R(),I(),Gp(),Yp()]),vS=L({pepper:H(),data:H()}),yS=L({path:dS,value:_S,transformation:Zp(pS)}),bS=P(yS),Q=function(e){return e[e.Public=0]=`Public`,e[e.Plain=1]=`Plain`,e[e.HashableFromValue=2]=`HashableFromValue`,e[e.Hashable=3]=`Hashable`,e[e.MaskableFromAllParts=4]=`MaskableFromAllParts`,e[e.MaskableFromVisibleParts=5]=`MaskableFromVisibleParts`,e[e.Maskable=6]=`Maskable`,e}({});Q.Public,Q.Plain,Q.HashableFromValue,Q.Hashable,Q.MaskableFromAllParts,Q.MaskableFromVisibleParts,Q.Maskable;var xS=function(e){return e[e.Public=0]=`Public`,e[e.Plain=1]=`Plain`,e[e.HashableAsPlain=2]=`HashableAsPlain`,e[e.HashableAsHash=3]=`HashableAsHash`,e[e.MaskableAsAllParts=4]=`MaskableAsAllParts`,e[e.MaskableAsVisibleParts=5]=`MaskableAsVisibleParts`,e}({}),SS=L({path:dS,type:F(xS.Public),value:_S}),CS={path:dS,index:I()},wS=rm(`type`,[SS,L({...CS,type:F(xS.Plain),salt:R(),value:_S}),L({...CS,type:F(xS.HashableAsPlain),salt:R(),value:_S}),L({...CS,type:F(xS.HashableAsHash),salt:R(),hash:R()}),L({...CS,type:F(xS.MaskableAsAllParts),v_salt:R(),v_parts:P(R()),h_salt:R(),h_parts:P(R())}),L({...CS,type:F(xS.MaskableAsVisibleParts),v_salt:R(),v_parts:P(R()),h_hash:R()})]),TS=L({version:I(),info:L({title:R(),date:R(),description:R(),author:R()}),virtual_blockchains:P(L({id:R(),microblocks:P(L({height:I(),channels:P(L({id:I(),is_public:Gp(),n_leaves:I(),fields:P(wS),witnesses:P(R())}))}))})),signature:Zp(L({commitment:L({issued_at:Zp(R()),digest_alg:Zp(Qp([`sha256`])),digest_target:Zp(Qp([`cbor_proof`])),digest:Zp(R())}),signer:R(),pubkey:R(),alg:Qp([`ecdsa-secp256k1`,`ml-dsa-65`]),sig:R()}))}),ES=1,DS=class e{encoder=new yx;wrapper;constructor(){this.wrapper={version:ES,info:{title:`Carmentis proof`,description:`This is a Carmentis proof file. Visit www.carmentis.io for more information.`,author:``,date:new Date().toISOString()},virtual_blockchains:[]}}static fromObject(t){z(TS,t);let n=new e;return n.wrapper=t,n}setTitle(e){this.wrapper.info.title=e}getTitle(){return this.wrapper.info.title}setDescription(e){this.wrapper.info.description=e}getDescription(){return this.wrapper.info.description}setAuthor(e){this.wrapper.info.author=e}getAuthor(){return this.wrapper.info.author}setDate(e){this.wrapper.info.date=e.toISOString()}getDate(){return new Date(this.wrapper.info.date)}addVirtualBlockchain(e){this.wrapper.virtual_blockchains.push(e.toObject())}getSingleVirtualBlockchainOrFail(){let e=this.getVirtualBlockchains();if(e.length==0)throw Error(`no virtual blockchain is defined in this proof`);if(e.length>1)throw Error(`proofs with multiple virtual blockchains are not supported at this time`);return e[0]}getVirtualBlockchain(e){let t=this.wrapper.virtual_blockchains.find(t=>t.id===e);if(!t)throw Error(`no virtual blockchain found with ID ${e}`);return t}getVirtualBlockchains(){return this.wrapper.virtual_blockchains.map(e=>lS.fromObject(e))}sign(e=new Date){let t=this.computeDigest(),n={issued_at:e.toISOString(),digest_alg:`sha256`,digest_target:`cbor_proof`,digest:A.binaryToHexa(t)},r=this.encoder.encode(n);N.Hashes.sha256AsBinary(r),this.wrapper.signature={commitment:n,signer:``,pubkey:``,alg:`ecdsa-secp256k1`,sig:``}}verifySignature(){this.computeDigest()}computeDigest(){let e={info:this.wrapper.info,virtual_blockchains:this.wrapper.virtual_blockchains},t=this.encoder.encode(e);return N.Hashes.sha256AsBinary(t)}getObject(){return this.wrapper}},OS=class{leaves;nLeaves;tree;constructor(){this.leaves=[],this.nLeaves=0,this.tree=[]}addLeaf(e){this.checkHash(e),this.leaves.push(e)}setLeaf(e,t){this.checkHash(t),this.leaves[e]=t}checkHash(e){if(e.length!=32)throw Error(`invalid hash: expected size is 32 bytes, got ${e.length}`)}finalize(e=void 0){this.nLeaves=e===void 0?this.leaves.length:e,this.buildTreeStructure()}getNumberOfLeaves(){return this.nLeaves}getRootHash(){let e=this.tree.length-1;for(let t=0;t<e;t++){let e=this.tree[t];for(let n=0;n<e.length;n+=2)e[n]&&e[n+1]&&(this.tree[t+1][n>>1]=this.mergeHashes(t+1,e[n],e[n+1]))}return this.tree[e][0]}getWitnesses(e){let t=new Set(e),n=this.getWitnessPositions(t),r=[];for(let e=0;e<this.tree[0].length;e++)if(!t.has(e)&&!this.tree[0][e])throw Error(`cannot find leaf at index ${e}`);for(let[e,t]of n){let n=this.tree[e][t];if(!n)throw Error(`cannot find witness hash at depth ${e}, index ${t}`);r.push(n)}return r}setWitnesses(e){let t=new Set;for(let e=0;e<this.nLeaves;e++)this.leaves[e]||t.add(e);let n=this.getWitnessPositions(t);if(e.length!=n.length)throw Error(`invalid witness list: expected ${n.length} witness(es), got ${e.length}`);let r=0;for(let[t,i]of n)this.checkHash(e[r]),this.tree[t][i]=e[r++]}buildTreeStructure(){let e=this.nLeaves;for(this.tree=[];e;){let t=Array(e).fill(null);e>1&&e&1&&(t.push(A.getNullHash()),e++),this.tree.push(t),e>>=1}for(let e=0;e<this.nLeaves;e++)this.leaves[e]&&(this.tree[0][e]=this.leaves[e])}getWitnessPositions(e){let t=this.nLeaves,n=[];for(let r=0;t;r++){let i=new Set;for(let a=0;a<t;a+=2){let o=e.has(a),s=a+1<t&&e.has(a+1);o&&s?i.add(a>>1):(o||s)&&n.push([r,s?a+1:a])}e=i,t=t+ +(t>1)>>1}return n}mergeHashes(e,t,n){let r=new Uint8Array(65);return r[0]=+(e==this.tree.length-1),r.set(t,1),r.set(n,33),N.Hashes.sha256AsBinary(r)}},kS=class e{internalData=void 0;encoder=new yx;static fromProofFormat(t){let n=new e;return n.fromProofField(t),n}static fromItemWithPublicData(t){let n=new e;return n.setPublicDataFromValue(t.value),n}static fromItemWithPlainData(t,n){let r=new e,i=t.getSalt();return r.setPlainDataFromValue(i,n.value),r}static fromItemWithHashedData(t,n){let r=new e,i=t.getSalt();return r.setHashedDataFromValue(i,n.value),r}static fromItemWithMaskedData(t,n){let r=new e,i=t.getSalt(),a=t.getSalt();return r.setMaskedDataFromAllParts(i,n.transformation.visibleParts,a,n.transformation.hiddenParts),r}setPublicDataFromValue(e){this.internalData={type:Q.Public,value:e}}setPlainDataFromValue(e,t){this.internalData={type:Q.Plain,salt:e,value:t}}setHashedDataFromValue(e,t){this.internalData={type:Q.HashableFromValue,salt:e,value:t}}setHashedDataFromHash(e,t){this.internalData={type:Q.Hashable,salt:e,hash:t}}setMaskedDataFromAllParts(e,t,n,r){let i={salt:e,parts:t},a={salt:n,parts:r};this.internalData={type:Q.MaskableFromAllParts,visible:i,hidden:a}}setMaskedDataFromVisibleParts(e,t,n){let r={salt:e,parts:t};this.internalData={type:Q.MaskableFromVisibleParts,visible:r,hiddenHash:n}}setToHashed(){let e=this.getInternalData();if(e.type==Q.Hashable)return;if(e.type!=Q.HashableFromValue)throw Error(`this field is not hashable`);let t=this.encoder.encode(e.value),n=N.Hashes.sha256AsBinary(t);this.setHashedDataFromHash(e.salt,n)}setToMasked(){let e=this.getInternalData();if(e.type==Q.MaskableFromVisibleParts)return;if(e.type!=Q.MaskableFromAllParts)throw Error(`this field is not maskable`);let t=this.encoder.encode(e.hidden),n=N.Hashes.sha256AsBinary(t);this.setMaskedDataFromVisibleParts(e.visible.salt,e.visible.parts,n)}getInternalData(){if(this.internalData===void 0)throw Error(`internal leaf data has not been set`);return this.internalData}fromProofField(e){switch(e.type){case xS.Public:this.setPublicDataFromValue(e.value);break;case xS.Plain:this.setPlainDataFromValue(A.binaryFromHexa(e.salt),e.value);break;case xS.HashableAsPlain:this.setHashedDataFromValue(A.binaryFromHexa(e.salt),e.value);break;case xS.HashableAsHash:this.setHashedDataFromHash(A.binaryFromHexa(e.salt),A.binaryFromHexa(e.hash));break;case xS.MaskableAsAllParts:this.setMaskedDataFromAllParts(A.binaryFromHexa(e.v_salt),e.v_parts,A.binaryFromHexa(e.h_salt),e.h_parts);break;case xS.MaskableAsVisibleParts:this.setMaskedDataFromVisibleParts(A.binaryFromHexa(e.v_salt),e.v_parts,A.binaryFromHexa(e.h_hash));break}}toProofFormat(e,t){let n=this.getInternalData();switch(n.type){case Q.Public:return{path:e,type:xS.Public,value:n.value};case Q.Plain:return{path:e,index:t,type:xS.Plain,salt:A.binaryToHexa(n.salt),value:n.value};case Q.HashableFromValue:return{path:e,index:t,type:xS.HashableAsPlain,salt:A.binaryToHexa(n.salt),value:n.value};case Q.Hashable:return{path:e,index:t,type:xS.HashableAsHash,salt:A.binaryToHexa(n.salt),hash:A.binaryToHexa(n.hash)};case Q.MaskableFromAllParts:return{path:e,index:t,type:xS.MaskableAsAllParts,v_salt:A.binaryToHexa(n.visible.salt),v_parts:n.visible.parts,h_salt:A.binaryToHexa(n.hidden.salt),h_parts:n.hidden.parts};case Q.MaskableFromVisibleParts:return{path:e,index:t,type:xS.MaskableAsVisibleParts,v_salt:A.binaryToHexa(n.visible.salt),v_parts:n.visible.parts,h_hash:A.binaryToHexa(n.hiddenHash)};default:throw Error(`invalid internal data type ${n.type}`)}}getCommitmentData(){let e=this.getInternalData();switch(e.type){case Q.Public:case Q.Plain:case Q.Hashable:return e;case Q.HashableFromValue:{let t=this.encoder.encode(e.value),n=N.Hashes.sha256AsBinary(t);return{type:Q.Hashable,salt:e.salt,hash:n}}case Q.MaskableFromAllParts:{let t=this.encoder.encode(e.visible),n=N.Hashes.sha256AsBinary(t),r=this.encoder.encode(e.hidden),i=N.Hashes.sha256AsBinary(r);return{type:Q.Maskable,visibleHash:n,hiddenHash:i}}case Q.MaskableFromVisibleParts:{let t=this.encoder.encode(e.visible),n=N.Hashes.sha256AsBinary(t);return{type:Q.Maskable,visibleHash:n,hiddenHash:e.hiddenHash}}default:throw Error(`invalid internal data type ${e.type}`)}}getHash(){let e=this.getCommitmentData(),t=this.encoder.encode(e);return N.Hashes.sha256AsBinary(t)}getRawValue(){let e=this.getInternalData();switch(e.type){case Q.Public:case Q.Plain:case Q.HashableFromValue:return e.value;case Q.Hashable:return A.binaryToHexa(e.hash);case Q.MaskableFromAllParts:return e.visible.parts.map((t,n)=>n&1?e.hidden.parts[n>>1]:t).join(``);case Q.MaskableFromVisibleParts:return e.visible.parts.join(``);default:throw Error(`invalid internal data type ${e.type}`)}}getTypedValue(){let e=this.getInternalData(),t=this.getRawValue();switch(e.type){case Q.Public:case Q.Plain:case Q.HashableFromValue:case Q.MaskableFromAllParts:return{disclosure:`plain`,value:t};case Q.Hashable:return{disclosure:`hashed`,value:t};case Q.MaskableFromVisibleParts:return{disclosure:`masked`,value:t};default:throw Error(`invalid internal data type ${e.type}`)}}},AS=class e{channelMap;fieldMap;publicChannels;constructor(){this.channelMap=new Map,this.fieldMap=new Map,this.publicChannels=new Set}static fromMerkleRecord(t){let n=new e;return n.setChannelsFromMerkleRecord(t),n}static fromProofChannels(t){let n=new e;return n.setChannelsFromProofChannels(t),n}setChannelsFromMerkleRecord(e){this.publicChannels=e.getPublicChannels();let t=e.getLeavesByChannelMap();for(let[e,n]of t)this.channelMap.set(e,{nLeaves:n.length,leaves:n,tree:new OS,witnesses:[]});this.buildTrees(),this.buildFieldMap()}setChannelsFromProofChannels(e){for(let t of e){let e=[];for(let n of t.fields){let t=kS.fromProofFormat(n),r=n.type==xS.Public?0:n.index;e.push({leaf:t,path:n.path,index:r})}let n=t.witnesses.map(e=>A.binaryFromHexa(e));t.is_public&&this.publicChannels.add(t.id),this.channelMap.set(t.id,{nLeaves:t.n_leaves,leaves:e,tree:new OS,witnesses:n})}this.buildTrees(),this.buildFieldMap()}toJson(e=!1){let t={},n=[];for(let{leaves:e}of this.channelMap.values())for(let t of e)t!==null&&n.push(t);for(let{path:r,leaf:i}of n){let n=[`root`,...r],a=t;for(let t=0;t<n.length;t++){let r=n[t];if(t==n.length-1)a[r]=e?i.getTypedValue():i.getRawValue();else{let e=typeof n[t+1]==`number`;if(a[r]===void 0)a[r]=e?[]:{};else if(Array.isArray(a[r])!==e){let e=n.slice(0,t+1).join(`.`);throw Error(`${e} is defined as both an array and an object`)}a=a[r]}}}return t.root}buildTrees(){for(let[e,t]of this.channelMap)if(!this.publicChannels.has(e)){for(let e of t.leaves)e!==null&&t.tree.setLeaf(e.index,e.leaf.getHash());t.tree.finalize(t.nLeaves),t.tree.setWitnesses(t.witnesses)}}buildWitnesses(){for(let[e,t]of this.channelMap){if(this.publicChannels.has(e))continue;let n=new Set;for(let e of t.leaves)e!==null&&n.add(e.index);let r=[];for(let e=0;e<t.nLeaves;e++)n.has(e)||r.push(e);t.witnesses=t.tree.getWitnesses(r)}}buildFieldMap(){this.fieldMap.clear();for(let[e,t]of this.channelMap)for(let n=0;n<t.leaves.length;n++){let r=t.leaves[n];if(r===null)continue;let i=r.path,a=JSON.stringify(i);this.fieldMap.set(a,{channelId:e,index:n})}}getLeafByPath(e){let{channelId:t,index:n}=this.getFieldByPath(e),r=this.getChannel(t).leaves[n];if(r===null)throw Error(`this field has been removed`);return r.leaf}getFieldByPath(e){let t=JSON.stringify(e),n=this.fieldMap.get(t);if(n===void 0)throw Error(`unknown path ${t}`);return n}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`unknown channel ID ${e}`);return t}removeField(e){let{channelId:t,index:n}=this.getFieldByPath(e),r=this.getChannel(t);r.leaves[n]=null}setFieldToHashed(e){this.getLeafByPath(e).setToHashed()}setFieldToMasked(e){this.getLeafByPath(e).setToMasked()}getRootHashAsBinary(e){let t=this.getChannel(e);return this.publicChannels.has(e)?A.getNullHash():t.tree.getRootHash()}getRootHashAsHexString(e){let t=this.getRootHashAsBinary(e);return A.binaryToHexa(t)}toProofChannels(){this.buildWitnesses();let e=[];for(let[t,n]of this.channelMap){let r=this.publicChannels.has(t),i=[];for(let e of n.leaves){if(e===null)continue;let t=e.leaf.toProofFormat(e.path,e.index);i.push(t)}let a=n.witnesses.map(e=>A.binaryToHexa(e));e.push({id:t,is_public:r,n_leaves:n.nLeaves,fields:i,witnesses:a})}return e}},jS=class e{channelMap;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromRecord(t){let n=new e;n.setPublicChannels(t.getPublicChannels());let r=t.getItemList();for(let e of r){let t=e.item.channelId,r=n.channelMap.get(t);r===void 0&&(r=[],n.channelMap.set(t,r)),r.push(e)}return n}setChannel(e,t,n){t?this.publicChannels.add(e):this.publicChannels.delete(e),this.channelMap.set(e,n)}setPublicChannels(e){this.publicChannels=e}getPublicChannels(){return this.publicChannels}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getFlatItems(e){let t=this.channelMap.get(e);if(t==null)throw Error(`Channel ${e} not found`);return t}},MS=class{pepper;hasNullPepper;sha512;counter;constructor(e){this.pepper=e,this.sha512=new Uint8Array(64),this.counter=0,this.hasNullPepper=this.pepper.every(e=>e==0)}static generatePepper(){return N.Random.getBytes(32)}getPepper(){return this.pepper}getSalt(){let e=this.counter&3,t=this.counter++>>2;return!e&&!this.hasNullPepper&&(this.sha512=N.Hashes.sha512AsBinary(A.binaryFrom(this.pepper,t))),this.sha512.slice(e<<4,e+1<<4)}},NS=class e{channelMap;recordByChannels;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromRecordByChannels(t,n=void 0){let r=new e;return r.setChannelsFromRecordByChannels(t,n),r}setChannelsFromRecordByChannels(e,t=void 0){this.publicChannels=e.getPublicChannels(),this.recordByChannels=e;let n=this.recordByChannels.getChannelIds();for(let e of n){let n=this.publicChannels.has(e),r=n?A.getNullHash():t===void 0?MS.generatePepper():t.get(e);if(r===void 0)throw Error(`no pepper specified for channel ${e}`);let i=this.recordByChannels.getFlatItems(e);this.storeChannel(e,n,i,r)}}storeChannel(e,t,n,r){let i=this.flatItemsToPositionedLeaves(n,t,r);this.channelMap.set(e,{pepper:r,positionedLeaves:i})}getPublicChannels(){return this.publicChannels}getLeavesByChannelMap(){let e=new Map;for(let[t,n]of this.channelMap)e.set(t,n.positionedLeaves);return e}getRecordByChannels(){let e=this.recordByChannels;if(e===void 0)throw Error(`recordByChannels is not set`);return e}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getChannelPepper(e){return this.getChannel(e).pepper}getChannelRootHash(e){let t=this.getChannel(e);if(this.publicChannels.has(e))return A.getNullHash();let n=new OS;for(let e of t.positionedLeaves){let t=e.leaf.getHash();n.addLeaf(t)}return n.finalize(),n.getRootHash()}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`channel ${e} not found`);return t}flatItemsToPositionedLeaves(e,t,n){let r=new MS(n);return e.map((e,n)=>({leaf:this.flatItemToLeaf(r,t,e.item),index:n,path:e.path}))}flatItemToLeaf(e,t,n){let r=n.type==mS.String?n.transformation.type:fS.None;if(t&&r!=fS.None)throw Error(`no transformation may be applied to a public field`);switch(r){case fS.None:return t?kS.fromItemWithPublicData(n):kS.fromItemWithPlainData(e,n);case fS.Hashable:return kS.fromItemWithHashedData(e,n);case fS.Maskable:return kS.fromItemWithMaskedData(e,n);default:throw Error(`unsupported transformation type ${r}`)}}},PS=class e{itemList;publicChannels;constructor(){this.itemList=[],this.publicChannels=new Set}static fromObject(t){let n=new e,r=z(uS,t);return n.buildItemListByDfs(r),n}setChannelAsPublic(e){this.publicChannels.add(e)}setChannelAsPrivate(e){this.publicChannels.delete(e)}getPublicChannels(){return this.publicChannels}setChannel(e,t){let n=this.getFieldsByPathString(e);for(let e of n)this.setFieldChannel(e.item,t)}setFieldChannel(e,t){e.channelId=t}setAsHashable(e){let t=this.getFieldsByPathString(e);for(let e of t)this.setFieldAsHashable(e.item)}setFieldAsHashable(e){if(e.type!==mS.String)throw Error(`only a string may be set as hashable`);e.transformation={type:fS.Hashable}}setMaskOnField(e,t){if(e.type!==mS.String)throw Error(`a mask may only be applied to a string`);let n=[],r=[];t.sort((e,t)=>e.start-t.start),t.forEach((i,a)=>{let o=a>0?t[a-1].start:0,s=a>0?t[a-1].end:0;if(i.start<0||i.start>=e.value.length||i.end<=i.start)throw`invalid interval [${[i.start,i.end]}]`;if(i.start<s)throw`overlapping intervals [${[o,s]}] and [${[i.start,i.end]}]`;let c=e.value.slice(i.start,i.end);a&&i.start==s?(n[n.length-1]+=i.replacement,r[r.length-1]+=c):(n.push(e.value.slice(s,i.start),i.replacement),r.push(c)),a==t.length-1&&i.end<e.value.length&&n.push(e.value.slice(i.end))}),e.transformation={type:fS.Maskable,visibleParts:n,hiddenParts:r}}setMaskByPositions(e,t){let n=this.getFieldsByPathString(e);for(let e of n)this.setMaskOnField(e.item,t)}setMaskByRegex(e,t,n){let r=this.getFieldsByPathString(e);for(let e of r)this.setMaskByRegexOnField(e.item,t,n)}setMaskByRegexOnField(e,t,n){if(e.type!==mS.String)throw Error(`a mask may only be applied to a string`);let r=(t.exec(e.value)||[]).slice(1);if(r.join(``)!=e.value)throw`the regular expression ${t} does not capture all string parts`;let i=n.split(/(\$\d+)/).map((e,t)=>({shown:!!(t&1),string:e})).filter(e=>e.string!=``);if(i.length!=r.length||i.some((e,t)=>e.shown&&e.string!=`$`+(t+1)))throw`invalid substitution string "${n}"`;let a=[],o=0;i.forEach((e,t)=>{let n=o+r[t].length;e.shown||a.push({start:o,end:n,replacement:e.string}),o=n}),this.setMaskOnField(e,a)}getItemList(){return this.itemList}getFieldsByPathString(e){let t=e.match(/\[\d+\]|[^.[]+/g)||[];if(t[0]!==`this`)throw Error(`the path should begin with 'this'`);let n=t.slice(1).map(e=>e[0]==`[`?Number(e.slice(1,-1)):e);if(n.some((e,t)=>e==`*`&&t!=n.length-1))throw Error(`a wildcard may only appear at the end of the path`);let r=n[n.length-1]==`*`;return this.itemList.filter(e=>{let t;if(r){if(e.path.length<n.length)return!1;t=n.slice(0,-1)}else{if(e.path.length!=n.length)return!1;t=n}return t.every((t,n)=>t===e.path[n])})}static getValueType(e){if(typeof e==`string`)return mS.String;if(typeof e==`number`)return mS.Number;if(typeof e==`boolean`)return mS.Boolean;if(e===null)return mS.Null;if(Array.isArray(e))return mS.Array;if(typeof e==`object`&&Object.getPrototypeOf(e).isPrototypeOf(Object))return mS.Object;throw Error(`unsupported field type`)}static getPrimitiveValueType(t){let n=e.getValueType(t);if(n==mS.Array||n==mS.Object)throw Error(`expected a primitive value, got an array or an object`);return n}buildItemListByDfs(t,n=[]){switch(e.getValueType(t)){case mS.String:this.addFlatItem(n,this.buildStringItem(t));break;case mS.Number:this.addFlatItem(n,this.buildNumberItem(t));break;case mS.Boolean:this.addFlatItem(n,this.buildBooleanItem(t));break;case mS.Null:this.addFlatItem(n,this.buildNullItem());break;case mS.Array:this.buildArrayItem(t,n);break;case mS.Object:this.buildObjectItem(t,n);break;default:throw Error(`unsupported field type`)}}addFlatItem(e,t){let n={path:e,item:t};this.itemList.push(n)}buildStringItem(e){return{type:mS.String,value:e,transformation:{type:fS.None},channelId:-1}}buildNumberItem(e){return{type:mS.Number,value:e,channelId:-1}}buildBooleanItem(e){return{type:mS.Boolean,value:e,channelId:-1}}buildNullItem(){return{type:mS.Null,value:null,channelId:-1}}buildArrayItem(e,t){e.forEach((e,n)=>{this.buildItemListByDfs(e,[...t,n])})}buildObjectItem(e,t){Object.keys(e).forEach(n=>{let r=e[n];this.buildItemListByDfs(r,[...t,n])})}},FS=class e{encoder=new yx;channelMap;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromMerkleRecord(t){let n=new e;return n.setChannelsFromMerkleRecord(t),n}logger=k.getLogger([e.name]);setChannelsFromMerkleRecord(e){this.publicChannels=e.getPublicChannels();let t=e.getRecordByChannels(),n=e.getChannelIds();for(let r of n){let n=e.getChannelPepper(r),i=e.getChannelRootHash(r),a=t.getFlatItems(r).map(e=>({path:e.path,value:e.item.value,...e.item.transformation?{transformation:e.item.transformation}:{}}));this.channelMap.set(r,{rootHash:i,pepper:n,onChainItems:a})}}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getOnChainData(e,t=!1){let n=this.getChannel(e),r=new yx().encode(n.onChainItems),i={pepper:n.pepper,data:r},a=this.encoder.encode(i);return{isPublic:this.publicChannels.has(e),merkleRootHash:n.rootHash,data:a}}addOnChainData(e,t,n,r){if(this.channelMap.has(e))throw Error(`channel ${e} has already been set`);t?this.publicChannels.add(e):this.publicChannels.delete(e);let i=this.encoder.decode(r);z(vS,i);let a=i.pepper,o=this.encoder.decode(i.data);z(bS,o),this.channelMap.set(e,{rootHash:n,pepper:a,onChainItems:o})}toMerkleRecord(e=!0){let t=new jS,n=new Map;for(let[e,r]of this.channelMap){let i=r.onChainItems.map(t=>{let n={channelId:e,type:PS.getPrimitiveValueType(t.value),value:t.value,...t.transformation?{transformation:t.transformation}:{}};return{path:t.path,item:n}}),a=this.publicChannels.has(e);t.setChannel(e,a,i),n.set(e,r.pepper)}let r=NS.fromRecordByChannels(t,n);if(e){for(let[e,t]of this.channelMap)if(!this.publicChannels.has(e)){let n=r.getChannelRootHash(e);if(!A.binaryIsEqual(n,t.rootHash))throw Error(`inconsistent Merkle root hash for private channel ${e} (computed ${A.binaryToHexa(n)}, on-chain value is ${A.binaryToHexa(t.rootHash)})`)}}return r}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`channel ${e} not found`);return t}},IS=class e extends Jx{static createApplicationLedgerVirtualBlockchain(t){return new e(t)}draftModeEnabled=!1;constructor(e,t=kx.createInitialState()){super(e,U.APP_LEDGER_VIRTUAL_BLOCKCHAIN,t)}async isAccountIdAllowedToWrite(e){if(this.getHeight()===0)return!0;let t=await this.getVirtualBlockchainOwnerId(),n=this.internalState.getAdditionalAllowedWriters();return[t.toBytes(),...n].some(t=>A.binaryIsEqual(t,e.toBytes()))}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=this.internalState.getApplicationId();return(await this.provider.loadApplicationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async updateInternalState(e,t,n){let r=e.getApplicationLedgerInternalStateUpdaterVersion();return Ux.createApplicationLedgerInternalStateUpdater(r).updateState(this.provider,this.internalState,n)}checkMicroblockStructure(e){return this.draftModeEnabled?!0:new cS().checkMicroblockStructure(e)}enableDraftMode(){this.draftModeEnabled=!0}disableDraftMode(){this.draftModeEnabled=!1}setInternalState(e){this.internalState=e}isActorDefined(e){return this.internalState.isActorDefinedByName(e)}actorIsSubscribed(e){return this.getActor(e).subscribed}getInternalState(){return this.internalState}async getActorIdByPublicSignatureKey(t){let n=k.getLogger([e.name]),r=this.internalState,i=t.getPublicKeyAsBytes();for(let e=0;e<r.getNumberOfActors();e++){let t=r.getActorById(e);if(n.debug(`Search current actor id: loop index ${e}`),t.subscribed)try{let r=await this.getMicroblock(t.signatureKeyHeight);for(let a of r.getAllSections()){if(a.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION)continue;let{actorId:r}=a;if(r!==e)continue;let{signaturePublicKey:o}=a,s=A.binaryIsEqual(a.signaturePublicKey,await i);if(n.debug(`Is public key matching for actor ${t.name} (id ${e})? ${o} and ${i}: ${s}`),s)return n.debug(`Matching public signature key: {actor.name} (id ${e})`,{actor:t}),e}}catch(e){if(e instanceof x)n.debug(`{e}`,{e});else if(e instanceof Ee)n.debug(`{e}`,{e});else throw e}}throw n.debug(`Current actor not found`),new pe}async getPublicEncryptionKeyByActorId(e){let t=this.internalState.getActorById(e).pkeKeyHeight;if(typeof t==`number`&&t!==0){let n=await this.getMicroblock(t);for(let t of n.getAllSections()){if(t.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION||t.actorId!=e)continue;let n=t.pkePublicKey,r=t.pkeSchemeId;return Uv.createPublicEncryptionKey(r,n)}}throw new Te(e,this.getActorNameById(e))}async getPublicSignatureKeyByActorId(e){let t=this.internalState.getActorById(e).signatureKeyHeight;if(typeof t==`number`&&t!==0){let n=await this.getMicroblock(t);for(let t of n.getAllSections()){if(t.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION||t.actorId!=e)continue;let n=t.signaturePublicKey,r=t.signatureSchemeId;return Uv.createPublicSignatureKey(r,n)}}throw new we(`Actor ${e} has not subscribed to a public signature key.`)}async getExistingSharedKey(e,t){let n=this.internalState.getActorById(t).sharedSecrets.find(t=>t.peerActorId==e);if(n===void 0)return;let r=await this.getMicroblock(n.height);for(let n of r.getAllSections())if(n.type===O.APP_LEDGER_SHARED_SECRET&&!(n.hostId!==e||n.guestId!==t))return n.encryptedSharedKey;throw new De(t,e)}getChannelIdByChannelName(e){return this.internalState.getChannelIdFromChannelName(e)}getActorNameById(e){return this.internalState.getActorById(e).name}getChannelNameById(e){return this.internalState.getChannelFromChannelId(e).name}getActorIdFromActorName(e){return this.internalState.getActorIdByName(e)}getActor(e){return this.internalState.getActorByName(e)}getAllActors(){return this.internalState.getAllActors()}getAllChannels(){return this.internalState.getAllChannels()}async getOrganizationId(){let e=this.getApplicationId();return(await this.provider.loadApplicationVirtualBlockchain(e)).getOrganizationId()}getApplicationId(){return this.internalState.getApplicationId()}getNumberOfChannels(){return this.internalState.getNumberOfChannels()}getChannelById(e){return this.internalState.getChannelFromChannelId(e)}getNumberOfActors(){return this.internalState.getNumberOfActors()}async getMicroblockMerkleRecord(t,n){let r=await this.getMicroblock(t),i=[];for(let e of r.getAllSections()){if(e.type!==O.APP_LEDGER_PUBLIC_CHANNEL_DATA)continue;let{channelId:t,data:n}=e;i.push({channelId:t,isPublic:!0,merkleRootHash:A.getNullHash(),data:n})}let a=k.getLogger([e.name]);if(n!==void 0){let o=await(await n.getPrivateSignatureKey(Ya.SECP256K1)).getPublicKey(),s;try{s=await this.getActorIdByPublicSignatureKey(o)}catch(t){if(t instanceof pe)k.getLogger([e.name]).debug(`Unabled to recover private channels: {e}`,{e:t});else throw t}if(typeof s==`number`)for(let e of r.getAllSections()){if(e.type!==O.APP_LEDGER_PRIVATE_CHANNEL_DATA)continue;let{channelId:r,encryptedData:o,merkleRootHash:c}=e;try{let e=await this.getChannelKey(s,r,n),l=this.deriveChannelSectionKey(e,t,r),u=this.deriveChannelSectionIv(e,t,r);a.debug(`Channel key ${e} at height ${t} and channel id ${r} -> Channel section key: ${l} (iv ${u}) `);let d=N.Aes.decryptGcm(l,o,u);a.debug(`Allowed to access private channel {channelName} (channel id={channelId})`,()=>({channelName:this.getChannelNameById(r),channelId:r})),i.push({channelId:r,isPublic:!1,merkleRootHash:c,data:d})}catch(e){if(e instanceof f||e instanceof he)a.debug(`Access to private channel {channelName} forbidden (channel id={channelId}): {e}`,()=>({e,channelName:this.getChannelNameById(r),channelId:r}));else throw e}}}else console.warn(`No private channel loaded: no private decryption key provided.`);let o=new FS;for(let e of i)o.addOnChainData(e.channelId,e.isPublic,e.merkleRootHash,e.data);return o.toMerkleRecord(!1)}deriveChannelSectionKey(e,t,n){return this.deriveChannelSectionMaterial(e,`CHANNEL_SECTION_KEY`,t,n,32)}deriveChannelSectionIv(e,t,n){return this.deriveChannelSectionMaterial(e,`CHANNEL_SECTION_IV`,t,n,12)}deriveChannelSectionMaterial(e,t,n,r,i){let a=new Uint8Array,o=new TextEncoder,s=A.binaryFrom(o.encode(t),r,new Uint8Array(A.intToByteArray(n,6)));return new _v().deriveKey(e,a,s,i)}async getChannelKey(e,t,n){sS.assert(typeof e==`number`,`Expected actor id with type number`),sS.assert(typeof t==`number`,`Expected channel id of type number: got ${typeof t}`);let r=this.internalState.getChannelCreatorIdFromChannelId(t),i=await n.getPrivateDecryptionKey(vv.ML_KEM_768_AES_256_GCM);if(r===e){let e=n.getSeedAsBytes();return await this.deriveChannelKey(e,t)}return await this.getChannelKeyFromInvitation(e,t,i)}async deriveChannelKey(e,t){let n=await this.getGenesisSeed(),r=new TextEncoder,i=A.binaryFrom(r.encode(`CHANNEL_KEY`)),a=A.binaryFrom(e,r.encode(`GENESIS_SEED`),n.toBytes(),r.encode(`CHANNEL_ID`),A.binaryFrom(t));return new _v().deriveKeyNoSalt(a,i,32)}async getChannelKeyFromInvitation(e,t,n){sS.assert(typeof e==`number`,`actorId should be a number, got ${typeof e}`),sS.assert(typeof t==`number`,`channelId should be a number, got ${typeof e}`);let r=this.internalState.getActorById(e).invitations.find(e=>e.channelId==t);if(!r){let n=this.internalState.getActorById(e).name,r=this.internalState.getChannelFromChannelId(t).name;throw new he(n,r)}let i=await this.getMicroblock(r.height),a;for(let n of i.getAllSections())n.type===O.APP_LEDGER_CHANNEL_INVITATION&&(n.guestId!==e||n.channelId!==t||(a=n));if(a===void 0)throw new he(e,t);let o=a.encryptedChannelKey;return await n.decrypt(o)}async exportProof(e,t){let n=new lS;n.setIdentifier(A.binaryToHexa(this.getIdentifier().toBytes()));for(let e=1;e<=this.getHeight();e++){let r=await this.getMicroblockMerkleRecord(e,t);console.log(`Merkle record at height ${e}:`,r);let i=AS.fromMerkleRecord(r);console.log(`Proof record at height ${e}:`,i);let a=i.toProofChannels();console.log(`Proof channels at height ${e}:`,a),n.addMicroblock(e,a)}let r=new DS;return r.setAuthor(e.author),r.addVirtualBlockchain(n),r.getObject()}async importProof(e){let t=[],n=DS.fromObject(e).getSingleVirtualBlockchainOrFail().getMicroblocks();for(let e of n){let n=e.height,r=await this.getMicroblock(n),i=[];for(let e of r.getAllSections())if(e.type===O.APP_LEDGER_PUBLIC_CHANNEL_DATA){let{channelId:t}=e;i.push({channelId:t,merkleRootHash:A.getNullHash()})}else if(e.type===O.APP_LEDGER_PRIVATE_CHANNEL_DATA){let{channelId:t,merkleRootHash:n}=e;i.push({channelId:t,merkleRootHash:n})}console.log(`ProofMicroblock.channels=`,e.channels);let a=AS.fromProofChannels(e.channels);for(let e of i){let t=a.getRootHashAsBinary(e.channelId);if(!A.binaryIsEqual(e.merkleRootHash,t)){console.log(t,e);let n=A.binaryToHexa(t),r=A.binaryToHexa(e.merkleRootHash);throw new ce(e.channelId,n,r)}}t.push({height:n,data:a.toJson()})}return t}async getRecord(e,t){let n=await this.getMicroblockMerkleRecord(e,t);return AS.fromMerkleRecord(n).toJson()}async isActorInChannel(e,t){return this.internalState.getActorById(t).invitations.some(t=>t.channelId==e)}},LS=class e{constructor(e){this.value=e}static of(t){return new e(t)}static some(t){return new e(t)}static none(){return new e(null)}map(t){return this.value===null?e.none():e.some(t(this.value))}unwrap(){if(this.value===null)throw Error(`Called unwrap on a None value`);return this.value}unwrapOrThrow(e){if(this.value===null)throw e;return this.value}unwrapOr(e){return this.value===null?e:this.value}isSome(){return this.value!==null}isNone(){return this.value===null}},RS=class{_error=LS.none();hash;header;verificationState={isMicroblockParsingCompleted:!1};constructor(e,t){this.provider=e,this.checkedMicroblock=t}async checkVirtualBlockchainConsistencyOrFail(){if(this.verificationState.isMicroblockParsingCompleted)throw new a(`You have already called parseMicroblock() method. You can only call it once.`);if(!this.checkedMicroblock.isDeclaringConsistentBodyHash())throw Error(`inconsistent body hash detected for microblock hash ${A.binaryToHexa(this.checkedMicroblock.getHashAsBytes())}`);let e=this.checkedMicroblock.getType(),t=0,n,r=this.checkedMicroblock.getPreviousHash().toBytes();if(this.checkedMicroblock.isGenesisMicroblock()){let t=r;e=Kx.extractTypeFromGenesisPreviousHash(t),n=this.checkedMicroblock.getHash()}else{let e=await this.provider.getMicroblockHeader(Dx.from(r));if(!e)throw Error(`previous microblock ${A.binaryToHexa(r)} not found`);if(this.checkedMicroblock.getHeight()!=e.height+1)throw Error(`inconsistent microblock height (expected ${e.height+1}, got ${this.checkedMicroblock.getHeight()})`);let t=xx.computeMicroblockHashFromHeader(e);n=await this.provider.getVirtualBlockchainIdContainingMicroblock(Dx.from(t))}let i;if(this.checkedMicroblock.isGenesisMicroblock()){switch(e){case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:i=new Qx(this.provider);break;case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:i=new eS(this.provider);break;case U.APPLICATION_VIRTUAL_BLOCKCHAIN:i=new nS(this.provider);break;case U.NODE_VIRTUAL_BLOCKCHAIN:i=new iS(this.provider);break;case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:i=new oS(this.provider);break;case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:i=new IS(this.provider);break;default:throw Error(`Unknown virtual blockchain type: ${e}`)}let n=this.checkedMicroblock.getPreviousHash().toBytes();t=Kx.extractExpirationDayFromGenesisPreviousHash(n),i.setExpirationDay(t)}else switch(e){case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadOrganizationVirtualBlockchain(n);break;case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadAccountVirtualBlockchain(n);break;case U.APPLICATION_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadApplicationVirtualBlockchain(n);break;case U.NODE_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadValidatorNodeVirtualBlockchain(n);break;case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadProtocolVirtualBlockchain(n);break;case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadApplicationLedgerVirtualBlockchain(n);break;default:throw Error(`Unknown virtual blockchain type: ${e}`)}await i.appendMicroBlock(this.checkedMicroblock),this.verificationState={isMicroblockParsingCompleted:!0,virtualBlockchain:i}}checkTimestampOrFail(e){if(this.verificationState.isMicroblockParsingCompleted===!1)throw new a(`You have already called reconstructMicroblockAndVirtualBlockchain() method. You can only call it once.`);let t=this.checkedMicroblock;e||=A.getTimestampInSeconds();let n=t.isTemporallyCloseTo(e);if(n===Wx.TOO_FAR_IN_THE_PAST)throw Error(`timestamp is too far in the past (header:${t.getTimestamp()} / current:${e})`);if(n===Wx.TOO_FAR_IN_THE_FUTURE)throw Error(`timestamp is too far in the future (header:${t.getTimestamp()} / current:${e})`)}async checkGasOrFail(e=A.getTimestampInSeconds()){if(this.verificationState.isMicroblockParsingCompleted===!1)throw new a(`You have already called reconstructMicroblockAndVirtualBlockchain() method. You can only call it once.`);let t=this.checkedMicroblock,n=await this.provider.computeMicroblockGas(t,{referenceTimestampInSeconds:e}),r=t.getGas();if(r!=n)throw Error(`Computed gas ${n} is not equal to declared gas ${r} `)}get virtualBlockchain(){if(this.verificationState.isMicroblockParsingCompleted)return this.verificationState.virtualBlockchain;throw new a(`Virtual blockchain not initialized.`)}getVirtualBlockchain(){return this.virtualBlockchain}getMicroblock(){return this.checkedMicroblock}getHash(){return this.hash}getError(){return this._error}containsError(){return this._error.isSome()}get error(){return this.containsError()?this._error.unwrap().toString():``}},zS=class{stateUpdater;constructor(e,t,n){this.mbUnderConstruction=e,this.vb=t,this.provider=n}onMicroblockSearchFailureForExceedingHeight(e,t){if(e.getHeight()+1===t)return Promise.resolve(this.mbUnderConstruction);throw new x(e.getIdentifier(),t)}getBuiltMicroblock(){return this.mbUnderConstruction}async updateStateWithSection(e){if(!this.stateUpdater){let e=await this.provider.getProtocolState();this.stateUpdater=Ux.createApplicationLedgerInternalStateUpdater(e.getApplicationLedgerInternalStateUpdaterVersion())}this.vb.setInternalState(await this.stateUpdater.updateStateFromSection(this.provider,this.vb.getInternalState(),e,this.mbUnderConstruction.getHeight()))}getInternalState(){return this.vb.getInternalState()}},BS=function(e){return e[e.UNKNOWN=0]=`UNKNOWN`,e[e.WALLET=1]=`WALLET`,e[e.OPERATOR=2]=`OPERATOR`,e}({}),VS=L({name:R()}),HS=L({name:R(),public:Gp()}),US=L({fieldPath:R(),channelName:R()}),WS=L({actorName:R(),channelName:R()}),GS=L({position:I(),length:I(),replacementString:R()}),KS=L({fieldPath:R(),maskedParts:P(GS)}),qS=L({fieldPath:R()}),JS=L({virtualBlockchainId:Zp(R()),data:Wp(),actors:Zp(P(VS)),channels:Zp(P(HS)),channelAssignations:Zp(P(US)),actorAssignations:Zp(P(WS)),hashableFields:Zp(P(qS)),maskableFields:Zp(P(KS)),author:R(),endorser:Zp(R()),approvalMessage:Zp(R())}),YS=class{static validate(e){return z(JS,e)}static safeParse(e){return im(JS,e)}static is(e){return Up(JS,e)}},XS=class e extends zS{logger=k.getLogger([e.name]);static async createFromVirtualBlockchain(t,n){let r=await n.createMicroblock(),i=new e(r,n);if(n.setMicroblockSearchFailureFallback(i),n.isEmpty()){let e={type:O.APP_LEDGER_CREATION,applicationId:t.toBytes()};r.addSection(e),await i.updateStateWithSection(e)}return i}usedSignatureSchemeId=Ya.SECP256K1;usedPkeSchemeId=vv.ML_KEM_768_AES_256_GCM;constructor(e,t){super(e,t,t.getProvider())}get state(){return this.getInternalState()}getActorPrivateSignatureKey(e){return e.getPrivateSignatureKey(this.usedSignatureSchemeId)}getActorPrivateDecryptionKey(e){return e.getPrivateDecryptionKey(this.usedPkeSchemeId)}async createMicroblockFromStateUpdateRequest(e,t){let n=YS.validate(t),r=await this.getActorPrivateDecryptionKey(e),a=await this.getActorPrivateSignatureKey(e),o=this.state.getNumberOfActors();for(let e of n.actors||[]){console.log(this.state.getAllActors());let t=e.name;this.vb.isActorDefined(t)?console.log(`Skipping actor creation: ${t} already created`):(await this.createActor(o,e.name),o+=1)}let s=n.author,c=this.getActorIdFromActorName(s);if(this.vb.isEmpty()){let e=await r.getPublicKey();await this.subscribeActor(s,await a.getPublicKey(),e)}let l=this.state.getNumberOfChannels();for(let e of n.channels||[]){let t={type:O.APP_LEDGER_CHANNEL_CREATION,id:l,isPrivate:!e.public,creatorId:c,name:e.name};this.mbUnderConstruction.addSection(t),await this.updateStateWithSection(t),l+=1}let u=PS.fromObject(n.data);for(let e of n.channelAssignations||[]){let t=this.state.getChannelIdFromChannelName(e.channelName);u.setChannel(e.fieldPath,t)}for(let t of n.actorAssignations||[]){let n=t.channelName,r=t.actorName;await this.inviteActorOnChannel(r,n,e)}for(let e of n.hashableFields||[])u.setAsHashable(e.fieldPath);for(let e of n.maskableFields||[]){let t=e.maskedParts.map(e=>({start:e.position,end:e.position+e.length,replacement:e.replacementString}));u.setMaskByPositions(e.fieldPath,t)}let d=this.state.getAllChannels();for(let e in d){let t=Number(e);d[t].isPrivate||u.setChannelAsPublic(Number(t))}let f=jS.fromRecord(u),p=NS.fromRecordByChannels(f),m=FS.fromMerkleRecord(p),h=m.getChannelIds();for(let t of h){let n=m.getOnChainData(t),{isPublic:r,merkleRootHash:i}=n;if(r){let e={type:O.APP_LEDGER_PUBLIC_CHANNEL_DATA,channelId:t,data:n.data};this.mbUnderConstruction.addSection(e),await this.updateStateWithSection(e)}else{let r=k.getLogger([`critical`]),a=this.vb.getHeight()+1,o=await this.vb.getChannelKey(c,t,e),s=this.vb.deriveChannelSectionKey(o,a,t),l=this.vb.deriveChannelSectionIv(o,a,t);r.debug(`Channel key ${o} at height ${a} and channel id ${t} -> Channel section key: ${s} (iv ${l}) `);let u=N.Aes.encryptGcm(s,n.data,l),d={type:O.APP_LEDGER_PRIVATE_CHANNEL_DATA,channelId:t,merkleRootHash:i,encryptedData:u};this.mbUnderConstruction.addSection(d),await this.updateStateWithSection(d)}}if(typeof n.endorser==`string`){if(n.endorser.trim().length===0)throw new i(`Empty endorser provided: should be a non-empty string or undefined`);let e=this.getActorIdFromActorName(n.endorser),t=n.approvalMessage??``,r={type:O.APP_LEDGER_ENDORSEMENT_REQUEST,message:t,endorserId:e};this.mbUnderConstruction.addSection(r),await this.updateStateWithSection(r)}return this.mbUnderConstruction}async createActor(e,t){console.log(`Creating actor ${t} (id ${e})`);let n={type:O.APP_LEDGER_ACTOR_CREATION,id:e,actorType:BS.UNKNOWN,name:t};this.mbUnderConstruction.addSection(n),await this.updateStateWithSection(n)}async inviteActorOnChannel(e,t,n){console.log(`Inviting actor `+e+` on channel `+t);let r=this.state.getChannelIdFromChannelName(t),i=this.getActorIdFromActorName(e),a=await this.getActorPrivateSignatureKey(n),o=await this.vb.getActorIdByPublicSignatureKey(await a.getPublicKey());sS.assert(typeof r==`number`,`Expected channel id of type number: got ${typeof r} for channel ${t}`);let s=i;if(await this.vb.isActorInChannel(r,s))return;let c=await this.vb.getChannelKey(o,r,n),l=await(await this.vb.getPublicEncryptionKeyByActorId(s)).encrypt(c),u=k.getLogger([IS.name]);u.info(`Actor {guestName} invited to channel ${t}`,()=>({guestName:e})),u.debug(`Channel key for channel ${t}: ${c}`);let d={type:O.APP_LEDGER_CHANNEL_INVITATION,channelId:r,hostId:o,guestId:s,encryptedChannelKey:l};this.mbUnderConstruction.addSection(d),await this.updateStateWithSection(d)}async createSharedKey(e,t,n){let{encryptedSharedKey:r,hostGuestSharedKey:i}=await this.generateSharedKeyAndEncryptedSharedKey(e,n),a={type:O.APP_LEDGER_SHARED_SECRET,hostId:t,guestId:n,encryptedSharedKey:r};return this.mbUnderConstruction.addSection(a),await this.updateStateWithSection(a),i}static deriveHostGuestSharedKey(e,t,n){let r=e.getRawPrivateKey(),i=new TextEncoder,a=A.binaryFrom(i.encode(`SHARED_SECRET`),n),o=new _v,s=A.binaryFrom(r,t),c=o.deriveKeyNoSalt(s,a,32);return Ig.createFromBytes(c)}async generateSharedKeyAndEncryptedSharedKey(t,n){let r=await this.getGenesisSeed(),i=e.deriveHostGuestSharedKey(t,r.toBytes(),n);return{encryptedSharedKey:await(await this.vb.getPublicEncryptionKeyByActorId(n)).encrypt(i.getRawSecretKey()),hostGuestSharedKey:i}}async getGenesisSeed(){return this.vb.isEmpty()?this.mbUnderConstruction.getPreviousHash():await this.vb.getGenesisSeed()}async subscribeActor(e,t,n){if(console.debug(`Subscribing ${e}`),!this.vb.isActorDefined(e)){console.log(`It appears that ${e} does not exist: create it`);let t=this.vb.getNumberOfActors();await this.createActor(t,e)}let r=BS.UNKNOWN,i=this.getActorIdFromActorName(e),a=A.getNullHash(),o={type:O.APP_LEDGER_ACTOR_SUBSCRIPTION,actorId:i,actorType:r,organizationId:a,signatureSchemeId:t.getSignatureSchemeId(),signaturePublicKey:await t.getPublicKeyAsBytes(),pkeSchemeId:n.getSchemeId(),pkePublicKey:await n.getRawPublicKey()};this.mbUnderConstruction.addSection(o),await this.updateStateWithSection(o)}getActorIdFromActorName(e){return this.state.getActorIdByName(e)}},ZS=class e{static ED25519_PUBLIC_KEY_TYPE=`tendermint/PubKeyEd25519`;static createFromEd25519PublicKey(t){return new e(e.ED25519_PUBLIC_KEY_TYPE,t)}constructor(e,t){this.type=e,this.publicKey=t}getType(){return this.type}getPublicKey(){return this.publicKey}},QS=class{encodeSignature(e){return e}decodeSignature(e){return e}encodeMessage(e){return e}decodeMessage(e){return e}async encodePublicKey(e){return Hs(JSON.stringify({signatureSchemeId:e.getSignatureSchemeId(),publicKey:hl(await e.getPublicKeyAsBytes())}))}async decodePublicKey(e){let t=JSON.parse(bl(e));if(t&&typeof t.signatureSchemeId==`number`&&typeof t.publicKey==`string`){let e=vl(t.publicKey);return new Uv().createPublicSignatureKey(t.signatureSchemeId,e)}else throw`Invalid public key format: expected raw-encoded JSON object with signatureSchemeId and publicKey fields.`}async encodePrivateKey(e){return Hs(JSON.stringify({signatureSchemeId:e.getSignatureSchemeId(),privateKey:hl(e.getPrivateKeyAsBytes())}))}async decodePrivateKey(e){let t=JSON.parse(bl(e));if(t&&typeof t.signatureSchemeId==`number`&&typeof t.privateKey==`string`){let e=vl(t.privateKey);return Uv.createPrivateSignatureKey(t.signatureSchemeId,e)}else throw`Invalid public key format: expected raw-encoded JSON object with signatureSchemeId and privateKey fields.`}},$S=new TextEncoder,eC=new TextDecoder;function tC(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=32768,n=[];for(let r=0;r<e.length;r+=t)n.push(String.fromCharCode.apply(null,e.subarray(r,r+t)));return btoa(n.join(``))}function nC(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function rC(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof e==`string`?e:eC.decode(e),{alphabet:`base64url`});let t=e;t instanceof Uint8Array&&(t=eC.decode(t)),t=t.replace(/-/g,`+`).replace(/_/g,`/`);try{return nC(t)}catch{throw TypeError(`The input to be decoded is not correctly encoded.`)}}function iC(e){let t=e;return typeof t==`string`&&(t=$S.encode(t)),Uint8Array.prototype.toBase64?t.toBase64({alphabet:`base64url`,omitPadding:!0}):tC(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}var aC=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},oC=class extends aC{static code=`ERR_JOSE_NOT_SUPPORTED`;code=`ERR_JOSE_NOT_SUPPORTED`},sC=e=>typeof e==`object`&&!!e;function cC(e){if(!sC(e)||Object.prototype.toString.call(e)!==`[object Object]`)return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var lC=`Invalid or unsupported JWK "alg" (Algorithm) Parameter value`;function uC(e){let t,n;switch(e.kty){case`AKP`:switch(e.alg){case`ML-DSA-44`:case`ML-DSA-65`:case`ML-DSA-87`:t={name:e.alg},n=e.priv?[`sign`]:[`verify`];break;default:throw new oC(lC)}break;case`RSA`:switch(e.alg){case`PS256`:case`PS384`:case`PS512`:t={name:`RSA-PSS`,hash:`SHA-${e.alg.slice(-3)}`},n=e.d?[`sign`]:[`verify`];break;case`RS256`:case`RS384`:case`RS512`:t={name:`RSASSA-PKCS1-v1_5`,hash:`SHA-${e.alg.slice(-3)}`},n=e.d?[`sign`]:[`verify`];break;case`RSA-OAEP`:case`RSA-OAEP-256`:case`RSA-OAEP-384`:case`RSA-OAEP-512`:t={name:`RSA-OAEP`,hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},n=e.d?[`decrypt`,`unwrapKey`]:[`encrypt`,`wrapKey`];break;default:throw new oC(lC)}break;case`EC`:switch(e.alg){case`ES256`:case`ES384`:case`ES512`:t={name:`ECDSA`,namedCurve:{ES256:`P-256`,ES384:`P-384`,ES512:`P-521`}[e.alg]},n=e.d?[`sign`]:[`verify`];break;case`ECDH-ES`:case`ECDH-ES+A128KW`:case`ECDH-ES+A192KW`:case`ECDH-ES+A256KW`:t={name:`ECDH`,namedCurve:e.crv},n=e.d?[`deriveBits`]:[];break;default:throw new oC(lC)}break;case`OKP`:switch(e.alg){case`Ed25519`:case`EdDSA`:t={name:`Ed25519`},n=e.d?[`sign`]:[`verify`];break;case`ECDH-ES`:case`ECDH-ES+A128KW`:case`ECDH-ES+A192KW`:case`ECDH-ES+A256KW`:t={name:e.crv},n=e.d?[`deriveBits`]:[];break;default:throw new oC(lC)}break;default:throw new oC(`Invalid or unsupported JWK "kty" (Key Type) Parameter value`)}return{algorithm:t,keyUsages:n}}async function dC(e){if(!e.alg)throw TypeError(`"alg" argument is required when "jwk.alg" is not present`);let{algorithm:t,keyUsages:n}=uC(e),r={...e};return r.kty!==`AKP`&&delete r.alg,delete r.use,crypto.subtle.importKey(`jwk`,r,t,e.ext??!(e.d||e.priv),e.key_ops??n)}async function fC(e,t,n){if(!cC(e))throw TypeError(`JWK must be an object`);let r;switch(t??=e.alg,r??=n?.extractable??e.ext,e.kty){case`oct`:if(typeof e.k!=`string`||!e.k)throw TypeError(`missing "k" (Key Value) Parameter value`);return rC(e.k);case`RSA`:if(`oth`in e&&e.oth!==void 0)throw new oC(`RSA JWK "oth" (Other Primes Info) Parameter value is not supported`);return dC({...e,alg:t,ext:r});case`AKP`:if(typeof e.alg!=`string`||!e.alg)throw TypeError(`missing "alg" (Algorithm) Parameter value`);if(t!==void 0&&t!==e.alg)throw TypeError(`JWK alg and alg option value mismatch`);return dC({...e,ext:r});case`EC`:case`OKP`:return dC({...e,alg:t,ext:r});default:throw new oC(`Unsupported "kty" (Key Type) Parameter value`)}}var pC=class{static async exportPublicSignatureKey(e){if(e instanceof Vv)return await fC({kty:`OKP`,crv:`Ed25519`,alg:`EdDSA`,x:iC(await e.getPublicKeyAsBytes())});throw Error(`Unsupported public key type`)}static async exportPrivateSignatureKey(e){if(e instanceof Hv){let t=e.getPrivateKeyAsBytes(),n=await(await e.getPublicKey()).getPublicKeyAsBytes();return await fC({kty:`OKP`,crv:`Ed25519`,alg:`EdDSA`,d:iC(t),x:iC(n)})}throw Error(`Unsupported key type`)}},mC=class{static defaultEncoder(){return Wv.createBase64HCVPkeEncoder()}},hC=class{encodeAsUint8Array(e){return Hs(JSON.stringify({symmetricEncryptionSchemeId:e.getSymmetricEncryptionSchemeId(),key:hl(e.getRawSecretKey())}))}decodeFromUint8Array(e){let t=JSON.parse(bl(e));if(t&&typeof t.symmetricEncryptionSchemeId==`number`&&typeof t.key==`string`){let e=vl(t.key);return new Uv().createSymmetricEncryptionKey(t.symmetricEncryptionSchemeId,e)}else throw`Invalid symmetric encryption key format: expected raw-encoded JSON object with symmetricEncryptionSchemeId and key fields.`}};function gC(e,t,n,r,i,a){let o=e[t++]^n[r++],s=e[t++]^n[r++],c=e[t++]^n[r++],l=e[t++]^n[r++],u=e[t++]^n[r++],d=e[t++]^n[r++],f=e[t++]^n[r++],p=e[t++]^n[r++],m=e[t++]^n[r++],h=e[t++]^n[r++],g=e[t++]^n[r++],_=e[t++]^n[r++],v=e[t++]^n[r++],y=e[t++]^n[r++],b=e[t++]^n[r++],ee=e[t++]^n[r++],x=o,te=s,ne=c,re=l,ie=u,ae=d,oe=f,se=p,ce=m,le=h,S=g,ue=_,de=v,fe=y,pe=b,me=ee;for(let e=0;e<8;e+=2)ie^=j(x+de|0,7),ce^=j(ie+x|0,9),de^=j(ce+ie|0,13),x^=j(de+ce|0,18),le^=j(ae+te|0,7),fe^=j(le+ae|0,9),te^=j(fe+le|0,13),ae^=j(te+fe|0,18),pe^=j(S+oe|0,7),ne^=j(pe+S|0,9),oe^=j(ne+pe|0,13),S^=j(oe+ne|0,18),re^=j(me+ue|0,7),se^=j(re+me|0,9),ue^=j(se+re|0,13),me^=j(ue+se|0,18),te^=j(x+re|0,7),ne^=j(te+x|0,9),re^=j(ne+te|0,13),x^=j(re+ne|0,18),oe^=j(ae+ie|0,7),se^=j(oe+ae|0,9),ie^=j(se+oe|0,13),ae^=j(ie+se|0,18),ue^=j(S+le|0,7),ce^=j(ue+S|0,9),le^=j(ce+ue|0,13),S^=j(le+ce|0,18),de^=j(me+pe|0,7),fe^=j(de+me|0,9),pe^=j(fe+de|0,13),me^=j(pe+fe|0,18);i[a++]=o+x|0,i[a++]=s+te|0,i[a++]=c+ne|0,i[a++]=l+re|0,i[a++]=u+ie|0,i[a++]=d+ae|0,i[a++]=f+oe|0,i[a++]=p+se|0,i[a++]=m+ce|0,i[a++]=h+le|0,i[a++]=g+S|0,i[a++]=_+ue|0,i[a++]=v+de|0,i[a++]=y+fe|0,i[a++]=b+pe|0,i[a++]=ee+me|0}function _C(e,t,n,r,i){let a=r+0,o=r+16*i;for(let r=0;r<16;r++)n[o+r]=e[t+(2*i-1)*16+r];for(let r=0;r<i;r++,a+=16,t+=16)gC(n,o,e,t,n,a),r>0&&(o+=16),gC(n,a,e,t+=16,n,o)}function vC(e,t,n){let{N:r,r:i,p:a,dkLen:o,asyncTick:s,maxmem:c,onProgress:l}=Ks({dkLen:32,asyncTick:10,maxmem:1024**3+1024},n);if(Ts(r),Ts(i),Ts(a),Ts(o),Ts(s),Ts(c),l!==void 0&&typeof l!=`function`)throw Error(`progressCb should be function`);let u=128*i,d=u/4,f=2**32;if(r<=1||r&r-1||r>f)throw Error(`Scrypt: N must be larger than 1, a power of 2, and less than 2^32`);if(a<0||a>(f-1)*32/u)throw Error(`Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)`);if(o<0||o>(f-1)*32)throw Error(`Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32`);if(u*(r+a)>c)throw Error(`Scrypt: memused is bigger than maxMem. Expected 128 * r * (N + p) > maxmem of `+c);let p=ov(Gc,e,t,{c:1,dkLen:u*a}),m=As(p),h=As(new Uint8Array(u*r)),g=As(new Uint8Array(u)),_=()=>{};if(l){let e=2*r*a,t=Math.max(Math.floor(e/1e4),1),n=0;_=()=>{n++,l&&(!(n%t)||n===e)&&l(n/e)}}return{N:r,r:i,p:a,dkLen:o,blockSize32:d,V:h,B32:m,B:p,tmp:g,blockMixCb:_,asyncTick:s}}function yC(e,t,n,r,i){let a=ov(Gc,e,n,{c:1,dkLen:t});return js(n,r,i),a}function bC(e,t,n){let{N:r,r:i,p:a,dkLen:o,blockSize32:s,V:c,B32:l,B:u,tmp:d,blockMixCb:f}=vC(e,t,n);Ls(l);for(let e=0;e<a;e++){let t=s*e;for(let e=0;e<s;e++)c[e]=l[t+e];for(let e=0,t=0;e<r-1;e++)_C(c,t,c,t+=s,i),f();_C(c,(r-1)*s,l,t,i),f();for(let e=0;e<r;e++){let e=l[t+s-16]%r;for(let n=0;n<s;n++)d[n]=l[t+n]^c[e*s+n];_C(d,0,l,t,i),f()}}return Ls(l),yC(e,o,u,c,d)}var xC=class extends cv{getKeyDerivationFunctionSchemeId(){return sv.SCRYPT}deriveKey(e,t,n){return bC(e,t,{N:2**16,r:8,p:1,dkLen:n})}},SC=function(e){return e[e.SECP256K1=Ya.SECP256K1]=`SECP256K1`,e[e.ML_DSA_65=Ya.ML_DSA_65]=`ML_DSA_65`,e}({}),CC=class{constructor(e){this.apiKey=e}async getPkmsCredential(){return this.apiKey}},wC=class{constructor(){}async has(e){return!1}async get(e){return!1}async set(e,t){}},TC=class{key;constructor(e,t,n){this.key=`${e}|${t}|${n}`}getKey(){return this.key}},EC=class{map;constructor(){this.map=new Map}async has(e){return this.map.has(e.getKey())}async get(e){return this.map.get(e.getKey())}async set(e,t){this.map.set(e.getKey(),t)}};(async function(){new EC})();var DC=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,OC={verifyFormat:kC,encodeNumber:AC,decodeNumber:jC,encodeToChar:MC,decodeFromChar:NC,CROCKFORD_CHARS:DC};function kC(e,t=e.length){return RegExp(`^(${[...DC].join(`|`)}){${t}}$`).test(e)}function AC(e,t){if(!Number.isInteger(t)||t<1||t>10)throw Error(`Invalid or unsafe size for base32 encoding`);if(!Number.isInteger(e)||e<0||e>=32**t)throw Error(`Invalid number for base32 encoding of size ${t}`);return[...Array(t).keys()].map(t=>MC(e>>t*5&31)).join(``)}function jC(e){if(e.length==0||e.length>10)throw Error(`Invalid base32 string length`);return[...e].reduceRight((e,t)=>e<<5|NC(t),0)}function MC(e){let t=DC[e];if(t===void 0)throw Error(`Invalid base32 value`);return t}function NC(e){let t=DC.indexOf(e);if(e.length!=1||t==-1)throw Error(`Invalid base32 character`);return t}var PC=class{collection;constructor(e){this.collection=e}serialize(e,t){let n=this.collection[e],r=new Mv(n).serialize(t);return new Uint8Array([e,...r])}},FC=class{collection;constructor(e){this.collection=e}unserialize(e){let t=e[0],n=this.collection[t];if(!n)throw Error(`Unknown message type ${t}: I do not know how to unserialize this message.`);return{type:t,object:new Nv(n).unserialize(e.slice(1))}}},IC=class{schema;constructor(e){this.schema=e}validate(e){if(this.schema===void 0)throw new o(`Provided schema is undefined: this should not happen`);this.validateObject(this.schema.definition,e)}validateObject(e,t,n=``){for(let r of e){let e=n+(n&&`.`)+r.name,i=t[r.name];if(i===void 0){if(r.optional)continue;throw Error(`field '${e}' is missing`)}if(r.type&32){if(ro.getType(i)!=1)throw`'${e}' is not an array`;for(let t in i)this.validateItem(r,i[t],e+`[${t}]`)}else this.validateItem(r,i,e)}}validateItem(e,t,n){if((e.type&31)==2){if(ro.getType(t)!=2)throw`'${n}' is not an object`;if(!e.unspecifiedSchema){if(!e.schema)throw`missing definition in schema`;this.validateObject(e.schema.definition,t,n)}}else{let r=new io(e,t);try{r.check()}catch(e){throw`Error on field '${n}': ${e}`}}}},LC={getAccountTypeFromIdentifier:RC,getSpecialAccountTypeIdentifier:zC,isAllowedTransfer:BC};function RC(e){if(e.length!=32)throw Error(`invalid account identifier`);if(e.slice(0,-1).every(e=>e==0)){let t=e[31];if(t==1||!Wr[t])throw Error(`special account format detected, but with an invalid type (${t})`);return t}return 1}function zC(e){if(e==1||!Wr[e])throw Error(`${e} is not a valid special account type`);let t=new Uint8Array(32);return t[31]=e,t}function BC(e,t){return Gr[e]>>t&1}var VC=class e{constructor(e){this.amount=e}static create(t){return new e(t)}getAmount(){return this.amount}toString(){return`${this.amount} €`}},HC=class{static defaultEurosToCMTSTokenConverter(){return new UC}},UC=class e{static TOKENS_FOR_ONE_EUROS=100;convert(t){return hn.create(t.getAmount()*e.TOKENS_FOR_ONE_EUROS)}invert(t){return VC.create(t.getAmount()/e.TOKENS_FOR_ONE_EUROS)}},WC=class e{constructor(e,t,n){this.verified=e,this.appLedger=t,this.importedProofs=n}static createSuccessfulProofVerificationResult(t,n){return new e(!0,t,LS.some(n))}static createFailedProofVerificationResult(t){return new e(!1,t,LS.none())}isVerified(){return this.verified}getInvolvedBlockHeights(){return this.importedProofs.isSome()?this.importedProofs.unwrap().map(e=>e.height):[]}getApplicationLedgerId(){return this.appLedger.getIdentifier()}async getRecordContainedInBlockAtHeight(e,t){throw Error(`Not implemented`)}},GC=function(e){return e[e.PARSE_ERROR=-32700]=`PARSE_ERROR`,e[e.INVALID_REQUEST=-32600]=`INVALID_REQUEST`,e[e.METHOD_NOT_FOUND=-32601]=`METHOD_NOT_FOUND`,e[e.INVALID_PARAMS=-32602]=`INVALID_PARAMS`,e[e.INTERNAL_ERROR=-32603]=`INTERNAL_ERROR`,e[e.ENDPOINT_CLOSED_WHILE_NODE_IS_CATCHING_UP=-32603]=`ENDPOINT_CLOSED_WHILE_NODE_IS_CATCHING_UP`,e[e.TX_ALREADY_EXISTS=-32003]=`TX_ALREADY_EXISTS`,e[e.TX_OUT_OF_GAS=-32002]=`TX_OUT_OF_GAS`,e[e.TX_CHECK_FAILED=-32001]=`TX_CHECK_FAILED`,e[e.TX_DELIVER_FAILED=-32e3]=`TX_DELIVER_FAILED`,e}({}),KC=class e{log=k.getAbstractProviderLogger(e.name);async loadValidatorNodeVirtualBlockchain(e){let t=new iS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadAccountVirtualBlockchain(e){this.log.debug(`Loading account virtual blockchain with id ${e.encode()}`);let t=new eS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadApplicationLedgerVirtualBlockchain(e){let t=new IS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadApplicationVirtualBlockchain(e){let t=new nS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadOrganizationVirtualBlockchain(e){let t=new Qx(this);return await this.initializeVirtualBlockchain(t,e),t}async loadProtocolVirtualBlockchain(e){let t=new oS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadVirtualBlockchain(e){let t=await this.getVirtualBlockchainState(e.toBytes());if(t===null)throw Error(`Virtual Blockchain with hash ${e.encode()} does not exist.`);let n=t.type;switch(n){case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:return await this.loadAccountVirtualBlockchain(e);case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:return await this.loadOrganizationVirtualBlockchain(e);case U.APPLICATION_VIRTUAL_BLOCKCHAIN:return await this.loadApplicationVirtualBlockchain(e);case U.NODE_VIRTUAL_BLOCKCHAIN:return await this.loadValidatorNodeVirtualBlockchain(e);case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:return await this.loadProtocolVirtualBlockchain(e);case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:return await this.loadApplicationLedgerVirtualBlockchain(e);default:throw Error(`Unknown virtual blockchain type: ${n}`)}}async loadMicroblockByMicroblockHash(e){this.log.info(`Loading microblock ${e.encode()}`);let t=await this.getMicroblockHeader(e),n=await this.getMicroblockBody(e);if(t===null||n===null)throw Error(`Microblock ${e.encode()} not found`);return Kx.loadFromHeaderAndBody(t,n)}async getCurrentFeesFormula(){let e=(await this.getProtocolState()).getFeesCalculationVersion();return Tx.getFeesCalculationFormulaByVersion(this,e)}async computeMicroblockGas(e,t={}){let n=t.referenceTimestampInSeconds??A.getTimestampInSeconds(),r=0;if(e.isGenesisMicroblock())r=Kx.extractExpirationDayFromGenesisPreviousHash(e.getPreviousHash().toBytes());else{let t=await this.getVirtualBlockchainIdContainingMicroblock(e.getPreviousHash()),n=await this.getVirtualBlockchainState(t.toBytes());if(n===null)throw Error(`Virtual blockchain state not found`);r=n.expirationDay}let i=t.signatureSchemeId??e.getLastSignatureSection().schemeId;if(i===null)throw Error(`Signature scheme ID cannot be null`);return(await this.getCurrentFeesFormula()).computeGas(i,e,r,n)}async initializeVirtualBlockchain(e,t){let n=t.toBytes(),r=await this.getVirtualBlockchainStatus(n);if(r===null)throw new Se(t);if(r.type!==e.getType())throw Error(`Invalid blockchain type loaded`);e.setIdentifier(n),e.setHeight(r.height),e.setExpirationDay(r.expirationDay),e.setInternalState(Px.createInternalStateFromObject(e.getType(),r.internalState))}},qC=class e{expirationDate;endless;constructor(e,t){this.expirationDate=e,this.endless=t}static endless(){return new e(LS.none(),!0)}static of(t){return new e(LS.of(t),!1)}static fromDurationInDays(t){let n=new Date;return n.setDate(n.getDate()+t),e.of(n)}isEndless(){return this.endless}getExpirationDate(){return this.expirationDate.unwrap()}},JC=class e{static logger=k.getMemoryProviderLogger();static instance=new e;static getInstance(){return this.instance}microblockHeaderStore;microblockBodyStore;microblockVbInformationStore;virtualBlockchainStateStore;constructor(){this.microblockHeaderStore=new Map,this.microblockBodyStore=new Map,this.microblockVbInformationStore=new Map,this.virtualBlockchainStateStore=new Map}clear(){e.logger.info(`Clearing`),this.microblockHeaderStore=new Map,this.microblockBodyStore=new Map,this.microblockVbInformationStore=new Map,this.virtualBlockchainStateStore=new Map}async getSerializedInformationOfVirtualBlockchainContainingMicroblock(t){let n=await e.get(this.microblockVbInformationStore,t);return e.logger.info(`getMicroblockVbInformation identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getInformationOfVirtualBlockchainContainingMicroblock(e){let t=await this.getSerializedInformationOfVirtualBlockchainContainingMicroblock(e);return t===null?null:xx.decodeVirtualBlockchainInfo(t)}async getMicroblock(e){throw Error(`Method not implemented`)}async getMicroblockHeader(t){let n=await e.get(this.microblockHeaderStore,t);if(n===null)return e.logger.info(`Header not found locally: returning null`),null;{let r=xx.decodeMicroblockHeader(n);return e.logger.info(`Header of microblock with identifier=${A.binaryToHexa(t)} found: {header}`,{header:r}),r}}async getSerializedMicroblockHeader(t){let n=await e.get(this.microblockHeaderStore,t);if(n===null)return e.logger.info(`Header not found locally: returning null`),null;{let r=N.Hashes.sha256(n),i=xx.decodeMicroblockHeader(n);return e.logger.info(`Header of microblock with identifier (sha256:${r})=${A.binaryToHexa(t)} found: {header}`,{header:JSON.stringify(i)}),n}}async getMicroblockBody(t){let n=await e.get(this.microblockBodyStore,t);return e.logger.info(`getMicroblockBody identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getSerializedVirtualBlockchainState(t){let n=await e.get(this.virtualBlockchainStateStore,t);return e.logger.info(`getVirtualBlockchainState identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getAccountByPublicKeyHash(e){return null}async setMicroblockVbInformation(t,n){let r=xx.decodeVirtualBlockchainInfo(n);return e.logger.info(`Store info of vb identifier=${A.binaryToHexa(t)}: {info}`,{info:r}),await e.set(this.microblockVbInformationStore,t,n)}async setSerializedMicroblockHeader(t,n){let r=xx.decodeMicroblockHeader(n);return e.logger.info(`Store header of microblock identifier=${A.binaryToHexa(t)} -> {header}`,{header:r}),await e.set(this.microblockHeaderStore,t,n)}async setSerializedMicroblockBody(t,n){let r=xx.decodeMicroblockBody(n);return e.logger.info(`Store body of microblock ${A.binaryToHexa(t)}: {body}`,{body:r}),await e.set(this.microblockBodyStore,t,n)}async setMicroblockHeader(e,t){let n=xx.encodeMicroblockHeader(t);await this.setSerializedMicroblockHeader(e,n)}async setMicroblockBody(e,t){let n=xx.encodeMicroblockBody(t);await this.setSerializedMicroblockBody(e,n)}async setSerializedVirtualBlockchainState(t,n){let r=xx.decodeVirtualBlockchainState(n);return e.logger.info(`Store vb state for vb ${A.binaryToHexa(t)}: {state}`,{state:r}),await e.set(this.virtualBlockchainStateStore,t,n)}static async get(e,t){let n=A.binaryToHexa(t);if(!e.has(n))return null;let r=e.get(n);return r===void 0?null:A.binaryFromHexa(r)}static async set(t,n,r){let i=A.binaryToHexa(n),a=A.binaryToHexa(r),o=t.get(i);o===void 0?e.logger.info(`Storing new entry for key ${i}`):o===a?e.logger.info(`Storing the same data for the same key ${i}`):e.logger.info(`Storing new data for key ${i}`),t.set(i,a)}},YC=L({jsonrpc:F(`2.0`),id:I(),result:L({node_info:L({protocol_version:L({p2p:R(),block:R(),app:R()}),id:R(),listen_addr:R(),network:R(),version:R(),channels:R(),moniker:R(),other:L({tx_index:R(),rpc_address:R()})}),sync_info:L({latest_block_hash:R(),latest_app_hash:R(),latest_block_height:R(),latest_block_time:R(),earliest_block_hash:R(),earliest_app_hash:R(),earliest_block_height:R(),earliest_block_time:R(),catching_up:Gp()}),validator_info:L({address:R(),pub_key:L({type:R(),value:R()}),voting_power:R()})})}),$=function(e){return e[e.GET_CHAIN_INFORMATION=1]=`GET_CHAIN_INFORMATION`,e[e.GET_BLOCK_INFORMATION=3]=`GET_BLOCK_INFORMATION`,e[e.GET_BLOCK_CONTENT=5]=`GET_BLOCK_CONTENT`,e[e.GET_VIRTUAL_BLOCKCHAIN_STATE=7]=`GET_VIRTUAL_BLOCKCHAIN_STATE`,e[e.GET_VIRTUAL_BLOCKCHAIN_UPDATE=9]=`GET_VIRTUAL_BLOCKCHAIN_UPDATE`,e[e.GET_MICROBLOCK_INFORMATION=11]=`GET_MICROBLOCK_INFORMATION`,e[e.AWAIT_MICROBLOCK_ANCHORING=13]=`AWAIT_MICROBLOCK_ANCHORING`,e[e.GET_MICROBLOCK_BODYS=15]=`GET_MICROBLOCK_BODYS`,e[e.GET_ACCOUNT_STATE=17]=`GET_ACCOUNT_STATE`,e[e.GET_ACCOUNT_HISTORY=19]=`GET_ACCOUNT_HISTORY`,e[e.GET_ACCOUNT_BY_PUBLIC_KEY_HASH=21]=`GET_ACCOUNT_BY_PUBLIC_KEY_HASH`,e[e.GET_VALIDATOR_NODE_BY_ADDRESS=23]=`GET_VALIDATOR_NODE_BY_ADDRESS`,e[e.GET_OBJECT_LIST=25]=`GET_OBJECT_LIST`,e[e.GET_GENESIS_SNAPSHOT=27]=`GET_GENESIS_SNAPSHOT`,e[e.GET_RAW_BLOCK_CONTENT=29]=`GET_RAW_BLOCK_CONTENT`,e[e.GET_BLOCK_MODIFIED_ACCOUNTS=31]=`GET_BLOCK_MODIFIED_ACCOUNTS`,e[e.GET_ACCOUNT_UPDATES=33]=`GET_ACCOUNT_UPDATES`,e[e.GET_MICROBLOCK_INFORMATION_BY_HEIGHT=35]=`GET_MICROBLOCK_INFORMATION_BY_HEIGHT`,e[e.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT=37]=`GET_SERIALIZED_MICROBLOCK_BY_HEIGHT`,e[e.GET_MICROBLOCK_PROOF=39]=`GET_MICROBLOCK_PROOF`,e}({}),XC=L({requestType:F($.GET_CHAIN_INFORMATION)}),ZC=L({requestType:F($.GET_BLOCK_INFORMATION),height:B(I(),Ip(),Bp(0))}),QC=L({requestType:F($.GET_BLOCK_CONTENT),height:B(I(),Ip(),Bp(0))}),$C=L({requestType:F($.GET_VIRTUAL_BLOCKCHAIN_STATE),virtualBlockchainId:km()}),ew=L({requestType:F($.GET_VIRTUAL_BLOCKCHAIN_UPDATE),virtualBlockchainId:km(),knownStateHash:km()}),tw=L({requestType:F($.GET_MICROBLOCK_INFORMATION),hash:km()}),nw=L({requestType:F($.AWAIT_MICROBLOCK_ANCHORING),hash:km()}),rw=L({requestType:F($.GET_MICROBLOCK_BODYS),hashes:P(km())}),iw=L({requestType:F($.GET_ACCOUNT_STATE),accountHash:km()}),aw=L({requestType:F($.GET_ACCOUNT_HISTORY),accountHash:km(),lastHistoryHash:km(),maxRecords:B(I(),Ip(),Bp(1))}),ow=L({requestType:F($.GET_ACCOUNT_BY_PUBLIC_KEY_HASH),publicKeyHash:km()}),sw=L({requestType:F($.GET_VALIDATOR_NODE_BY_ADDRESS),address:H()}),cw=L({requestType:F($.GET_OBJECT_LIST),type:B(I(),Ip(),Bp(0),Rp(255))}),lw=L({requestType:F($.GET_GENESIS_SNAPSHOT)}),uw=L({requestType:F($.GET_RAW_BLOCK_CONTENT),height:B(I(),Ip(),Bp(0)),partIndex:B(I(),Ip(),Bp(0))}),dw=L({requestType:F($.GET_BLOCK_MODIFIED_ACCOUNTS),height:B(I(),Ip(),Bp(0))}),fw=L({requestType:F($.GET_ACCOUNT_UPDATES),list:P(rg)}),pw=L({requestType:F($.GET_MICROBLOCK_INFORMATION_BY_HEIGHT),virtualBlockchainId:km(),height:I()}),mw=L({requestType:F($.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT),virtualBlockchainId:km(),height:I()}),hw=L({requestType:F($.GET_MICROBLOCK_PROOF),hash:km()}),gw=rm(`requestType`,[XC,ZC,QC,$C,ew,tw,nw,rw,iw,aw,ow,sw,cw,lw,uw,dw,fw,pw,mw,hw]),_w=L({block:L({height:I(),vbRadixHash:H(),tokenRadixHash:H(),storageHash:H(),appHash:H()}),microblock:L({virtualBlockchainId:H(),height:I(),hash:H()}),virtualBlockchain:L({state:Bh,merkleWitnesses:P(H()),radixProof:P(H())})}),vw=function(e){return e[e.ERROR=0]=`ERROR`,e[e.CHAIN_INFORMATION=2]=`CHAIN_INFORMATION`,e[e.BLOCK_INFORMATION=4]=`BLOCK_INFORMATION`,e[e.BLOCK_CONTENT=6]=`BLOCK_CONTENT`,e[e.VIRTUAL_BLOCKCHAIN_STATE=8]=`VIRTUAL_BLOCKCHAIN_STATE`,e[e.VIRTUAL_BLOCKCHAIN_UPDATE=10]=`VIRTUAL_BLOCKCHAIN_UPDATE`,e[e.MICROBLOCK_INFORMATION=12]=`MICROBLOCK_INFORMATION`,e[e.MICROBLOCK_ANCHORING=14]=`MICROBLOCK_ANCHORING`,e[e.MICROBLOCK_BODYS=16]=`MICROBLOCK_BODYS`,e[e.ACCOUNT_STATE=18]=`ACCOUNT_STATE`,e[e.ACCOUNT_HISTORY=20]=`ACCOUNT_HISTORY`,e[e.ACCOUNT_BY_PUBLIC_KEY_HASH=22]=`ACCOUNT_BY_PUBLIC_KEY_HASH`,e[e.VALIDATOR_NODE_BY_ADDRESS=24]=`VALIDATOR_NODE_BY_ADDRESS`,e[e.OBJECT_LIST=26]=`OBJECT_LIST`,e[e.GENESIS_SNAPSHOT=28]=`GENESIS_SNAPSHOT`,e[e.RAW_BLOCK_CONTENT=30]=`RAW_BLOCK_CONTENT`,e[e.BLOCK_MODIFIED_ACCOUNTS=32]=`BLOCK_MODIFIED_ACCOUNTS`,e[e.ACCOUNT_UPDATES=34]=`ACCOUNT_UPDATES`,e[e.SERIALIAZED_MICROBLOCK_BY_HEIGHT=38]=`SERIALIAZED_MICROBLOCK_BY_HEIGHT`,e[e.MICROBLOCK_PROOF=40]=`MICROBLOCK_PROOF`,e}({}),yw=L({responseType:F(vw.ERROR),error:R()}),bw=L({responseType:F(vw.CHAIN_INFORMATION),height:B(I(),Ip(),Bp(0)),lastBlockTimestamp:B(I(),Ip(),Bp(0)),microblockCount:B(I(),Ip(),Bp(0)),objectCounts:P(B(I(),Ip(),Bp(0)))}),xw=L({responseType:F(vw.BLOCK_INFORMATION),hash:km(),timestamp:B(I(),Ip(),Bp(0)),proposerAddress:H(),applicationStateHashes:L({vbRadixHash:H(),tokenRadixHash:H(),radixHash:H(),storageHash:H(),appHash:H()}),size:B(I(),Ip(),Bp(0)),microblockCount:B(I(),Ip(),Bp(0))}),Sw=L({hash:km(),vbId:km(),vbType:B(I(),Ip(),Bp(0),Rp(255)),height:B(I(),Ip(),Bp(0)),size:B(I(),Ip(),Bp(0)),sectionCount:B(I(),Ip(),Bp(0))}),Cw=L({responseType:F(vw.BLOCK_CONTENT),microblocks:P(Sw)}),ww=L({responseType:F(vw.VIRTUAL_BLOCKCHAIN_STATE),serializedVirtualBlockchainState:H()}),Tw=L({responseType:F(vw.VIRTUAL_BLOCKCHAIN_UPDATE),exists:Gp(),changed:Gp(),serializedVirtualBlockchainState:H()}),Ew=L({responseType:F(vw.MICROBLOCK_INFORMATION),...Hh.entries}),Dw=L({responseType:F(vw.MICROBLOCK_ANCHORING),...Hh.entries}),Ow=L({microblockHash:km(),microblockBody:Sh}),kw=L({responseType:F(vw.MICROBLOCK_BODYS),list:P(Ow)}),Aw=L({responseType:F(vw.ACCOUNT_STATE),height:B(I(),Ip(),Bp(0)),balance:B(I(),Ip(),Bp(0)),lastHistoryHash:km(),locks:P(Zh)}),jw=L({responseType:F(vw.ACCOUNT_HISTORY),list:ng}),Mw=L({responseType:F(vw.ACCOUNT_BY_PUBLIC_KEY_HASH),accountHash:km()}),Nw=L({responseType:F(vw.VALIDATOR_NODE_BY_ADDRESS),validatorNodeHash:km()}),Pw=L({responseType:F(vw.OBJECT_LIST),list:P(km())}),Fw=L({responseType:F(vw.GENESIS_SNAPSHOT),base64EncodedChunks:P(R())}),Iw=L({responseType:F(vw.RAW_BLOCK_CONTENT),partIndex:I(),numberOfParts:I(),serializedMicroblocks:P(H())}),Lw=L({responseType:F(vw.BLOCK_MODIFIED_ACCOUNTS),modifiedAccounts:P(H())}),Rw=L({responseType:F(vw.ACCOUNT_UPDATES),list:P(ig)}),zw=L({responseType:F(vw.SERIALIAZED_MICROBLOCK_BY_HEIGHT),serializedContent:H()}),Bw=L({responseType:F(vw.MICROBLOCK_PROOF),proof:_w}),Vw=rm(`responseType`,[yw,bw,xw,Cw,Iw,ww,Tw,Ew,Dw,kw,Aw,jw,Mw,Nw,Pw,Fw,Lw,Rw,zw,Bw]),Hw=class{static encodeAbciRequest(e){return px(z(gw,e))}static decodeAbciRequest(e){return z(gw,Ib(e))}static encodeAbciResponse(e){return px(z(Vw,e))}static decodeAbciResponse(e){return z(Vw,Ib(e))}},Uw=class e{static staticLogger=k.getNetworkProviderLogger();logger=e.staticLogger;requestLogger=e.staticLogger.getChild(`request`);responseLogger=e.staticLogger.getChild(`response`);static createFromUrl(t){e.staticLogger.debug(`NetworkProvider constructor -> nodeUrl: ${t}`);try{return new URL(t),new e(t)}catch{throw new i(`Invalid node URL: got ${t}`)}}constructor(e){this.nodeUrl=e}async sendSerializedMicroblock(e){this.requestLogger.info(`Sending serialized microblock (${e.length} bytes)`);let t=await this.broadcastTx(e);return this.responseLogger.info(`Received response: <- {data}`,()=>({data:t?.data})),t}async awaitMicroblockAnchoring(e){let t=A.binaryToHexa(e);return this.requestLogger.info(`Awaiting microblock {hash} to be published...`,()=>({hash:t})),z(Hh,await this.abciQuery({requestType:$.AWAIT_MICROBLOCK_ANCHORING,hash:e}))}async getChainInformation(){return this.requestLogger.info(`Requesting chain information`),z(bw,await this.abciQuery({requestType:$.GET_CHAIN_INFORMATION}))}async getBlockInformation(e){this.requestLogger.info(`Requesting block information at height: ${e}`);let t=await this.abciQuery({requestType:$.GET_BLOCK_INFORMATION,height:e});return this.responseLogger.info(`Received block information at height ${e}`),z(xw,t)}async getBlockContent(e){this.requestLogger.info(`Requesting block content for height ${e}`);let t=z(Cw,await this.abciQuery({requestType:$.GET_BLOCK_CONTENT,height:e}));return this.responseLogger.info(`Received block content for height ${e}: ${t.microblocks.length} microblocks received`),t}async getValidatorNodeByAddress(e){this.requestLogger.info(`Requesting validator node id for address {address}`,()=>({address:A.binaryToHexa(e)}));let t=await this.abciQuery({requestType:$.GET_VALIDATOR_NODE_BY_ADDRESS,address:e});return this.responseLogger.info(`Receiving validator node id {id}`,()=>({id:A.binaryToHexa(e)})),z(Nw,t)}async getAccountState(e){this.requestLogger.info(`Requesting account state for account hash {accountHash}`,()=>({accountHash:A.binaryToHexa(e)}));let t=z(Aw,await this.abciQuery({requestType:$.GET_ACCOUNT_STATE,accountHash:e}));return this.responseLogger.info(`Receiving account state: height={height}, balance={balance}`,()=>({height:t.height,balance:hn.createAtomic(t.balance).toString()})),t}async getAccountHistory(e,t,n){this.requestLogger.info(`Requesting account history for account hash: ${A.binaryToHexa(e)}, lastHistoryHash: ${A.binaryToHexa(t)}, maxRecords: ${n}`);let r=z(jw,await this.abciQuery({requestType:$.GET_ACCOUNT_HISTORY,accountHash:e,lastHistoryHash:t,maxRecords:n}));return this.responseLogger.info(`Receiving account history with ${r.list.length} entries`),r}async getAccountByPublicKeyHash(e){this.requestLogger.info(`Requesting account hash by public key hash: ${A.binaryToHexa(e)}`);let t=z(Mw,await this.abciQuery({requestType:$.GET_ACCOUNT_BY_PUBLIC_KEY_HASH,publicKeyHash:e}));return this.responseLogger.info(`Received account hash {accountHash}`,()=>({accountHash:A.binaryToHexa(t.accountHash)})),t}async getObjectList(e){this.requestLogger.info(`Requesting list of objects of type ${e}`);let t=z(Pw,await this.abciQuery({requestType:$.GET_OBJECT_LIST,type:e}));return this.responseLogger.info(`Receiving object lists with ${t.list.length} elements)`),t}async getMicroblockInformation(e){this.requestLogger.info(`Requesting microblock information for hash ${A.binaryToHexa(e)}`);let t=z(Ew,await this.abciQuery({requestType:$.GET_MICROBLOCK_INFORMATION,hash:e}));return this.responseLogger.info(`Received microblock information: vbType={vbType}, vbId={vbId}`,()=>({vbType:t.virtualBlockchainType,vbId:A.binaryToHexa(t.virtualBlockchainId)})),this.logger.info(`Received microblock information body hash for microblock ${A.binaryToHexa(e)}: ${A.binaryToHexa(t.header.bodyHash)}`),z(Hh,t)}async getSerializedMicroblockByHeight(e,t){this.requestLogger.info(`Requesting microblock for VB ${A.binaryToHexa(e)} at height ${t}`);let n=z(zw,await this.abciQuery({requestType:$.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT,virtualBlockchainId:e,height:t}));return this.responseLogger.info(`Received microblock - size: ${n.serializedContent.length} bytes`),n.serializedContent}async getMicroblockBodys(e){this.requestLogger.info(`Requesting microblock bodys for microblock hashes ${e.length}`),this.requestLogger.info(`Lisf of requested hashes: {hashes}`,()=>({hashes:e.map(e=>A.binaryToHexa(e)).join(`, `)}));let t=z(kw,await this.abciQuery({requestType:$.GET_MICROBLOCK_BODYS,hashes:e}));return this.responseLogger.info(`Returned number of microblock bodys: ${t.list.length}`),t}async getVirtualBlockchainUpdate(e,t){this.requestLogger.info(`Request virtual blockchain update for virtualBlockchainId: ${A.binaryToHexa(e)}`);let n=await this.abciQuery({requestType:$.GET_VIRTUAL_BLOCKCHAIN_UPDATE,virtualBlockchainId:e,knownStateHash:t});return this.responseLogger.info(`Receiving virtual blockchain update`),z(Tw,n)}async getSerializedVirtualBlockchainState(e){this.requestLogger.info(`Requesting virtual blockchain state for vb id {vbId}`,()=>({vbId:A.binaryToHexa(e)}));let t=z(ww,await this.abciQuery({requestType:$.GET_VIRTUAL_BLOCKCHAIN_STATE,virtualBlockchainId:e}));return this.responseLogger.info(`Receiving virtual blockchain state: ${t.serializedVirtualBlockchainState.length} bytes`),t.serializedVirtualBlockchainState}static async query(e,t={},n=1e4){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json; charset=UTF-8`,Accept:`application/json`},body:JSON.stringify(t),signal:r.signal});if(n.status===500)throw console.error(n),new h(`Internal error in the node: ${n.statusText}`);if(!n.ok)throw Error(`HTTP ${n.status}`);return await n.json()}catch(t){throw t?.name===`AbortError`?new h(`Request timeout after ${n}ms`):t?.cause?.code===`ECONNREFUSED`||t?.code===`ECONNREFUSED`||t instanceof TypeError?new g(e):t}finally{clearTimeout(i)}}async broadcastTx(t){let n=new URL(this.nodeUrl);this.logger.info(`broadcastTx -> ${t.length} bytes to ${this.nodeUrl}`);let r=fg.bytesToBase64Encoder();return await e.query(n,{jsonrpc:`2.0`,id:1,method:`broadcast_tx_sync`,params:{tx:r.encode(t)}})}async abciQuery(t){if(t===void 0)throw new i(`Cannot send an undefined request`);this.logger.debug(`Sending ABCI request:`,t);let n=Hw.encodeAbciRequest(t);return await e.sendABCIQueryToNodeServer(this.nodeUrl,n)}static async sendABCIQueryToNodeServer(t,n){e.staticLogger.debug(`Sending ABCI Query to node server at ${t} (${n.length} bytes) `);let r=new URL(t);r.pathname=`abci_query`,r.searchParams.append(`path`,`"/carmentis"`),r.searchParams.append(`data`,`0x`+A.binaryToHexa(n));let i=await e.query(r),a=i?.result?.response?.value;if(typeof a!=`string`)throw this.staticLogger.error(`Invalid response type detected:`,i),this.staticLogger.error(`rawBase64EncodedResponse: `,a),new h(`Invalid response detected`);let o=sg.decodeBinary(a),s=Hw.decodeAbciResponse(o);if(s.responseType==vw.ERROR){let t=s.error;throw e.staticLogger.error(`sendABCIQueryToNodeServer <- {*}`,()=>({error:t})),new h(`Remote error: ${t}`)}return e.staticLogger.debug(`Returning ABCI response`),s}static async sendStatusQueryToNodeServer(t){e.staticLogger.debug(`sendStatusQueryToNodeServer -> nodeUrl: ${t}`);let n=new URL(t);n.pathname=`status`;let r=im(YC,await e.query(n));if(r.success)return e.staticLogger.debug(`sendStatusQueryToNodeServer <- received valid status response`),r.output;throw e.staticLogger.debug(`sendStatusQueryToNodeServer <- parsing error: ${r.issues}`),new h(r.issues.map(e=>e.message).join(`, `))}async getGenesisSnapshot(){this.requestLogger.info(`Requesting genesis snapshot`);let e=z(Fw,await this.abciQuery({requestType:$.GET_GENESIS_SNAPSHOT}));return this.responseLogger.info(`Received genesis snapshots containing {chunksNumber} chunks`,()=>({chunksNumber:e.base64EncodedChunks.length})),e}},Ww=class e{static logger=k.getMemoryProviderLogger();static instance=new e;static getInstance(){return this.instance}constructor(){}clear(){e.logger.info(`Clearing`)}async getSerializedInformationOfVirtualBlockchainContainingMicroblock(e){return null}async getInformationOfVirtualBlockchainContainingMicroblock(e){return null}async getMicroblock(e){throw Error(`Method not implemented`)}async getMicroblockHeader(e){return null}async getSerializedMicroblockHeader(e){return null}async getMicroblockBody(e){return null}async getSerializedVirtualBlockchainState(e){return null}async getAccountByPublicKeyHash(e){return null}async setMicroblockVbInformation(e,t){}async setSerializedMicroblockHeader(e,t){}async setSerializedMicroblockBody(e,t){}async setMicroblockHeader(e,t){}async setMicroblockBody(e,t){}async setSerializedVirtualBlockchainState(e,t){}},Gw=class{constructor(){}sendSerializedMicroblock(e){throw Error(`Method not implemented.`)}awaitMicroblockAnchoring(e){throw Error(`Method not implemented.`)}getChainInformation(){throw Error(`Method not implemented.`)}getBlockInformation(e){throw Error(`Method not implemented.`)}getBlockContent(e){throw Error(`Method not implemented.`)}getValidatorNodeByAddress(e){throw Error(`Method not implemented.`)}getAccountState(e){throw Error(`Method not implemented.`)}getAccountHistory(e,t,n){throw Error(`Method not implemented.`)}getAccountByPublicKeyHash(e){throw Error(`Method not implemented.`)}getObjectList(e){throw Error(`Method not implemented.`)}getMicroblockInformation(e){return Promise.resolve(null)}getSerializedMicroblockByHeight(e,t){return Promise.resolve(null)}getMicroblockBodys(e){return Promise.resolve(null)}getVirtualBlockchainUpdate(e){throw Error(`Method not implemented.`)}getSerializedVirtualBlockchainState(e){throw Error(`Method not implemented.`)}broadcastTx(e){throw Error(`Method not implemented.`)}abciQuery(e){throw Error(`Method not implemented.`)}getGenesisSnapshot(){throw Error(`Method not implemented.`)}},Kw=class{static convertRawPublicKeyIntoAddress(e){return Qc.sha256AsBinary(e).slice(0,20)}},qw=class e extends KC{logger=k.getProviderLogger();externalProvider;internalProvider;constructor(e,t){super(),this.internalProvider=e,this.externalProvider=t}async awaitMicroblockAnchoring(e){return await this.externalProvider.awaitMicroblockAnchoring(e)}async getChainInformation(){return await this.externalProvider.getChainInformation()}async getGenesisSnapshot(){return await this.externalProvider.getGenesisSnapshot()}async getBlockInformation(e){return await this.externalProvider.getBlockInformation(e)}async getBlockContent(e){return await this.externalProvider.getBlockContent(e)}async getAccountState(e){return await this.externalProvider.getAccountState(e)}async getAccountHistory(e,t,n){return await this.externalProvider.getAccountHistory(e,t,n)}async getAccountByPublicKeyHash(t){let n=await this.internalProvider.getAccountByPublicKeyHash(t);if(n!==null)return n;let r=await this.externalProvider.getAccountByPublicKeyHash(t);return k.getLogger([e.name]).debug(`Account hash ${r} is associated to public key hash ${t}`),r.accountHash}async getVirtualBlockchainState(e){this.logger.info(`Getting state for virtual blockchain ${A.binaryToHexa(e)}`);let t=await this.internalProvider.getSerializedVirtualBlockchainState(e);if(t!==null)return this.logger.info(`State for virtual blockchain ${A.binaryToHexa(e)} found locally`),xx.decodeVirtualBlockchainState(t);{let t=await this.externalProvider.getSerializedVirtualBlockchainState(e);return t?(this.logger.info(`State for virtual blockchain ${A.binaryToHexa(e)} found remotely`),await this.internalProvider.setSerializedVirtualBlockchainState(e,t),xx.decodeVirtualBlockchainState(t)):null}}async getAccountIdByPublicKey(e){let t=await e.getPublicKeyAsBytes(),n=N.Hashes.sha256AsBinary(t);return await this.getAccountByPublicKeyHash(n)}async getProtocolState(){let e=await this.getProtocolVirtualBlockchainId(),t=await this.getVirtualBlockchainState(e.toBytes());if(t===null)throw Error(`Cannot get protocol parameters from the internal provider`);if(t.type!==U.PROTOCOL_VIRTUAL_BLOCKCHAIN)throw Error(`Expected protocol virtual blockchain, got ${U[t.type]}`);return jx.createFromObject(t.internalState)}async getProtocolVirtualBlockchainId(){let e=await this.getObjectList(U.PROTOCOL_VIRTUAL_BLOCKCHAIN),t=e.list.length;if(t===0)throw this.logger.error(`No protocol virtual blockchain found: Expecting exactly one protocol virtual blockchain.`),Error(`No protocol virtual blockchain found`);return t!==1&&this.logger.warning(`Found `+t+` protocol virtual blockchains, expecting exactly one`),Dx.from(e.list[0])}async getAllAccounts(){return(await this.getObjectList(U.ACCOUNT_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllValidatorNodes(){return(await this.getObjectList(U.NODE_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllOrganizationIds(){return(await this.getObjectList(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllApplicationIds(){return(await this.getObjectList(U.APPLICATION_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getObjectList(e){return await this.externalProvider.getObjectList(e)}async getMicroblockInformation(e){let t=await this.internalProvider.getInformationOfVirtualBlockchainContainingMicroblock(e),n=await this.internalProvider.getMicroblockHeader(e);if(t&&n)return{...t,header:n};let r=await this.externalProvider.getMicroblockInformation(e);if(r){let t=xx.encodeVirtualBlockchainInfo({virtualBlockchainId:r.virtualBlockchainId,virtualBlockchainType:r.virtualBlockchainType});return await this.internalProvider.setMicroblockVbInformation(e,t),await this.internalProvider.setMicroblockHeader(e,r.header),r}return null}async getListOfMicroblockBody(e){let t=[],n=[],r=0;for(let i of e){let e=await this.internalProvider.getMicroblockBody(i);if(e){let n=xx.decodeMicroblockBody(e);t.push({hash:i,body:n})}else n.push(i);r+=1}if(n.length){let r=await this.externalProvider.getMicroblockBodys(n);if(r===null)throw Error(`Unable to load microblock bodies`);for(let{microblockBody:e,microblockHash:n}of r.list){let r=xx.encodeMicroblockBody(e);await this.internalProvider.setSerializedMicroblockBody(n,r),t.push({hash:n,body:e})}t.sort((t,n)=>e.indexOf(t.hash)-e.indexOf(n.hash))}return t.map(e=>e.body)}async getMicroblockBody(e){this.logger.info(`Looking for body for microblock ${e.encode()}`);let t=await this.internalProvider.getMicroblockBody(e.toBytes());if(t instanceof Uint8Array)return this.logger.info(`Body for microblock ${e.encode()} found locally`),xx.decodeMicroblockBody(t);{let t=await this.externalProvider.getMicroblockBodys([e.toBytes()]);if(t!==null&&t.list.length!==0){let n=t.list[0].microblockBody;return await this.internalProvider.setMicroblockBody(e.toBytes(),n),this.logger.info(`Body for microblock ${e.encode()} found remotely`),n}}return this.logger.warning(`Body for microblock ${e.encode()} not found`),null}async getMicroblockHeader(e){this.logger.info(`Looking for header for microblock ${e.encode()}`);let t=await this.internalProvider.getSerializedMicroblockHeader(e.toBytes());if(t instanceof Uint8Array){let n=N.Hashes.sha256(t),r=xx.decodeMicroblockHeader(t);return this.logger.info(`Header for microblock ${e.encode()} found locally (sha256:${n}): {header}`,{header:JSON.stringify(r)}),r}let n=await this.externalProvider.getMicroblockInformation(e.toBytes());if(n!==null)return this.logger.info(`Header for microblock ${e.encode()} found remotely: {header}:`,{header:n.header}),n.header;throw new te}async getSerializedMicroblockByHeight(e,t){let n=await this.externalProvider.getSerializedMicroblockByHeight(e,t);if(n!==null)return this.logger.info(`Microblock found remotely`),n;throw new te}async getVirtualBlockchainIdContainingMicroblock(e){this.logger.info(`Searching for virtual blockchain containing microblock ${e.encode()}`);let t=await this.internalProvider.getInformationOfVirtualBlockchainContainingMicroblock(e.toBytes());if(t!==null)return Dx.from(t.virtualBlockchainId);{let t=await this.externalProvider.getMicroblockInformation(e.toBytes());if(t!==null)return Dx.from(t.virtualBlockchainId);throw new te}}async getVirtualBlockchainStatus(e){let t=null,n=A.getNullHash(),r=await this.internalProvider.getSerializedVirtualBlockchainState(e);r!==null&&(t=xx.decodeVirtualBlockchainState(r),n=Uv.createDefaultCryptographicHash().hash(r));let i=await this.externalProvider.getVirtualBlockchainUpdate(e,n);return i.exists?(i.changed&&(await this.internalProvider.setSerializedVirtualBlockchainState(e,i.serializedVirtualBlockchainState),t=xx.decodeVirtualBlockchainState(i.serializedVirtualBlockchainState)),t):null}async getAccountIdFromPublicKey(e){let t=new rv,n=await this.externalProvider.getAccountByPublicKeyHash(t.hash(await e.getPublicKeyAsBytes()));return Dx.from(n.accountHash)}async publishMicroblock(e){this.logger.info(`Publishing microblock ${e.getHash().encode()}`);let{microblockData:t}=e.serialize();return await this.externalProvider.sendSerializedMicroblock(t),e.getHash()}async getNodeStatus(e){return Uw.sendStatusQueryToNodeServer(e)}async getValidatorNodeIdByAddress(e){return(await this.externalProvider.getValidatorNodeByAddress(e.toBytes())).validatorNodeHash}async getValidatorNodeIdByCometbftPublicKey(e){let t=fg.bytesToBase64Encoder(),n=Kw.convertRawPublicKeyIntoAddress(t.decode(e));return this.getValidatorNodeIdByAddress(Dx.from(n))}},Jw=class{static createInMemoryProvider(){return new qw(new JC,new Gw)}static createInMemoryProviderWithExternalProvider(e){return new qw(new JC,Uw.createFromUrl(e))}static createNullInMemoryProviderWithExternalProvider(e){return new qw(new Ww,Uw.createFromUrl(e))}},Yw=class extends Uw{constructor(e){super(e)}},Xw=L({jsonrpc:F(`2.0`),id:I(),result:L({query:R(),data:L({type:F(`tendermint/event/NewBlock`),value:L({block:L({header:L({version:L({block:R(),app:Zp(R())}),chain_id:R(),height:R(),time:R(),last_block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),last_commit_hash:R(),data_hash:R(),validators_hash:R(),next_validators_hash:R(),consensus_hash:R(),app_hash:R(),last_results_hash:R(),evidence_hash:R(),proposer_address:R()}),data:L({txs:P(R())}),evidence:L({evidence:P(Wp())}),last_commit:L({height:R(),round:I(),block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),signatures:P(L({block_id_flag:I(),validator_address:R(),timestamp:R(),signature:R()}))})}),block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),result_finalize_block:L({validator_updates:Zp(tm([Yp(),Wp()])),app_hash:R()})})}),events:L({"tm.event":P(R())})})}),Zw=class e{callbacks=[];constructor(e){this.ws=e,e.onmessage=this.onMessage.bind(this),e.onopen=this.onConnect.bind(this),e.onclose=this.onDisconnect.bind(this)}static new(t){return new e(new WebSocket(t))}addCallback(e){this.callbacks.push(e)}onConnect(e){this.ws.send(JSON.stringify({jsonrpc:`2.0`,method:`subscribe`,id:1,params:{query:`tm.event='NewBlock'`}}))}onMessage(e){let t=im(Xw,JSON.parse(e.data));if(t.success){let e=t.output;this.onNewBlock(e)}}onNewBlock(e){for(let t of this.callbacks)t.onNewBlock&&t.onNewBlock(e)}onDisconnect(e){}},Qw={parsePrefix:$w,toNumericPath:eT,fromNumericPath:tT,processCallback:rT,fromParents:nT};function $w(e){let t=/^(this|previous|block(\d+))(?=\.|\[)/.exec(e);if(!t)throw`invalid prefix for path '${e}'`;return{prefix:t[0],pathString:e.slice(t[0].length)}}function eT(e,t){return iT(e,t,!1).numericPath}function tT(e,t){let n=e[0],r=``;for(let e of t)n.type==2?(n=n.properties[e],r+=`.`+n.name):n.type==1&&(n=n.entries[e],r+=`[${n.index}]`);return r}function nT(e){let t=``;for(let n=1;n<e.length;n++){let r=e[n];t+=e[n-1].type==1?`[${r.index}]`:`.`+r.name}return t}function rT(e,t,n){let r=iT(e,t,!0);r.hasWildcard?(function e(t){for(let r of t)r.type==2?e(r.properties):r.type==1?e(r.entries):n(r)})(r.item):n(r.item)}function iT(e,t,n){let r=t.match(/\[(?:\*|\d+)\]|\.(?:\*|[^.*\[\]]+)/g);if(r.join(``)!=t)throw`invalid syntax for path '${t}'`;let i=[],a=e[0],o,s=!1;for(let e of r){if(s)throw`a wildcard cannot be followed by anything else`;switch(e[0]){case`.`:{let t=e.slice(1);if(a.type!=2)throw`cannot read property '${t}': the parent node is not an object`;if(t==`*`){if(!n)throw`a wildcard is not allowed`;a=a.properties,s=!0}else{if(o=a.properties.findIndex(e=>e.name==t),o==-1)throw`cannot find property '${t}'`;a=a.properties[o]}break}case`[`:{if(a.type!=1)throw`cannot read entry '${e}': the parent node is not an array`;let t=e.slice(1,-1);if(t==`*`){if(!n)throw`a wildcard is not allowed`;a=a.entries,s=!0}else{if(o=a.entries.findIndex(e=>e.index==t),o==-1)throw`cannot find index '${t}'`;a=a.entries[o]}break}}i.push(o)}if(!s)switch(a.type){case 2:throw`the last part of the path must be a primitive type${n?` (use .* to access all object properties)`:``}`;case 1:throw`the last part of the path must be a primitive type${n?` (use [*] to access all array entries)`:``}`}return{item:a,numericPath:i,hasWildcard:s}}var aT=class{nLeaves;tree;constructor(){this.tree=new OS}addItem(e,t){let n=this.getLeafInfo(e,t);e.attributes&2?this.addMaskableItem(e,n):e.attributes&1?this.addHashableItem(e,n):this.addRawItem(e,n)}getLeafInfo(e,t){let n=Qw.fromParents(t),r=Qa.encode(n);if(r.length>65535)throw`path too long`;let i=new Uint8Array(r.length+3);return i[0]=e.type,i[1]=r.length>>8,i[2]=r.length&255,i.set(r,3),i}getWitnesses(e){let t=[];for(let n=0;n<this.nLeaves;n++)e.has(n)||t.push(n);return this.tree.getWitnesses(t).map(e=>A.binaryToHexa(e)).join(``)}},oT=class extends aT{leaves;pepper;saltCounter;sha512;constructor(e){super(),this.pepper=e||this.constructor.generatePepper(),this.saltCounter=0,this.leaves=[]}static generatePepper(){return N.Random.getBytes(32)}addLeaf(e,t){this.leaves.push({item:e,hash:N.Hashes.sha256AsBinary(t)})}generateTree(){this.nLeaves=this.leaves.length,this.leaves.sort((e,t)=>A.binaryCompare(e.hash,t.hash));for(let e in this.leaves)this.tree.addLeaf(this.leaves[+e].hash),this.leaves[+e].item.leafIndex=+e;this.tree.finalize();let e=this.tree.getRootHash();return{nLeaves:this.leaves.length,rootHash:A.binaryToHexa(e),pepper:A.binaryToHexa(this.pepper)}}addRawItem(e,t){let n=this.getSalt();e.salt=A.binaryToHexa(n),this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addHashableItem(e,t){let n=this.getSalt(),r=N.Hashes.sha256AsBinary(e.valueBinary);e.hash=A.binaryToHexa(r),e.salt=A.binaryToHexa(n),this.addLeaf(e,A.binaryFrom(n,t,r))}addMaskableItem(e,t){let n=this.getSalt(),r=N.Hashes.sha256AsBinary(A.binaryFrom(n,t,e.visiblePartsBinary)),i=this.getSalt(),a=N.Hashes.sha256AsBinary(A.binaryFrom(i,e.hiddenPartsBinary));e.visibleSalt=A.binaryToHexa(n),e.hiddenSalt=A.binaryToHexa(i),e.hiddenHash=A.binaryToHexa(a),this.addLeaf(e,A.binaryFrom(r,a))}getSalt(){let e=this.saltCounter&3,t=this.saltCounter++>>2;return e||(this.sha512=N.Hashes.sha512AsBinary(A.binaryFrom(this.pepper,t))),this.sha512.slice(e<<4,e+1<<4)}},sT=class extends aT{nLeaves;witnesses;constructor(e,t){super(),this.nLeaves=e,this.witnesses=(t.match(/.{64}/g)||[]).map(e=>A.binaryFromHexa(e))}addLeaf(e,t){this.tree.setLeaf(e.leafIndex,N.Hashes.sha256AsBinary(t))}generateTree(){this.tree.finalize(this.nLeaves),this.tree.setWitnesses(this.witnesses);let e=this.tree.getRootHash();return{nLeaves:this.tree.getNumberOfLeaves(),rootHash:A.binaryToHexa(e)}}addRawItem(e,t){let n=A.binaryFromHexa(e.salt);this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addHashableItem(e,t){let n=A.binaryFromHexa(e.salt),r;e.hash?r=A.binaryFromHexa(e.hash):(r=N.Hashes.sha256AsBinary(e.valueBinary),e.hash=r),this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addMaskableItem(e,t){let n=A.binaryFromHexa(e.visibleSalt),r=N.Hashes.sha256AsBinary(A.binaryFrom(n,t,e.visiblePartsBinary)),i;if(e.hiddenHash)i=A.binaryFromHexa(e.hiddenHash);else{let t=A.binaryFromHexa(e.hiddenSalt);i=N.Hashes.sha256AsBinary(A.binaryFrom(t,e.hiddenPartsBinary)),e.hiddenHash=A.binaryToHexa(i)}this.addLeaf(e,A.binaryFrom(r,i))}},cT={getListFromRegex:lT,applyMask:uT,getVisibleText:dT,getFullText:fT};function lT(e,t,n){let r=(t.exec(e)||[]).slice(1);if(r.join(``)!=e)throw`the regular expression ${t} does not capture all string parts`;let i=n.split(/(\$\d+)/).map((e,t)=>[t&1,e]).filter(e=>e[1]);if(i.length!=r.length||i.some(([e,t],n)=>e&&t!=`$`+(n+1)))throw`invalid substitution string "${n}"`;let a=[],o=0;return i.forEach(([e,t],n)=>{let i=o+r[n].length;e||a.push([o,i,t]),o=i}),a}function uT(e,t){let n=[],r=[];return t.sort((e,t)=>e[0]-t[0]),t.forEach(([i,a,o],s)=>{let[c,l]=s?t[s-1]:[0,0];if(i<0||i>=e.length||a<=i)throw`invalid interval [${[i,a]}]`;if(i<l)throw`overlapping intervals [${[c,l]}] / [${[i,a]}]`;let u=e.slice(i,a);s&&i==l?(n[n.length-1]+=o,r[r.length-1]+=u):(n.push(e.slice(l,i),o),r.push(u)),s==t.length-1&&a<e.length&&n.push(e.slice(a))}),{visible:n,hidden:r}}function dT(e){return e.join(``)}function fT(e,t){return e.map((e,n)=>n&1?t[n>>1]:e).join(``)}var pT=24,mT=class e{importedFromProof;channelDefinitions;irObject=[];object;usedChannels=[];constructor(){this.irObject=[],this.importedFromProof=!1,this.channelDefinitions=new Map,this.object={recordData:this.irObject}}static getItemInstance(e){return{type:e,index:-1,name:``,properties:[],entries:[],value:null,attributes:0,channelId:null,channels:new Set,visibleParts:[],visiblePartsBinary:new Uint8Array,hiddenParts:[],hiddenPartsBinary:new Uint8Array,valueBinary:new Uint8Array,leafIndex:-1,salt:new Uint8Array,visibleSalt:new Uint8Array,hiddenSalt:new Uint8Array,hash:new Uint8Array,hiddenHash:new Uint8Array}}addPublicChannel(e){if(this.channelDefinitions.has(e))throw Error(`channel ${e} was already added`);this.channelDefinitions.set(e,{id:e,isPrivate:!1})}addPrivateChannel(e){if(this.channelDefinitions.has(e))throw Error(`channel ${e} was already added`);this.channelDefinitions.set(e,{id:e,isPrivate:!0,pepper:oT.generatePepper()})}buildFromJson(t){let n=[];this.importedFromProof=!1,i({root:t},n,!1),this.irObject=n;function r(t,n,r,a){let o=t[n],s=ro.getType(o);if(!ro.isJsonType(s))throw Error(`Invalid JSON type`);let c=e.getItemInstance(s);a?c.index=+n:c.name=n,s==2?(c.properties=[],i(o,c.properties,!1)):s==1?(c.entries=[],i(o,c.entries,!0)):(c.value=o,c.attributes=0,c.channelId=null),r.push(c)}function i(e,t,n){for(let i in e)r(e,i,t,n)}}exportToSectionFormat(){let e=[];for(let t of this.usedChannels){let n=this.channelDefinitions.get(t);if(n){let r=this.exportChannelToSectionFormat(n),i;i=n.isPrivate?{isPrivate:!0,channelId:t,data:r,merkleRootHash:this.getMerkleRootHash(t)}:{isPrivate:!1,channelId:t,data:r},e.push(i)}}return e}exportChannelToSectionFormat(e){let t=new Av;e.isPrivate&&t.writeByteArray(e.pepper);let n=this.buildDictionary(e.id);t.writeVarUint(n.length);for(let e of n)t.writeString(e);return this.traverseIrObject({channelId:e.id,onObject:(e,n,a,o)=>{o.length>1&&r(e,a),t.writeByte(e.type),t.writeVarUint(i(e.properties))},onArray:(e,n,a,o)=>{o.length>1&&r(e,a),t.writeByte(e.type),t.writeVarUint(i(e.entries))},onPrimitive:(e,n,i,a)=>{r(e,i),t.writeByte(e.type|e.attributes<<3),e.attributes==2?(t.writeByteArray(e.visiblePartsBinary),t.writeByteArray(e.hiddenPartsBinary)):t.writeByteArray(e.valueBinary)}}),t.getByteStream();function r(e,r){t.writeVarUint(r?e.index:n.indexOf(e.name))}function i(t){return t.reduce((t,n)=>t+=n.type==1||n.type==2?+!!n.channels.has(e.id):+(n.channelId===e.id),0)}}importFromSectionFormat(e){this.importedFromProof=!1;for(let t of e){let e=this.channelDefinitions.get(t.channelId);if(e&&(this.importChannelFromSectionFormat(e,t.data),e.isPrivate)){let e=this.getMerkleRootHash(t.channelId);if(e!=t.merkleRootHash)throw Error(`inconsistent Merkle root hash (expected: ${t.merkleRootHash}, computed: ${e})`)}}this.populateChannels()}importChannelFromSectionFormat(t,n){let r=new jv(n);t.isPrivate&&(t.pepper=r.readByteArray(32));let i=r.readVarUint(),a=[];for(let e=0;e<i;e++)a.push(r.readString());o(this.irObject,!1,!0);function o(n,i,o=!1){let l=o?-1:r.readVarUint(),u=i?``:o?`root`:a[l],d=r.readByte(),f=d&7,p=d>>3,m;(f==2||f==1)&&(m=n.find(e=>i?e.index==l:e.name==u));let h,g;if(m===void 0?(g=e.getItemInstance(f),h=!0,i?g.index=l:g.name=u):(g=m,h=!1),f==2)g.channels.add(t.id),s(g);else if(f==1)g.channels.add(t.id),c(g,!h);else{if(p==2){let e;g.visibleParts=[],g.hiddenParts=[],e=r.getPointer();for(let e=r.readVarUint();e--;)g.visibleParts.push(r.readString());g.visiblePartsBinary=r.extractFrom(e),e=r.getPointer();for(let e=r.readVarUint();e--;)g.hiddenParts.push(r.readString());g.hiddenPartsBinary=r.extractFrom(e),g.value=cT.getFullText(g.visibleParts,g.hiddenParts)}else g.value=r.readJsonValue(f),g.valueBinary=r.getLastField();g.attributes=p,g.channelId=t.id}h&&n.push(g)}function s(e){let t=r.readVarUint();e.properties=e.properties||[];for(let n=0;n<t;n++)o(e.properties,!1)}function c(e,t){let n=r.readVarUint();e.entries=e.entries||[];for(let t=0;t<n;t++)o(e.entries,!0);t&&e.entries.sort((e,t)=>e.index-t.index)}}exportToProof(){let t=new e,n=[];for(let e of this.usedChannels){let r=this.channelDefinitions.get(e);if(r===void 0||!r.isPrivate)continue;let i=this.getMerklizer(e),a=i.generateTree(),o=new Set;this.traverseIrObject({channelId:e,onPrimitive:(e,n,r,i)=>{if(!(e.attributes&4)){o.add(e.leafIndex);let n=t.createBranch(i);n.attributes=e.attributes,n.channelId=e.channelId,n.leafIndex=e.leafIndex,e.attributes&2?(n.visibleSalt=e.visibleSalt,n.visibleParts=e.visibleParts,e.attributes&16?n.hiddenHash=e.hiddenHash:(n.hiddenSalt=e.hiddenSalt,n.hiddenParts=e.hiddenParts)):e.attributes&1?(n.salt=e.salt,e.attributes&8?n.hash=e.hash:n.value=e.value):(n.salt=e.salt,n.value=e.value)}}}),n.push({channelId:e,nLeaves:a.nLeaves,witnesses:i.getWitnesses(o)})}return t.object.merkleData=n,t.object}importFromProof(e){this.importedFromProof=!0,this.object=e,this.irObject=e.recordData,this.populateChannels(),this.serializeFields();let t=[];for(let e of this.usedChannels){let n=this.channelDefinitions.get(e);if(n){if(!n.isPrivate)continue;let r=this.getMerklizer(e).generateTree();t.push({channelId:e,rootHash:r.rootHash})}}return t}createBranch(t){let n=this.irObject,r=!1,i;for(let e of t)if(e.type==2||e.type==1){let t=n.find(t=>r?t.index==e.index:t.name==e.name);t===void 0&&(t=a(e),e.type==2?t.properties=[]:t.entries=[],n.push(t)),r=t.type==1,n=r?t.entries:t.properties}else{i=a(e),n.push(i);break}if(i===void 0)throw Error(`internal error: failed to create a branch`);return i;function a(t){let n=e.getItemInstance(t.type);return r?n.index=t.index:n.name=t.name,n}}getMerkleRootHash(e){return this.getMerklizer(e).generateTree().rootHash}getMerklizer(e){let t;if(this.importedFromProof){let n=this.object.merkleData.find(t=>t.channelId==e);t=new sT(n.nLeaves,n.witnesses)}else{let n=this.channelDefinitions.get(e);if(n&&n.isPrivate)t=new oT(n.pepper);else throw Error(`internal error: cannot compute the merklizer for either undefined channel or public channel`)}return this.traverseIrObject({channelId:e,onPrimitive:(e,n,r,i)=>{t.addItem(e,i)}}),t}getIRObject(){return this.irObject}dumpIRObject(){return JSON.stringify(this.irObject,(e,t)=>t instanceof Uint8Array?[`<${t.length} byte(s)>`,...[...t.slice(0,pT)].map(e=>e.toString(16).toUpperCase().padStart(2,`0`))].join(` `)+(t.length>pT?` ..`:``):t instanceof Set?[...t]:t,2)}setChannel(e,t){if(!this.channelDefinitions.has(t))throw`channel ${t} is undefined`;this.processPath(e,e=>{e.channelId=t})}setAsMaskable(e,t){this.processPath(e,e=>{let n=cT.applyMask(e.value,t);e.visibleParts=n.visible,e.hiddenParts=n.hidden,e.attributes=2})}setAsMaskableByRegex(e,t,n){this.processPath(e,e=>{let r=cT.getListFromRegex(e.value,t,n),i=cT.applyMask(e.value,r);e.visibleParts=i.visible,e.hiddenParts=i.hidden,e.attributes=e.attributes&-4|2})}setAsHashable(e){this.processPath(e,e=>{e.attributes=e.attributes&-4|1})}setAsRedacted(e){this.processPath(e,e=>{e.attributes=e.attributes&-29|4})}setAsMasked(e){this.processPath(e,e=>{if(!(e.attributes&2))throw`this item is not maskable`;if(e.attributes&28)throw`the format of this item was already set`;e.attributes=e.attributes&-29|16})}setAsHashed(e){this.processPath(e,e=>{if(!(e.attributes&1))throw`this item is not hashable`;if(e.attributes&28)throw`the format of this item was already set`;e.attributes=e.attributes&-29|8})}processPath(e,t){let n=e.split(/, */);for(let e of n){let n=Qw.parsePrefix(e);if(n.prefix!=`this`)throw`the path must start with 'this'`;Qw.processCallback(this.irObject,n.pathString,t)}}finalizeChannelData(){this.serializeFields(),this.populateChannels()}populateChannels(){this.traverseIrObject({onPrimitive:(e,t,n,r)=>{for(let t=0;t<r.length-1;t++){if(e.channelId===null)throw Error(`field '${Qw.fromParents(r)}' is not assigned to any channel`);(r[t].channels=r[t].channels||new Set).add(e.channelId)}}});let e=this.irObject[0];e===void 0?this.usedChannels=[]:this.usedChannels=[...e.channels].sort((e,t)=>e-t);for(let e of this.usedChannels)if(!this.channelDefinitions.has(e))throw Error(`channel ${e} is undefined`)}buildDictionary(e){let t=new Map;this.traverseIrObject({channelId:e,onObject:(e,t,r,i)=>{i.length>1&&!r&&n(e)},onArray:(e,t,r,i)=>{r||n(e)},onPrimitive:(e,t,r,i)=>{r||n(e)}});function n(e){t.set(e.name,t.has(e.name)?t.get(e.name)+1:1)}let r=[];for(let[e,n]of t)r.push([n,e]);return[...new Map([...r.sort((e,t)=>t[0]-e[0]).map((e,t)=>[e[1],t])]).keys()]}serializeFields(){this.traverseIrObject({onPrimitive:(e,t,n,r)=>{let i=new Av;if(e.attributes&2){i.writeVarUint(e.visibleParts.length);for(let t of e.visibleParts)i.writeString(t);if(e.visiblePartsBinary=i.getByteStream(),!(e.attributes&16)){i.clear(),i.writeVarUint(e.hiddenParts.length);for(let t of e.hiddenParts)i.writeString(t);e.hiddenPartsBinary=i.getByteStream()}}else e.attributes&8||(i.writeJsonValue(e.type,e.value),e.valueBinary=i.getByteStream())}})}traverseIrObject(e){r(this.irObject,e.initialContext,!1,[]);function t(t,n){return e.channelId===void 0||(n?t.channelId===e.channelId:t.channels.has(e.channelId))}function n(n,i,a,o){let s=[...o,n];if(n.type==1){if(t(n,!1)){let t=e.onArray&&e.onArray(n,i,a,s);r(n.entries,t,!0,s)}}else if(n.type==2){if(t(n,!1)){let t=e.onObject&&e.onObject(n,i,a,s);r(n.properties,t,!1,s)}}else t(n,!0)&&e.onPrimitive&&e.onPrimitive(n,i,a,s)}function r(e,t,r,i){for(let a of e)n(a,t,r,i)}}exportToJson(){let e={root:null};return this.traverseIrObject({initialContext:e,onArray:(e,t,n)=>t[n?e.index:e.name]=[],onObject:(e,t,n)=>t[n?e.index:e.name]={},onPrimitive:(e,t,n,r)=>{t[n?e.index:e.name]=e.value}}),e.root===null?{}:e.root}},hT=class{static async encode(e,t){let n=[],r=[],i=e.split(/(\{\{.+?\}\})/);for(let e in i){let a=i[e];if(e&1){let e=a.slice(2,-2).trim(),n=Qw.parsePrefix(e),i=await t(n.blockIndex),o=Qw.toNumericPath(i,n.pathString);r.push(o)}else n.push(a)}for(;n[n.length-1]==``;)n.pop();return{texts:n,fields:r}}static async decode(e,t){for(let n of e.fields){let e=await t(0),r=Qw.fromNumericPath(e,n);console.log(r)}}},gT=2,_T=32,vT={CACHE_HORIZON:gT,HASH_SIZE:_T,ROOT_ANCHORING_HASH:new Uint8Array(_T)},yT={keyDifference:bT,getHashList:xT};function bT(e,t,n){for(let r=e;r<vT.HASH_SIZE*2;r++)if((t[r>>1]^n[2+(r>>1)-(e>>1)])>>4*(r&1)&15)return 1;return 0}function xT(e,t){let n=[],r=2;for(let i=0;i<16;i++)n.push(e&1<<i?t.slice(r,r+=vT.HASH_SIZE):null);return n}async function ST(e,t,n){return await CT(e,t,n,null,0)?N.Hashes.sha256AsBinary(n[0]):null}async function CT(e,t,n,r,i){if(i===vT.HASH_SIZE*2)return r===null||t===null?r===null&&t===null:A.binaryIsEqual(r,t);let a=n[i];if(i&&(r===null||!A.binaryIsEqual(N.Hashes.sha256AsBinary(a),r)))return!1;let o=a[0]<<8|a[1];if(o){let r=yT.getHashList(o,a),s=e[i>>1]>>4*(i&1)&15;return o&1<<s?await CT(e,t,n,r[s],i+1):t===null}if(yT.keyDifference(i,e,a))return t===null;let s=vT.HASH_SIZE*2+1-i>>1;return t!==null&&A.binaryIsEqual(a.slice(2+s),t)}var wT=class{constructor(e){this.transaction=e}getHeight(){return this.transaction.height}getPreviousHistoryHash(){return Dx.from(this.transaction.previousHistoryHash)}getTimestamp(){return this.transaction.timestamp}transferredAt(){return new Date(this.transaction.timestamp*1e3)}getLinkedAccount(){return Dx.from(this.transaction.linkedAccount)}getAmount(){let e=this.isPositive()?1:-1;return hn.createAtomic(this.transaction.amount*e)}getChainReference(){return Dx.from(this.transaction.chainReference)}isPositive(){return!!(this.transaction.type&1)}isNegative(){return!this.isPositive()}isEarnedFees(){return this.isEarnedBlockFees()||this.isEarnedTxFees()}isEarnedBlockFees(){return this.transaction.type===3}isEarnedTxFees(){return this.transaction.type===1}isPaidBlockFees(){return this.transaction.type===2}isPaidTxFees(){return this.transaction.type===0}isReceivedIssuance(){return this.transaction.type===5}isSentIssuance(){return this.transaction.type===4}isSale(){return this.transaction.type==6}isSentPayment(){return this.transaction.type==8}isPaidFees(){return this.isPaidBlockFees()||this.isPaidTxFees()}isPurchase(){return this.transaction.type==7}isReceivedPayment(){return this.transaction.type==9}},TT=class{transactionByHeight;constructor(){this.transactionByHeight=new Map}setTransactionAtHeight(e,t){this.transactionByHeight.set(e,t)}containsTransactions(){return this.transactionByHeight.size>0}getTransactionHeights(){return Array.from(this.transactionByHeight.keys())}getAllTransactions(){return Array.from(this.transactionByHeight.values()).map(e=>new wT(e))}getNumberOfTransactions(){return this.transactionByHeight.size}containsTransactionAtHeight(e){return this.transactionByHeight.has(e)}getTransactionAtHeight(e){let t=this.transactionByHeight.get(e);if(t===void 0)throw new i(`No transaction found at height ${e}`);return new wT(t)}},ET={[U.PROTOCOL_VIRTUAL_BLOCKCHAIN]:`PROTOCOL_VIRTUAL_BLOCKCHAIN`,[U.NODE_VIRTUAL_BLOCKCHAIN]:`NODE_VIRTUAL_BLOCKCHAIN`,[U.APPLICATION_VIRTUAL_BLOCKCHAIN]:`APPLICATION_VIRTUAL_BLOCKCHAIN`,[U.ORGANIZATION_VIRTUAL_BLOCKCHAIN]:`ORGANIZATION_VIRTUAL_BLOCKCHAIN`,[U.APP_LEDGER_VIRTUAL_BLOCKCHAIN]:`APP_LEDGER_VIRTUAL_BLOCKCHAIN`,[U.ACCOUNT_VIRTUAL_BLOCKCHAIN]:`ACCOUNT_VIRTUAL_BLOCKCHAIN`},DT=class{static getVirtualBlockchainLabelFromVirtualBlockchainType(e){return ET[e]}},OT=function(e){return e.AUTH_BY_PUBLIC_KEY=`WALLET_REQUEST_AUTH_BY_PUBLIC_KEY`,e.DATA_APPROVAL=`WALLET_REQUEST_DATA_APPROVAL`,e}({}),kT=function(e){return e.AUTH_BY_PUBLIC_KEY=`WALLET_RESPONSE_AUTH_BY_PUBLIC_KEY`,e.DATA_APPROVAL=`WALLET_RESPONSE_DATA_APPROVAL`,e}({}),AT=L({type:F(OT.AUTH_BY_PUBLIC_KEY),base64EncodedChallenge:R()}),jT=L({type:F(OT.DATA_APPROVAL),anchorRequestId:R(),serverUrl:R()}),MT=rm(`type`,[AT,jT]),NT=L({type:F(kT.AUTH_BY_PUBLIC_KEY),publicKey:R(),signature:R()}),PT=L({type:F(kT.DATA_APPROVAL),b64VbHash:R(),b64MbHash:R(),height:I()}),FT=rm(`type`,[NT,PT]),IT=100,LT=function(e){return e.REQUEST=`CLIENT_BRIDGE_REQUEST`,e.UPDATE_QR=`CLIENT_BRIDGE_UPDATE_QR`,e.CONNECTION_TOKEN=`CLIENT_BRIDGE_CONNECTION_TOKEN`,e.FORWARDED_ANSWER=`CLIENT_BRIDGE_FORWARDED_ANSWER`,e.GET_CONNECTION_INFO=`CLIENT_BRIDGE_GET_CONNECTION_INFO`,e.ANSWER=`CLIENT_BRIDGE_ANSWER`,e.CONNECTION_INFO=`CLIENT_BRIDGE_CONNECTION_INFO`,e.CONNECTION_ACCEPTED=`CLIENT_BRIDGE_CONNECTION_ACCEPTED`,e.FORWARDED_REQUEST=`CLIENT_BRIDGE_FORWARDED_REQUEST`,e.ERROR=`CLIENT_BRIDGE_ERROR`,e}({}),RT=L({base64EncodedQrId:R(),timestamp:I(),serverUrl:B(R(),Lp(100))}),zT=L({type:F(LT.REQUEST),walletRequest:MT,deviceId:km(),withToken:I()}),BT=L({type:F(LT.UPDATE_QR),base64EncodedQrId:R(),timestamp:I()}),VT=L({type:F(LT.CONNECTION_TOKEN),token:km()}),HT=L({type:F(LT.FORWARDED_ANSWER),walletResponse:FT}),UT=L({type:F(LT.GET_CONNECTION_INFO),base64EncodedQrId:R()}),WT=L({type:F(LT.ANSWER),walletResponse:FT}),GT=L({type:F(LT.CONNECTION_INFO)}),KT=L({type:F(LT.CONNECTION_ACCEPTED),base64EncodedQrId:R()}),qT=L({type:F(LT.FORWARDED_REQUEST),walletRequest:MT}),JT=L({type:F(LT.ERROR),errorMessage:R()}),YT=rm(`type`,[zT,BT,VT,HT,UT,WT,GT,KT,qT,JT]),XT=class{static encode(e){return px(z(YT,e))}static decode(e){return z(YT,Ib(e))}},ZT=class{static validateClientBridgeMessage(e){return z(YT,e)}},QT=class{static encode(e){return px(z(RT,e))}static decode(e){return z(RT,Ib(e))}},$T=$p(R(),L({networkName:Zp(R()),nodes:$p(R(),L({nodeName:Zp(R()),hostname:R(),rpcEndpoint:R(),p2pEndpoint:R(),trusted:Zp(Gp(),!1),nodeId:R()}))})),eE=L({state:Bh,microblockHashes:P(H())}),tE=function(e){return e.APPROVAL_HANDSHAKE=`WALLET_OPERATOR_REQUEST_APPROVAL_HANDSHAKE`,e.ACTOR_KEY=`WALLET_OPERATOR_REQUEST_ACTOR_KEY`,e.APPROVAL_SIGNATURE=`WALLET_OPERATOR_REQUEST_APPROVAL_SIGNATURE`,e}({}),nE=function(e){return e.ERROR=`WALLET_OPERATOR_RESPONSE_ERROR`,e.ACTOR_KEY_REQUIRED=`WALLET_OPERATOR_RESPONSE_ACTOR_KEY_REQUIRED`,e.APPROVAL_DATA=`WALLET_OPERATOR_RESPONSE_APPROVAL_DATA`,e.APPROVAL_SIGNATURE=`WALLET_OPERATOR_RESPONSE_APPROVAL_SIGNATURE`,e}({}),rE=L({type:F(tE.APPROVAL_HANDSHAKE),anchorRequestId:R()}),iE=L({type:F(tE.ACTOR_KEY),anchorRequestId:R(),actorSignaturePublicKey:R(),actorPkePublicKey:R()}),aE=L({type:F(tE.APPROVAL_SIGNATURE),anchorRequestId:R(),b64Signature:R()}),oE=rm(`type`,[rE,iE,aE]),sE=L({type:F(nE.ERROR),errorMessage:Zp(R(),``)}),cE=L({type:F(nE.ACTOR_KEY_REQUIRED),b64GenesisSeed:R()}),lE=L({type:F(nE.APPROVAL_DATA),b64SerializedMicroblock:R()}),uE=L({type:F(nE.APPROVAL_SIGNATURE),b64VbHash:R(),b64MbHash:R(),height:I()}),dE=rm(`type`,[sE,cE,lE,uE]),fE=class{static encodeRequest(e){return px(z(MT,e))}static decodeRequest(e){return z(MT,Ib(e))}static encodeResponse(e){return px(z(FT,e))}static decodeResponse(e){return z(FT,Ib(e))}},pE=class{static validateWalletRequest(e){return z(MT,e)}static validateWalletResponse(e){return z(FT,e)}},mE=class{constructor(e=new pg){this.stringEncoder=e}decode(e){let t=this.getPrefix(),n=gg.decode(e);if(n.matchesKeys(...t))return this.stringEncoder.decode(n.getValue());throw new l(`Invalid seed format`)}encode(e){let t=this.getPrefix();return gg.encode(...t,this.stringEncoder.encode(e))}getPrefix(){return[`SEED`]}},hE=class extends mE{getPrefix(){return[`ACCOUNT`,`SEED`]}},gE=class e{static createFromAbciResponse(t){return new e(t.list)}constructor(e){this.transactions=e}containsTransactions(){return this.transactions.length>0}getTransactions(){return this.transactions.map(e=>new _E(e))}},_E=class{constructor(e){this.transaction=e}getHeight(){return this.transaction.height}getPreviousHistoryHash(){return Dx.from(this.transaction.previousHistoryHash)}getTimestamp(){return this.transaction.timestamp}transferredAt(){return new Date(this.transaction.timestamp*1e3)}getTransactionTypeLabel(){return this.isEarnedFees()?`Earned fees`:this.isPaidFees()?`Paid fees`:this.isSentPayment()?`Sent payment`:this.isReceivedPayment()?`Received payment`:this.isPurchase()?`Purchase`:this.isSentIssuance()?`Sent issuance`:this.isReceivedIssuance()?`Received issuance`:this.isSale()?`Sale`:`Transaction`}getLinkedAccount(){return Dx.from(this.transaction.linkedAccount)}getAmount(){let e=this.isPositive()?1:-1;return hn.createAtomic(this.transaction.amount*e)}getChainReference(){return Dx.from(this.transaction.chainReference)}isPositive(){return!!(this.transaction.type&1)}isNegative(){return!this.isPositive()}isEarnedFees(){return this.isEarnedBlockFees()||this.isEarnedTxFees()}isEarnedBlockFees(){return this.transaction.type===3}isEarnedTxFees(){return this.transaction.type===1}isPaidBlockFees(){return this.transaction.type===2}isPaidTxFees(){return this.transaction.type===0}isReceivedIssuance(){return this.transaction.type===5}isSentIssuance(){return this.transaction.type===4}isSale(){return this.transaction.type==6}isSentPayment(){return this.transaction.type==8}isPaidFees(){return this.isPaidBlockFees()||this.isPaidTxFees()}isPurchase(){return this.transaction.type==7}isReceivedPayment(){return this.transaction.type==9}},vE=class extends mE{getPrefix(){return[`ACTOR`,`SEED`]}},yE=class e{static createFromAccountStateAbciResponse(t){return new e(t.balance,t.locks)}logger=k.getLogger([`accounts`,e.name]);balanceInAtomics;locks;constructor(t=0,n=[]){this.initialBalance=t,this.initialLocks=n,this.balanceInAtomics=t,this.locks=n,this.logger=lo([`node`,`accounts`,e.name])}setBalance(e){this.balanceInAtomics=e}getBalanceAsAtomics(){return this.balanceInAtomics}getBalance(){return hn.createAtomic(this.balanceInAtomics)}setLocks(e){this.locks=[...e]}getLocks(){return this.locks}hasNodeStakingLocks(){return this.locks.some(e=>e.type==Wh.NodeStaking)}getNodeStakingLocks(){return this.locks.filter(e=>e.type==Wh.NodeStaking)}getNodeStakingLock(e){return this.getNodeStakingLocks().find(t=>A.binaryIsEqual(t.parameters.validatorNodeId,e))}getNodeStakingLockOrFail(e){let t=this.getNodeStakingLock(e);if(t==null)throw Error(`Staking not found for node ${A.binaryToHexa(e)}`);return t}getNodeStakingLockAmount(e){let t=this.getNodeStakingLock(e);return t===void 0?0:t.lockedAmountInAtomics}hasEscrowLocks(){return this.locks.some(e=>e.type==Wh.Escrow)}getEscrowLocks(){return this.locks.filter(e=>e.type==Wh.Escrow)}hasVestingLocks(){return this.locks.some(e=>e.type==Wh.Vesting)}getVestingLocks(){return this.locks.filter(e=>e.type==Wh.Vesting)}removeExpiredEscrowLocks(){this.removeExpiredLocks(Wh.Escrow)}removeExpiredVestingLocks(){this.removeExpiredLocks(Wh.Vesting)}removeExpiredStakingLocks(){this.removeExpiredLocks(Wh.NodeStaking)}removeExpiredLocks(e){this.locks=this.locks.filter(t=>!(t.type==e&&t.lockedAmountInAtomics==0))}addSpendableTokens(e){this.balanceInAtomics+=e}addVestedTokens(e,t){this.balanceInAtomics+=e,this.locks.push({type:Wh.Vesting,lockedAmountInAtomics:e,parameters:t})}addEscrowedTokens(e,t){this.balanceInAtomics+=e,this.locks.push({type:Wh.Escrow,lockedAmountInAtomics:e,parameters:t})}removeEscrowLock(e){let t=this.locks.findIndex(t=>t.type==Wh.Escrow&&A.binaryIsEqual(t.parameters.escrowIdentifier,e));if(t==-1)throw Error(`Escrow not found`);let n=this.locks[t].lockedAmountInAtomics;return this.locks.splice(t,1),n}addNodeStaking(e,t){let n=this.getBreakdown();if(e<0)throw Error(`Stake amount must be greater than 0`);if(e>n.stakeable)throw Error(`Cannot stake more than ${n.stakeable} atomic units`);let r=this.getNodeStakingLock(t);r===void 0?(this.logger.info(`Creating new staking of ${e} atomics for node ${A.binaryToHexa(t)}`),this.locks.push({type:Wh.NodeStaking,lockedAmountInAtomics:e,parameters:{validatorNodeId:t,plannedUnlockAmountInAtomics:0,plannedUnlockTimestamp:0,slashed:!1,plannedSlashingAmountInAtomics:0,plannedSlashingTimestamp:0}})):(this.logger.info(`Adding ${e} atomics to existing staking for node ${A.binaryToHexa(t)}`),r.lockedAmountInAtomics+=e)}planNodeStakingUnlock(e,t,n){let r=this.getNodeStakingLockOrFail(n);if(r.parameters.plannedUnlockAmountInAtomics!=0)throw Error(`There's already a pending staking unlock for this node`);let i=A.addDaysToTimestamp(t,0);this.logger.info(`Planned staking unlock of ${e} atomics on account ${A.binaryToHexa(n)}`),r.parameters.plannedUnlockAmountInAtomics=e,r.parameters.plannedUnlockTimestamp=i}applyNodeStakingUnlocks(e){let t=this.getNodeStakingLocks(),n=0;for(let r of t)if(r.parameters.plannedUnlockTimestamp!=0&&e>=r.parameters.plannedUnlockTimestamp){let e=r.parameters.plannedUnlockAmountInAtomics;this.removeNodeStaking(e,r.parameters.validatorNodeId),n+=e}return this.removeExpiredStakingLocks(),n}setSlashing(e,t){let n=this.getNodeStakingLockOrFail(e);this.logger.info(`Setting slashing of ${n.lockedAmountInAtomics} atomics for node ${A.binaryToHexa(e)}, effective on ${new Date(t*1e3).toISOString()}`),n.parameters.slashed=!0,n.parameters.plannedSlashingAmountInAtomics=n.lockedAmountInAtomics,n.parameters.plannedSlashingTimestamp=t}cancelNodeSlashing(e){let t=this.getNodeStakingLockOrFail(e);t.parameters.slashed?(this.logger.info(`Cancelled slashing of node ${A.binaryToHexa(e)}`),t.parameters.slashed=!1,t.parameters.plannedSlashingAmountInAtomics=0,t.parameters.plannedSlashingTimestamp=0):this.logger.warn(`No pending slashing for node ${A.binaryToHexa(e)}`)}applyNodeSlashing(e){let t=this.getNodeStakingLocks(),n=0;for(let r of t)if(r.parameters.slashed){let t=r.parameters.plannedSlashingAmountInAtomics;t>0&&r.parameters.plannedSlashingTimestamp!=0&&e>=r.parameters.plannedSlashingTimestamp&&(this.logger.info(`Applying slashing of ${t} atomics on node ${A.binaryToHexa(r.parameters.validatorNodeId)}`),r.lockedAmountInAtomics-=t,this.balanceInAtomics-=t,n+=t,r.parameters.slashed=!1,r.parameters.plannedSlashingTimestamp=0,r.parameters.plannedSlashingAmountInAtomics=0)}return this.adjustVesting(),this.removeExpiredStakingLocks(),n}adjustVesting(){let e=this.getBreakdown().vested,t=e-this.balanceInAtomics;if(t>0){let n=this.getVestingLocks(),r=0;for(let i of n){let n=Math.floor(t*i.lockedAmountInAtomics/e);i.lockedAmountInAtomics-=n,r+=n}for(let e of n)r<t&&e.lockedAmountInAtomics>0&&(e.lockedAmountInAtomics--,r++);this.removeExpiredVestingLocks()}}removeNodeStaking(e,t){let n=this.getNodeStakingLockOrFail(t);if(e<0)throw Error(`Unstake amount must be greater than 0`);if(e>n.lockedAmountInAtomics)throw Error(`Cannot unstake more than ${n.lockedAmountInAtomics} atomic units`);n.lockedAmountInAtomics-=e}applyLinearVesting(e){let t=this.getBreakdown().releasable,n=0,r=this.getVestingLocks();for(let i of r){let r=i.parameters.initialVestedAmountInAtomics,a=i.parameters.cliffStartTimestamp,o=i.parameters.cliffDurationDays,s=i.parameters.vestingDurationDays,c=A.addDaysToTimestamp(a,o),l=Math.min(A.timestampDifferenceInDays(c,e),s);if(this.logger.debug(`start date: {cliffStartDate}, initial amount: {initialAmount}, cliff during {cliffDurationDays} day(s), vesting during {vestingDurationDays} day(s)`,()=>({cliffStartDate:new Date(a*1e3).toISOString(),initialAmount:r,cliffDurationDays:o,vestingDurationDays:s})),this.logger.debug(`cliff end date: {cliffEndDay}, today: {today}, elapsed time in vesting: {elapsed} day(s)`,()=>({cliffEndDay:new Date(c*1e3).toISOString(),today:new Date(e*1e3).toISOString(),elapsed:l})),l>0){let e=r-i.lockedAmountInAtomics,a=Math.floor(r*l/s),o=Math.min(a-e,t);this.logger.debug(`already released: ${e}, max. release: ${a}, released today: ${o}`),i.lockedAmountInAtomics-=o,t-=o,n+=o}else this.logger.debug(`nothing is released today`)}return this.removeExpiredVestingLocks(),n}getBreakdown(){let e=new Map;for(let t of this.locks){let n=e.get(t.type)||0;e.set(t.type,n+t.lockedAmountInAtomics)}let t=e.get(Wh.Escrow)||0,n=e.get(Wh.Vesting)||0,r=e.get(Wh.NodeStaking)||0,i=this.balanceInAtomics-r-t,a=Math.max(0,n-r),o=t+Math.max(n,r),s=this.balanceInAtomics-o;return{balance:this.balanceInAtomics,escrowed:t,vested:n,releasable:a,staked:r,stakeable:i,locked:o,spendable:s}}getSpendable(){return hn.createAtomic(this.getBreakdown().spendable)}getVested(){return hn.createAtomic(this.getBreakdown().vested)}getStakeable(){return hn.createAtomic(this.getBreakdown().stakeable)}getStaked(){return hn.createAtomic(this.getBreakdown().staked)}},bE=class{static encoder=new ex({tagUint8Array:!0,mapsAsObjects:!0});static encodeRequest(e){return this.encoder.encode(z(oE,e))}static decodeRequest(e){return z(oE,this.encoder.decode(e))}static encodeResponse(e){return this.encoder.encode(z(dE,e))}static decodeResponse(e){return z(dE,this.encoder.decode(e))}},xE=class{static validateRequest(e){return z(oE,e)}static validateResponse(e){return z(dE,e)}},SE=class extends mE{getPrefix(){return[`WALLET`,`SEED`]}},CE=class e{constructor(e){this.actorSeed=e}static createFromAccountSeedAndVbSeed(t,n){return new e(A.binaryFrom(t,n))}static parseFromString(t,n=new mE){return new e(n.decode(t))}encode(e=new mE){return e.encode(this.actorSeed)}getSeedAsBytes(){return this.actorSeed}async getPrivateSignatureKey(e){let t=Uv.createDefaultKDF(),n=this.encoderStringAsBytes(`SIG`),r=t.deriveKeyNoSalt(this.actorSeed,n,32);return Uv.createPrivateSignatureKey(e,r)}async getPublicSignatureKey(e){return(await this.getPrivateSignatureKey(e)).getPublicKey()}getPrivateDecryptionKey(e){let t=Uv.createDefaultKDF(),n=this.encoderStringAsBytes(`PKE`),r=t.deriveKeyNoSalt(this.actorSeed,n,64);return Uv.createPrivateDecryptionKey(e,r)}async getPublicEncryptionKey(e){return(await this.getPrivateDecryptionKey(e)).getPublicKey()}encoderStringAsBytes(e){return new TextEncoder().encode(e)}},wE=class e{static createFromWalletSeedAndNonce(t,n){let r=A.binaryFrom(t,n),i=Uv.createDefaultKDF(),a=this.encoderStringAsBytes(`ACCOUNT_SEED`);return new e(i.deriveKeyNoSalt(r,a,32))}static parseFromString(t,n=new mE){return new e(n.decode(t))}encode(e=new mE){return e.encode(this.accountSeed)}constructor(e){this.accountSeed=e}deriveActorFromVbSeed(e){return CE.createFromAccountSeedAndVbSeed(this.accountSeed,e)}async getPrivateSignatureKey(t){let n=Uv.createDefaultKDF();Uv.createSignatureScheme(t);let r=e.encoderStringAsBytes(`SIG_${t}`),i=n.deriveKeyNoSalt(this.accountSeed,r,32);return Uv.createPrivateSignatureKey(t,i)}async getPublicSignatureKey(e){return(await this.getPrivateSignatureKey(e)).getPublicKey()}async getPrivateDecryptionKey(t){let n=Uv.createDefaultKDF(),r=e.encoderStringAsBytes(`PKE_${t}`),i=n.deriveKeyNoSalt(this.accountSeed,r,64);return Uv.createPrivateDecryptionKey(t,i)}async getPublicEncryptionKey(e){return(await this.getPrivateDecryptionKey(e)).getPublicKey()}static encoderStringAsBytes(e){return new TextEncoder().encode(e)}getSeedAsBytes(){return this.accountSeed}getAccountSeed(){return this.accountSeed}static concatWalletSeedWith(e,t){return new Uint8Array([...e,...t])}static numberToUint8Array(e,t=4){let n=new ArrayBuffer(t),r=new DataView(n);return t===1?r.setUint8(0,e):t===2?r.setUint16(0,e,!1):t===4?r.setUint32(0,e,!1):t===8&&r.setBigUint64(0,BigInt(e),!1),new Uint8Array(n)}getActor(e){return CE.createFromAccountSeedAndVbSeed(this.accountSeed,e)}},TE=class e{static generateWallet(){return new e(Fu(64))}static fromSeed(t){if(!(t instanceof Uint8Array))throw new i(`Seed must be a Uint8Array, got ${typeof t}`);return new e(t)}static parseFromString(t,n=new mE){if(typeof t!=`string`)throw new i(`Seed must be a string, got ${typeof t}`);return new e(n.decode(t))}encode(e=new mE){return e.encode(this.walletSeed)}constructor(e){this.walletSeed=e}getDefaultAccountCrypto(){return wE.createFromWalletSeedAndNonce(this.walletSeed,0)}async generateActorPrivateSignatureKey(e,t){let n=Uv.createDefaultKDF(),r=new Uint8Array([...this.walletSeed,...t]),i=new TextEncoder,a=n.deriveKeyNoSalt(r,i.encode(`SIG`),32);return Uv.createPrivateSignatureKey(e,a)}async generateActorPrivateDecryptionKey(e,t){let n=Uv.createDefaultKDF(),r=new Uint8Array([...this.walletSeed,...t]),i=new TextEncoder,a=n.deriveKeyNoSalt(r,i.encode(`PKE`),32);return Uv.createPrivateDecryptionKey(e,a)}getPrivateSignatureKey(e=Ya.SECP256K1){let t=Uv.createDefaultKDF(),n=Uv.createSignatureScheme(e).expectedSeedSize(),r=wE.encoderStringAsBytes(`SIG_${e}`),i=t.deriveKeyNoSalt(this.walletSeed,r,n);return Uv.createPrivateSignatureKey(e,i)}getDecapsulationKey(e){return new Uv().createDecapsulationKey(e,this.walletSeed)}getAccountSeed(e){return this.getAccount(e).getAccountSeed()}getAccount(e){return wE.createFromWalletSeedAndNonce(this.walletSeed,e)}getAccountPrivateSignatureKey(e,t){return wE.createFromWalletSeedAndNonce(this.walletSeed,t).getPrivateSignatureKey(e)}getActorPrivateSignatureKey(e,t,n){return wE.createFromWalletSeedAndNonce(this.walletSeed,n).deriveActorFromVbSeed(t).getPrivateSignatureKey(e)}getVirtualBlockchainDecapsulationKey(e,t){return new Uv().createVirtualBlockchainDecapsulationKey(e,this.walletSeed,t)}getSeedAsBytes(){return this.walletSeed}};exports.ACCOUNT_ALLOWED_TRANSFERS=Gr,exports.ACCOUNT_BLOCK_FEES=Ur,exports.ACCOUNT_BURNT_TOKENS=Vr,exports.ACCOUNT_CREATION=ma,exports.ACCOUNT_ESCROW_SETTLEMENT=va,exports.ACCOUNT_ESCROW_TRANSFER=_a,exports.ACCOUNT_HISTORY=ai,exports.ACCOUNT_NAMES=Wr,exports.ACCOUNT_PUBLIC_KEY=fa,exports.ACCOUNT_STAKE=ya,exports.ACCOUNT_STANDARD=Hr,exports.ACCOUNT_STATE=ii,exports.ACCOUNT_TOKEN_ISSUANCE=pa,exports.ACCOUNT_TRANSFER=ha,exports.ACCOUNT_VESTING_TRANSFER=ga,exports.AES256GCMSymmetricEncryptionKey=Ig,exports.AES256GCMSymmetricEncryptionScheme=Fg,exports.ALL_SCHEMAS=aa,exports.ALL_SECTIONS_SCHEMAS=Ga,exports.APP_CREATION=ka,exports.APP_DESCRIPTION=Aa,exports.APP_LEDGER_ACTOR_CREATION=Fa,exports.APP_LEDGER_ACTOR_SUBSCRIPTION=za,exports.APP_LEDGER_ALLOWED_PKE_SCHEMES=Na,exports.APP_LEDGER_ALLOWED_SIG_SCHEMES=Ma,exports.APP_LEDGER_AUTHOR=Ha,exports.APP_LEDGER_CHANNEL_CREATION=Ia,exports.APP_LEDGER_CHANNEL_INVITATION=Ra,exports.APP_LEDGER_CREATION=Pa,exports.APP_LEDGER_ENDORSEMENT_REQUEST=Ua,exports.APP_LEDGER_PRIVATE_CHANNEL_DATA=Va,exports.APP_LEDGER_PUBLIC_CHANNEL_DATA=Ba,exports.APP_LEDGER_SHARED_SECRET=La,exports.ARRAY=am,exports.AbciQueryEncoder=Hw,exports.AbciRequestSchema=gw,exports.AbciRequestType=$,exports.AbciResponseSchema=Vw,exports.AbciResponseType=vw,exports.AbstractPrivateDecryptionKey=Sv,exports.AbstractProvider=KC,exports.AbstractPublicEncryptionKey=xv,exports.AbstractPublicKeyEncryptionScheme=bv,exports.AccountBreakdownSchema=Qh,exports.AccountByPublicKeyHashAbciResponseSchema=Mw,exports.AccountCreationSectionSchema=qm,exports.AccountCrypto=wE,exports.AccountEscrowSettlementSectionSchema=Zm,exports.AccountEscrowTransferSectionSchema=Xm,exports.AccountHistoryAbciResponseSchema=jw,exports.AccountHistoryEntrySchema=tg,exports.AccountHistorySchema=ng,exports.AccountHistoryView=TT,exports.AccountInformationSchema=eg,exports.AccountInternalState=Ex,exports.AccountInternalStateUpdater=Fx,exports.AccountMicroblockStructureChecker=$x,exports.AccountNotFoundForAccountHashError=_e,exports.AccountNotFoundForPublicKeyError=ge,exports.AccountNotFoundForPublicKeyHashError=xe,exports.AccountPublicKeySectionSchema=Gm,exports.AccountSeedEncoder=hE,exports.AccountStakeSectionSchema=Qm,exports.AccountStateAbciResponseSchema=Aw,exports.AccountStateSchema=$h,exports.AccountTokenIssuanceSectionSchema=Km,exports.AccountTransaction=_E,exports.AccountTransactions=gE,exports.AccountTransferSectionSchema=Jm,exports.AccountUnstakeSectionSchema=$m,exports.AccountUpdateSchema=ig,exports.AccountUpdatesAbciResponseSchema=Rw,exports.AccountVb=eS,exports.AccountVestingTransferSectionSchema=Ym,exports.AccountVirtualBlockchainInternalStateSchema=wh,exports.AccountVirtualBlockchainStateSchema=Ph,exports.ActorAlreadyDefinedError=re,exports.ActorCrypto=CE,exports.ActorNotDefinedError=oe,exports.ActorNotInvitedError=he,exports.ActorNotSubscribedError=Te,exports.ActorSeedEncoder=vE,exports.ActorType=BS,exports.Aes=su,exports.AllowedAdditionalWriterSectionSchema=Vm,exports.AlreadySubscribedError=S,exports.AppLedgerLocalStateUpdaterV1=zx,exports.AppLedgerMicroblockBuildRequestSchema=JS,exports.AppLedgerMicroblockBuildRequestValidation=YS,exports.ApplicationCreationSectionSchema=sh,exports.ApplicationDescriptionSectionSchema=ch,exports.ApplicationInternalState=Ox,exports.ApplicationInternalStateUpdater=Ix,exports.ApplicationLedgerActorCreationSectionSchema=fh,exports.ApplicationLedgerActorInvitationStateSchema=kh,exports.ApplicationLedgerActorSchema=jh,exports.ApplicationLedgerActorSubscriptionSectionSchema=gh,exports.ApplicationLedgerAllowedPkeSchemesSectionSchema=uh,exports.ApplicationLedgerAllowedSigSchemesSectionSchema=lh,exports.ApplicationLedgerAuthorSectionSchema=yh,exports.ApplicationLedgerChannelCreationSectionSchema=ph,exports.ApplicationLedgerChannelInvitationSectionSchema=hh,exports.ApplicationLedgerChannelSchema=Oh,exports.ApplicationLedgerCreationSectionSchema=dh,exports.ApplicationLedgerEndorsementRequestSectionSchema=bh,exports.ApplicationLedgerInternalState=kx,exports.ApplicationLedgerInternalStateObjectSchema=Mh,exports.ApplicationLedgerMicroblockBuilder=zS,exports.ApplicationLedgerMicroblockStructureChecker=cS,exports.ApplicationLedgerNotFoundError=Ce,exports.ApplicationLedgerPrivateChannelDataSectionSchema=vh,exports.ApplicationLedgerPublicChannelDataSectionSchema=_h,exports.ApplicationLedgerSharedSecretSectionSchema=mh,exports.ApplicationLedgerSharedSecretStateSchema=Ah,exports.ApplicationLedgerVb=IS,exports.ApplicationLedgerVirtualBlockchainStateSchema=Rh,exports.ApplicationMicroblockStructureChecker=tS,exports.ApplicationNotFoundError=ye,exports.ApplicationVBInternalStateObjectSchema=Dh,exports.ApplicationVb=nS,exports.ApplicationVirtualBlockchainStateSchema=Lh,exports.Assertion=sS,exports.AuxiliarySignatureSectionSchema=Bm,exports.AwaitMicroblockAnchoringAbciRequestSchema=nw,exports.BIN256=_m,exports.BINARY=gm,exports.BK_EARNED_BLOCK_FEES=Dr,exports.BK_EARNED_TX_FEES=Er,exports.BK_NAMES=Br,exports.BK_PAID_BLOCK_FEES=_r,exports.BK_PAID_TX_FEES=gr,exports.BK_PLUS=hr,exports.BK_PURCHASE=kr,exports.BK_RECEIVED_ESCROW=Mr,exports.BK_RECEIVED_ESCROW_REFUND=Nr,exports.BK_RECEIVED_EXPIRED_ESCROW=Pr,exports.BK_RECEIVED_ISSUANCE=Or,exports.BK_RECEIVED_PAYMENT=Ar,exports.BK_RECEIVED_SLASHED_TOKENS=Fr,exports.BK_RECEIVED_VESTING=jr,exports.BK_REFERENCES=zr,exports.BK_REF_BLOCK=Ir,exports.BK_REF_MICROBLOCK=Lr,exports.BK_REF_SECTION=Rr,exports.BK_SALE=yr,exports.BK_SENT_ESCROW=Sr,exports.BK_SENT_ESCROW_REFUND=Cr,exports.BK_SENT_EXPIRED_ESCROW=wr,exports.BK_SENT_ISSUANCE=vr,exports.BK_SENT_PAYMENT=br,exports.BK_SENT_SLASHED_TOKENS=Tr,exports.BK_SENT_VESTING=xr,exports.BLOCK_CONTENT=di,exports.BLOCK_INFORMATION=ui,exports.BOOLEAN=lm,exports.BalanceAvailability=yE,exports.Base32=OC,exports.Base64=sg,exports.BaseHCVSignatureDecoder=Ty,exports.BaseHCVSignatureEncoder=Jv,exports.BasePrivateSignatureKey=zg,exports.BasePublicSignatureKey=Bg,exports.BlockContentAbciResponseSchema=Cw,exports.BlockInformationAbciResponseSchema=xw,exports.BlockModifiedAccountsAbciResponseSchema=Lw,exports.BlockchainError=b,exports.BlockchainUtils=xx,exports.BytesSignatureEncoder=QS,exports.BytesToBase64Encoder=pg,exports.BytesToHexEncoder=mg,exports.CBORCryptoBinaryEncoder=yx,exports.CENTITOKEN=sr,Object.defineProperty(exports,`CHAIN`,{enumerable:!0,get:function(){return Hn}}),exports.CMTSToken=hn,exports.CONTRACT_PARAMETER_SCHEMA=Jr,exports.CONTRACT_SCHEMA=Yr,exports.CannotSubscribeError=le,exports.CarmentisError=o,exports.CarmentisErrorCode=n,exports.ChainInformationAbciResponseSchema=bw,exports.ChannelAlreadyDefinedError=ae,exports.ChannelNotDefinedError=se,exports.ClientBridgeEncoder=XT,exports.ClientBridgeMessageSchema=YT,exports.ClientBridgeMessageSchema_Answer=WT,exports.ClientBridgeMessageSchema_ConnectionAccepted=KT,exports.ClientBridgeMessageSchema_ConnectionInfo=GT,exports.ClientBridgeMessageSchema_ConnectionToken=VT,exports.ClientBridgeMessageSchema_Error=JT,exports.ClientBridgeMessageSchema_ForwardedAnswer=HT,exports.ClientBridgeMessageSchema_ForwardedRequest=qT,exports.ClientBridgeMessageSchema_GetConnectionInfo=UT,exports.ClientBridgeMessageSchema_Request=zT,exports.ClientBridgeMessageSchema_UpdateQr=BT,exports.ClientBridgeMessageType=LT,exports.ClientBridgeValidation=ZT,exports.CometBFTErrorCode=GC,exports.CometBFTNodeWebSocket=Zw,exports.CometBFTPublicKey=ZS,exports.CometBFTPublicKeyConverter=Kw,exports.ConstraintNameByConstraint=Yx,exports.Crypto=N,exports.CryptoEncoderFactory=bx,exports.CryptoError=d,exports.CryptoSchemeFactory=Uv,exports.CryptographicHashSchemeId=nv,exports.CurrencyConverterFactory=HC,exports.CurrentActorNotFoundError=pe,exports.CustomSectionSchema=Rm,Object.defineProperty(exports,`DATA`,{enumerable:!0,get:function(){return gn}}),exports.DEF=Ka,exports.DecryptionError=f,Object.defineProperty(exports,`ECO`,{enumerable:!0,get:function(){return ir}}),exports.ERROR=qr,Object.defineProperty(exports,`ERRORS`,{enumerable:!0,get:function(){return qa}}),exports.Economics=LC,exports.EconomicsError=v,exports.Ed25519PrivateSignatureKey=Hv,exports.Ed25519PublicSignatureKey=Vv,exports.Ed25519SignatureScheme=Bv,exports.EmptyBlockError=u,exports.EncoderFactory=fg,exports.EnvApiKeyPkmsCredentialProvider=_y,exports.ErrorAbciResponseSchema=yw,exports.EscrowLockSchema=Kh,exports.EscrowParametersSchema=Gh,exports.Euros=VC,exports.EurosToCMTSConverter=UC,exports.ExpirationDate=qC,exports.ExtendedSymmetricEncryptionKey=Lg,exports.FIXED_GAS_FEE=fr,exports.FORMAT=Vn,exports.FeesCalculationFormulaFactory=Tx,exports.FirstFeesFormula=wx,exports.GAS_ATOMS_PER_GAS=mr,exports.GAS_PER_BYTE=pr,exports.GenericSymmetricKeyEncoder=hC,exports.GenesisSnapshotAbciResponseSchema=Fw,exports.GetAccountByPublicKeyHashAbciRequestSchema=ow,exports.GetAccountHistoryAbciRequestSchema=aw,exports.GetAccountStateAbciRequestSchema=iw,exports.GetAccountUpdatesAbciRequestSchema=fw,exports.GetBlockContentAbciRequestSchema=QC,exports.GetBlockInformationAbciRequestSchema=ZC,exports.GetBlockModifiedAccountsAbciRequestSchema=dw,exports.GetChainInformationAbciRequestSchema=XC,exports.GetGenesisSnapshotAbciRequestSchema=lw,exports.GetMicroblockBodysAbciRequestSchema=rw,exports.GetMicroblockInformationAbciRequestSchema=tw,exports.GetMicroblockInformationByHeightAbciRequestSchema=pw,exports.GetMicroblockProofAbciRequestSchema=hw,exports.GetObjectListAbciRequestSchema=cw,exports.GetRawBlockContentAbciRequestSchema=uw,exports.GetSerializedMicroblockByHeightAbciRequestSchema=mw,exports.GetValidatorNodeByAddressAbciRequestSchema=sw,exports.GetVirtualBlockchainStateAbciRequestSchema=$C,exports.GetVirtualBlockchainUpdateAbciRequestSchema=ew,exports.HASHABLE=Fn,exports.HASHED=zn,exports.HASH_STR=vm,exports.HCVCodec=gg,exports.HCVDecoded=hg,exports.HCVPkeEncoder=Wv,exports.HKDF=_v,exports.HandlerBasedSignatureEncoder=Ay,exports.Hash=Dx,exports.Hashes=Qc,exports.INITIAL_OFFER=lr,exports.IllegalParameterError=i,exports.IllegalStateError=a,exports.IllegalUsageError=r,exports.IntermediateRepresentation=mT,exports.InternalError=m,exports.InternalStateFactory=Px,exports.InternalStateUpdaterFactory=Ux,exports.InvalidActorError=ie,exports.InvalidChannelError=fe,exports.InvalidTokenUnitError=y,exports.JsonSchema=uS,exports.JwkSignatureEncoder=pC,exports.KeyDerivationFunction=hv,exports.KeyDerivationFunctionSchemeId=gv,exports.KeyExchangeSchemeId=Rg,exports.LOCK_TYPE_COUNT=Uh,exports.LockSchema=Zh,exports.LockType=Wh,exports.Logger=k,exports.MAGIC_STRING=Un,exports.MASKABLE=In,exports.MASKED=Bn,exports.MAXIMUM_GAS_PRICE=dr,exports.MAX_MICROBLOCK_FUTURE_DELAY=er,exports.MAX_MICROBLOCK_PAST_DELAY=$n,exports.MB_STATUS_PREVIOUS_HASH_ERROR=rr,exports.MB_STATUS_TIMESTAMP_ERROR=nr,exports.MB_STATUS_UNRECOVERABLE_ERROR=tr,exports.MICROBLOCK_BODY=_i,exports.MICROBLOCK_HEADER=hi,exports.MICROBLOCK_HEADER_BODY_HASH_OFFSET=pi,exports.MICROBLOCK_HEADER_PREVIOUS_HASH_OFFSET=fi,exports.MICROBLOCK_HEADER_SIZE=mi,exports.MICROBLOCK_SECTION=gi,exports.MICROBLOCK_VB_INFORMATION=vi,exports.MILLITOKEN=cr,exports.MINIMUM_GAS_PRICE=ur,exports.MLDSA65HCVSignatureDecoder=Oy,exports.MLDSA65HCVSignatureEncoder=Zv,exports.MLDSA65PrivateSignatureKey=Ug,exports.MLDSA65PublicSignatureKey=Hg,exports.MLDSA65SignatureScheme=Vg,exports.MLDsa=yd,exports.MLKem=Ud,exports.MSG_ACCOUNT_BY_PUBLIC_KEY_HASH=Vi,exports.MSG_ACCOUNT_HISTORY=zi,exports.MSG_ACCOUNT_STATE=Li,exports.MSG_AWAIT_MICROBLOCK_ANCHORING=Mi,exports.MSG_BLOCK_CONTENT=Ti,exports.MSG_BLOCK_INFORMATION=Ci,exports.MSG_CHAIN_INFORMATION=xi,exports.MSG_ERROR=yi,exports.MSG_GENESIS_SNAPSHOT=qi,exports.MSG_GET_ACCOUNT_BY_PUBLIC_KEY_HASH=Bi,exports.MSG_GET_ACCOUNT_HISTORY=Ri,exports.MSG_GET_ACCOUNT_STATE=Ii,exports.MSG_GET_BLOCK_CONTENT=wi,exports.MSG_GET_BLOCK_INFORMATION=Si,exports.MSG_GET_CHAIN_INFORMATION=bi,exports.MSG_GET_GENESIS_SNAPSHOT=Ki,exports.MSG_GET_MICROBLOCK_BODYS=Pi,exports.MSG_GET_MICROBLOCK_INFORMATION=Ai,exports.MSG_GET_OBJECT_LIST=Wi,exports.MSG_GET_VALIDATOR_NODE_BY_ADDRESS=Hi,exports.MSG_GET_VIRTUAL_BLOCKCHAIN_STATE=Ei,exports.MSG_GET_VIRTUAL_BLOCKCHAIN_UPDATE=Oi,exports.MSG_MICROBLOCK_ANCHORING=Ni,exports.MSG_MICROBLOCK_BODYS=Fi,exports.MSG_MICROBLOCK_INFORMATION=ji,exports.MSG_OBJECT_LIST=Gi,exports.MSG_VALIDATOR_NODE_BY_ADDRESS=Ui,exports.MSG_VIRTUAL_BLOCKCHAIN_STATE=Di,exports.MSG_VIRTUAL_BLOCKCHAIN_UPDATE=ki,exports.MaskManager=cT,exports.MemoryProvider=JC,exports.MerkleLeaf=kS,exports.MerkleLeafTypeEnum=Q,exports.MerkleRecord=NS,exports.MerkleTree=OS,exports.Merklizer=aT,exports.MessageManager=hT,exports.MessageSerializer=PC,exports.MessageUnserializer=FC,exports.MicroBlockNotFoundError=te,exports.MicroBlockNotFoundInBlockError=ne,exports.MicroBlockNotFoundInVirtualBlockchainAtHeightError=x,exports.Microblock=Kx,exports.MicroblockAnchoringAbciResponseSchema=Dw,exports.MicroblockBodyItemSchema=Ow,exports.MicroblockBodySchema=Sh,exports.MicroblockBodysAbciResponseSchema=kw,exports.MicroblockConsistencyChecker=RS,exports.MicroblockHeaderSchema=Mm,exports.MicroblockInformationAbciResponseSchema=Ew,exports.MicroblockInformationSchema=Hh,exports.MicroblockProofAbciResponseSchema=Bw,exports.MicroblockProofSchema=_w,exports.MicroblockStructSchema=Gx,exports.MicroblockStructureCheckingError=s,exports.MlKemCiphertextEncoder=Pv,exports.MlKemPrivateDecryptionKey=Iv,exports.MlKemPublicEncryptionKey=Fv,exports.MlKemPublicKeyEncryptionScheme=Cv,exports.NODE_MESSAGES=D,exports.NULL=um,exports.NUMBER=cm,exports.N_VIRTUAL_BLOCKCHAINS=Zn,exports.NativeHCVSignatureDecoder=Ey,exports.NativeHCVSignatureEncoder=Yv,exports.NetworkProvider=Uw,exports.NetworksFileSchema=$T,exports.NewBlockEventSchema=Xw,exports.NoSharedSecretError=De,exports.NodeConnectionRefusedError=g,exports.NodeEndpointClosedWhileCatchingUpError=_,exports.NodeError=h,exports.NodeStakingLockSchema=Xh,exports.NodeStakingParametersSchema=Yh,exports.NotAllowedPkeSchemeError=de,exports.NotAllowedSignatureSchemeError=ue,exports.NotAuthenticatedError=c,exports.NotImplementedError=ee,exports.NullMemoryProvider=Ww,exports.NullNetworkProvider=Gw,exports.OBJECT=om,exports.ORG_CREATION=Ea,exports.ORG_DESCRIPTION=Da,exports.ObjectListAbciResponseSchema=Pw,exports.OnChainChannelSchema=vS,exports.OnChainItemListSchema=bS,exports.OnChainItemSchema=yS,exports.OnChainRecord=FS,exports.Optional=LS,exports.OrganizationCreationSectionSchema=ah,exports.OrganizationDescriptionSectionSchema=oh,exports.OrganizationInternalState=Mx,exports.OrganizationInternalStateUpdater=Hx,exports.OrganizationMicroblockStructureChecker=Zx,exports.OrganizationNotFoundError=ve,exports.OrganizationVBInternalStateObjectSchema=Th,exports.OrganizationVb=Qx,exports.OrganizationVirtualBlockchainStateSchema=Fh,exports.PBKDF2=lv,exports.PROPERTIES=Ln,exports.PROTOCOL_CREATION=la,exports.PROTOCOL_UPDATE=ua,exports.PROTOCOL_VARIABLES=si,exports.PROTOCOL_VB_STATE=ci,exports.PROTOCOL_VERSION=Wn,exports.ParsingError=l,exports.PasswordBasedKeyDerivationFunction=cv,exports.PasswordBasedKeyDerivationFunctionSchemeId=sv,exports.PathManager=Qw,exports.PepperMerklizer=oT,exports.PkeEncoderFactory=mC,exports.PkmsSecp256k1PrivateSignatureKey=yy,exports.PkmsSecp256k1PublicSignatureKey=by,exports.PkmsSecp256k1SignatureDecoder=ky,exports.PkmsSecp256k1SignatureEncoder=xy,exports.ProofDocument=DS,exports.ProofDocumentVB=lS,exports.ProofFieldTypeEnum=xS,exports.ProofRecord=AS,exports.ProofVerificationFailedError=ce,exports.ProofVerificationResult=WC,exports.ProofWrapperSchema=TS,exports.ProtocolCreationSectionSchema=Hm,exports.ProtocolError=we,exports.ProtocolInternalState=jx,exports.ProtocolInternalStateUpdater=Vx,exports.ProtocolMicroblockStructureChecker=aS,exports.ProtocolUpdateSchema=Lm,exports.ProtocolUpdateSectionSchema=Um,exports.ProtocolVBInternalStateObjectSchema=Ch,exports.ProtocolVariablesSchema=Im,exports.ProtocolVariablesSectionSchema=Wm,exports.ProtocolVb=oS,exports.ProtocolVirtualBlockchainStateSchema=zh,exports.Provider=qw,exports.ProviderFactory=Jw,exports.PublicKeyEncryptionAlgorithmId=yv,exports.PublicKeyEncryptionSchemeId=vv,exports.RADIX_CST=vT,exports.RECORD_DESCRIPTION=ri,exports.REDACTED=Rn,exports.RPCNodeStatusResponseSchema=YC,exports.RadixUtils=yT,exports.Random=Zs,exports.RawBlockContentAbciResponseSchema=Iw,exports.ReadStream=jv,exports.Record=PS,exports.RecordActorAssignationSchema=WS,exports.RecordActorSchema=VS,exports.RecordByChannels=jS,exports.RecordChannelAssignationSchema=US,exports.RecordChannelSchema=HS,exports.RecordHashableFieldSchema=qS,exports.RecordMaskableFieldSchema=KS,exports.RecordMaskedPartSchema=GS,exports.RequestedAccountUpdateSchema=rg,exports.RetentionCostBreakdownSchema=Fm,exports.RetentionCostCalculator=Cx,exports.RetentionPolicySchema=Pm,exports.RetentionTierSchema=Nm,Object.defineProperty(exports,`SCHEMAS`,{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(exports,`SECTIONS`,{enumerable:!0,get:function(){return oa}}),exports.SIGNATURE=sa,exports.SIGNATURE_SCHEMA=ca,exports.STRING=sm,exports.SaltMerklizer=sT,exports.SaltShaker=MS,exports.SchemaSerializer=Mv,exports.SchemaUnserializer=Nv,exports.SchemaValidator=IC,exports.Scrypt=xC,exports.Secp256k1=mp,exports.Secp256k1HCVSignatureDecoder=Dy,exports.Secp256k1HCVSignatureEncoder=Xv,exports.Secp256k1PrivateSignatureKey=zv,exports.Secp256k1PublicSignatureKey=Rv,exports.Secp256k1SignatureScheme=Lv,exports.SectionConstraint=Z,exports.SectionError=me,exports.SectionLabel=Rx,exports.SectionNotFoundError=Ee,exports.SectionSchema=xh,exports.SectionType=O,exports.SeedEncoder=mE,exports.SelfProvidedApiKeyPkmsCredentialProvider=CC,exports.SerializationError=Oe,exports.SerializedMicroblockByHeightAbciResponseSchema=zw,exports.ServerNetworkProvider=Yw,exports.Sha256CryptographicHash=rv,exports.SharedKeyDecryptionError=p,exports.SignatureAlgorithmId=SC,exports.SignatureCacheDisabled=wC,exports.SignatureCacheEntry=TC,exports.SignatureCacheMonothread=EC,exports.SignatureSchemeId=Ya,exports.SignatureSectionSchema=zm,exports.StructureChecker=Xx,exports.SymmetricEncryptionSchemeId=Pg,exports.TOKEN=or,exports.TOKEN_NAME=ar,exports.TYPE_ARRAY=vn,exports.TYPE_ARRAY_OF=Nn,exports.TYPE_BIN256=An,exports.TYPE_BINARY=kn,exports.TYPE_BOOLEAN=Sn,exports.TYPE_HASH_STR=jn,exports.TYPE_MAIN=Mn,exports.TYPE_NAMES=Pn,exports.TYPE_NULL=Cn,exports.TYPE_NUMBER=xn,exports.TYPE_OBJECT=yn,exports.TYPE_STRING=bn,exports.TYPE_UINT16=Tn,exports.TYPE_UINT24=En,exports.TYPE_UINT32=Dn,exports.TYPE_UINT48=On,exports.TYPE_UINT8=wn,exports.TYPE_UNKNOWN=_n,exports.ThrownErrorMicroblockSearchFailureFallback=qx,exports.TimestampValidationResult=Wx,exports.TokenUnit=pn,exports.TokenUnitLabel=mn,exports.Transaction=wT,exports.TransformationTypeEnum=fS,exports.TypeChecker=io,exports.TypeCheckingFailureError=to,exports.TypeEnum=mS,exports.TypeManager=ro,exports.UINT16=fm,exports.UINT24=pm,exports.UINT32=mm,exports.UINT48=hm,exports.UINT8=dm,exports.Utf8Encoder=Qa,exports.Utils=A,exports.VB_ACCOUNT=Kn,exports.VB_APPLICATION=Yn,exports.VB_APP_LEDGER=Xn,exports.VB_NAME=Qn,exports.VB_ORGANIZATION=Jn,exports.VB_PROTOCOL=Gn,exports.VB_STATES=li,exports.VB_VALIDATOR_NODE=qn,exports.VIRTUAL_BLOCKCHAIN_STATE=oi,exports.VN_APPROVAL=wa,exports.VN_COMETBFT_PUBLIC_KEY_DECLARATION=Sa,exports.VN_CREATION=xa,exports.VN_RPC_ENDPOINT=Ca,exports.ValidatorNodeApprovalSectionSchema=rh,exports.ValidatorNodeByAddressAbciResponseSchema=Nw,exports.ValidatorNodeCometbftPublicKeyDeclarationSectionSchema=th,exports.ValidatorNodeCreationSectionSchema=eh,exports.ValidatorNodeInternalState=Nx,exports.ValidatorNodeInternalStateUpdater=Bx,exports.ValidatorNodeMicroblockStructureChecker=rS,exports.ValidatorNodeNotFoundError=be,exports.ValidatorNodeRpcEndpointSectionSchema=nh,exports.ValidatorNodeSlashingCancellationSectionSchema=ih,exports.ValidatorNodeVBInternalStateObjectSchema=Eh,exports.ValidatorNodeVb=iS,exports.ValidatorNodeVirtualBlockchainStateSchema=Ih,exports.VestingLockSchema=Jh,exports.VestingParametersSchema=qh,exports.VirtualBlockchain=Jx,exports.VirtualBlockchainInfoSchema=Vh,exports.VirtualBlockchainLabel=DT,exports.VirtualBlockchainNotFoundError=Se,exports.VirtualBlockchainSharedPropertiesSchema=Nh,exports.VirtualBlockchainStateAbciResponseSchema=ww,exports.VirtualBlockchainStateSchema=Bh,exports.VirtualBlockchainStatusSchema=eE,exports.VirtualBlockchainType=U,exports.VirtualBlockchainUpdateAbciResponseSchema=Tw,exports.WIMSG_ANSWER=ea,exports.WIMSG_CONNECTION_ACCEPTED=na,exports.WIMSG_CONNECTION_INFO=ta,exports.WIMSG_CONNECTION_TOKEN=Zi,exports.WIMSG_FORWARDED_ANSWER=Qi,exports.WIMSG_FORWARDED_REQUEST=ra,exports.WIMSG_GET_CONNECTION_INFO=$i,exports.WIMSG_REQUEST=Yi,exports.WIMSG_UPDATE_QR=Xi,exports.WI_INVALID_SIGNATURE=Ja,exports.WI_MAX_SERVER_URL_LENGTH=IT,exports.WI_MESSAGES=ia,exports.WI_QR_CODE=Ji,exports.WalletCrypto=TE,exports.WalletInteractiveAnchoringEncoder=bE,exports.WalletInteractiveAnchoringRequestActorKeySchema=iE,exports.WalletInteractiveAnchoringRequestApprovalHandshakeSchema=rE,exports.WalletInteractiveAnchoringRequestApprovalSignatureSchema=aE,exports.WalletInteractiveAnchoringRequestSchema=oE,exports.WalletInteractiveAnchoringRequestType=tE,exports.WalletInteractiveAnchoringResponseActorKeyRequiredSchema=cE,exports.WalletInteractiveAnchoringResponseApprovalDataSchema=lE,exports.WalletInteractiveAnchoringResponseApprovalSignatureSchema=uE,exports.WalletInteractiveAnchoringResponseErrorSchema=sE,exports.WalletInteractiveAnchoringResponseSchema=dE,exports.WalletInteractiveAnchoringResponseType=nE,exports.WalletInteractiveAnchoringValidation=xE,exports.WalletRequestAuthByPublicKeySchema=AT,exports.WalletRequestBasedApplicationLedgerMicroblockBuilder=XS,exports.WalletRequestDataApprovalSchema=jT,exports.WalletRequestEncoder=fE,exports.WalletRequestSchema=MT,exports.WalletRequestType=OT,exports.WalletRequestValidation=pE,exports.WalletResponseAuthByPublicKeySchema=NT,exports.WalletResponseDataApprovalSchema=PT,exports.WalletResponseSchema=FT,exports.WalletResponseType=kT,exports.WalletSeedEncoder=SE,exports.WiQrCodeEncoder=QT,exports.WiQrCodeSchema=RT,exports.WriteStream=Av,exports.accountId=Am,exports.array=ym,exports.bin256=km,exports.binary=Om,exports.boolean=xm,exports.height=jm,exports.number=V,exports.string=bm,exports.uint16=wm,exports.uint24=Tm,exports.uint32=Em,exports.uint48=Dm,exports.uint8=Cm,exports.uint8array=H,exports.verifyRadixProof=ST;
|
|
8
|
+
`,t+=` Microblock type: ${this.header.microblockType} or ${this.type}\n`,t+=` Magic String: ${this.header.magicString}\n`,t+=` Protocol Version: ${this.header.protocolVersion}\n`,t+=` Fees payer account: ${e.encode(this.header.feesPayerAccount)}\n`,t+=` Height: ${this.header.height}\n`,t+=` Previous Hash: ${e.encode(this.header.previousHash)}\n`,t+=` Timestamp: ${this.header.timestamp}\n`,t+=` Gas: ${this.header.gas}\n`,t+=` Gas Price: ${this.header.gasPrice}\n`,t+=` Body Hash: ${e.encode(this.header.bodyHash)}\n`,t+=` Computed body Hash: ${e.encode(this.computeBodyHash())}\n`,t+=` Sections (${this.sections.length}):\n`,this.sections.forEach((e,n)=>{t+=` Section ${n}:\n`,t+=` Section Type: ${Rx.getSectionLabelFromSection(e)} (type ${e.type})\n`,t+=` Section Data: ${A.binaryToHexa(xx.encodeSection(e))}\n`}),t}getType(){return this.type}setPreviousHash(e){this.header.previousHash=e.toBytes()}static extractTypeFromGenesisPreviousHash(e){return e[0]}static extractExpirationDayFromGenesisPreviousHash(e){return e[1]<<24|e[2]<<16|e[3]<<8|e[4]}getBodyHashInHeader(){return this.header.bodyHash}isDeclaringConsistentBodyHash(){let e=this.computeBodyHash();return A.binaryIsEqual(e,this.header.bodyHash)}isGenesisMicroblock(){return this.getHeight()===1}setBodyHash(e){this.header.bodyHash=e}computeHash(){let{microblockHash:e}=this.serialize();return e}setMicroblockHash(e){this.hash=e}getLastSignatureSection(){let e=this.sections[this.sections.length-1];if(e.type!==O.SIGNATURE)throw Error(`Last section is not a signature section`);return e}},qx=class{onMicroblockSearchFailureForExceedingHeight(e,t){throw e.isEmpty()?new x(Dx.from(A.getNullHash()),t):new x(e.getIdentifier(),t)}},Jx=class e{static INITIAL_HEIGHT=1;static staticLogger=k.getVirtualBlockchainLogger();logger=e.staticLogger;internalState;height;identifier;microblockHashByHeight;microblockByHeight;provider;type;merkleRootHash;expirationDay;microblockSearchFailureFallback;onMicroblockInsertionEventListeners=[];constructor(e,t,n){this.internalState=n,this.provider=e,this.microblockHashByHeight=new Map,this.microblockByHeight=new Map,this.type=t,this.merkleRootHash=A.getNullHash(),this.expirationDay=0,this.height=0,this.microblockSearchFailureFallback=new qx}async isAccountIdAllowedToWrite(e){if(this.height===0)return!0;let t=await this.getVirtualBlockchainOwnerId();return A.binaryIsEqual(t.toBytes(),e.toBytes())}getProvider(){return this.provider}addOnMicroblockInsertionEventListener(e){this.onMicroblockInsertionEventListeners.push(e)}getInternalState(){return this.internalState}setInternalState(e){this.internalState=e}setMerkleRootHash(e){this.merkleRootHash=e}getMerkleRootHash(){return this.merkleRootHash}async createMicroblock(){if(this.isEmpty())return new Kx(this.type);let e=await this.getLastMicroblock(),t=new Kx(this.type);return t.setPreviousHash(e.getHash()),t.setHeight(this.getHeight()+1),t}getLastMicroblock(){return this.getMicroblock(this.getHeight())}setHeight(e){this.height=e}setIdentifier(e){this.logger.debug(`Updating virtual blockchain identifier to ${A.binaryToHexa(e)}`),this.identifier=e}setMicroblockHashes(e){let t=1;for(let n of e)this.microblockHashByHeight.set(t,n),t++}setExpirationDay(e){this.expirationDay=e}async getSerializedVirtualBlockchainState(){return xx.encodeVirtualBlockchainState(await this.getVirtualBlockchainState())}async getGenesisSeed(){return(await this.getFirstMicroBlock()).getPreviousHash()}getHeight(){return this.height}getId(){return this.identifier}isVirtualBlockchainIdDefined(){return this.identifier instanceof Uint8Array}async getFirstMicroBlock(){return this.getMicroblock(1)}getAllMicroblockHashes(){let e=[];for(let t of this.microblockHashByHeight.entries())e.push(Dx.from(t[1]));return e}async getMicroblock(e){if(this.logger.debug(`Accessing microblock at height ${e} of vb`),e<1)throw new i(`Cannot retrieve microblock at height strictly lower than 1: got ${e}`);if(this.getHeight()<e)return await this.microblockSearchFailureFallback.onMicroblockSearchFailureForExceedingHeight(this,e);let t=this.microblockByHeight.get(e);if(t!==void 0)return t;let n=await this.provider.getSerializedMicroblockByHeight(this.getId(),e);if(n===null)throw fg.bytesToHexEncoder(),Error(`Unable to load microblock at height ${e}`);let r=Kx.loadFromSerializedMicroblock(n,this.type);if(r.getHeight()!==e)throw Error(`Received microblock contains an unexpected height: expected ${e}, got ${r.getHeight()} `);this.microblockByHeight.set(e,r);for(let e of this.onMicroblockInsertionEventListeners)e.onMicroblockInserted(this,r);return r}getIdentifier(){if(this.identifier===void 0)throw new a(`You cannot access identifier of an empty virtual blockchain (current height is ${this.height})`);return Dx.from(this.identifier)}isEmpty(){return this.getHeight()===0}async appendMicroBlock(e){if(!e||!(e instanceof Kx))throw Error(`Microblock cannot be null or undefined`);if(e.getType()!==this.type)throw Error(`Invalid microblock type for append operation`);if(this.isEmpty()&&this.identifier instanceof Uint8Array)throw Error(`Virtual blockchain is empty but is initialized: should not happen`);if(!this.isEmpty()&&!(this.identifier instanceof Uint8Array))throw Error(`Virtual blockchain is empty but has an identifier: should not happen`);let t=this.height+1,n=e.getHeight();if(t!==n)throw Error(`Microblock height mismatch: expected ${t} but got ${n}`);if(!this.isEmpty()){let t=(await this.getLastMicroblock()).getHash().toBytes(),n=e.getPreviousHash().toBytes();if(!A.binaryIsEqual(n,t))throw Error(`Previous hash mismatch: microblock's previous hash ${A.binaryToHexa(n)} does not match the last microblock's hash ${A.binaryToHexa(t)}`)}if(!this.checkMicroblockStructure(e))throw new i(`Provided microblock has an invalid structure`);let r=await this.provider.getProtocolState();this.internalState=await this.updateInternalState(r,this.internalState,e),this.identifier===void 0&&(this.identifier=e.getHash().toBytes()),this.height+=1;let a=e.getHash().toBytes();this.microblockHashByHeight.set(this.height,a),this.microblockByHeight.set(this.height,e),this.logger.debug(`Microblock ${A.binaryToHexa(a)} added to vb (now at height ${this.height} `)}setMicroblockSearchFailureFallback(e){this.microblockSearchFailureFallback=e}getType(){return this.type}getExpirationDay(){return this.expirationDay}},Z=function(e){return e[e.ANY=0]=`ANY`,e[e.ZERO=1]=`ZERO`,e[e.ONE=2]=`ONE`,e[e.AT_MOST_ONE=3]=`AT_MOST_ONE`,e[e.AT_LEAST_ONE=4]=`AT_LEAST_ONE`,e}({}),Yx={[Z.ANY]:`Any`,[Z.ONE]:`Exactly one`,[Z.ZERO]:`Exactly zero`,[Z.AT_LEAST_ONE]:`At least one`,[Z.AT_MOST_ONE]:`At most one`},Xx=class{microblock;pointer;constructor(e){this.microblock=e,this.pointer=0}isFirstBlock(){return this.microblock.getHeight()==1}expects(e,t){let n=0;for(;!this.endOfList()&&this.currentSection().type==t;)n++,this.pointer++;if(!this.checkConstraint(e,n))throw new s(`expected ${Yx[e]} of type ${this.getSectionLabelBySectionType(t)} in section, got ${n}`);return n}group(e,t){let n=new Map,r=0;for(let[e,r]of t)n.set(r,0);for(;!this.endOfList();){let e=this.currentSection().type;if(!t.some(([t,n])=>n==e))break;n.set(e,n.get(e)+1),r++,this.pointer++}if(!this.checkConstraint(e,r))throw new s(`expected ${Yx[e]} section(s) in group, got ${r}`);for(let[e,r]of t){let t=n.get(r);if(!this.checkConstraint(e,t))throw new s(`expected ${Yx[e]} of type ${this.getSectionLabelBySectionType(r)} in group section, got ${t}`)}}endsHere(){if(!this.endOfList()){let e=this.currentSection().type;throw new s(`Unexpected section ${this.getSectionLabelBySectionType(e)}`)}}currentSection(){return this.microblock.getAllSections()[this.pointer]}endOfList(){return!this.currentSection()}checkConstraint(e,t){switch(e){case Z.ANY:return!0;case Z.ZERO:return t==0;case Z.ONE:return t==1;case Z.AT_LEAST_ONE:return t>=1;case Z.AT_MOST_ONE:return t<=1}return!1}getSectionLabelBySectionType(e){return Rx.getSectionLabelFromSectionType(e)}},Zx=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.ORG_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.ORG_DESCRIPTION],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},Qx=class e extends Jx{static createOrganizationVirtualBlockchain(t){return new e(t)}constructor(e,t=Mx.createInitialState()){super(e,U.ORGANIZATION_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getOrganizationInternalStateUpdaterVersion();return Ux.createOrganizationInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){return this.internalState.getAccountId()}checkMicroblockStructure(e){return new Zx().checkMicroblockStructure(e)}getAccountId(){return this.internalState.getAccountId()}async getDescription(){let e=this.internalState.getDescriptionHeight(),t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type===O.ORG_DESCRIPTION)return e;throw new a(`No description found for the organization`)}},$x=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.ACCOUNT_ESCROW_SETTLEMENT)===1||(t.expects(t.isFirstBlock()?Z.ONE:Z.AT_MOST_ONE,O.ACCOUNT_PUBLIC_KEY),t.isFirstBlock()?t.group(Z.ONE,[[Z.AT_MOST_ONE,O.ACCOUNT_TOKEN_ISSUANCE],[Z.AT_MOST_ONE,O.ACCOUNT_CREATION],[Z.ANY,O.CUSTOM]]):t.group(Z.AT_LEAST_ONE,[[Z.ANY,O.ACCOUNT_TRANSFER],[Z.ANY,O.ACCOUNT_VESTING_TRANSFER],[Z.ANY,O.ACCOUNT_STAKE],[Z.ANY,O.ACCOUNT_UNSTAKE],[Z.ANY,O.ACCOUNT_ESCROW_TRANSFER],[Z.ANY,O.CUSTOM]])),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},eS=class extends Jx{constructor(e,t=Ex.createInitialState()){super(e,U.ACCOUNT_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getAccountInternalStateUpdaterVersion();return Ux.createAccountInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){return Dx.from(this.getId())}checkMicroblockStructure(e){return new $x().checkMicroblockStructure(e)}async getPublicKey(){let e=this.internalState.getPublicKeyHeight(),t=this.internalState.getPublicKeySchemeId(),n=await this.getMicroblock(e);for(let e of n.getAllSections())if(e.type===O.ACCOUNT_PUBLIC_KEY)return new Uv().createPublicSignatureKey(t,e.publicKey);throw new a(`Account public key not found`)}async isIssuer(){let e=await this.getFirstMicroBlock();for(let t of e.getAllSections())if(t.type===O.ACCOUNT_TOKEN_ISSUANCE)return!0;return!1}static async createAccountCreationMicroblock(e,t,n,r=``){let i=Kx.createGenesisAccountMicroblock();return i.addSection({type:O.ACCOUNT_PUBLIC_KEY,publicKey:await e.getPublicKeyAsBytes(),schemeId:e.getSignatureSchemeId()}),i.addSection({type:O.ACCOUNT_CREATION,amount:t.getAmountAsAtomic(),sellerAccount:n}),i}static async createIssuerAccountCreationMicroblock(e){let t=e,n=Kx.createGenesisAccountMicroblock();return n.addSection({type:O.ACCOUNT_PUBLIC_KEY,publicKey:await t.getPublicKeyAsBytes(),schemeId:t.getSignatureSchemeId()}),n.addSection({type:O.ACCOUNT_TOKEN_ISSUANCE,amount:lr}),n}},tS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.APP_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.APP_DESCRIPTION],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},nS=class extends Jx{constructor(e,t=Ox.createInitialState()){super(e,U.APPLICATION_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getApplicationInternalStateUpdaterVersion();return Ux.createApplicationInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=this.internalState.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}checkMicroblockStructure(e){return new tS().checkMicroblockStructure(e)}getOrganizationId(){return this.internalState.getOrganizationId()}async getApplicationDescription(){let e=this.internalState.getDescriptionHeight(),t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type==O.APP_DESCRIPTION)return e;throw Error(`Application description not found`)}},rS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e),n=!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.VN_APPROVAL)===1,r=!n&&!t.isFirstBlock()&&t.expects(Z.AT_MOST_ONE,O.VN_SLASHING_CANCELLATION)===1;return!n&&!r&&(t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.VN_CREATION),t.group(Z.AT_LEAST_ONE,[[Z.AT_MOST_ONE,O.VN_COMETBFT_PUBLIC_KEY_DECLARATION],[Z.AT_MOST_ONE,O.VN_RPC_ENDPOINT],[Z.ANY,O.CUSTOM]])),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return e instanceof Error&&(e instanceof s?this.logger.error(`Invalid microblock structure: ${e.message}`):this.logger.error(`Unexpected error occurred during microblock structure checking: ${e.message} at ${e.stack}`)),!1}}},iS=class extends Jx{constructor(e,t=Nx.createInitialState()){super(e,U.NODE_VIRTUAL_BLOCKCHAIN,t)}async updateInternalState(e,t,n){let r=e.getValidatorNodeInternalStateUpdaterVersion();return Ux.createValidatorNodeInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=await this.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async getOrganizationId(){return this.internalState.getOrganizationId()}checkMicroblockStructure(e){return new rS().checkMicroblockStructure(e)}async getCometbftPublicKeyDeclaration(){let e=this.internalState.getCometbftPublicKeyDeclarationHeight();if(e===0)throw new a(`Node has not declared its CometBFT public key yet`);let t=await this.getMicroblock(e);for(let e of t.getAllSections()){if(e.type!==O.VN_COMETBFT_PUBLIC_KEY_DECLARATION)continue;let t=e.cometPublicKey;return{cometbftPublicKeyType:e.cometPublicKeyType,cometbftPublicKey:t}}throw new a(`Node has not declared its CometBFT public key yet`)}async getRpcEndpointDeclaration(){let e=this.internalState.getRpcEndpointHeight();if(e===0)throw new a(`Node has not declared its RPC endpoint yet`);let t=await this.getMicroblock(e);for(let e of t.getAllSections())if(e.type===O.VN_RPC_ENDPOINT)return e.rpcEndpoint;throw new a(`Node has not declared its RPC endpoint yet`)}getNodeDeclarationHeight(){return this.getInternalState().getCometbftPublicKeyDeclarationHeight()}async getOrganizationVirtualBlockchain(){let e=this.internalState.getOrganizationId();return await this.provider.loadOrganizationVirtualBlockchain(e)}},aS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.PROTOCOL_CREATION),t.isFirstBlock()||t.group(Z.AT_MOST_ONE,[[Z.ONE,O.PROTOCOL_UPDATE],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},oS=class extends Jx{constructor(e,t=jx.createInitialState()){super(e,U.PROTOCOL_VIRTUAL_BLOCKCHAIN,t)}checkMicroblockStructure(e){return new aS().checkMicroblockStructure(e)}async updateInternalState(e,t,n){let r=e.getProtocolInternalStateUpdaterVersion();return Ux.createProtocolInternalStateUpdater(r).updateState(this.provider,t,n)}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=await this.getOrganizationId();return(await this.provider.loadOrganizationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async getOrganizationId(){let e=(await this.getFirstMicroBlock()).getAllSections();for(let t of e)if(t.type===O.PROTOCOL_CREATION)return Dx.from(t.organizationId);throw Error(`Organization ID not found in protocol vb`)}},sS=class{static assert(e,t=`Unspecified verification`){if(!e)throw new m(`Assertion failed: ${t}`)}},cS=class{logger=k.getMicroblockStructureCheckerLogger();checkMicroblockStructure(e){try{let t=new Xx(e);return t.expects(t.isFirstBlock()?Z.ONE:Z.ZERO,O.APP_LEDGER_CREATION),t.group(Z.ANY,[[Z.ANY,O.APP_LEDGER_ACTOR_CREATION],[Z.ANY,O.APP_LEDGER_ACTOR_SUBSCRIPTION],[Z.ANY,O.APP_LEDGER_ENDORSEMENT_REQUEST],[Z.ANY,O.APP_LEDGER_AUTHOR],[Z.ANY,O.APP_LEDGER_PUBLIC_CHANNEL_DATA],[Z.ANY,O.APP_LEDGER_PRIVATE_CHANNEL_DATA],[Z.ANY,O.APP_LEDGER_SHARED_SECRET],[Z.ANY,O.APP_LEDGER_CHANNEL_CREATION],[Z.ANY,O.APP_LEDGER_CHANNEL_INVITATION],[Z.ANY,O.ALLOWED_ADDITIONAL_WRITER],[Z.ANY,O.CUSTOM]]),t.expects(Z.ANY,O.AUXILIARY_SIGNATURE),t.expects(Z.ONE,O.SIGNATURE),t.endsHere(),!0}catch(e){return typeof e==`string`&&this.logger.error(`Microblock structure error details: ${e}`),e instanceof Error&&(e instanceof s?this.logger.error(`Microblock structure error: ${e.message}`):this.logger.error(`An unexpected error occurred during structure checking: ${e.message} at ${e.stack}`)),!1}}},lS=class e{identifier;microblocks;constructor(){this.identifier=``,this.microblocks=[]}static fromObject(t){let n=new e;n.setIdentifier(t.id);for(let e of t.microblocks)n.addMicroblock(e.height,e.channels);return n}toObject(){return{id:this.identifier,microblocks:this.microblocks}}setIdentifier(e){this.identifier=e}getIdentifier(){return this.identifier}addMicroblock(e,t){let n={height:e,channels:t};this.microblocks.push(n)}getMicroblock(e){let t=this.microblocks.find(t=>t.height===e);if(!t)throw Error(`no microblock found for height ${e}`);return t}getMicroblocks(){return this.microblocks}},uS=Jp(()=>tm([R(),I(),Gp(),Yp(),P(uS),$p(R(),uS)])),dS=P(tm([R(),I()])),fS=function(e){return e[e.None=0]=`None`,e[e.Hashable=1]=`Hashable`,e[e.Maskable=2]=`Maskable`,e}({}),pS=rm(`type`,[L({type:F(fS.None)}),L({type:F(fS.Hashable)}),L({type:F(fS.Maskable),visibleParts:P(R()),hiddenParts:P(R())})]),mS=function(e){return e[e.String=0]=`String`,e[e.Number=1]=`Number`,e[e.Boolean=2]=`Boolean`,e[e.Null=3]=`Null`,e[e.Array=4]=`Array`,e[e.Object=5]=`Object`,e}({}),hS,gS={channelId:I()};hS=rm(`type`,[L({...gS,type:F(mS.String),value:R(),transformation:pS}),L({...gS,type:F(mS.Number),value:I()}),L({...gS,type:F(mS.Boolean),value:Gp()}),L({...gS,type:F(mS.Null),value:Yp()}),L({type:F(mS.Array),value:P(Jp(()=>hS))}),L({type:F(mS.Object),value:P(L({key:R(),value:Jp(()=>hS)}))})]);var _S=tm([R(),I(),Gp(),Yp()]),vS=L({pepper:H(),data:H()}),yS=L({path:dS,value:_S,transformation:Zp(pS)}),bS=P(yS),Q=function(e){return e[e.Public=0]=`Public`,e[e.Plain=1]=`Plain`,e[e.HashableFromValue=2]=`HashableFromValue`,e[e.Hashable=3]=`Hashable`,e[e.MaskableFromAllParts=4]=`MaskableFromAllParts`,e[e.MaskableFromVisibleParts=5]=`MaskableFromVisibleParts`,e[e.Maskable=6]=`Maskable`,e}({});Q.Public,Q.Plain,Q.HashableFromValue,Q.Hashable,Q.MaskableFromAllParts,Q.MaskableFromVisibleParts,Q.Maskable;var xS=function(e){return e[e.Public=0]=`Public`,e[e.Plain=1]=`Plain`,e[e.HashableAsPlain=2]=`HashableAsPlain`,e[e.HashableAsHash=3]=`HashableAsHash`,e[e.MaskableAsAllParts=4]=`MaskableAsAllParts`,e[e.MaskableAsVisibleParts=5]=`MaskableAsVisibleParts`,e}({}),SS=L({path:dS,type:F(xS.Public),value:_S}),CS={path:dS,index:I()},wS=rm(`type`,[SS,L({...CS,type:F(xS.Plain),salt:R(),value:_S}),L({...CS,type:F(xS.HashableAsPlain),salt:R(),value:_S}),L({...CS,type:F(xS.HashableAsHash),salt:R(),hash:R()}),L({...CS,type:F(xS.MaskableAsAllParts),v_salt:R(),v_parts:P(R()),h_salt:R(),h_parts:P(R())}),L({...CS,type:F(xS.MaskableAsVisibleParts),v_salt:R(),v_parts:P(R()),h_hash:R()})]),TS=L({version:I(),info:L({title:R(),date:R(),description:R(),author:R()}),virtual_blockchains:P(L({id:R(),microblocks:P(L({height:I(),channels:P(L({id:I(),is_public:Gp(),n_leaves:I(),fields:P(wS),witnesses:P(R())}))}))})),signature:Zp(L({commitment:L({issued_at:Zp(R()),digest_alg:Zp(Qp([`sha256`])),digest_target:Zp(Qp([`cbor_proof`])),digest:Zp(R())}),signer:R(),pubkey:R(),alg:Qp([`ecdsa-secp256k1`,`ml-dsa-65`]),sig:R()}))}),ES=1,DS=class e{encoder=new yx;wrapper;constructor(){this.wrapper={version:ES,info:{title:`Carmentis proof`,description:`This is a Carmentis proof file. Visit www.carmentis.io for more information.`,author:``,date:new Date().toISOString()},virtual_blockchains:[]}}static fromObject(t){z(TS,t);let n=new e;return n.wrapper=t,n}setTitle(e){this.wrapper.info.title=e}getTitle(){return this.wrapper.info.title}setDescription(e){this.wrapper.info.description=e}getDescription(){return this.wrapper.info.description}setAuthor(e){this.wrapper.info.author=e}getAuthor(){return this.wrapper.info.author}setDate(e){this.wrapper.info.date=e.toISOString()}getDate(){return new Date(this.wrapper.info.date)}addVirtualBlockchain(e){this.wrapper.virtual_blockchains.push(e.toObject())}getSingleVirtualBlockchainOrFail(){let e=this.getVirtualBlockchains();if(e.length==0)throw Error(`no virtual blockchain is defined in this proof`);if(e.length>1)throw Error(`proofs with multiple virtual blockchains are not supported at this time`);return e[0]}getVirtualBlockchain(e){let t=this.wrapper.virtual_blockchains.find(t=>t.id===e);if(!t)throw Error(`no virtual blockchain found with ID ${e}`);return t}getVirtualBlockchains(){return this.wrapper.virtual_blockchains.map(e=>lS.fromObject(e))}sign(e=new Date){let t=this.computeDigest(),n={issued_at:e.toISOString(),digest_alg:`sha256`,digest_target:`cbor_proof`,digest:A.binaryToHexa(t)},r=this.encoder.encode(n);N.Hashes.sha256AsBinary(r),this.wrapper.signature={commitment:n,signer:``,pubkey:``,alg:`ecdsa-secp256k1`,sig:``}}verifySignature(){this.computeDigest()}computeDigest(){let e={info:this.wrapper.info,virtual_blockchains:this.wrapper.virtual_blockchains},t=this.encoder.encode(e);return N.Hashes.sha256AsBinary(t)}getObject(){return this.wrapper}},OS=class{leaves;nLeaves;tree;constructor(){this.leaves=[],this.nLeaves=0,this.tree=[]}addLeaf(e){this.checkHash(e),this.leaves.push(e)}setLeaf(e,t){this.checkHash(t),this.leaves[e]=t}checkHash(e){if(e.length!=32)throw Error(`invalid hash: expected size is 32 bytes, got ${e.length}`)}finalize(e=void 0){this.nLeaves=e===void 0?this.leaves.length:e,this.buildTreeStructure()}getNumberOfLeaves(){return this.nLeaves}getRootHash(){let e=this.tree.length-1;for(let t=0;t<e;t++){let e=this.tree[t];for(let n=0;n<e.length;n+=2)e[n]&&e[n+1]&&(this.tree[t+1][n>>1]=this.mergeHashes(t+1,e[n],e[n+1]))}return this.tree[e][0]}getWitnesses(e){let t=new Set(e),n=this.getWitnessPositions(t),r=[];for(let e=0;e<this.tree[0].length;e++)if(!t.has(e)&&!this.tree[0][e])throw Error(`cannot find leaf at index ${e}`);for(let[e,t]of n){let n=this.tree[e][t];if(!n)throw Error(`cannot find witness hash at depth ${e}, index ${t}`);r.push(n)}return r}setWitnesses(e){let t=new Set;for(let e=0;e<this.nLeaves;e++)this.leaves[e]||t.add(e);let n=this.getWitnessPositions(t);if(e.length!=n.length)throw Error(`invalid witness list: expected ${n.length} witness(es), got ${e.length}`);let r=0;for(let[t,i]of n)this.checkHash(e[r]),this.tree[t][i]=e[r++]}buildTreeStructure(){let e=this.nLeaves;for(this.tree=[];e;){let t=Array(e).fill(null);e>1&&e&1&&(t.push(A.getNullHash()),e++),this.tree.push(t),e>>=1}for(let e=0;e<this.nLeaves;e++)this.leaves[e]&&(this.tree[0][e]=this.leaves[e])}getWitnessPositions(e){let t=this.nLeaves,n=[];for(let r=0;t;r++){let i=new Set;for(let a=0;a<t;a+=2){let o=e.has(a),s=a+1<t&&e.has(a+1);o&&s?i.add(a>>1):(o||s)&&n.push([r,s?a+1:a])}e=i,t=t+ +(t>1)>>1}return n}mergeHashes(e,t,n){let r=new Uint8Array(65);return r[0]=+(e==this.tree.length-1),r.set(t,1),r.set(n,33),N.Hashes.sha256AsBinary(r)}},kS=class e{internalData=void 0;encoder=new yx;static fromProofFormat(t){let n=new e;return n.fromProofField(t),n}static fromItemWithPublicData(t){let n=new e;return n.setPublicDataFromValue(t.value),n}static fromItemWithPlainData(t,n){let r=new e,i=t.getSalt();return r.setPlainDataFromValue(i,n.value),r}static fromItemWithHashedData(t,n){let r=new e,i=t.getSalt();return r.setHashedDataFromValue(i,n.value),r}static fromItemWithMaskedData(t,n){let r=new e,i=t.getSalt(),a=t.getSalt();return r.setMaskedDataFromAllParts(i,n.transformation.visibleParts,a,n.transformation.hiddenParts),r}setPublicDataFromValue(e){this.internalData={type:Q.Public,value:e}}setPlainDataFromValue(e,t){this.internalData={type:Q.Plain,salt:e,value:t}}setHashedDataFromValue(e,t){this.internalData={type:Q.HashableFromValue,salt:e,value:t}}setHashedDataFromHash(e,t){this.internalData={type:Q.Hashable,salt:e,hash:t}}setMaskedDataFromAllParts(e,t,n,r){let i={salt:e,parts:t},a={salt:n,parts:r};this.internalData={type:Q.MaskableFromAllParts,visible:i,hidden:a}}setMaskedDataFromVisibleParts(e,t,n){let r={salt:e,parts:t};this.internalData={type:Q.MaskableFromVisibleParts,visible:r,hiddenHash:n}}setToHashed(){let e=this.getInternalData();if(e.type==Q.Hashable)return;if(e.type!=Q.HashableFromValue)throw Error(`this field is not hashable`);let t=this.encoder.encode(e.value),n=N.Hashes.sha256AsBinary(t);this.setHashedDataFromHash(e.salt,n)}setToMasked(){let e=this.getInternalData();if(e.type==Q.MaskableFromVisibleParts)return;if(e.type!=Q.MaskableFromAllParts)throw Error(`this field is not maskable`);let t=this.encoder.encode(e.hidden),n=N.Hashes.sha256AsBinary(t);this.setMaskedDataFromVisibleParts(e.visible.salt,e.visible.parts,n)}getInternalData(){if(this.internalData===void 0)throw Error(`internal leaf data has not been set`);return this.internalData}fromProofField(e){switch(e.type){case xS.Public:this.setPublicDataFromValue(e.value);break;case xS.Plain:this.setPlainDataFromValue(A.binaryFromHexa(e.salt),e.value);break;case xS.HashableAsPlain:this.setHashedDataFromValue(A.binaryFromHexa(e.salt),e.value);break;case xS.HashableAsHash:this.setHashedDataFromHash(A.binaryFromHexa(e.salt),A.binaryFromHexa(e.hash));break;case xS.MaskableAsAllParts:this.setMaskedDataFromAllParts(A.binaryFromHexa(e.v_salt),e.v_parts,A.binaryFromHexa(e.h_salt),e.h_parts);break;case xS.MaskableAsVisibleParts:this.setMaskedDataFromVisibleParts(A.binaryFromHexa(e.v_salt),e.v_parts,A.binaryFromHexa(e.h_hash));break}}toProofFormat(e,t){let n=this.getInternalData();switch(n.type){case Q.Public:return{path:e,type:xS.Public,value:n.value};case Q.Plain:return{path:e,index:t,type:xS.Plain,salt:A.binaryToHexa(n.salt),value:n.value};case Q.HashableFromValue:return{path:e,index:t,type:xS.HashableAsPlain,salt:A.binaryToHexa(n.salt),value:n.value};case Q.Hashable:return{path:e,index:t,type:xS.HashableAsHash,salt:A.binaryToHexa(n.salt),hash:A.binaryToHexa(n.hash)};case Q.MaskableFromAllParts:return{path:e,index:t,type:xS.MaskableAsAllParts,v_salt:A.binaryToHexa(n.visible.salt),v_parts:n.visible.parts,h_salt:A.binaryToHexa(n.hidden.salt),h_parts:n.hidden.parts};case Q.MaskableFromVisibleParts:return{path:e,index:t,type:xS.MaskableAsVisibleParts,v_salt:A.binaryToHexa(n.visible.salt),v_parts:n.visible.parts,h_hash:A.binaryToHexa(n.hiddenHash)};default:throw Error(`invalid internal data type ${n.type}`)}}getCommitmentData(){let e=this.getInternalData();switch(e.type){case Q.Public:case Q.Plain:case Q.Hashable:return e;case Q.HashableFromValue:{let t=this.encoder.encode(e.value),n=N.Hashes.sha256AsBinary(t);return{type:Q.Hashable,salt:e.salt,hash:n}}case Q.MaskableFromAllParts:{let t=this.encoder.encode(e.visible),n=N.Hashes.sha256AsBinary(t),r=this.encoder.encode(e.hidden),i=N.Hashes.sha256AsBinary(r);return{type:Q.Maskable,visibleHash:n,hiddenHash:i}}case Q.MaskableFromVisibleParts:{let t=this.encoder.encode(e.visible),n=N.Hashes.sha256AsBinary(t);return{type:Q.Maskable,visibleHash:n,hiddenHash:e.hiddenHash}}default:throw Error(`invalid internal data type ${e.type}`)}}getHash(){let e=this.getCommitmentData(),t=this.encoder.encode(e);return N.Hashes.sha256AsBinary(t)}getRawValue(){let e=this.getInternalData();switch(e.type){case Q.Public:case Q.Plain:case Q.HashableFromValue:return e.value;case Q.Hashable:return A.binaryToHexa(e.hash);case Q.MaskableFromAllParts:return e.visible.parts.map((t,n)=>n&1?e.hidden.parts[n>>1]:t).join(``);case Q.MaskableFromVisibleParts:return e.visible.parts.join(``);default:throw Error(`invalid internal data type ${e.type}`)}}getTypedValue(){let e=this.getInternalData(),t=this.getRawValue();switch(e.type){case Q.Public:case Q.Plain:case Q.HashableFromValue:case Q.MaskableFromAllParts:return{disclosure:`plain`,value:t};case Q.Hashable:return{disclosure:`hashed`,value:t};case Q.MaskableFromVisibleParts:return{disclosure:`masked`,value:t};default:throw Error(`invalid internal data type ${e.type}`)}}},AS=class e{channelMap;fieldMap;publicChannels;constructor(){this.channelMap=new Map,this.fieldMap=new Map,this.publicChannels=new Set}static fromMerkleRecord(t){let n=new e;return n.setChannelsFromMerkleRecord(t),n}static fromProofChannels(t){let n=new e;return n.setChannelsFromProofChannels(t),n}setChannelsFromMerkleRecord(e){this.publicChannels=e.getPublicChannels();let t=e.getLeavesByChannelMap();for(let[e,n]of t)this.channelMap.set(e,{nLeaves:n.length,leaves:n,tree:new OS,witnesses:[]});this.buildTrees(),this.buildFieldMap()}setChannelsFromProofChannels(e){for(let t of e){let e=[];for(let n of t.fields){let t=kS.fromProofFormat(n),r=n.type==xS.Public?0:n.index;e.push({leaf:t,path:n.path,index:r})}let n=t.witnesses.map(e=>A.binaryFromHexa(e));t.is_public&&this.publicChannels.add(t.id),this.channelMap.set(t.id,{nLeaves:t.n_leaves,leaves:e,tree:new OS,witnesses:n})}this.buildTrees(),this.buildFieldMap()}toJson(e=!1){let t={},n=[];for(let{leaves:e}of this.channelMap.values())for(let t of e)t!==null&&n.push(t);for(let{path:r,leaf:i}of n){let n=[`root`,...r],a=t;for(let t=0;t<n.length;t++){let r=n[t];if(t==n.length-1)a[r]=e?i.getTypedValue():i.getRawValue();else{let e=typeof n[t+1]==`number`;if(a[r]===void 0)a[r]=e?[]:{};else if(Array.isArray(a[r])!==e){let e=n.slice(0,t+1).join(`.`);throw Error(`${e} is defined as both an array and an object`)}a=a[r]}}}return t.root}buildTrees(){for(let[e,t]of this.channelMap)if(!this.publicChannels.has(e)){for(let e of t.leaves)e!==null&&t.tree.setLeaf(e.index,e.leaf.getHash());t.tree.finalize(t.nLeaves),t.tree.setWitnesses(t.witnesses)}}buildWitnesses(){for(let[e,t]of this.channelMap){if(this.publicChannels.has(e))continue;let n=new Set;for(let e of t.leaves)e!==null&&n.add(e.index);let r=[];for(let e=0;e<t.nLeaves;e++)n.has(e)||r.push(e);t.witnesses=t.tree.getWitnesses(r)}}buildFieldMap(){this.fieldMap.clear();for(let[e,t]of this.channelMap)for(let n=0;n<t.leaves.length;n++){let r=t.leaves[n];if(r===null)continue;let i=r.path,a=JSON.stringify(i);this.fieldMap.set(a,{channelId:e,index:n})}}getLeafByPath(e){let{channelId:t,index:n}=this.getFieldByPath(e),r=this.getChannel(t).leaves[n];if(r===null)throw Error(`this field has been removed`);return r.leaf}getFieldByPath(e){let t=JSON.stringify(e),n=this.fieldMap.get(t);if(n===void 0)throw Error(`unknown path ${t}`);return n}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`unknown channel ID ${e}`);return t}removeField(e){let{channelId:t,index:n}=this.getFieldByPath(e),r=this.getChannel(t);r.leaves[n]=null}setFieldToHashed(e){this.getLeafByPath(e).setToHashed()}setFieldToMasked(e){this.getLeafByPath(e).setToMasked()}getRootHashAsBinary(e){let t=this.getChannel(e);return this.publicChannels.has(e)?A.getNullHash():t.tree.getRootHash()}getRootHashAsHexString(e){let t=this.getRootHashAsBinary(e);return A.binaryToHexa(t)}toProofChannels(){this.buildWitnesses();let e=[];for(let[t,n]of this.channelMap){let r=this.publicChannels.has(t),i=[];for(let e of n.leaves){if(e===null)continue;let t=e.leaf.toProofFormat(e.path,e.index);i.push(t)}let a=n.witnesses.map(e=>A.binaryToHexa(e));e.push({id:t,is_public:r,n_leaves:n.nLeaves,fields:i,witnesses:a})}return e}},jS=class e{channelMap;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromRecord(t){let n=new e;n.setPublicChannels(t.getPublicChannels());let r=t.getItemList();for(let e of r){let t=e.item.channelId,r=n.channelMap.get(t);r===void 0&&(r=[],n.channelMap.set(t,r)),r.push(e)}return n}setChannel(e,t,n){t?this.publicChannels.add(e):this.publicChannels.delete(e),this.channelMap.set(e,n)}setPublicChannels(e){this.publicChannels=e}getPublicChannels(){return this.publicChannels}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getFlatItems(e){let t=this.channelMap.get(e);if(t==null)throw Error(`Channel ${e} not found`);return t}},MS=class{pepper;hasNullPepper;sha512;counter;constructor(e){this.pepper=e,this.sha512=new Uint8Array(64),this.counter=0,this.hasNullPepper=this.pepper.every(e=>e==0)}static generatePepper(){return N.Random.getBytes(32)}getPepper(){return this.pepper}getSalt(){let e=this.counter&3,t=this.counter++>>2;return!e&&!this.hasNullPepper&&(this.sha512=N.Hashes.sha512AsBinary(A.binaryFrom(this.pepper,t))),this.sha512.slice(e<<4,e+1<<4)}},NS=class e{channelMap;recordByChannels;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromRecordByChannels(t,n=void 0){let r=new e;return r.setChannelsFromRecordByChannels(t,n),r}setChannelsFromRecordByChannels(e,t=void 0){this.publicChannels=e.getPublicChannels(),this.recordByChannels=e;let n=this.recordByChannels.getChannelIds();for(let e of n){let n=this.publicChannels.has(e),r=n?A.getNullHash():t===void 0?MS.generatePepper():t.get(e);if(r===void 0)throw Error(`no pepper specified for channel ${e}`);let i=this.recordByChannels.getFlatItems(e);this.storeChannel(e,n,i,r)}}storeChannel(e,t,n,r){let i=this.flatItemsToPositionedLeaves(n,t,r);this.channelMap.set(e,{pepper:r,positionedLeaves:i})}getPublicChannels(){return this.publicChannels}getLeavesByChannelMap(){let e=new Map;for(let[t,n]of this.channelMap)e.set(t,n.positionedLeaves);return e}getRecordByChannels(){let e=this.recordByChannels;if(e===void 0)throw Error(`recordByChannels is not set`);return e}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getChannelPepper(e){return this.getChannel(e).pepper}getChannelRootHash(e){let t=this.getChannel(e);if(this.publicChannels.has(e))return A.getNullHash();let n=new OS;for(let e of t.positionedLeaves){let t=e.leaf.getHash();n.addLeaf(t)}return n.finalize(),n.getRootHash()}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`channel ${e} not found`);return t}flatItemsToPositionedLeaves(e,t,n){let r=new MS(n);return e.map((e,n)=>({leaf:this.flatItemToLeaf(r,t,e.item),index:n,path:e.path}))}flatItemToLeaf(e,t,n){let r=n.type==mS.String?n.transformation.type:fS.None;if(t&&r!=fS.None)throw Error(`no transformation may be applied to a public field`);switch(r){case fS.None:return t?kS.fromItemWithPublicData(n):kS.fromItemWithPlainData(e,n);case fS.Hashable:return kS.fromItemWithHashedData(e,n);case fS.Maskable:return kS.fromItemWithMaskedData(e,n);default:throw Error(`unsupported transformation type ${r}`)}}},PS=class e{itemList;publicChannels;constructor(){this.itemList=[],this.publicChannels=new Set}static fromObject(t){let n=new e,r=z(uS,t);return n.buildItemListByDfs(r),n}setChannelAsPublic(e){this.publicChannels.add(e)}setChannelAsPrivate(e){this.publicChannels.delete(e)}getPublicChannels(){return this.publicChannels}setChannel(e,t){let n=this.getFieldsByPathString(e);for(let e of n)this.setFieldChannel(e.item,t)}setFieldChannel(e,t){e.channelId=t}setAsHashable(e){let t=this.getFieldsByPathString(e);for(let e of t)this.setFieldAsHashable(e.item)}setFieldAsHashable(e){if(e.type!==mS.String)throw Error(`only a string may be set as hashable`);e.transformation={type:fS.Hashable}}setMaskOnField(e,t){if(e.type!==mS.String)throw Error(`a mask may only be applied to a string`);let n=[],r=[];t.sort((e,t)=>e.start-t.start),t.forEach((i,a)=>{let o=a>0?t[a-1].start:0,s=a>0?t[a-1].end:0;if(i.start<0||i.start>=e.value.length||i.end<=i.start)throw`invalid interval [${[i.start,i.end]}]`;if(i.start<s)throw`overlapping intervals [${[o,s]}] and [${[i.start,i.end]}]`;let c=e.value.slice(i.start,i.end);a&&i.start==s?(n[n.length-1]+=i.replacement,r[r.length-1]+=c):(n.push(e.value.slice(s,i.start),i.replacement),r.push(c)),a==t.length-1&&i.end<e.value.length&&n.push(e.value.slice(i.end))}),e.transformation={type:fS.Maskable,visibleParts:n,hiddenParts:r}}setMaskByPositions(e,t){let n=this.getFieldsByPathString(e);for(let e of n)this.setMaskOnField(e.item,t)}setMaskByRegex(e,t,n){let r=this.getFieldsByPathString(e);for(let e of r)this.setMaskByRegexOnField(e.item,t,n)}setMaskByRegexOnField(e,t,n){if(e.type!==mS.String)throw Error(`a mask may only be applied to a string`);let r=(t.exec(e.value)||[]).slice(1);if(r.join(``)!=e.value)throw`the regular expression ${t} does not capture all string parts`;let i=n.split(/(\$\d+)/).map((e,t)=>({shown:!!(t&1),string:e})).filter(e=>e.string!=``);if(i.length!=r.length||i.some((e,t)=>e.shown&&e.string!=`$`+(t+1)))throw`invalid substitution string "${n}"`;let a=[],o=0;i.forEach((e,t)=>{let n=o+r[t].length;e.shown||a.push({start:o,end:n,replacement:e.string}),o=n}),this.setMaskOnField(e,a)}getItemList(){return this.itemList}getFieldsByPathString(e){let t=e.match(/\[\d+\]|[^.[]+/g)||[];if(t[0]!==`this`)throw Error(`the path should begin with 'this'`);let n=t.slice(1).map(e=>e[0]==`[`?Number(e.slice(1,-1)):e);if(n.some((e,t)=>e==`*`&&t!=n.length-1))throw Error(`a wildcard may only appear at the end of the path`);let r=n[n.length-1]==`*`;return this.itemList.filter(e=>{let t;if(r){if(e.path.length<n.length)return!1;t=n.slice(0,-1)}else{if(e.path.length!=n.length)return!1;t=n}return t.every((t,n)=>t===e.path[n])})}static getValueType(e){if(typeof e==`string`)return mS.String;if(typeof e==`number`)return mS.Number;if(typeof e==`boolean`)return mS.Boolean;if(e===null)return mS.Null;if(Array.isArray(e))return mS.Array;if(typeof e==`object`&&Object.getPrototypeOf(e).isPrototypeOf(Object))return mS.Object;throw Error(`unsupported field type`)}static getPrimitiveValueType(t){let n=e.getValueType(t);if(n==mS.Array||n==mS.Object)throw Error(`expected a primitive value, got an array or an object`);return n}buildItemListByDfs(t,n=[]){switch(e.getValueType(t)){case mS.String:this.addFlatItem(n,this.buildStringItem(t));break;case mS.Number:this.addFlatItem(n,this.buildNumberItem(t));break;case mS.Boolean:this.addFlatItem(n,this.buildBooleanItem(t));break;case mS.Null:this.addFlatItem(n,this.buildNullItem());break;case mS.Array:this.buildArrayItem(t,n);break;case mS.Object:this.buildObjectItem(t,n);break;default:throw Error(`unsupported field type`)}}addFlatItem(e,t){let n={path:e,item:t};this.itemList.push(n)}buildStringItem(e){return{type:mS.String,value:e,transformation:{type:fS.None},channelId:-1}}buildNumberItem(e){return{type:mS.Number,value:e,channelId:-1}}buildBooleanItem(e){return{type:mS.Boolean,value:e,channelId:-1}}buildNullItem(){return{type:mS.Null,value:null,channelId:-1}}buildArrayItem(e,t){e.forEach((e,n)=>{this.buildItemListByDfs(e,[...t,n])})}buildObjectItem(e,t){Object.keys(e).forEach(n=>{let r=e[n];this.buildItemListByDfs(r,[...t,n])})}},FS=class e{encoder=new yx;channelMap;publicChannels;constructor(){this.channelMap=new Map,this.publicChannels=new Set}static fromMerkleRecord(t){let n=new e;return n.setChannelsFromMerkleRecord(t),n}logger=k.getLogger([e.name]);setChannelsFromMerkleRecord(e){this.publicChannels=e.getPublicChannels();let t=e.getRecordByChannels(),n=e.getChannelIds();for(let r of n){let n=e.getChannelPepper(r),i=e.getChannelRootHash(r),a=t.getFlatItems(r).map(e=>({path:e.path,value:e.item.value,...e.item.transformation?{transformation:e.item.transformation}:{}}));this.channelMap.set(r,{rootHash:i,pepper:n,onChainItems:a})}}getChannelIds(){return[...this.channelMap.keys()].sort((e,t)=>e-t)}getOnChainData(e,t=!1){let n=this.getChannel(e),r=new yx().encode(n.onChainItems),i={pepper:n.pepper,data:r},a=this.encoder.encode(i);return{isPublic:this.publicChannels.has(e),merkleRootHash:n.rootHash,data:a}}addOnChainData(e,t,n,r){if(this.channelMap.has(e))throw Error(`channel ${e} has already been set`);t?this.publicChannels.add(e):this.publicChannels.delete(e);let i=this.encoder.decode(r);z(vS,i);let a=i.pepper,o=this.encoder.decode(i.data);z(bS,o),this.channelMap.set(e,{rootHash:n,pepper:a,onChainItems:o})}toMerkleRecord(e=!0){let t=new jS,n=new Map;for(let[e,r]of this.channelMap){let i=r.onChainItems.map(t=>{let n={channelId:e,type:PS.getPrimitiveValueType(t.value),value:t.value,...t.transformation?{transformation:t.transformation}:{}};return{path:t.path,item:n}}),a=this.publicChannels.has(e);t.setChannel(e,a,i),n.set(e,r.pepper)}let r=NS.fromRecordByChannels(t,n);if(e){for(let[e,t]of this.channelMap)if(!this.publicChannels.has(e)){let n=r.getChannelRootHash(e);if(!A.binaryIsEqual(n,t.rootHash))throw Error(`inconsistent Merkle root hash for private channel ${e} (computed ${A.binaryToHexa(n)}, on-chain value is ${A.binaryToHexa(t.rootHash)})`)}}return r}getChannel(e){let t=this.channelMap.get(e);if(t===void 0)throw Error(`channel ${e} not found`);return t}},IS=class e extends Jx{static createApplicationLedgerVirtualBlockchain(t){return new e(t)}draftModeEnabled=!1;constructor(e,t=kx.createInitialState()){super(e,U.APP_LEDGER_VIRTUAL_BLOCKCHAIN,t)}async isAccountIdAllowedToWrite(e){if(this.getHeight()===0)return!0;let t=await this.getVirtualBlockchainOwnerId(),n=this.internalState.getAdditionalAllowedWriters();return[t.toBytes(),...n].some(t=>A.binaryIsEqual(t,e.toBytes()))}async getVirtualBlockchainState(){let e=this.getHeight(),t=e===0?A.getNullHash():(await this.getLastMicroblock()).getHash().toBytes();return{expirationDay:this.getExpirationDay(),height:e,internalState:this.internalState.toObject(),lastMicroblockHash:t,type:this.getType(),merkleRootHash:this.getMerkleRootHash()}}async getVirtualBlockchainOwnerId(){let e=this.internalState.getApplicationId();return(await this.provider.loadApplicationVirtualBlockchain(e)).getVirtualBlockchainOwnerId()}async updateInternalState(e,t,n){let r=e.getApplicationLedgerInternalStateUpdaterVersion();return Ux.createApplicationLedgerInternalStateUpdater(r).updateState(this.provider,this.internalState,n)}checkMicroblockStructure(e){return this.draftModeEnabled?!0:new cS().checkMicroblockStructure(e)}enableDraftMode(){this.draftModeEnabled=!0}disableDraftMode(){this.draftModeEnabled=!1}setInternalState(e){this.internalState=e}isActorDefined(e){return this.internalState.isActorDefinedByName(e)}actorIsSubscribed(e){return this.getActor(e).subscribed}getInternalState(){return this.internalState}async getActorIdByPublicSignatureKey(t){let n=k.getLogger([e.name]),r=this.internalState,i=t.getPublicKeyAsBytes();for(let e=0;e<r.getNumberOfActors();e++){let t=r.getActorById(e);if(n.debug(`Search current actor id: loop index ${e}`),t.subscribed)try{let r=await this.getMicroblock(t.signatureKeyHeight);for(let a of r.getAllSections()){if(a.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION)continue;let{actorId:r}=a;if(r!==e)continue;let{signaturePublicKey:o}=a,s=A.binaryIsEqual(a.signaturePublicKey,await i);if(n.debug(`Is public key matching for actor ${t.name} (id ${e})? ${o} and ${i}: ${s}`),s)return n.debug(`Matching public signature key: {actor.name} (id ${e})`,{actor:t}),e}}catch(e){if(e instanceof x)n.debug(`{e}`,{e});else if(e instanceof Ee)n.debug(`{e}`,{e});else throw e}}throw n.debug(`Current actor not found`),new pe}async getPublicEncryptionKeyByActorId(e){let t=this.internalState.getActorById(e).pkeKeyHeight;if(typeof t==`number`&&t!==0){let n=await this.getMicroblock(t);for(let t of n.getAllSections()){if(t.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION||t.actorId!=e)continue;let n=t.pkePublicKey,r=t.pkeSchemeId;return Uv.createPublicEncryptionKey(r,n)}}throw new Te(e,this.getActorNameById(e))}async getPublicSignatureKeyByActorId(e){let t=this.internalState.getActorById(e).signatureKeyHeight;if(typeof t==`number`&&t!==0){let n=await this.getMicroblock(t);for(let t of n.getAllSections()){if(t.type!==O.APP_LEDGER_ACTOR_SUBSCRIPTION||t.actorId!=e)continue;let n=t.signaturePublicKey,r=t.signatureSchemeId;return Uv.createPublicSignatureKey(r,n)}}throw new we(`Actor ${e} has not subscribed to a public signature key.`)}async getExistingSharedKey(e,t){let n=this.internalState.getActorById(t).sharedSecrets.find(t=>t.peerActorId==e);if(n===void 0)return;let r=await this.getMicroblock(n.height);for(let n of r.getAllSections())if(n.type===O.APP_LEDGER_SHARED_SECRET&&!(n.hostId!==e||n.guestId!==t))return n.encryptedSharedKey;throw new De(t,e)}getChannelIdByChannelName(e){return this.internalState.getChannelIdFromChannelName(e)}getActorNameById(e){return this.internalState.getActorById(e).name}getChannelNameById(e){return this.internalState.getChannelFromChannelId(e).name}getActorIdFromActorName(e){return this.internalState.getActorIdByName(e)}getActor(e){return this.internalState.getActorByName(e)}getAllActors(){return this.internalState.getAllActors()}getAllChannels(){return this.internalState.getAllChannels()}async getOrganizationId(){let e=this.getApplicationId();return(await this.provider.loadApplicationVirtualBlockchain(e)).getOrganizationId()}getApplicationId(){return this.internalState.getApplicationId()}getNumberOfChannels(){return this.internalState.getNumberOfChannels()}getChannelById(e){return this.internalState.getChannelFromChannelId(e)}getNumberOfActors(){return this.internalState.getNumberOfActors()}async getMicroblockMerkleRecord(t,n){let r=await this.getMicroblock(t),i=[];for(let e of r.getAllSections()){if(e.type!==O.APP_LEDGER_PUBLIC_CHANNEL_DATA)continue;let{channelId:t,data:n}=e;i.push({channelId:t,isPublic:!0,merkleRootHash:A.getNullHash(),data:n})}let a=k.getLogger([e.name]);if(n!==void 0){let o=await(await n.getPrivateSignatureKey(Ya.SECP256K1)).getPublicKey(),s;try{s=await this.getActorIdByPublicSignatureKey(o)}catch(t){if(t instanceof pe)k.getLogger([e.name]).debug(`Unabled to recover private channels: {e}`,{e:t});else throw t}if(typeof s==`number`)for(let e of r.getAllSections()){if(e.type!==O.APP_LEDGER_PRIVATE_CHANNEL_DATA)continue;let{channelId:r,encryptedData:o,merkleRootHash:c}=e;try{let e=await this.getChannelKey(s,r,n),l=this.deriveChannelSectionKey(e,t,r),u=this.deriveChannelSectionIv(e,t,r);a.debug(`Channel key ${e} at height ${t} and channel id ${r} -> Channel section key: ${l} (iv ${u}) `);let d=N.Aes.decryptGcm(l,o,u);a.debug(`Allowed to access private channel {channelName} (channel id={channelId})`,()=>({channelName:this.getChannelNameById(r),channelId:r})),i.push({channelId:r,isPublic:!1,merkleRootHash:c,data:d})}catch(e){if(e instanceof f||e instanceof he)a.debug(`Access to private channel {channelName} forbidden (channel id={channelId}): {e}`,()=>({e,channelName:this.getChannelNameById(r),channelId:r}));else throw e}}}else console.warn(`No private channel loaded: no private decryption key provided.`);let o=new FS;for(let e of i)o.addOnChainData(e.channelId,e.isPublic,e.merkleRootHash,e.data);return o.toMerkleRecord(!1)}deriveChannelSectionKey(e,t,n){return this.deriveChannelSectionMaterial(e,`CHANNEL_SECTION_KEY`,t,n,32)}deriveChannelSectionIv(e,t,n){return this.deriveChannelSectionMaterial(e,`CHANNEL_SECTION_IV`,t,n,12)}deriveChannelSectionMaterial(e,t,n,r,i){let a=new Uint8Array,o=new TextEncoder,s=A.binaryFrom(o.encode(t),r,new Uint8Array(A.intToByteArray(n,6)));return new _v().deriveKey(e,a,s,i)}async getChannelKey(e,t,n){sS.assert(typeof e==`number`,`Expected actor id with type number`),sS.assert(typeof t==`number`,`Expected channel id of type number: got ${typeof t}`);let r=this.internalState.getChannelCreatorIdFromChannelId(t),i=await n.getPrivateDecryptionKey(vv.ML_KEM_768_AES_256_GCM);if(r===e){let e=n.getSeedAsBytes();return await this.deriveChannelKey(e,t)}return await this.getChannelKeyFromInvitation(e,t,i)}async deriveChannelKey(e,t){let n=await this.getGenesisSeed(),r=new TextEncoder,i=A.binaryFrom(r.encode(`CHANNEL_KEY`)),a=A.binaryFrom(e,r.encode(`GENESIS_SEED`),n.toBytes(),r.encode(`CHANNEL_ID`),A.binaryFrom(t));return new _v().deriveKeyNoSalt(a,i,32)}async getChannelKeyFromInvitation(e,t,n){sS.assert(typeof e==`number`,`actorId should be a number, got ${typeof e}`),sS.assert(typeof t==`number`,`channelId should be a number, got ${typeof e}`);let r=this.internalState.getActorById(e).invitations.find(e=>e.channelId==t);if(!r){let n=this.internalState.getActorById(e).name,r=this.internalState.getChannelFromChannelId(t).name;throw new he(n,r)}let i=await this.getMicroblock(r.height),a;for(let n of i.getAllSections())n.type===O.APP_LEDGER_CHANNEL_INVITATION&&(n.guestId!==e||n.channelId!==t||(a=n));if(a===void 0)throw new he(e,t);let o=a.encryptedChannelKey;return await n.decrypt(o)}async exportProof(e,t){let n=new lS;n.setIdentifier(A.binaryToHexa(this.getIdentifier().toBytes()));for(let e=1;e<=this.getHeight();e++){let r=await this.getMicroblockMerkleRecord(e,t);console.log(`Merkle record at height ${e}:`,r);let i=AS.fromMerkleRecord(r);console.log(`Proof record at height ${e}:`,i);let a=i.toProofChannels();console.log(`Proof channels at height ${e}:`,a),n.addMicroblock(e,a)}let r=new DS;return r.setAuthor(e.author),r.addVirtualBlockchain(n),r.getObject()}async importProof(e){let t=[],n=DS.fromObject(e).getSingleVirtualBlockchainOrFail().getMicroblocks();for(let e of n){let n=e.height,r=await this.getMicroblock(n),i=[];for(let e of r.getAllSections())if(e.type===O.APP_LEDGER_PUBLIC_CHANNEL_DATA){let{channelId:t}=e;i.push({channelId:t,merkleRootHash:A.getNullHash()})}else if(e.type===O.APP_LEDGER_PRIVATE_CHANNEL_DATA){let{channelId:t,merkleRootHash:n}=e;i.push({channelId:t,merkleRootHash:n})}console.log(`ProofMicroblock.channels=`,e.channels);let a=AS.fromProofChannels(e.channels);for(let e of i){let t=a.getRootHashAsBinary(e.channelId);if(!A.binaryIsEqual(e.merkleRootHash,t)){console.log(t,e);let n=A.binaryToHexa(t),r=A.binaryToHexa(e.merkleRootHash);throw new ce(e.channelId,n,r)}}t.push({height:n,data:a.toJson()})}return t}async getRecord(e,t){let n=await this.getMicroblockMerkleRecord(e,t);return AS.fromMerkleRecord(n).toJson()}async isActorInChannel(e,t){return this.internalState.getActorById(t).invitations.some(t=>t.channelId==e)}},LS=class e{constructor(e){this.value=e}static of(t){return new e(t)}static some(t){return new e(t)}static none(){return new e(null)}map(t){return this.value===null?e.none():e.some(t(this.value))}unwrap(){if(this.value===null)throw Error(`Called unwrap on a None value`);return this.value}unwrapOrThrow(e){if(this.value===null)throw e;return this.value}unwrapOr(e){return this.value===null?e:this.value}isSome(){return this.value!==null}isNone(){return this.value===null}},RS=class{_error=LS.none();hash;header;verificationState={isMicroblockParsingCompleted:!1};constructor(e,t){this.provider=e,this.checkedMicroblock=t}async checkVirtualBlockchainConsistencyOrFail(){if(this.verificationState.isMicroblockParsingCompleted)throw new a(`You have already called parseMicroblock() method. You can only call it once.`);if(!this.checkedMicroblock.isDeclaringConsistentBodyHash())throw Error(`inconsistent body hash detected for microblock hash ${A.binaryToHexa(this.checkedMicroblock.getHashAsBytes())}`);let e=this.checkedMicroblock.getType(),t=0,n,r=this.checkedMicroblock.getPreviousHash().toBytes();if(this.checkedMicroblock.isGenesisMicroblock()){let t=r;e=Kx.extractTypeFromGenesisPreviousHash(t),n=this.checkedMicroblock.getHash()}else{let e=await this.provider.getMicroblockHeader(Dx.from(r));if(!e)throw Error(`previous microblock ${A.binaryToHexa(r)} not found`);if(this.checkedMicroblock.getHeight()!=e.height+1)throw Error(`inconsistent microblock height (expected ${e.height+1}, got ${this.checkedMicroblock.getHeight()})`);let t=xx.computeMicroblockHashFromHeader(e);n=await this.provider.getVirtualBlockchainIdContainingMicroblock(Dx.from(t))}let i;if(this.checkedMicroblock.isGenesisMicroblock()){switch(e){case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:i=new Qx(this.provider);break;case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:i=new eS(this.provider);break;case U.APPLICATION_VIRTUAL_BLOCKCHAIN:i=new nS(this.provider);break;case U.NODE_VIRTUAL_BLOCKCHAIN:i=new iS(this.provider);break;case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:i=new oS(this.provider);break;case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:i=new IS(this.provider);break;default:throw Error(`Unknown virtual blockchain type: ${e}`)}let n=this.checkedMicroblock.getPreviousHash().toBytes();t=Kx.extractExpirationDayFromGenesisPreviousHash(n),i.setExpirationDay(t)}else switch(e){case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadOrganizationVirtualBlockchain(n);break;case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadAccountVirtualBlockchain(n);break;case U.APPLICATION_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadApplicationVirtualBlockchain(n);break;case U.NODE_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadValidatorNodeVirtualBlockchain(n);break;case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadProtocolVirtualBlockchain(n);break;case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:i=await this.provider.loadApplicationLedgerVirtualBlockchain(n);break;default:throw Error(`Unknown virtual blockchain type: ${e}`)}await i.appendMicroBlock(this.checkedMicroblock),this.verificationState={isMicroblockParsingCompleted:!0,virtualBlockchain:i}}checkTimestampOrFail(e){if(this.verificationState.isMicroblockParsingCompleted===!1)throw new a(`You have already called reconstructMicroblockAndVirtualBlockchain() method. You can only call it once.`);let t=this.checkedMicroblock;e||=A.getTimestampInSeconds();let n=t.isTemporallyCloseTo(e);if(n===Wx.TOO_FAR_IN_THE_PAST)throw Error(`timestamp is too far in the past (header:${t.getTimestamp()} / current:${e})`);if(n===Wx.TOO_FAR_IN_THE_FUTURE)throw Error(`timestamp is too far in the future (header:${t.getTimestamp()} / current:${e})`)}async checkGasOrFail(e=A.getTimestampInSeconds()){if(this.verificationState.isMicroblockParsingCompleted===!1)throw new a(`You have already called reconstructMicroblockAndVirtualBlockchain() method. You can only call it once.`);let t=this.checkedMicroblock,n=await this.provider.computeMicroblockGas(t,{referenceTimestampInSeconds:e}),r=t.getGas();if(r!=n)throw Error(`Computed gas ${n} is not equal to declared gas ${r} `)}get virtualBlockchain(){if(this.verificationState.isMicroblockParsingCompleted)return this.verificationState.virtualBlockchain;throw new a(`Virtual blockchain not initialized.`)}getVirtualBlockchain(){return this.virtualBlockchain}getMicroblock(){return this.checkedMicroblock}getHash(){return this.hash}getError(){return this._error}containsError(){return this._error.isSome()}get error(){return this.containsError()?this._error.unwrap().toString():``}},zS=class{stateUpdater;constructor(e,t,n){this.mbUnderConstruction=e,this.vb=t,this.provider=n}onMicroblockSearchFailureForExceedingHeight(e,t){if(e.getHeight()+1===t)return Promise.resolve(this.mbUnderConstruction);throw new x(e.getIdentifier(),t)}getBuiltMicroblock(){return this.mbUnderConstruction}async updateStateWithSection(e){if(!this.stateUpdater){let e=await this.provider.getProtocolState();this.stateUpdater=Ux.createApplicationLedgerInternalStateUpdater(e.getApplicationLedgerInternalStateUpdaterVersion())}this.vb.setInternalState(await this.stateUpdater.updateStateFromSection(this.provider,this.vb.getInternalState(),e,this.mbUnderConstruction.getHeight()))}getInternalState(){return this.vb.getInternalState()}},BS=function(e){return e[e.UNKNOWN=0]=`UNKNOWN`,e[e.WALLET=1]=`WALLET`,e[e.OPERATOR=2]=`OPERATOR`,e}({}),VS=L({name:R()}),HS=L({name:R(),public:Gp()}),US=L({fieldPath:R(),channelName:R()}),WS=L({actorName:R(),channelName:R()}),GS=L({position:I(),length:I(),replacementString:R()}),KS=L({fieldPath:R(),maskedParts:P(GS)}),qS=L({fieldPath:R()}),JS=L({virtualBlockchainId:Zp(R()),data:Wp(),actors:Zp(P(VS)),channels:Zp(P(HS)),channelAssignations:Zp(P(US)),actorAssignations:Zp(P(WS)),hashableFields:Zp(P(qS)),maskableFields:Zp(P(KS)),author:R(),endorser:Zp(R()),approvalMessage:Zp(R())}),YS=class{static validate(e){return z(JS,e)}static safeParse(e){return im(JS,e)}static is(e){return Up(JS,e)}},XS=class e extends zS{logger=k.getLogger([e.name]);static async createFromVirtualBlockchain(t,n){let r=await n.createMicroblock(),i=new e(r,n);if(n.setMicroblockSearchFailureFallback(i),n.isEmpty()){let e={type:O.APP_LEDGER_CREATION,applicationId:t.toBytes()};r.addSection(e),await i.updateStateWithSection(e)}return i}usedSignatureSchemeId=Ya.SECP256K1;usedPkeSchemeId=vv.ML_KEM_768_AES_256_GCM;constructor(e,t){super(e,t,t.getProvider())}get state(){return this.getInternalState()}getActorPrivateSignatureKey(e){return e.getPrivateSignatureKey(this.usedSignatureSchemeId)}getActorPrivateDecryptionKey(e){return e.getPrivateDecryptionKey(this.usedPkeSchemeId)}async createMicroblockFromStateUpdateRequest(e,t){let n=YS.validate(t),r=await this.getActorPrivateDecryptionKey(e),a=await this.getActorPrivateSignatureKey(e),o=this.state.getNumberOfActors();for(let e of n.actors||[]){console.log(this.state.getAllActors());let t=e.name;this.vb.isActorDefined(t)?console.log(`Skipping actor creation: ${t} already created`):(await this.createActor(o,e.name),o+=1)}let s=n.author,c=this.getActorIdFromActorName(s);if(this.vb.isEmpty()){let e=await r.getPublicKey();await this.subscribeActor(s,await a.getPublicKey(),e)}let l=this.state.getNumberOfChannels();for(let e of n.channels||[]){let t={type:O.APP_LEDGER_CHANNEL_CREATION,id:l,isPrivate:!e.public,creatorId:c,name:e.name};this.mbUnderConstruction.addSection(t),await this.updateStateWithSection(t),l+=1}let u=PS.fromObject(n.data);for(let e of n.channelAssignations||[]){let t=this.state.getChannelIdFromChannelName(e.channelName);u.setChannel(e.fieldPath,t)}for(let t of n.actorAssignations||[]){let n=t.channelName,r=t.actorName;await this.inviteActorOnChannel(r,n,e)}for(let e of n.hashableFields||[])u.setAsHashable(e.fieldPath);for(let e of n.maskableFields||[]){let t=e.maskedParts.map(e=>({start:e.position,end:e.position+e.length,replacement:e.replacementString}));u.setMaskByPositions(e.fieldPath,t)}let d=this.state.getAllChannels();for(let e in d){let t=Number(e);d[t].isPrivate||u.setChannelAsPublic(Number(t))}let f=jS.fromRecord(u),p=NS.fromRecordByChannels(f),m=FS.fromMerkleRecord(p),h=m.getChannelIds();for(let t of h){let n=m.getOnChainData(t),{isPublic:r,merkleRootHash:i}=n;if(r){let e={type:O.APP_LEDGER_PUBLIC_CHANNEL_DATA,channelId:t,data:n.data};this.mbUnderConstruction.addSection(e),await this.updateStateWithSection(e)}else{let r=k.getLogger([`critical`]),a=this.vb.getHeight()+1,o=await this.vb.getChannelKey(c,t,e),s=this.vb.deriveChannelSectionKey(o,a,t),l=this.vb.deriveChannelSectionIv(o,a,t);r.debug(`Channel key ${o} at height ${a} and channel id ${t} -> Channel section key: ${s} (iv ${l}) `);let u=N.Aes.encryptGcm(s,n.data,l),d={type:O.APP_LEDGER_PRIVATE_CHANNEL_DATA,channelId:t,merkleRootHash:i,encryptedData:u};this.mbUnderConstruction.addSection(d),await this.updateStateWithSection(d)}}if(typeof n.endorser==`string`){if(n.endorser.trim().length===0)throw new i(`Empty endorser provided: should be a non-empty string or undefined`);let e=this.getActorIdFromActorName(n.endorser),t=n.approvalMessage??``,r={type:O.APP_LEDGER_ENDORSEMENT_REQUEST,message:t,endorserId:e};this.mbUnderConstruction.addSection(r),await this.updateStateWithSection(r)}return this.mbUnderConstruction}async createActor(e,t){console.log(`Creating actor ${t} (id ${e})`);let n={type:O.APP_LEDGER_ACTOR_CREATION,id:e,actorType:BS.UNKNOWN,name:t};this.mbUnderConstruction.addSection(n),await this.updateStateWithSection(n)}async inviteActorOnChannel(e,t,n){console.log(`Inviting actor `+e+` on channel `+t);let r=this.state.getChannelIdFromChannelName(t),i=this.getActorIdFromActorName(e),a=await this.getActorPrivateSignatureKey(n),o=await this.vb.getActorIdByPublicSignatureKey(await a.getPublicKey());sS.assert(typeof r==`number`,`Expected channel id of type number: got ${typeof r} for channel ${t}`);let s=i;if(await this.vb.isActorInChannel(r,s))return;let c=await this.vb.getChannelKey(o,r,n),l=await(await this.vb.getPublicEncryptionKeyByActorId(s)).encrypt(c),u=k.getLogger([IS.name]);u.info(`Actor {guestName} invited to channel ${t}`,()=>({guestName:e})),u.debug(`Channel key for channel ${t}: ${c}`);let d={type:O.APP_LEDGER_CHANNEL_INVITATION,channelId:r,hostId:o,guestId:s,encryptedChannelKey:l};this.mbUnderConstruction.addSection(d),await this.updateStateWithSection(d)}async createSharedKey(e,t,n){let{encryptedSharedKey:r,hostGuestSharedKey:i}=await this.generateSharedKeyAndEncryptedSharedKey(e,n),a={type:O.APP_LEDGER_SHARED_SECRET,hostId:t,guestId:n,encryptedSharedKey:r};return this.mbUnderConstruction.addSection(a),await this.updateStateWithSection(a),i}static deriveHostGuestSharedKey(e,t,n){let r=e.getRawPrivateKey(),i=new TextEncoder,a=A.binaryFrom(i.encode(`SHARED_SECRET`),n),o=new _v,s=A.binaryFrom(r,t),c=o.deriveKeyNoSalt(s,a,32);return Ig.createFromBytes(c)}async generateSharedKeyAndEncryptedSharedKey(t,n){let r=await this.getGenesisSeed(),i=e.deriveHostGuestSharedKey(t,r.toBytes(),n);return{encryptedSharedKey:await(await this.vb.getPublicEncryptionKeyByActorId(n)).encrypt(i.getRawSecretKey()),hostGuestSharedKey:i}}async getGenesisSeed(){return this.vb.isEmpty()?this.mbUnderConstruction.getPreviousHash():await this.vb.getGenesisSeed()}async subscribeActor(e,t,n){if(console.debug(`Subscribing ${e}`),!this.vb.isActorDefined(e)){console.log(`It appears that ${e} does not exist: create it`);let t=this.vb.getNumberOfActors();await this.createActor(t,e)}let r=BS.UNKNOWN,i=this.getActorIdFromActorName(e),a=A.getNullHash(),o={type:O.APP_LEDGER_ACTOR_SUBSCRIPTION,actorId:i,actorType:r,organizationId:a,signatureSchemeId:t.getSignatureSchemeId(),signaturePublicKey:await t.getPublicKeyAsBytes(),pkeSchemeId:n.getSchemeId(),pkePublicKey:await n.getRawPublicKey()};this.mbUnderConstruction.addSection(o),await this.updateStateWithSection(o)}getActorIdFromActorName(e){return this.state.getActorIdByName(e)}},ZS=class e{static ED25519_PUBLIC_KEY_TYPE=`tendermint/PubKeyEd25519`;static createFromEd25519PublicKey(t){return new e(e.ED25519_PUBLIC_KEY_TYPE,t)}constructor(e,t){this.type=e,this.publicKey=t}getType(){return this.type}getPublicKey(){return this.publicKey}},QS=class{encodeSignature(e){return e}decodeSignature(e){return e}encodeMessage(e){return e}decodeMessage(e){return e}async encodePublicKey(e){return Hs(JSON.stringify({signatureSchemeId:e.getSignatureSchemeId(),publicKey:hl(await e.getPublicKeyAsBytes())}))}async decodePublicKey(e){let t=JSON.parse(bl(e));if(t&&typeof t.signatureSchemeId==`number`&&typeof t.publicKey==`string`){let e=vl(t.publicKey);return new Uv().createPublicSignatureKey(t.signatureSchemeId,e)}else throw`Invalid public key format: expected raw-encoded JSON object with signatureSchemeId and publicKey fields.`}async encodePrivateKey(e){return Hs(JSON.stringify({signatureSchemeId:e.getSignatureSchemeId(),privateKey:hl(e.getPrivateKeyAsBytes())}))}async decodePrivateKey(e){let t=JSON.parse(bl(e));if(t&&typeof t.signatureSchemeId==`number`&&typeof t.privateKey==`string`){let e=vl(t.privateKey);return Uv.createPrivateSignatureKey(t.signatureSchemeId,e)}else throw`Invalid public key format: expected raw-encoded JSON object with signatureSchemeId and privateKey fields.`}},$S=new TextEncoder,eC=new TextDecoder;function tC(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=32768,n=[];for(let r=0;r<e.length;r+=t)n.push(String.fromCharCode.apply(null,e.subarray(r,r+t)));return btoa(n.join(``))}function nC(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function rC(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof e==`string`?e:eC.decode(e),{alphabet:`base64url`});let t=e;t instanceof Uint8Array&&(t=eC.decode(t)),t=t.replace(/-/g,`+`).replace(/_/g,`/`);try{return nC(t)}catch{throw TypeError(`The input to be decoded is not correctly encoded.`)}}function iC(e){let t=e;return typeof t==`string`&&(t=$S.encode(t)),Uint8Array.prototype.toBase64?t.toBase64({alphabet:`base64url`,omitPadding:!0}):tC(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}var aC=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},oC=class extends aC{static code=`ERR_JOSE_NOT_SUPPORTED`;code=`ERR_JOSE_NOT_SUPPORTED`},sC=e=>typeof e==`object`&&!!e;function cC(e){if(!sC(e)||Object.prototype.toString.call(e)!==`[object Object]`)return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var lC=`Invalid or unsupported JWK "alg" (Algorithm) Parameter value`;function uC(e){let t,n;switch(e.kty){case`AKP`:switch(e.alg){case`ML-DSA-44`:case`ML-DSA-65`:case`ML-DSA-87`:t={name:e.alg},n=e.priv?[`sign`]:[`verify`];break;default:throw new oC(lC)}break;case`RSA`:switch(e.alg){case`PS256`:case`PS384`:case`PS512`:t={name:`RSA-PSS`,hash:`SHA-${e.alg.slice(-3)}`},n=e.d?[`sign`]:[`verify`];break;case`RS256`:case`RS384`:case`RS512`:t={name:`RSASSA-PKCS1-v1_5`,hash:`SHA-${e.alg.slice(-3)}`},n=e.d?[`sign`]:[`verify`];break;case`RSA-OAEP`:case`RSA-OAEP-256`:case`RSA-OAEP-384`:case`RSA-OAEP-512`:t={name:`RSA-OAEP`,hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},n=e.d?[`decrypt`,`unwrapKey`]:[`encrypt`,`wrapKey`];break;default:throw new oC(lC)}break;case`EC`:switch(e.alg){case`ES256`:case`ES384`:case`ES512`:t={name:`ECDSA`,namedCurve:{ES256:`P-256`,ES384:`P-384`,ES512:`P-521`}[e.alg]},n=e.d?[`sign`]:[`verify`];break;case`ECDH-ES`:case`ECDH-ES+A128KW`:case`ECDH-ES+A192KW`:case`ECDH-ES+A256KW`:t={name:`ECDH`,namedCurve:e.crv},n=e.d?[`deriveBits`]:[];break;default:throw new oC(lC)}break;case`OKP`:switch(e.alg){case`Ed25519`:case`EdDSA`:t={name:`Ed25519`},n=e.d?[`sign`]:[`verify`];break;case`ECDH-ES`:case`ECDH-ES+A128KW`:case`ECDH-ES+A192KW`:case`ECDH-ES+A256KW`:t={name:e.crv},n=e.d?[`deriveBits`]:[];break;default:throw new oC(lC)}break;default:throw new oC(`Invalid or unsupported JWK "kty" (Key Type) Parameter value`)}return{algorithm:t,keyUsages:n}}async function dC(e){if(!e.alg)throw TypeError(`"alg" argument is required when "jwk.alg" is not present`);let{algorithm:t,keyUsages:n}=uC(e),r={...e};return r.kty!==`AKP`&&delete r.alg,delete r.use,crypto.subtle.importKey(`jwk`,r,t,e.ext??!(e.d||e.priv),e.key_ops??n)}async function fC(e,t,n){if(!cC(e))throw TypeError(`JWK must be an object`);let r;switch(t??=e.alg,r??=n?.extractable??e.ext,e.kty){case`oct`:if(typeof e.k!=`string`||!e.k)throw TypeError(`missing "k" (Key Value) Parameter value`);return rC(e.k);case`RSA`:if(`oth`in e&&e.oth!==void 0)throw new oC(`RSA JWK "oth" (Other Primes Info) Parameter value is not supported`);return dC({...e,alg:t,ext:r});case`AKP`:if(typeof e.alg!=`string`||!e.alg)throw TypeError(`missing "alg" (Algorithm) Parameter value`);if(t!==void 0&&t!==e.alg)throw TypeError(`JWK alg and alg option value mismatch`);return dC({...e,ext:r});case`EC`:case`OKP`:return dC({...e,alg:t,ext:r});default:throw new oC(`Unsupported "kty" (Key Type) Parameter value`)}}var pC=class{static async exportPublicSignatureKey(e){if(e instanceof Vv)return await fC({kty:`OKP`,crv:`Ed25519`,alg:`EdDSA`,x:iC(await e.getPublicKeyAsBytes())});throw Error(`Unsupported public key type`)}static async exportPrivateSignatureKey(e){if(e instanceof Hv){let t=e.getPrivateKeyAsBytes(),n=await(await e.getPublicKey()).getPublicKeyAsBytes();return await fC({kty:`OKP`,crv:`Ed25519`,alg:`EdDSA`,d:iC(t),x:iC(n)})}throw Error(`Unsupported key type`)}},mC=class{static defaultEncoder(){return Wv.createBase64HCVPkeEncoder()}},hC=class{encodeAsUint8Array(e){return Hs(JSON.stringify({symmetricEncryptionSchemeId:e.getSymmetricEncryptionSchemeId(),key:hl(e.getRawSecretKey())}))}decodeFromUint8Array(e){let t=JSON.parse(bl(e));if(t&&typeof t.symmetricEncryptionSchemeId==`number`&&typeof t.key==`string`){let e=vl(t.key);return new Uv().createSymmetricEncryptionKey(t.symmetricEncryptionSchemeId,e)}else throw`Invalid symmetric encryption key format: expected raw-encoded JSON object with symmetricEncryptionSchemeId and key fields.`}};function gC(e,t,n,r,i,a){let o=e[t++]^n[r++],s=e[t++]^n[r++],c=e[t++]^n[r++],l=e[t++]^n[r++],u=e[t++]^n[r++],d=e[t++]^n[r++],f=e[t++]^n[r++],p=e[t++]^n[r++],m=e[t++]^n[r++],h=e[t++]^n[r++],g=e[t++]^n[r++],_=e[t++]^n[r++],v=e[t++]^n[r++],y=e[t++]^n[r++],b=e[t++]^n[r++],ee=e[t++]^n[r++],x=o,te=s,ne=c,re=l,ie=u,ae=d,oe=f,se=p,ce=m,le=h,S=g,ue=_,de=v,fe=y,pe=b,me=ee;for(let e=0;e<8;e+=2)ie^=j(x+de|0,7),ce^=j(ie+x|0,9),de^=j(ce+ie|0,13),x^=j(de+ce|0,18),le^=j(ae+te|0,7),fe^=j(le+ae|0,9),te^=j(fe+le|0,13),ae^=j(te+fe|0,18),pe^=j(S+oe|0,7),ne^=j(pe+S|0,9),oe^=j(ne+pe|0,13),S^=j(oe+ne|0,18),re^=j(me+ue|0,7),se^=j(re+me|0,9),ue^=j(se+re|0,13),me^=j(ue+se|0,18),te^=j(x+re|0,7),ne^=j(te+x|0,9),re^=j(ne+te|0,13),x^=j(re+ne|0,18),oe^=j(ae+ie|0,7),se^=j(oe+ae|0,9),ie^=j(se+oe|0,13),ae^=j(ie+se|0,18),ue^=j(S+le|0,7),ce^=j(ue+S|0,9),le^=j(ce+ue|0,13),S^=j(le+ce|0,18),de^=j(me+pe|0,7),fe^=j(de+me|0,9),pe^=j(fe+de|0,13),me^=j(pe+fe|0,18);i[a++]=o+x|0,i[a++]=s+te|0,i[a++]=c+ne|0,i[a++]=l+re|0,i[a++]=u+ie|0,i[a++]=d+ae|0,i[a++]=f+oe|0,i[a++]=p+se|0,i[a++]=m+ce|0,i[a++]=h+le|0,i[a++]=g+S|0,i[a++]=_+ue|0,i[a++]=v+de|0,i[a++]=y+fe|0,i[a++]=b+pe|0,i[a++]=ee+me|0}function _C(e,t,n,r,i){let a=r+0,o=r+16*i;for(let r=0;r<16;r++)n[o+r]=e[t+(2*i-1)*16+r];for(let r=0;r<i;r++,a+=16,t+=16)gC(n,o,e,t,n,a),r>0&&(o+=16),gC(n,a,e,t+=16,n,o)}function vC(e,t,n){let{N:r,r:i,p:a,dkLen:o,asyncTick:s,maxmem:c,onProgress:l}=Ks({dkLen:32,asyncTick:10,maxmem:1024**3+1024},n);if(Ts(r),Ts(i),Ts(a),Ts(o),Ts(s),Ts(c),l!==void 0&&typeof l!=`function`)throw Error(`progressCb should be function`);let u=128*i,d=u/4,f=2**32;if(r<=1||r&r-1||r>f)throw Error(`Scrypt: N must be larger than 1, a power of 2, and less than 2^32`);if(a<0||a>(f-1)*32/u)throw Error(`Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)`);if(o<0||o>(f-1)*32)throw Error(`Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32`);if(u*(r+a)>c)throw Error(`Scrypt: memused is bigger than maxMem. Expected 128 * r * (N + p) > maxmem of `+c);let p=ov(Gc,e,t,{c:1,dkLen:u*a}),m=As(p),h=As(new Uint8Array(u*r)),g=As(new Uint8Array(u)),_=()=>{};if(l){let e=2*r*a,t=Math.max(Math.floor(e/1e4),1),n=0;_=()=>{n++,l&&(!(n%t)||n===e)&&l(n/e)}}return{N:r,r:i,p:a,dkLen:o,blockSize32:d,V:h,B32:m,B:p,tmp:g,blockMixCb:_,asyncTick:s}}function yC(e,t,n,r,i){let a=ov(Gc,e,n,{c:1,dkLen:t});return js(n,r,i),a}function bC(e,t,n){let{N:r,r:i,p:a,dkLen:o,blockSize32:s,V:c,B32:l,B:u,tmp:d,blockMixCb:f}=vC(e,t,n);Ls(l);for(let e=0;e<a;e++){let t=s*e;for(let e=0;e<s;e++)c[e]=l[t+e];for(let e=0,t=0;e<r-1;e++)_C(c,t,c,t+=s,i),f();_C(c,(r-1)*s,l,t,i),f();for(let e=0;e<r;e++){let e=l[t+s-16]%r;for(let n=0;n<s;n++)d[n]=l[t+n]^c[e*s+n];_C(d,0,l,t,i),f()}}return Ls(l),yC(e,o,u,c,d)}var xC=class extends cv{getKeyDerivationFunctionSchemeId(){return sv.SCRYPT}deriveKey(e,t,n){return bC(e,t,{N:2**16,r:8,p:1,dkLen:n})}},SC=function(e){return e[e.SECP256K1=Ya.SECP256K1]=`SECP256K1`,e[e.ML_DSA_65=Ya.ML_DSA_65]=`ML_DSA_65`,e}({}),CC=class{constructor(e){this.apiKey=e}async getPkmsCredential(){return this.apiKey}},wC=class{constructor(){}async has(e){return!1}async get(e){return!1}async set(e,t){}},TC=class{key;constructor(e,t,n){this.key=`${e}|${t}|${n}`}getKey(){return this.key}},EC=class{map;constructor(){this.map=new Map}async has(e){return this.map.has(e.getKey())}async get(e){return this.map.get(e.getKey())}async set(e,t){this.map.set(e.getKey(),t)}};(async function(){new EC})();var DC=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,OC={verifyFormat:kC,encodeNumber:AC,decodeNumber:jC,encodeToChar:MC,decodeFromChar:NC,CROCKFORD_CHARS:DC};function kC(e,t=e.length){return RegExp(`^(${[...DC].join(`|`)}){${t}}$`).test(e)}function AC(e,t){if(!Number.isInteger(t)||t<1||t>10)throw Error(`Invalid or unsafe size for base32 encoding`);if(!Number.isInteger(e)||e<0||e>=32**t)throw Error(`Invalid number for base32 encoding of size ${t}`);return[...Array(t).keys()].map(t=>MC(e>>t*5&31)).join(``)}function jC(e){if(e.length==0||e.length>10)throw Error(`Invalid base32 string length`);return[...e].reduceRight((e,t)=>e<<5|NC(t),0)}function MC(e){let t=DC[e];if(t===void 0)throw Error(`Invalid base32 value`);return t}function NC(e){let t=DC.indexOf(e);if(e.length!=1||t==-1)throw Error(`Invalid base32 character`);return t}var PC=class{collection;constructor(e){this.collection=e}serialize(e,t){let n=this.collection[e],r=new Mv(n).serialize(t);return new Uint8Array([e,...r])}},FC=class{collection;constructor(e){this.collection=e}unserialize(e){let t=e[0],n=this.collection[t];if(!n)throw Error(`Unknown message type ${t}: I do not know how to unserialize this message.`);return{type:t,object:new Nv(n).unserialize(e.slice(1))}}},IC=class{schema;constructor(e){this.schema=e}validate(e){if(this.schema===void 0)throw new o(`Provided schema is undefined: this should not happen`);this.validateObject(this.schema.definition,e)}validateObject(e,t,n=``){for(let r of e){let e=n+(n&&`.`)+r.name,i=t[r.name];if(i===void 0){if(r.optional)continue;throw Error(`field '${e}' is missing`)}if(r.type&32){if(ro.getType(i)!=1)throw`'${e}' is not an array`;for(let t in i)this.validateItem(r,i[t],e+`[${t}]`)}else this.validateItem(r,i,e)}}validateItem(e,t,n){if((e.type&31)==2){if(ro.getType(t)!=2)throw`'${n}' is not an object`;if(!e.unspecifiedSchema){if(!e.schema)throw`missing definition in schema`;this.validateObject(e.schema.definition,t,n)}}else{let r=new io(e,t);try{r.check()}catch(e){throw`Error on field '${n}': ${e}`}}}},LC={getAccountTypeFromIdentifier:RC,getSpecialAccountTypeIdentifier:zC,isAllowedTransfer:BC};function RC(e){if(e.length!=32)throw Error(`invalid account identifier`);if(e.slice(0,-1).every(e=>e==0)){let t=e[31];if(t==1||!Wr[t])throw Error(`special account format detected, but with an invalid type (${t})`);return t}return 1}function zC(e){if(e==1||!Wr[e])throw Error(`${e} is not a valid special account type`);let t=new Uint8Array(32);return t[31]=e,t}function BC(e,t){return Gr[e]>>t&1}var VC=class e{constructor(e){this.amount=e}static create(t){return new e(t)}getAmount(){return this.amount}toString(){return`${this.amount} €`}},HC=class{static defaultEurosToCMTSTokenConverter(){return new UC}},UC=class e{static TOKENS_FOR_ONE_EUROS=100;convert(t){return hn.create(t.getAmount()*e.TOKENS_FOR_ONE_EUROS)}invert(t){return VC.create(t.getAmount()/e.TOKENS_FOR_ONE_EUROS)}},WC=class e{constructor(e,t,n){this.verified=e,this.appLedger=t,this.importedProofs=n}static createSuccessfulProofVerificationResult(t,n){return new e(!0,t,LS.some(n))}static createFailedProofVerificationResult(t){return new e(!1,t,LS.none())}isVerified(){return this.verified}getInvolvedBlockHeights(){return this.importedProofs.isSome()?this.importedProofs.unwrap().map(e=>e.height):[]}getApplicationLedgerId(){return this.appLedger.getIdentifier()}async getRecordContainedInBlockAtHeight(e,t){throw Error(`Not implemented`)}},GC=function(e){return e[e.PARSE_ERROR=-32700]=`PARSE_ERROR`,e[e.INVALID_REQUEST=-32600]=`INVALID_REQUEST`,e[e.METHOD_NOT_FOUND=-32601]=`METHOD_NOT_FOUND`,e[e.INVALID_PARAMS=-32602]=`INVALID_PARAMS`,e[e.INTERNAL_ERROR=-32603]=`INTERNAL_ERROR`,e[e.ENDPOINT_CLOSED_WHILE_NODE_IS_CATCHING_UP=-32603]=`ENDPOINT_CLOSED_WHILE_NODE_IS_CATCHING_UP`,e[e.TX_ALREADY_EXISTS=-32003]=`TX_ALREADY_EXISTS`,e[e.TX_OUT_OF_GAS=-32002]=`TX_OUT_OF_GAS`,e[e.TX_CHECK_FAILED=-32001]=`TX_CHECK_FAILED`,e[e.TX_DELIVER_FAILED=-32e3]=`TX_DELIVER_FAILED`,e}({}),KC=class e{log=k.getAbstractProviderLogger(e.name);async loadValidatorNodeVirtualBlockchain(e){let t=new iS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadAccountVirtualBlockchain(e){this.log.debug(`Loading account virtual blockchain with id ${e.encode()}`);let t=new eS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadApplicationLedgerVirtualBlockchain(e){let t=new IS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadApplicationVirtualBlockchain(e){let t=new nS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadOrganizationVirtualBlockchain(e){let t=new Qx(this);return await this.initializeVirtualBlockchain(t,e),t}async loadProtocolVirtualBlockchain(e){let t=new oS(this);return await this.initializeVirtualBlockchain(t,e),t}async loadVirtualBlockchain(e){let t=await this.getVirtualBlockchainState(e.toBytes());if(t===null)throw Error(`Virtual Blockchain with hash ${e.encode()} does not exist.`);let n=t.type;switch(n){case U.ACCOUNT_VIRTUAL_BLOCKCHAIN:return await this.loadAccountVirtualBlockchain(e);case U.ORGANIZATION_VIRTUAL_BLOCKCHAIN:return await this.loadOrganizationVirtualBlockchain(e);case U.APPLICATION_VIRTUAL_BLOCKCHAIN:return await this.loadApplicationVirtualBlockchain(e);case U.NODE_VIRTUAL_BLOCKCHAIN:return await this.loadValidatorNodeVirtualBlockchain(e);case U.PROTOCOL_VIRTUAL_BLOCKCHAIN:return await this.loadProtocolVirtualBlockchain(e);case U.APP_LEDGER_VIRTUAL_BLOCKCHAIN:return await this.loadApplicationLedgerVirtualBlockchain(e);default:throw Error(`Unknown virtual blockchain type: ${n}`)}}async loadMicroblockByMicroblockHash(e){this.log.info(`Loading microblock ${e.encode()}`);let t=await this.getMicroblockHeader(e),n=await this.getMicroblockBody(e);if(t===null||n===null)throw Error(`Microblock ${e.encode()} not found`);return Kx.loadFromHeaderAndBody(t,n)}async getCurrentFeesFormula(){let e=(await this.getProtocolState()).getFeesCalculationVersion();return Tx.getFeesCalculationFormulaByVersion(this,e)}async computeMicroblockGas(e,t={}){let n=t.referenceTimestampInSeconds??A.getTimestampInSeconds(),r=0;if(e.isGenesisMicroblock())r=Kx.extractExpirationDayFromGenesisPreviousHash(e.getPreviousHash().toBytes());else{let t=await this.getVirtualBlockchainIdContainingMicroblock(e.getPreviousHash()),n=await this.getVirtualBlockchainState(t.toBytes());if(n===null)throw Error(`Virtual blockchain state not found`);r=n.expirationDay}let i=t.signatureSchemeId??e.getLastSignatureSection().schemeId;if(i===null)throw Error(`Signature scheme ID cannot be null`);return(await this.getCurrentFeesFormula()).computeGas(i,e,r,n)}async initializeVirtualBlockchain(e,t){let n=t.toBytes(),r=await this.getVirtualBlockchainStatus(n);if(r===null)throw new Se(t);if(r.type!==e.getType())throw Error(`Invalid blockchain type loaded`);e.setIdentifier(n),e.setHeight(r.height),e.setExpirationDay(r.expirationDay),e.setInternalState(Px.createInternalStateFromObject(e.getType(),r.internalState))}},qC=class e{expirationDate;endless;constructor(e,t){this.expirationDate=e,this.endless=t}static endless(){return new e(LS.none(),!0)}static of(t){return new e(LS.of(t),!1)}static fromDurationInDays(t){let n=new Date;return n.setDate(n.getDate()+t),e.of(n)}isEndless(){return this.endless}getExpirationDate(){return this.expirationDate.unwrap()}},JC=class e{static logger=k.getMemoryProviderLogger();static instance=new e;static getInstance(){return this.instance}microblockHeaderStore;microblockBodyStore;microblockVbInformationStore;virtualBlockchainStateStore;constructor(){this.microblockHeaderStore=new Map,this.microblockBodyStore=new Map,this.microblockVbInformationStore=new Map,this.virtualBlockchainStateStore=new Map}clear(){e.logger.info(`Clearing`),this.microblockHeaderStore=new Map,this.microblockBodyStore=new Map,this.microblockVbInformationStore=new Map,this.virtualBlockchainStateStore=new Map}async getSerializedInformationOfVirtualBlockchainContainingMicroblock(t){let n=await e.get(this.microblockVbInformationStore,t);return e.logger.info(`getMicroblockVbInformation identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getInformationOfVirtualBlockchainContainingMicroblock(e){let t=await this.getSerializedInformationOfVirtualBlockchainContainingMicroblock(e);return t===null?null:xx.decodeVirtualBlockchainInfo(t)}async getMicroblock(e){throw Error(`Method not implemented`)}async getMicroblockHeader(t){let n=await e.get(this.microblockHeaderStore,t);if(n===null)return e.logger.info(`Header not found locally: returning null`),null;{let r=xx.decodeMicroblockHeader(n);return e.logger.info(`Header of microblock with identifier=${A.binaryToHexa(t)} found: {header}`,{header:r}),r}}async getSerializedMicroblockHeader(t){let n=await e.get(this.microblockHeaderStore,t);if(n===null)return e.logger.info(`Header not found locally: returning null`),null;{let r=N.Hashes.sha256(n),i=xx.decodeMicroblockHeader(n);return e.logger.info(`Header of microblock with identifier (sha256:${r})=${A.binaryToHexa(t)} found: {header}`,{header:JSON.stringify(i)}),n}}async getMicroblockBody(t){let n=await e.get(this.microblockBodyStore,t);return e.logger.info(`getMicroblockBody identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getSerializedVirtualBlockchainState(t){let n=await e.get(this.virtualBlockchainStateStore,t);return e.logger.info(`getVirtualBlockchainState identifier=${A.binaryToHexa(t)} -> ${n?n.length:0} bytes`),n}async getAccountByPublicKeyHash(e){return null}async setMicroblockVbInformation(t,n){let r=xx.decodeVirtualBlockchainInfo(n);return e.logger.info(`Store info of vb identifier=${A.binaryToHexa(t)}: {info}`,{info:r}),await e.set(this.microblockVbInformationStore,t,n)}async setSerializedMicroblockHeader(t,n){let r=xx.decodeMicroblockHeader(n);return e.logger.info(`Store header of microblock identifier=${A.binaryToHexa(t)} -> {header}`,{header:r}),await e.set(this.microblockHeaderStore,t,n)}async setSerializedMicroblockBody(t,n){let r=xx.decodeMicroblockBody(n);return e.logger.info(`Store body of microblock ${A.binaryToHexa(t)}: {body}`,{body:r}),await e.set(this.microblockBodyStore,t,n)}async setMicroblockHeader(e,t){let n=xx.encodeMicroblockHeader(t);await this.setSerializedMicroblockHeader(e,n)}async setMicroblockBody(e,t){let n=xx.encodeMicroblockBody(t);await this.setSerializedMicroblockBody(e,n)}async setSerializedVirtualBlockchainState(t,n){let r=xx.decodeVirtualBlockchainState(n);return e.logger.info(`Store vb state for vb ${A.binaryToHexa(t)}: {state}`,{state:r}),await e.set(this.virtualBlockchainStateStore,t,n)}static async get(e,t){let n=A.binaryToHexa(t);if(!e.has(n))return null;let r=e.get(n);return r===void 0?null:A.binaryFromHexa(r)}static async set(t,n,r){let i=A.binaryToHexa(n),a=A.binaryToHexa(r),o=t.get(i);o===void 0?e.logger.info(`Storing new entry for key ${i}`):o===a?e.logger.info(`Storing the same data for the same key ${i}`):e.logger.info(`Storing new data for key ${i}`),t.set(i,a)}},YC=L({jsonrpc:F(`2.0`),id:I(),result:L({node_info:L({protocol_version:L({p2p:R(),block:R(),app:R()}),id:R(),listen_addr:R(),network:R(),version:R(),channels:R(),moniker:R(),other:L({tx_index:R(),rpc_address:R()})}),sync_info:L({latest_block_hash:R(),latest_app_hash:R(),latest_block_height:R(),latest_block_time:R(),earliest_block_hash:R(),earliest_app_hash:R(),earliest_block_height:R(),earliest_block_time:R(),catching_up:Gp()}),validator_info:L({address:R(),pub_key:L({type:R(),value:R()}),voting_power:R()})})}),$=function(e){return e[e.GET_CHAIN_INFORMATION=1]=`GET_CHAIN_INFORMATION`,e[e.GET_BLOCK_INFORMATION=3]=`GET_BLOCK_INFORMATION`,e[e.GET_BLOCK_CONTENT=5]=`GET_BLOCK_CONTENT`,e[e.GET_VIRTUAL_BLOCKCHAIN_STATE=7]=`GET_VIRTUAL_BLOCKCHAIN_STATE`,e[e.GET_VIRTUAL_BLOCKCHAIN_UPDATE=9]=`GET_VIRTUAL_BLOCKCHAIN_UPDATE`,e[e.GET_MICROBLOCK_INFORMATION=11]=`GET_MICROBLOCK_INFORMATION`,e[e.AWAIT_MICROBLOCK_ANCHORING=13]=`AWAIT_MICROBLOCK_ANCHORING`,e[e.GET_MICROBLOCK_BODYS=15]=`GET_MICROBLOCK_BODYS`,e[e.GET_ACCOUNT_STATE=17]=`GET_ACCOUNT_STATE`,e[e.GET_ACCOUNT_HISTORY=19]=`GET_ACCOUNT_HISTORY`,e[e.GET_ACCOUNT_BY_PUBLIC_KEY_HASH=21]=`GET_ACCOUNT_BY_PUBLIC_KEY_HASH`,e[e.GET_VALIDATOR_NODE_BY_ADDRESS=23]=`GET_VALIDATOR_NODE_BY_ADDRESS`,e[e.GET_OBJECT_LIST=25]=`GET_OBJECT_LIST`,e[e.GET_GENESIS_SNAPSHOT=27]=`GET_GENESIS_SNAPSHOT`,e[e.GET_RAW_BLOCK_CONTENT=29]=`GET_RAW_BLOCK_CONTENT`,e[e.GET_BLOCK_MODIFIED_ACCOUNTS=31]=`GET_BLOCK_MODIFIED_ACCOUNTS`,e[e.GET_ACCOUNT_UPDATES=33]=`GET_ACCOUNT_UPDATES`,e[e.GET_MICROBLOCK_INFORMATION_BY_HEIGHT=35]=`GET_MICROBLOCK_INFORMATION_BY_HEIGHT`,e[e.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT=37]=`GET_SERIALIZED_MICROBLOCK_BY_HEIGHT`,e[e.GET_MICROBLOCK_PROOF=39]=`GET_MICROBLOCK_PROOF`,e}({}),XC=L({requestType:F($.GET_CHAIN_INFORMATION)}),ZC=L({requestType:F($.GET_BLOCK_INFORMATION),height:B(I(),Ip(),Bp(0))}),QC=L({requestType:F($.GET_BLOCK_CONTENT),height:B(I(),Ip(),Bp(0))}),$C=L({requestType:F($.GET_VIRTUAL_BLOCKCHAIN_STATE),virtualBlockchainId:km()}),ew=L({requestType:F($.GET_VIRTUAL_BLOCKCHAIN_UPDATE),virtualBlockchainId:km(),knownStateHash:km()}),tw=L({requestType:F($.GET_MICROBLOCK_INFORMATION),hash:km()}),nw=L({requestType:F($.AWAIT_MICROBLOCK_ANCHORING),hash:km()}),rw=L({requestType:F($.GET_MICROBLOCK_BODYS),hashes:P(km())}),iw=L({requestType:F($.GET_ACCOUNT_STATE),accountHash:km()}),aw=L({requestType:F($.GET_ACCOUNT_HISTORY),accountHash:km(),lastHistoryHash:km(),maxRecords:B(I(),Ip(),Bp(1))}),ow=L({requestType:F($.GET_ACCOUNT_BY_PUBLIC_KEY_HASH),publicKeyHash:km()}),sw=L({requestType:F($.GET_VALIDATOR_NODE_BY_ADDRESS),address:H()}),cw=L({requestType:F($.GET_OBJECT_LIST),type:B(I(),Ip(),Bp(0),Rp(255))}),lw=L({requestType:F($.GET_GENESIS_SNAPSHOT)}),uw=L({requestType:F($.GET_RAW_BLOCK_CONTENT),height:B(I(),Ip(),Bp(0)),partIndex:B(I(),Ip(),Bp(0))}),dw=L({requestType:F($.GET_BLOCK_MODIFIED_ACCOUNTS),height:B(I(),Ip(),Bp(0))}),fw=L({requestType:F($.GET_ACCOUNT_UPDATES),list:P(rg)}),pw=L({requestType:F($.GET_MICROBLOCK_INFORMATION_BY_HEIGHT),virtualBlockchainId:km(),height:I()}),mw=L({requestType:F($.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT),virtualBlockchainId:km(),height:I()}),hw=L({requestType:F($.GET_MICROBLOCK_PROOF),hash:km()}),gw=rm(`requestType`,[XC,ZC,QC,$C,ew,tw,nw,rw,iw,aw,ow,sw,cw,lw,uw,dw,fw,pw,mw,hw]),_w=L({block:L({height:I(),vbRadixHash:H(),tokenRadixHash:H(),storageHash:H(),appHash:H()}),microblock:L({virtualBlockchainId:H(),height:I(),hash:H()}),virtualBlockchain:L({state:Bh,merkleWitnesses:P(H()),radixProof:P(H())})}),vw=function(e){return e[e.ERROR=0]=`ERROR`,e[e.CHAIN_INFORMATION=2]=`CHAIN_INFORMATION`,e[e.BLOCK_INFORMATION=4]=`BLOCK_INFORMATION`,e[e.BLOCK_CONTENT=6]=`BLOCK_CONTENT`,e[e.VIRTUAL_BLOCKCHAIN_STATE=8]=`VIRTUAL_BLOCKCHAIN_STATE`,e[e.VIRTUAL_BLOCKCHAIN_UPDATE=10]=`VIRTUAL_BLOCKCHAIN_UPDATE`,e[e.MICROBLOCK_INFORMATION=12]=`MICROBLOCK_INFORMATION`,e[e.MICROBLOCK_ANCHORING=14]=`MICROBLOCK_ANCHORING`,e[e.MICROBLOCK_BODYS=16]=`MICROBLOCK_BODYS`,e[e.ACCOUNT_STATE=18]=`ACCOUNT_STATE`,e[e.ACCOUNT_HISTORY=20]=`ACCOUNT_HISTORY`,e[e.ACCOUNT_BY_PUBLIC_KEY_HASH=22]=`ACCOUNT_BY_PUBLIC_KEY_HASH`,e[e.VALIDATOR_NODE_BY_ADDRESS=24]=`VALIDATOR_NODE_BY_ADDRESS`,e[e.OBJECT_LIST=26]=`OBJECT_LIST`,e[e.GENESIS_SNAPSHOT=28]=`GENESIS_SNAPSHOT`,e[e.RAW_BLOCK_CONTENT=30]=`RAW_BLOCK_CONTENT`,e[e.BLOCK_MODIFIED_ACCOUNTS=32]=`BLOCK_MODIFIED_ACCOUNTS`,e[e.ACCOUNT_UPDATES=34]=`ACCOUNT_UPDATES`,e[e.SERIALIAZED_MICROBLOCK_BY_HEIGHT=38]=`SERIALIAZED_MICROBLOCK_BY_HEIGHT`,e[e.MICROBLOCK_PROOF=40]=`MICROBLOCK_PROOF`,e}({}),yw=L({responseType:F(vw.ERROR),error:R()}),bw=L({responseType:F(vw.CHAIN_INFORMATION),height:B(I(),Ip(),Bp(0)),lastBlockTimestamp:B(I(),Ip(),Bp(0)),microblockCount:B(I(),Ip(),Bp(0)),objectCounts:P(B(I(),Ip(),Bp(0)))}),xw=L({responseType:F(vw.BLOCK_INFORMATION),hash:km(),timestamp:B(I(),Ip(),Bp(0)),proposerAddress:H(),applicationStateHashes:L({vbRadixHash:H(),tokenRadixHash:H(),radixHash:H(),storageHash:H(),appHash:H()}),size:B(I(),Ip(),Bp(0)),microblockCount:B(I(),Ip(),Bp(0))}),Sw=L({hash:km(),vbId:km(),vbType:B(I(),Ip(),Bp(0),Rp(255)),height:B(I(),Ip(),Bp(0)),size:B(I(),Ip(),Bp(0)),sectionCount:B(I(),Ip(),Bp(0))}),Cw=L({responseType:F(vw.BLOCK_CONTENT),microblocks:P(Sw)}),ww=L({responseType:F(vw.VIRTUAL_BLOCKCHAIN_STATE),serializedVirtualBlockchainState:H()}),Tw=L({responseType:F(vw.VIRTUAL_BLOCKCHAIN_UPDATE),exists:Gp(),changed:Gp(),serializedVirtualBlockchainState:H()}),Ew=L({responseType:F(vw.MICROBLOCK_INFORMATION),...Hh.entries}),Dw=L({responseType:F(vw.MICROBLOCK_ANCHORING),...Hh.entries}),Ow=L({microblockHash:km(),microblockBody:Sh}),kw=L({responseType:F(vw.MICROBLOCK_BODYS),list:P(Ow)}),Aw=L({responseType:F(vw.ACCOUNT_STATE),height:B(I(),Ip(),Bp(0)),balance:B(I(),Ip(),Bp(0)),lastHistoryHash:km(),locks:P(Zh)}),jw=L({responseType:F(vw.ACCOUNT_HISTORY),list:ng}),Mw=L({responseType:F(vw.ACCOUNT_BY_PUBLIC_KEY_HASH),accountHash:km()}),Nw=L({responseType:F(vw.VALIDATOR_NODE_BY_ADDRESS),validatorNodeHash:km()}),Pw=L({responseType:F(vw.OBJECT_LIST),list:P(km())}),Fw=L({responseType:F(vw.GENESIS_SNAPSHOT),base64EncodedChunks:P(R())}),Iw=L({responseType:F(vw.RAW_BLOCK_CONTENT),partIndex:I(),numberOfParts:I(),serializedMicroblocks:P(H())}),Lw=L({responseType:F(vw.BLOCK_MODIFIED_ACCOUNTS),modifiedAccounts:P(H())}),Rw=L({responseType:F(vw.ACCOUNT_UPDATES),list:P(ig)}),zw=L({responseType:F(vw.SERIALIAZED_MICROBLOCK_BY_HEIGHT),serializedContent:H()}),Bw=L({responseType:F(vw.MICROBLOCK_PROOF),proof:_w}),Vw=rm(`responseType`,[yw,bw,xw,Cw,Iw,ww,Tw,Ew,Dw,kw,Aw,jw,Mw,Nw,Pw,Fw,Lw,Rw,zw,Bw]),Hw=class{static encodeAbciRequest(e){return px(z(gw,e))}static decodeAbciRequest(e){return z(gw,Ib(e))}static encodeAbciResponse(e){return px(z(Vw,e))}static decodeAbciResponse(e){return z(Vw,Ib(e))}},Uw=class e{static staticLogger=k.getNetworkProviderLogger();logger=e.staticLogger;requestLogger=e.staticLogger.getChild(`request`);responseLogger=e.staticLogger.getChild(`response`);static createFromUrl(t){e.staticLogger.debug(`NetworkProvider constructor -> nodeUrl: ${t}`);try{return new URL(t),new e(t)}catch{throw new i(`Invalid node URL: got ${t}`)}}constructor(e){this.nodeUrl=e}async sendSerializedMicroblock(e){this.requestLogger.info(`Sending serialized microblock (${e.length} bytes)`);let t=await this.broadcastTx(e);return this.responseLogger.info(`Received response: <- {data}`,()=>({data:t?.data})),t}async awaitMicroblockAnchoring(e){let t=A.binaryToHexa(e);return this.requestLogger.info(`Awaiting microblock {hash} to be published...`,()=>({hash:t})),z(Hh,await this.abciQuery({requestType:$.AWAIT_MICROBLOCK_ANCHORING,hash:e}))}async getChainInformation(){return this.requestLogger.info(`Requesting chain information`),z(bw,await this.abciQuery({requestType:$.GET_CHAIN_INFORMATION}))}async getBlockInformation(e){this.requestLogger.info(`Requesting block information at height: ${e}`);let t=await this.abciQuery({requestType:$.GET_BLOCK_INFORMATION,height:e});return this.responseLogger.info(`Received block information at height ${e}`),z(xw,t)}async getBlockContent(e){this.requestLogger.info(`Requesting block content for height ${e}`);let t=z(Cw,await this.abciQuery({requestType:$.GET_BLOCK_CONTENT,height:e}));return this.responseLogger.info(`Received block content for height ${e}: ${t.microblocks.length} microblocks received`),t}async getValidatorNodeByAddress(e){this.requestLogger.info(`Requesting validator node id for address {address}`,()=>({address:A.binaryToHexa(e)}));let t=await this.abciQuery({requestType:$.GET_VALIDATOR_NODE_BY_ADDRESS,address:e});return this.responseLogger.info(`Receiving validator node id {id}`,()=>({id:A.binaryToHexa(e)})),z(Nw,t)}async getAccountState(e){this.requestLogger.info(`Requesting account state for account hash {accountHash}`,()=>({accountHash:A.binaryToHexa(e)}));let t=z(Aw,await this.abciQuery({requestType:$.GET_ACCOUNT_STATE,accountHash:e}));return this.responseLogger.info(`Receiving account state: height={height}, balance={balance}`,()=>({height:t.height,balance:hn.createAtomic(t.balance).toString()})),t}async getAccountHistory(e,t,n){this.requestLogger.info(`Requesting account history for account hash: ${A.binaryToHexa(e)}, lastHistoryHash: ${A.binaryToHexa(t)}, maxRecords: ${n}`);let r=z(jw,await this.abciQuery({requestType:$.GET_ACCOUNT_HISTORY,accountHash:e,lastHistoryHash:t,maxRecords:n}));return this.responseLogger.info(`Receiving account history with ${r.list.length} entries`),r}async getAccountByPublicKeyHash(e){this.requestLogger.info(`Requesting account hash by public key hash: ${A.binaryToHexa(e)}`);let t=z(Mw,await this.abciQuery({requestType:$.GET_ACCOUNT_BY_PUBLIC_KEY_HASH,publicKeyHash:e}));return this.responseLogger.info(`Received account hash {accountHash}`,()=>({accountHash:A.binaryToHexa(t.accountHash)})),t}async getObjectList(e){this.requestLogger.info(`Requesting list of objects of type ${e}`);let t=z(Pw,await this.abciQuery({requestType:$.GET_OBJECT_LIST,type:e}));return this.responseLogger.info(`Receiving object lists with ${t.list.length} elements)`),t}async getMicroblockInformation(e){this.requestLogger.info(`Requesting microblock information for hash ${A.binaryToHexa(e)}`);let t=z(Ew,await this.abciQuery({requestType:$.GET_MICROBLOCK_INFORMATION,hash:e}));return this.responseLogger.info(`Received microblock information: vbType={vbType}, vbId={vbId}`,()=>({vbType:t.virtualBlockchainType,vbId:A.binaryToHexa(t.virtualBlockchainId)})),this.logger.info(`Received microblock information body hash for microblock ${A.binaryToHexa(e)}: ${A.binaryToHexa(t.header.bodyHash)}`),z(Hh,t)}async getSerializedMicroblockByHeight(e,t){this.requestLogger.info(`Requesting microblock for VB ${A.binaryToHexa(e)} at height ${t}`);let n=z(zw,await this.abciQuery({requestType:$.GET_SERIALIZED_MICROBLOCK_BY_HEIGHT,virtualBlockchainId:e,height:t}));return this.responseLogger.info(`Received microblock - size: ${n.serializedContent.length} bytes`),n.serializedContent}async getMicroblockBodys(e){this.requestLogger.info(`Requesting microblock bodys for microblock hashes ${e.length}`),this.requestLogger.info(`Lisf of requested hashes: {hashes}`,()=>({hashes:e.map(e=>A.binaryToHexa(e)).join(`, `)}));let t=z(kw,await this.abciQuery({requestType:$.GET_MICROBLOCK_BODYS,hashes:e}));return this.responseLogger.info(`Returned number of microblock bodys: ${t.list.length}`),t}async getVirtualBlockchainUpdate(e,t){this.requestLogger.info(`Request virtual blockchain update for virtualBlockchainId: ${A.binaryToHexa(e)}`);let n=await this.abciQuery({requestType:$.GET_VIRTUAL_BLOCKCHAIN_UPDATE,virtualBlockchainId:e,knownStateHash:t});return this.responseLogger.info(`Receiving virtual blockchain update`),z(Tw,n)}async getSerializedVirtualBlockchainState(e){this.requestLogger.info(`Requesting virtual blockchain state for vb id {vbId}`,()=>({vbId:A.binaryToHexa(e)}));let t=z(ww,await this.abciQuery({requestType:$.GET_VIRTUAL_BLOCKCHAIN_STATE,virtualBlockchainId:e}));return this.responseLogger.info(`Receiving virtual blockchain state: ${t.serializedVirtualBlockchainState.length} bytes`),t.serializedVirtualBlockchainState}static async query(e,t={},n=1e4){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json; charset=UTF-8`,Accept:`application/json`},body:JSON.stringify(t),signal:r.signal});if(n.status===500)throw console.error(n),new h(`Internal error in the node: ${n.statusText}`);if(!n.ok)throw Error(`HTTP ${n.status}`);return await n.json()}catch(t){throw t?.name===`AbortError`?new h(`Request timeout after ${n}ms`):t?.cause?.code===`ECONNREFUSED`||t?.code===`ECONNREFUSED`||t instanceof TypeError?new g(e):t}finally{clearTimeout(i)}}async broadcastTx(t){let n=new URL(this.nodeUrl);this.logger.info(`broadcastTx -> ${t.length} bytes to ${this.nodeUrl}`);let r=fg.bytesToBase64Encoder();return await e.query(n,{jsonrpc:`2.0`,id:1,method:`broadcast_tx_sync`,params:{tx:r.encode(t)}})}async abciQuery(t){if(t===void 0)throw new i(`Cannot send an undefined request`);this.logger.debug(`Sending ABCI request:`,t);let n=Hw.encodeAbciRequest(t);return await e.sendABCIQueryToNodeServer(this.nodeUrl,n)}static async sendABCIQueryToNodeServer(t,n){e.staticLogger.debug(`Sending ABCI Query to node server at ${t} (${n.length} bytes) `);let r=new URL(t);r.pathname=`abci_query`,r.searchParams.append(`path`,`"/carmentis"`),r.searchParams.append(`data`,`0x`+A.binaryToHexa(n));let i=await e.query(r),a=i?.result?.response?.value;if(typeof a!=`string`)throw this.staticLogger.error(`Invalid response type detected:`,i),this.staticLogger.error(`rawBase64EncodedResponse: `,a),new h(`Invalid response detected`);let o=sg.decodeBinary(a),s=Hw.decodeAbciResponse(o);if(s.responseType==vw.ERROR){let t=s.error;throw e.staticLogger.error(`sendABCIQueryToNodeServer <- {*}`,()=>({error:t})),new h(`Remote error: ${t}`)}return e.staticLogger.debug(`Returning ABCI response`),s}static async sendStatusQueryToNodeServer(t){e.staticLogger.debug(`sendStatusQueryToNodeServer -> nodeUrl: ${t}`);let n=new URL(t);n.pathname=`status`;let r=im(YC,await e.query(n));if(r.success)return e.staticLogger.debug(`sendStatusQueryToNodeServer <- received valid status response`),r.output;throw e.staticLogger.debug(`sendStatusQueryToNodeServer <- parsing error: ${r.issues}`),new h(r.issues.map(e=>e.message).join(`, `))}async getGenesisSnapshot(){this.requestLogger.info(`Requesting genesis snapshot`);let e=z(Fw,await this.abciQuery({requestType:$.GET_GENESIS_SNAPSHOT}));return this.responseLogger.info(`Received genesis snapshots containing {chunksNumber} chunks`,()=>({chunksNumber:e.base64EncodedChunks.length})),e}},Ww=class e{static logger=k.getMemoryProviderLogger();static instance=new e;static getInstance(){return this.instance}constructor(){}clear(){e.logger.info(`Clearing`)}async getSerializedInformationOfVirtualBlockchainContainingMicroblock(e){return null}async getInformationOfVirtualBlockchainContainingMicroblock(e){return null}async getMicroblock(e){throw Error(`Method not implemented`)}async getMicroblockHeader(e){return null}async getSerializedMicroblockHeader(e){return null}async getMicroblockBody(e){return null}async getSerializedVirtualBlockchainState(e){return null}async getAccountByPublicKeyHash(e){return null}async setMicroblockVbInformation(e,t){}async setSerializedMicroblockHeader(e,t){}async setSerializedMicroblockBody(e,t){}async setMicroblockHeader(e,t){}async setMicroblockBody(e,t){}async setSerializedVirtualBlockchainState(e,t){}},Gw=class{constructor(){}sendSerializedMicroblock(e){throw Error(`Method not implemented.`)}awaitMicroblockAnchoring(e){throw Error(`Method not implemented.`)}getChainInformation(){throw Error(`Method not implemented.`)}getBlockInformation(e){throw Error(`Method not implemented.`)}getBlockContent(e){throw Error(`Method not implemented.`)}getValidatorNodeByAddress(e){throw Error(`Method not implemented.`)}getAccountState(e){throw Error(`Method not implemented.`)}getAccountHistory(e,t,n){throw Error(`Method not implemented.`)}getAccountByPublicKeyHash(e){throw Error(`Method not implemented.`)}getObjectList(e){throw Error(`Method not implemented.`)}getMicroblockInformation(e){return Promise.resolve(null)}getSerializedMicroblockByHeight(e,t){return Promise.resolve(null)}getMicroblockBodys(e){return Promise.resolve(null)}getVirtualBlockchainUpdate(e){throw Error(`Method not implemented.`)}getSerializedVirtualBlockchainState(e){throw Error(`Method not implemented.`)}broadcastTx(e){throw Error(`Method not implemented.`)}abciQuery(e){throw Error(`Method not implemented.`)}getGenesisSnapshot(){throw Error(`Method not implemented.`)}},Kw=class{static convertRawPublicKeyIntoAddress(e){return Qc.sha256AsBinary(e).slice(0,20)}},qw=class e extends KC{logger=k.getProviderLogger();externalProvider;internalProvider;constructor(e,t){super(),this.internalProvider=e,this.externalProvider=t}async awaitMicroblockAnchoring(e){return await this.externalProvider.awaitMicroblockAnchoring(e)}async getChainInformation(){return await this.externalProvider.getChainInformation()}async getGenesisSnapshot(){return await this.externalProvider.getGenesisSnapshot()}async getBlockInformation(e){return await this.externalProvider.getBlockInformation(e)}async getBlockContent(e){return await this.externalProvider.getBlockContent(e)}async getAccountState(e){return await this.externalProvider.getAccountState(e)}async getAccountHistory(e,t,n){return await this.externalProvider.getAccountHistory(e,t,n)}async getAccountByPublicKeyHash(t){let n=await this.internalProvider.getAccountByPublicKeyHash(t);if(n!==null)return n;let r=await this.externalProvider.getAccountByPublicKeyHash(t);return k.getLogger([e.name]).debug(`Account hash ${r} is associated to public key hash ${t}`),r.accountHash}async getVirtualBlockchainState(e){this.logger.info(`Getting state for virtual blockchain ${A.binaryToHexa(e)}`);let t=await this.internalProvider.getSerializedVirtualBlockchainState(e);if(t!==null)return this.logger.info(`State for virtual blockchain ${A.binaryToHexa(e)} found locally`),xx.decodeVirtualBlockchainState(t);{let t=await this.externalProvider.getSerializedVirtualBlockchainState(e);return t?(this.logger.info(`State for virtual blockchain ${A.binaryToHexa(e)} found remotely`),await this.internalProvider.setSerializedVirtualBlockchainState(e,t),xx.decodeVirtualBlockchainState(t)):null}}async getAccountIdByPublicKey(e){let t=await e.getPublicKeyAsBytes(),n=N.Hashes.sha256AsBinary(t);return await this.getAccountByPublicKeyHash(n)}async getProtocolState(){let e=await this.getProtocolVirtualBlockchainId(),t=await this.getVirtualBlockchainState(e.toBytes());if(t===null)throw Error(`Cannot get protocol parameters from the internal provider`);if(t.type!==U.PROTOCOL_VIRTUAL_BLOCKCHAIN)throw Error(`Expected protocol virtual blockchain, got ${U[t.type]}`);return jx.createFromObject(t.internalState)}async getProtocolVirtualBlockchainId(){let e=await this.getObjectList(U.PROTOCOL_VIRTUAL_BLOCKCHAIN),t=e.list.length;if(t===0)throw this.logger.error(`No protocol virtual blockchain found: Expecting exactly one protocol virtual blockchain.`),Error(`No protocol virtual blockchain found`);return t!==1&&this.logger.warning(`Found `+t+` protocol virtual blockchains, expecting exactly one`),Dx.from(e.list[0])}async getAllAccounts(){return(await this.getObjectList(U.ACCOUNT_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllValidatorNodes(){return(await this.getObjectList(U.NODE_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllOrganizationIds(){return(await this.getObjectList(U.ORGANIZATION_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getAllApplicationIds(){return(await this.getObjectList(U.APPLICATION_VIRTUAL_BLOCKCHAIN)).list.map(Dx.from)}async getObjectList(e){return await this.externalProvider.getObjectList(e)}async getMicroblockInformation(e){let t=await this.internalProvider.getInformationOfVirtualBlockchainContainingMicroblock(e),n=await this.internalProvider.getMicroblockHeader(e);if(t&&n)return{...t,header:n};let r=await this.externalProvider.getMicroblockInformation(e);if(r){let t=xx.encodeVirtualBlockchainInfo({virtualBlockchainId:r.virtualBlockchainId,virtualBlockchainType:r.virtualBlockchainType});return await this.internalProvider.setMicroblockVbInformation(e,t),await this.internalProvider.setMicroblockHeader(e,r.header),r}return null}async getListOfMicroblockBody(e){let t=[],n=[],r=0;for(let i of e){let e=await this.internalProvider.getMicroblockBody(i);if(e){let n=xx.decodeMicroblockBody(e);t.push({hash:i,body:n})}else n.push(i);r+=1}if(n.length){let r=await this.externalProvider.getMicroblockBodys(n);if(r===null)throw Error(`Unable to load microblock bodies`);for(let{microblockBody:e,microblockHash:n}of r.list){let r=xx.encodeMicroblockBody(e);await this.internalProvider.setSerializedMicroblockBody(n,r),t.push({hash:n,body:e})}t.sort((t,n)=>e.indexOf(t.hash)-e.indexOf(n.hash))}return t.map(e=>e.body)}async getMicroblockBody(e){this.logger.info(`Looking for body for microblock ${e.encode()}`);let t=await this.internalProvider.getMicroblockBody(e.toBytes());if(t instanceof Uint8Array)return this.logger.info(`Body for microblock ${e.encode()} found locally`),xx.decodeMicroblockBody(t);{let t=await this.externalProvider.getMicroblockBodys([e.toBytes()]);if(t!==null&&t.list.length!==0){let n=t.list[0].microblockBody;return await this.internalProvider.setMicroblockBody(e.toBytes(),n),this.logger.info(`Body for microblock ${e.encode()} found remotely`),n}}return this.logger.warning(`Body for microblock ${e.encode()} not found`),null}async getMicroblockHeader(e){this.logger.info(`Looking for header for microblock ${e.encode()}`);let t=await this.internalProvider.getSerializedMicroblockHeader(e.toBytes());if(t instanceof Uint8Array){let n=N.Hashes.sha256(t),r=xx.decodeMicroblockHeader(t);return this.logger.info(`Header for microblock ${e.encode()} found locally (sha256:${n}): {header}`,{header:JSON.stringify(r)}),r}let n=await this.externalProvider.getMicroblockInformation(e.toBytes());if(n!==null)return this.logger.info(`Header for microblock ${e.encode()} found remotely: {header}:`,{header:n.header}),n.header;throw new te}async getSerializedMicroblockByHeight(e,t){let n=await this.externalProvider.getSerializedMicroblockByHeight(e,t);if(n!==null)return this.logger.info(`Microblock found remotely`),n;throw new te}async getVirtualBlockchainIdContainingMicroblock(e){this.logger.info(`Searching for virtual blockchain containing microblock ${e.encode()}`);let t=await this.internalProvider.getInformationOfVirtualBlockchainContainingMicroblock(e.toBytes());if(t!==null)return Dx.from(t.virtualBlockchainId);{let t=await this.externalProvider.getMicroblockInformation(e.toBytes());if(t!==null)return Dx.from(t.virtualBlockchainId);throw new te}}async getVirtualBlockchainStatus(e){let t=null,n=A.getNullHash(),r=await this.internalProvider.getSerializedVirtualBlockchainState(e);r!==null&&(t=xx.decodeVirtualBlockchainState(r),n=Uv.createDefaultCryptographicHash().hash(r));let i=await this.externalProvider.getVirtualBlockchainUpdate(e,n);return i.exists?(i.changed&&(await this.internalProvider.setSerializedVirtualBlockchainState(e,i.serializedVirtualBlockchainState),t=xx.decodeVirtualBlockchainState(i.serializedVirtualBlockchainState)),t):null}async getAccountIdFromPublicKey(e){let t=new rv,n=await this.externalProvider.getAccountByPublicKeyHash(t.hash(await e.getPublicKeyAsBytes()));return Dx.from(n.accountHash)}async publishMicroblock(e){this.logger.info(`Publishing microblock ${e.getHash().encode()}`);let{microblockData:t}=e.serialize();return await this.externalProvider.sendSerializedMicroblock(t),e.getHash()}async getNodeStatus(e){return Uw.sendStatusQueryToNodeServer(e)}async getValidatorNodeIdByAddress(e){return(await this.externalProvider.getValidatorNodeByAddress(e.toBytes())).validatorNodeHash}async getValidatorNodeIdByCometbftPublicKey(e){let t=fg.bytesToBase64Encoder(),n=Kw.convertRawPublicKeyIntoAddress(t.decode(e));return this.getValidatorNodeIdByAddress(Dx.from(n))}},Jw=class{static createInMemoryProvider(){return new qw(new JC,new Gw)}static createInMemoryProviderWithExternalProvider(e){return new qw(new JC,Uw.createFromUrl(e))}static createNullInMemoryProviderWithExternalProvider(e){return new qw(new Ww,Uw.createFromUrl(e))}},Yw=class extends Uw{constructor(e){super(e)}},Xw=L({jsonrpc:F(`2.0`),id:I(),result:L({query:R(),data:L({type:F(`tendermint/event/NewBlock`),value:L({block:L({header:L({version:L({block:R(),app:Zp(R())}),chain_id:R(),height:R(),time:R(),last_block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),last_commit_hash:R(),data_hash:R(),validators_hash:R(),next_validators_hash:R(),consensus_hash:R(),app_hash:R(),last_results_hash:R(),evidence_hash:R(),proposer_address:R()}),data:L({txs:P(R())}),evidence:L({evidence:P(Wp())}),last_commit:L({height:R(),round:I(),block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),signatures:P(L({block_id_flag:I(),validator_address:R(),timestamp:R(),signature:R()}))})}),block_id:L({hash:R(),parts:L({total:I(),hash:R()})}),result_finalize_block:L({validator_updates:Zp(tm([Yp(),Wp()])),app_hash:R()})})}),events:L({"tm.event":P(R())})})}),Zw=class e{callbacks=[];constructor(e){this.ws=e,e.onmessage=this.onMessage.bind(this),e.onopen=this.onConnect.bind(this),e.onclose=this.onDisconnect.bind(this)}static new(t){return new e(new WebSocket(t))}addCallback(e){this.callbacks.push(e)}onConnect(e){this.ws.send(JSON.stringify({jsonrpc:`2.0`,method:`subscribe`,id:1,params:{query:`tm.event='NewBlock'`}}))}onMessage(e){let t=im(Xw,JSON.parse(e.data));if(t.success){let e=t.output;this.onNewBlock(e)}}onNewBlock(e){for(let t of this.callbacks)t.onNewBlock&&t.onNewBlock(e)}onDisconnect(e){}},Qw={parsePrefix:$w,toNumericPath:eT,fromNumericPath:tT,processCallback:rT,fromParents:nT};function $w(e){let t=/^(this|previous|block(\d+))(?=\.|\[)/.exec(e);if(!t)throw`invalid prefix for path '${e}'`;return{prefix:t[0],pathString:e.slice(t[0].length)}}function eT(e,t){return iT(e,t,!1).numericPath}function tT(e,t){let n=e[0],r=``;for(let e of t)n.type==2?(n=n.properties[e],r+=`.`+n.name):n.type==1&&(n=n.entries[e],r+=`[${n.index}]`);return r}function nT(e){let t=``;for(let n=1;n<e.length;n++){let r=e[n];t+=e[n-1].type==1?`[${r.index}]`:`.`+r.name}return t}function rT(e,t,n){let r=iT(e,t,!0);r.hasWildcard?(function e(t){for(let r of t)r.type==2?e(r.properties):r.type==1?e(r.entries):n(r)})(r.item):n(r.item)}function iT(e,t,n){let r=t.match(/\[(?:\*|\d+)\]|\.(?:\*|[^.*\[\]]+)/g);if(r.join(``)!=t)throw`invalid syntax for path '${t}'`;let i=[],a=e[0],o,s=!1;for(let e of r){if(s)throw`a wildcard cannot be followed by anything else`;switch(e[0]){case`.`:{let t=e.slice(1);if(a.type!=2)throw`cannot read property '${t}': the parent node is not an object`;if(t==`*`){if(!n)throw`a wildcard is not allowed`;a=a.properties,s=!0}else{if(o=a.properties.findIndex(e=>e.name==t),o==-1)throw`cannot find property '${t}'`;a=a.properties[o]}break}case`[`:{if(a.type!=1)throw`cannot read entry '${e}': the parent node is not an array`;let t=e.slice(1,-1);if(t==`*`){if(!n)throw`a wildcard is not allowed`;a=a.entries,s=!0}else{if(o=a.entries.findIndex(e=>e.index==t),o==-1)throw`cannot find index '${t}'`;a=a.entries[o]}break}}i.push(o)}if(!s)switch(a.type){case 2:throw`the last part of the path must be a primitive type${n?` (use .* to access all object properties)`:``}`;case 1:throw`the last part of the path must be a primitive type${n?` (use [*] to access all array entries)`:``}`}return{item:a,numericPath:i,hasWildcard:s}}var aT=class{nLeaves;tree;constructor(){this.tree=new OS}addItem(e,t){let n=this.getLeafInfo(e,t);e.attributes&2?this.addMaskableItem(e,n):e.attributes&1?this.addHashableItem(e,n):this.addRawItem(e,n)}getLeafInfo(e,t){let n=Qw.fromParents(t),r=Qa.encode(n);if(r.length>65535)throw`path too long`;let i=new Uint8Array(r.length+3);return i[0]=e.type,i[1]=r.length>>8,i[2]=r.length&255,i.set(r,3),i}getWitnesses(e){let t=[];for(let n=0;n<this.nLeaves;n++)e.has(n)||t.push(n);return this.tree.getWitnesses(t).map(e=>A.binaryToHexa(e)).join(``)}},oT=class extends aT{leaves;pepper;saltCounter;sha512;constructor(e){super(),this.pepper=e||this.constructor.generatePepper(),this.saltCounter=0,this.leaves=[]}static generatePepper(){return N.Random.getBytes(32)}addLeaf(e,t){this.leaves.push({item:e,hash:N.Hashes.sha256AsBinary(t)})}generateTree(){this.nLeaves=this.leaves.length,this.leaves.sort((e,t)=>A.binaryCompare(e.hash,t.hash));for(let e in this.leaves)this.tree.addLeaf(this.leaves[+e].hash),this.leaves[+e].item.leafIndex=+e;this.tree.finalize();let e=this.tree.getRootHash();return{nLeaves:this.leaves.length,rootHash:A.binaryToHexa(e),pepper:A.binaryToHexa(this.pepper)}}addRawItem(e,t){let n=this.getSalt();e.salt=A.binaryToHexa(n),this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addHashableItem(e,t){let n=this.getSalt(),r=N.Hashes.sha256AsBinary(e.valueBinary);e.hash=A.binaryToHexa(r),e.salt=A.binaryToHexa(n),this.addLeaf(e,A.binaryFrom(n,t,r))}addMaskableItem(e,t){let n=this.getSalt(),r=N.Hashes.sha256AsBinary(A.binaryFrom(n,t,e.visiblePartsBinary)),i=this.getSalt(),a=N.Hashes.sha256AsBinary(A.binaryFrom(i,e.hiddenPartsBinary));e.visibleSalt=A.binaryToHexa(n),e.hiddenSalt=A.binaryToHexa(i),e.hiddenHash=A.binaryToHexa(a),this.addLeaf(e,A.binaryFrom(r,a))}getSalt(){let e=this.saltCounter&3,t=this.saltCounter++>>2;return e||(this.sha512=N.Hashes.sha512AsBinary(A.binaryFrom(this.pepper,t))),this.sha512.slice(e<<4,e+1<<4)}},sT=class extends aT{nLeaves;witnesses;constructor(e,t){super(),this.nLeaves=e,this.witnesses=(t.match(/.{64}/g)||[]).map(e=>A.binaryFromHexa(e))}addLeaf(e,t){this.tree.setLeaf(e.leafIndex,N.Hashes.sha256AsBinary(t))}generateTree(){this.tree.finalize(this.nLeaves),this.tree.setWitnesses(this.witnesses);let e=this.tree.getRootHash();return{nLeaves:this.tree.getNumberOfLeaves(),rootHash:A.binaryToHexa(e)}}addRawItem(e,t){let n=A.binaryFromHexa(e.salt);this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addHashableItem(e,t){let n=A.binaryFromHexa(e.salt),r;e.hash?r=A.binaryFromHexa(e.hash):(r=N.Hashes.sha256AsBinary(e.valueBinary),e.hash=r),this.addLeaf(e,A.binaryFrom(n,t,e.valueBinary))}addMaskableItem(e,t){let n=A.binaryFromHexa(e.visibleSalt),r=N.Hashes.sha256AsBinary(A.binaryFrom(n,t,e.visiblePartsBinary)),i;if(e.hiddenHash)i=A.binaryFromHexa(e.hiddenHash);else{let t=A.binaryFromHexa(e.hiddenSalt);i=N.Hashes.sha256AsBinary(A.binaryFrom(t,e.hiddenPartsBinary)),e.hiddenHash=A.binaryToHexa(i)}this.addLeaf(e,A.binaryFrom(r,i))}},cT={getListFromRegex:lT,applyMask:uT,getVisibleText:dT,getFullText:fT};function lT(e,t,n){let r=(t.exec(e)||[]).slice(1);if(r.join(``)!=e)throw`the regular expression ${t} does not capture all string parts`;let i=n.split(/(\$\d+)/).map((e,t)=>[t&1,e]).filter(e=>e[1]);if(i.length!=r.length||i.some(([e,t],n)=>e&&t!=`$`+(n+1)))throw`invalid substitution string "${n}"`;let a=[],o=0;return i.forEach(([e,t],n)=>{let i=o+r[n].length;e||a.push([o,i,t]),o=i}),a}function uT(e,t){let n=[],r=[];return t.sort((e,t)=>e[0]-t[0]),t.forEach(([i,a,o],s)=>{let[c,l]=s?t[s-1]:[0,0];if(i<0||i>=e.length||a<=i)throw`invalid interval [${[i,a]}]`;if(i<l)throw`overlapping intervals [${[c,l]}] / [${[i,a]}]`;let u=e.slice(i,a);s&&i==l?(n[n.length-1]+=o,r[r.length-1]+=u):(n.push(e.slice(l,i),o),r.push(u)),s==t.length-1&&a<e.length&&n.push(e.slice(a))}),{visible:n,hidden:r}}function dT(e){return e.join(``)}function fT(e,t){return e.map((e,n)=>n&1?t[n>>1]:e).join(``)}var pT=24,mT=class e{importedFromProof;channelDefinitions;irObject=[];object;usedChannels=[];constructor(){this.irObject=[],this.importedFromProof=!1,this.channelDefinitions=new Map,this.object={recordData:this.irObject}}static getItemInstance(e){return{type:e,index:-1,name:``,properties:[],entries:[],value:null,attributes:0,channelId:null,channels:new Set,visibleParts:[],visiblePartsBinary:new Uint8Array,hiddenParts:[],hiddenPartsBinary:new Uint8Array,valueBinary:new Uint8Array,leafIndex:-1,salt:new Uint8Array,visibleSalt:new Uint8Array,hiddenSalt:new Uint8Array,hash:new Uint8Array,hiddenHash:new Uint8Array}}addPublicChannel(e){if(this.channelDefinitions.has(e))throw Error(`channel ${e} was already added`);this.channelDefinitions.set(e,{id:e,isPrivate:!1})}addPrivateChannel(e){if(this.channelDefinitions.has(e))throw Error(`channel ${e} was already added`);this.channelDefinitions.set(e,{id:e,isPrivate:!0,pepper:oT.generatePepper()})}buildFromJson(t){let n=[];this.importedFromProof=!1,i({root:t},n,!1),this.irObject=n;function r(t,n,r,a){let o=t[n],s=ro.getType(o);if(!ro.isJsonType(s))throw Error(`Invalid JSON type`);let c=e.getItemInstance(s);a?c.index=+n:c.name=n,s==2?(c.properties=[],i(o,c.properties,!1)):s==1?(c.entries=[],i(o,c.entries,!0)):(c.value=o,c.attributes=0,c.channelId=null),r.push(c)}function i(e,t,n){for(let i in e)r(e,i,t,n)}}exportToSectionFormat(){let e=[];for(let t of this.usedChannels){let n=this.channelDefinitions.get(t);if(n){let r=this.exportChannelToSectionFormat(n),i;i=n.isPrivate?{isPrivate:!0,channelId:t,data:r,merkleRootHash:this.getMerkleRootHash(t)}:{isPrivate:!1,channelId:t,data:r},e.push(i)}}return e}exportChannelToSectionFormat(e){let t=new Av;e.isPrivate&&t.writeByteArray(e.pepper);let n=this.buildDictionary(e.id);t.writeVarUint(n.length);for(let e of n)t.writeString(e);return this.traverseIrObject({channelId:e.id,onObject:(e,n,a,o)=>{o.length>1&&r(e,a),t.writeByte(e.type),t.writeVarUint(i(e.properties))},onArray:(e,n,a,o)=>{o.length>1&&r(e,a),t.writeByte(e.type),t.writeVarUint(i(e.entries))},onPrimitive:(e,n,i,a)=>{r(e,i),t.writeByte(e.type|e.attributes<<3),e.attributes==2?(t.writeByteArray(e.visiblePartsBinary),t.writeByteArray(e.hiddenPartsBinary)):t.writeByteArray(e.valueBinary)}}),t.getByteStream();function r(e,r){t.writeVarUint(r?e.index:n.indexOf(e.name))}function i(t){return t.reduce((t,n)=>t+=n.type==1||n.type==2?+!!n.channels.has(e.id):+(n.channelId===e.id),0)}}importFromSectionFormat(e){this.importedFromProof=!1;for(let t of e){let e=this.channelDefinitions.get(t.channelId);if(e&&(this.importChannelFromSectionFormat(e,t.data),e.isPrivate)){let e=this.getMerkleRootHash(t.channelId);if(e!=t.merkleRootHash)throw Error(`inconsistent Merkle root hash (expected: ${t.merkleRootHash}, computed: ${e})`)}}this.populateChannels()}importChannelFromSectionFormat(t,n){let r=new jv(n);t.isPrivate&&(t.pepper=r.readByteArray(32));let i=r.readVarUint(),a=[];for(let e=0;e<i;e++)a.push(r.readString());o(this.irObject,!1,!0);function o(n,i,o=!1){let l=o?-1:r.readVarUint(),u=i?``:o?`root`:a[l],d=r.readByte(),f=d&7,p=d>>3,m;(f==2||f==1)&&(m=n.find(e=>i?e.index==l:e.name==u));let h,g;if(m===void 0?(g=e.getItemInstance(f),h=!0,i?g.index=l:g.name=u):(g=m,h=!1),f==2)g.channels.add(t.id),s(g);else if(f==1)g.channels.add(t.id),c(g,!h);else{if(p==2){let e;g.visibleParts=[],g.hiddenParts=[],e=r.getPointer();for(let e=r.readVarUint();e--;)g.visibleParts.push(r.readString());g.visiblePartsBinary=r.extractFrom(e),e=r.getPointer();for(let e=r.readVarUint();e--;)g.hiddenParts.push(r.readString());g.hiddenPartsBinary=r.extractFrom(e),g.value=cT.getFullText(g.visibleParts,g.hiddenParts)}else g.value=r.readJsonValue(f),g.valueBinary=r.getLastField();g.attributes=p,g.channelId=t.id}h&&n.push(g)}function s(e){let t=r.readVarUint();e.properties=e.properties||[];for(let n=0;n<t;n++)o(e.properties,!1)}function c(e,t){let n=r.readVarUint();e.entries=e.entries||[];for(let t=0;t<n;t++)o(e.entries,!0);t&&e.entries.sort((e,t)=>e.index-t.index)}}exportToProof(){let t=new e,n=[];for(let e of this.usedChannels){let r=this.channelDefinitions.get(e);if(r===void 0||!r.isPrivate)continue;let i=this.getMerklizer(e),a=i.generateTree(),o=new Set;this.traverseIrObject({channelId:e,onPrimitive:(e,n,r,i)=>{if(!(e.attributes&4)){o.add(e.leafIndex);let n=t.createBranch(i);n.attributes=e.attributes,n.channelId=e.channelId,n.leafIndex=e.leafIndex,e.attributes&2?(n.visibleSalt=e.visibleSalt,n.visibleParts=e.visibleParts,e.attributes&16?n.hiddenHash=e.hiddenHash:(n.hiddenSalt=e.hiddenSalt,n.hiddenParts=e.hiddenParts)):e.attributes&1?(n.salt=e.salt,e.attributes&8?n.hash=e.hash:n.value=e.value):(n.salt=e.salt,n.value=e.value)}}}),n.push({channelId:e,nLeaves:a.nLeaves,witnesses:i.getWitnesses(o)})}return t.object.merkleData=n,t.object}importFromProof(e){this.importedFromProof=!0,this.object=e,this.irObject=e.recordData,this.populateChannels(),this.serializeFields();let t=[];for(let e of this.usedChannels){let n=this.channelDefinitions.get(e);if(n){if(!n.isPrivate)continue;let r=this.getMerklizer(e).generateTree();t.push({channelId:e,rootHash:r.rootHash})}}return t}createBranch(t){let n=this.irObject,r=!1,i;for(let e of t)if(e.type==2||e.type==1){let t=n.find(t=>r?t.index==e.index:t.name==e.name);t===void 0&&(t=a(e),e.type==2?t.properties=[]:t.entries=[],n.push(t)),r=t.type==1,n=r?t.entries:t.properties}else{i=a(e),n.push(i);break}if(i===void 0)throw Error(`internal error: failed to create a branch`);return i;function a(t){let n=e.getItemInstance(t.type);return r?n.index=t.index:n.name=t.name,n}}getMerkleRootHash(e){return this.getMerklizer(e).generateTree().rootHash}getMerklizer(e){let t;if(this.importedFromProof){let n=this.object.merkleData.find(t=>t.channelId==e);t=new sT(n.nLeaves,n.witnesses)}else{let n=this.channelDefinitions.get(e);if(n&&n.isPrivate)t=new oT(n.pepper);else throw Error(`internal error: cannot compute the merklizer for either undefined channel or public channel`)}return this.traverseIrObject({channelId:e,onPrimitive:(e,n,r,i)=>{t.addItem(e,i)}}),t}getIRObject(){return this.irObject}dumpIRObject(){return JSON.stringify(this.irObject,(e,t)=>t instanceof Uint8Array?[`<${t.length} byte(s)>`,...[...t.slice(0,pT)].map(e=>e.toString(16).toUpperCase().padStart(2,`0`))].join(` `)+(t.length>pT?` ..`:``):t instanceof Set?[...t]:t,2)}setChannel(e,t){if(!this.channelDefinitions.has(t))throw`channel ${t} is undefined`;this.processPath(e,e=>{e.channelId=t})}setAsMaskable(e,t){this.processPath(e,e=>{let n=cT.applyMask(e.value,t);e.visibleParts=n.visible,e.hiddenParts=n.hidden,e.attributes=2})}setAsMaskableByRegex(e,t,n){this.processPath(e,e=>{let r=cT.getListFromRegex(e.value,t,n),i=cT.applyMask(e.value,r);e.visibleParts=i.visible,e.hiddenParts=i.hidden,e.attributes=e.attributes&-4|2})}setAsHashable(e){this.processPath(e,e=>{e.attributes=e.attributes&-4|1})}setAsRedacted(e){this.processPath(e,e=>{e.attributes=e.attributes&-29|4})}setAsMasked(e){this.processPath(e,e=>{if(!(e.attributes&2))throw`this item is not maskable`;if(e.attributes&28)throw`the format of this item was already set`;e.attributes=e.attributes&-29|16})}setAsHashed(e){this.processPath(e,e=>{if(!(e.attributes&1))throw`this item is not hashable`;if(e.attributes&28)throw`the format of this item was already set`;e.attributes=e.attributes&-29|8})}processPath(e,t){let n=e.split(/, */);for(let e of n){let n=Qw.parsePrefix(e);if(n.prefix!=`this`)throw`the path must start with 'this'`;Qw.processCallback(this.irObject,n.pathString,t)}}finalizeChannelData(){this.serializeFields(),this.populateChannels()}populateChannels(){this.traverseIrObject({onPrimitive:(e,t,n,r)=>{for(let t=0;t<r.length-1;t++){if(e.channelId===null)throw Error(`field '${Qw.fromParents(r)}' is not assigned to any channel`);(r[t].channels=r[t].channels||new Set).add(e.channelId)}}});let e=this.irObject[0];e===void 0?this.usedChannels=[]:this.usedChannels=[...e.channels].sort((e,t)=>e-t);for(let e of this.usedChannels)if(!this.channelDefinitions.has(e))throw Error(`channel ${e} is undefined`)}buildDictionary(e){let t=new Map;this.traverseIrObject({channelId:e,onObject:(e,t,r,i)=>{i.length>1&&!r&&n(e)},onArray:(e,t,r,i)=>{r||n(e)},onPrimitive:(e,t,r,i)=>{r||n(e)}});function n(e){t.set(e.name,t.has(e.name)?t.get(e.name)+1:1)}let r=[];for(let[e,n]of t)r.push([n,e]);return[...new Map([...r.sort((e,t)=>t[0]-e[0]).map((e,t)=>[e[1],t])]).keys()]}serializeFields(){this.traverseIrObject({onPrimitive:(e,t,n,r)=>{let i=new Av;if(e.attributes&2){i.writeVarUint(e.visibleParts.length);for(let t of e.visibleParts)i.writeString(t);if(e.visiblePartsBinary=i.getByteStream(),!(e.attributes&16)){i.clear(),i.writeVarUint(e.hiddenParts.length);for(let t of e.hiddenParts)i.writeString(t);e.hiddenPartsBinary=i.getByteStream()}}else e.attributes&8||(i.writeJsonValue(e.type,e.value),e.valueBinary=i.getByteStream())}})}traverseIrObject(e){r(this.irObject,e.initialContext,!1,[]);function t(t,n){return e.channelId===void 0||(n?t.channelId===e.channelId:t.channels.has(e.channelId))}function n(n,i,a,o){let s=[...o,n];if(n.type==1){if(t(n,!1)){let t=e.onArray&&e.onArray(n,i,a,s);r(n.entries,t,!0,s)}}else if(n.type==2){if(t(n,!1)){let t=e.onObject&&e.onObject(n,i,a,s);r(n.properties,t,!1,s)}}else t(n,!0)&&e.onPrimitive&&e.onPrimitive(n,i,a,s)}function r(e,t,r,i){for(let a of e)n(a,t,r,i)}}exportToJson(){let e={root:null};return this.traverseIrObject({initialContext:e,onArray:(e,t,n)=>t[n?e.index:e.name]=[],onObject:(e,t,n)=>t[n?e.index:e.name]={},onPrimitive:(e,t,n,r)=>{t[n?e.index:e.name]=e.value}}),e.root===null?{}:e.root}},hT=class{static async encode(e,t){let n=[],r=[],i=e.split(/(\{\{.+?\}\})/);for(let e in i){let a=i[e];if(e&1){let e=a.slice(2,-2).trim(),n=Qw.parsePrefix(e),i=await t(n.blockIndex),o=Qw.toNumericPath(i,n.pathString);r.push(o)}else n.push(a)}for(;n[n.length-1]==``;)n.pop();return{texts:n,fields:r}}static async decode(e,t){for(let n of e.fields){let e=await t(0),r=Qw.fromNumericPath(e,n);console.log(r)}}},gT=2,_T=32,vT={CACHE_HORIZON:gT,HASH_SIZE:_T,ROOT_ANCHORING_HASH:new Uint8Array(_T)},yT={keyDifference:bT,getHashList:xT};function bT(e,t,n){for(let r=e;r<vT.HASH_SIZE*2;r++)if((t[r>>1]^n[2+(r>>1)-(e>>1)])>>4*(r&1)&15)return 1;return 0}function xT(e,t){let n=[],r=2;for(let i=0;i<16;i++)n.push(e&1<<i?t.slice(r,r+=vT.HASH_SIZE):null);return n}async function ST(e,t,n){return await CT(e,t,n,null,0)?N.Hashes.sha256AsBinary(n[0]):null}async function CT(e,t,n,r,i){if(i===vT.HASH_SIZE*2)return r===null||t===null?r===null&&t===null:A.binaryIsEqual(r,t);let a=n[i];if(i&&(r===null||!A.binaryIsEqual(N.Hashes.sha256AsBinary(a),r)))return!1;let o=a[0]<<8|a[1];if(o){let r=yT.getHashList(o,a),s=e[i>>1]>>4*(i&1)&15;return o&1<<s?await CT(e,t,n,r[s],i+1):t===null}if(yT.keyDifference(i,e,a))return t===null;let s=vT.HASH_SIZE*2+1-i>>1;return t!==null&&A.binaryIsEqual(a.slice(2+s),t)}var wT=class{constructor(e){this.transaction=e}getHeight(){return this.transaction.height}getPreviousHistoryHash(){return Dx.from(this.transaction.previousHistoryHash)}getTimestamp(){return this.transaction.timestamp}transferredAt(){return new Date(this.transaction.timestamp*1e3)}getLinkedAccount(){return Dx.from(this.transaction.linkedAccount)}getAmount(){let e=this.isPositive()?1:-1;return hn.createAtomic(this.transaction.amount*e)}getChainReference(){return Dx.from(this.transaction.chainReference)}isPositive(){return!!(this.transaction.type&1)}isNegative(){return!this.isPositive()}isEarnedFees(){return this.isEarnedBlockFees()||this.isEarnedTxFees()}isEarnedBlockFees(){return this.transaction.type===3}isEarnedTxFees(){return this.transaction.type===1}isPaidBlockFees(){return this.transaction.type===2}isPaidTxFees(){return this.transaction.type===0}isReceivedIssuance(){return this.transaction.type===5}isSentIssuance(){return this.transaction.type===4}isSale(){return this.transaction.type==6}isSentPayment(){return this.transaction.type==8}isPaidFees(){return this.isPaidBlockFees()||this.isPaidTxFees()}isPurchase(){return this.transaction.type==7}isReceivedPayment(){return this.transaction.type==9}},TT=class{transactionByHeight;constructor(){this.transactionByHeight=new Map}setTransactionAtHeight(e,t){this.transactionByHeight.set(e,t)}containsTransactions(){return this.transactionByHeight.size>0}getTransactionHeights(){return Array.from(this.transactionByHeight.keys())}getAllTransactions(){return Array.from(this.transactionByHeight.values()).map(e=>new wT(e))}getNumberOfTransactions(){return this.transactionByHeight.size}containsTransactionAtHeight(e){return this.transactionByHeight.has(e)}getTransactionAtHeight(e){let t=this.transactionByHeight.get(e);if(t===void 0)throw new i(`No transaction found at height ${e}`);return new wT(t)}},ET={[U.PROTOCOL_VIRTUAL_BLOCKCHAIN]:`PROTOCOL_VIRTUAL_BLOCKCHAIN`,[U.NODE_VIRTUAL_BLOCKCHAIN]:`NODE_VIRTUAL_BLOCKCHAIN`,[U.APPLICATION_VIRTUAL_BLOCKCHAIN]:`APPLICATION_VIRTUAL_BLOCKCHAIN`,[U.ORGANIZATION_VIRTUAL_BLOCKCHAIN]:`ORGANIZATION_VIRTUAL_BLOCKCHAIN`,[U.APP_LEDGER_VIRTUAL_BLOCKCHAIN]:`APP_LEDGER_VIRTUAL_BLOCKCHAIN`,[U.ACCOUNT_VIRTUAL_BLOCKCHAIN]:`ACCOUNT_VIRTUAL_BLOCKCHAIN`},DT=class{static getVirtualBlockchainLabelFromVirtualBlockchainType(e){return ET[e]}},OT=function(e){return e.AUTH_BY_PUBLIC_KEY=`WALLET_REQUEST_AUTH_BY_PUBLIC_KEY`,e.DATA_APPROVAL=`WALLET_REQUEST_DATA_APPROVAL`,e}({}),kT=function(e){return e.AUTH_BY_PUBLIC_KEY=`WALLET_RESPONSE_AUTH_BY_PUBLIC_KEY`,e.DATA_APPROVAL=`WALLET_RESPONSE_DATA_APPROVAL`,e}({}),AT=L({type:F(OT.AUTH_BY_PUBLIC_KEY),base64EncodedChallenge:R()}),jT=L({type:F(OT.DATA_APPROVAL),anchorRequestId:R(),serverUrl:R()}),MT=rm(`type`,[AT,jT]),NT=L({type:F(kT.AUTH_BY_PUBLIC_KEY),publicKey:R(),signature:R()}),PT=L({type:F(kT.DATA_APPROVAL),b64VbHash:R(),b64MbHash:R(),height:I()}),FT=rm(`type`,[NT,PT]),IT=100,LT=function(e){return e.REQUEST=`CLIENT_BRIDGE_REQUEST`,e.UPDATE_QR=`CLIENT_BRIDGE_UPDATE_QR`,e.CONNECTION_TOKEN=`CLIENT_BRIDGE_CONNECTION_TOKEN`,e.FORWARDED_ANSWER=`CLIENT_BRIDGE_FORWARDED_ANSWER`,e.GET_CONNECTION_INFO=`CLIENT_BRIDGE_GET_CONNECTION_INFO`,e.ANSWER=`CLIENT_BRIDGE_ANSWER`,e.CONNECTION_INFO=`CLIENT_BRIDGE_CONNECTION_INFO`,e.CONNECTION_ACCEPTED=`CLIENT_BRIDGE_CONNECTION_ACCEPTED`,e.FORWARDED_REQUEST=`CLIENT_BRIDGE_FORWARDED_REQUEST`,e.ERROR=`CLIENT_BRIDGE_ERROR`,e}({}),RT=L({base64EncodedQrId:R(),timestamp:I(),serverUrl:B(R(),Lp(100))}),zT=L({type:F(LT.REQUEST),walletRequest:MT,deviceId:km(),withToken:I()}),BT=L({type:F(LT.UPDATE_QR),base64EncodedQrId:R(),timestamp:I()}),VT=L({type:F(LT.CONNECTION_TOKEN),token:km()}),HT=L({type:F(LT.FORWARDED_ANSWER),walletResponse:FT}),UT=L({type:F(LT.GET_CONNECTION_INFO),base64EncodedQrId:R()}),WT=L({type:F(LT.ANSWER),walletResponse:FT}),GT=L({type:F(LT.CONNECTION_INFO)}),KT=L({type:F(LT.CONNECTION_ACCEPTED),base64EncodedQrId:R()}),qT=L({type:F(LT.FORWARDED_REQUEST),walletRequest:MT}),JT=L({type:F(LT.ERROR),errorMessage:R()}),YT=rm(`type`,[zT,BT,VT,HT,UT,WT,GT,KT,qT,JT]),XT=class{static encode(e){return px(z(YT,e))}static decode(e){return z(YT,Ib(e))}},ZT=class{static validateClientBridgeMessage(e){return z(YT,e)}},QT=class{static encode(e){return px(z(RT,e))}static decode(e){return z(RT,Ib(e))}},$T=$p(R(),L({networkName:Zp(R()),nodes:$p(R(),L({nodeName:Zp(R()),hostname:R(),rpcEndpoint:R(),p2pEndpoint:R(),trusted:Zp(Gp(),!1),nodeId:R()}))})),eE=L({state:Bh,microblockHashes:P(H())}),tE=function(e){return e.APPROVAL_HANDSHAKE=`WALLET_OPERATOR_REQUEST_APPROVAL_HANDSHAKE`,e.ACTOR_KEY=`WALLET_OPERATOR_REQUEST_ACTOR_KEY`,e.APPROVAL_SIGNATURE=`WALLET_OPERATOR_REQUEST_APPROVAL_SIGNATURE`,e}({}),nE=function(e){return e.ERROR=`WALLET_OPERATOR_RESPONSE_ERROR`,e.ACTOR_KEY_REQUIRED=`WALLET_OPERATOR_RESPONSE_ACTOR_KEY_REQUIRED`,e.APPROVAL_DATA=`WALLET_OPERATOR_RESPONSE_APPROVAL_DATA`,e.APPROVAL_SIGNATURE=`WALLET_OPERATOR_RESPONSE_APPROVAL_SIGNATURE`,e}({}),rE=L({type:F(tE.APPROVAL_HANDSHAKE),anchorRequestId:R()}),iE=L({type:F(tE.ACTOR_KEY),anchorRequestId:R(),actorSignaturePublicKey:R(),actorPkePublicKey:R()}),aE=L({type:F(tE.APPROVAL_SIGNATURE),anchorRequestId:R(),b64Signature:R()}),oE=rm(`type`,[rE,iE,aE]),sE=L({type:F(nE.ERROR),errorMessage:Zp(R(),``)}),cE=L({type:F(nE.ACTOR_KEY_REQUIRED),b64GenesisSeed:R()}),lE=L({type:F(nE.APPROVAL_DATA),b64SerializedMicroblock:R()}),uE=L({type:F(nE.APPROVAL_SIGNATURE),b64VbHash:R(),b64MbHash:R(),height:I()}),dE=rm(`type`,[sE,cE,lE,uE]),fE=class{static encodeRequest(e){return px(z(MT,e))}static decodeRequest(e){return z(MT,Ib(e))}static encodeResponse(e){return px(z(FT,e))}static decodeResponse(e){return z(FT,Ib(e))}},pE=class{static validateWalletRequest(e){return z(MT,e)}static validateWalletResponse(e){return z(FT,e)}},mE=class{constructor(e=new pg){this.stringEncoder=e}decode(e){let t=this.getPrefix(),n=gg.decode(e);if(n.matchesKeys(...t))return this.stringEncoder.decode(n.getValue());throw new l(`Invalid seed format`)}encode(e){let t=this.getPrefix();return gg.encode(...t,this.stringEncoder.encode(e))}getPrefix(){return[`SEED`]}},hE=class extends mE{getPrefix(){return[`ACCOUNT`,`SEED`]}},gE=class e{static createFromAbciResponse(t){return new e(t.list)}constructor(e){this.transactions=e}containsTransactions(){return this.transactions.length>0}getTransactions(){return this.transactions.map(e=>new _E(e))}},_E=class{constructor(e){this.transaction=e}getHeight(){return this.transaction.height}getPreviousHistoryHash(){return Dx.from(this.transaction.previousHistoryHash)}getTimestamp(){return this.transaction.timestamp}transferredAt(){return new Date(this.transaction.timestamp*1e3)}getTransactionTypeLabel(){return this.isEarnedFees()?`Earned fees`:this.isPaidFees()?`Paid fees`:this.isSentPayment()?`Sent payment`:this.isReceivedPayment()?`Received payment`:this.isPurchase()?`Purchase`:this.isSentIssuance()?`Sent issuance`:this.isReceivedIssuance()?`Received issuance`:this.isSale()?`Sale`:`Transaction`}getLinkedAccount(){return Dx.from(this.transaction.linkedAccount)}getAmount(){let e=this.isPositive()?1:-1;return hn.createAtomic(this.transaction.amount*e)}getChainReference(){return Dx.from(this.transaction.chainReference)}isPositive(){return!!(this.transaction.type&1)}isNegative(){return!this.isPositive()}isEarnedFees(){return this.isEarnedBlockFees()||this.isEarnedTxFees()}isEarnedBlockFees(){return this.transaction.type===3}isEarnedTxFees(){return this.transaction.type===1}isPaidBlockFees(){return this.transaction.type===2}isPaidTxFees(){return this.transaction.type===0}isReceivedIssuance(){return this.transaction.type===5}isSentIssuance(){return this.transaction.type===4}isSale(){return this.transaction.type==6}isSentPayment(){return this.transaction.type==8}isPaidFees(){return this.isPaidBlockFees()||this.isPaidTxFees()}isPurchase(){return this.transaction.type==7}isReceivedPayment(){return this.transaction.type==9}},vE=class extends mE{getPrefix(){return[`ACTOR`,`SEED`]}},yE=class e{static createFromAccountStateAbciResponse(t){return new e(t.balance,t.locks)}logger=k.getLogger([`accounts`,e.name]);balanceInAtomics;locks;constructor(t=0,n=[]){this.initialBalance=t,this.initialLocks=n,this.balanceInAtomics=t,this.locks=n,this.logger=lo([`node`,`accounts`,e.name])}setBalance(e){this.balanceInAtomics=e}getBalanceAsAtomics(){return this.balanceInAtomics}getBalance(){return hn.createAtomic(this.balanceInAtomics)}setLocks(e){this.locks=[...e]}getLocks(){return this.locks}hasNodeStakingLocks(){return this.locks.some(e=>e.type==Wh.NodeStaking)}getNodeStakingLocks(){return this.locks.filter(e=>e.type==Wh.NodeStaking)}getNodeStakingLock(e){return this.getNodeStakingLocks().find(t=>A.binaryIsEqual(t.parameters.validatorNodeId,e))}getNodeStakingLockOrFail(e){let t=this.getNodeStakingLock(e);if(t==null)throw Error(`Staking not found for node ${A.binaryToHexa(e)}`);return t}getNodeStakingLockAmount(e){let t=this.getNodeStakingLock(e);return t===void 0?0:t.lockedAmountInAtomics}hasEscrowLocks(){return this.locks.some(e=>e.type==Wh.Escrow)}getEscrowLocks(){return this.locks.filter(e=>e.type==Wh.Escrow)}hasVestingLocks(){return this.locks.some(e=>e.type==Wh.Vesting)}getVestingLocks(){return this.locks.filter(e=>e.type==Wh.Vesting)}removeExpiredEscrowLocks(){this.removeExpiredLocks(Wh.Escrow)}removeExpiredVestingLocks(){this.removeExpiredLocks(Wh.Vesting)}removeExpiredStakingLocks(){this.removeExpiredLocks(Wh.NodeStaking)}removeExpiredLocks(e){this.locks=this.locks.filter(t=>!(t.type==e&&t.lockedAmountInAtomics==0))}addSpendableTokens(e){this.balanceInAtomics+=e}addVestedTokens(e,t){this.balanceInAtomics+=e,this.locks.push({type:Wh.Vesting,lockedAmountInAtomics:e,parameters:t})}addEscrowedTokens(e,t){this.balanceInAtomics+=e,this.locks.push({type:Wh.Escrow,lockedAmountInAtomics:e,parameters:t})}removeEscrowLock(e){let t=this.locks.findIndex(t=>t.type==Wh.Escrow&&A.binaryIsEqual(t.parameters.escrowIdentifier,e));if(t==-1)throw Error(`Escrow not found`);let n=this.locks[t].lockedAmountInAtomics;return this.locks.splice(t,1),n}addNodeStaking(e,t){let n=this.getBreakdown();if(e<0)throw Error(`Stake amount must be greater than 0`);if(e>n.stakeable)throw Error(`Cannot stake more than ${n.stakeable} atomic units`);let r=this.getNodeStakingLock(t);r===void 0?(this.logger.info(`Creating new staking of ${e} atomics for node ${A.binaryToHexa(t)}`),this.locks.push({type:Wh.NodeStaking,lockedAmountInAtomics:e,parameters:{validatorNodeId:t,plannedUnlockAmountInAtomics:0,plannedUnlockTimestamp:0,slashed:!1,plannedSlashingAmountInAtomics:0,plannedSlashingTimestamp:0}})):(this.logger.info(`Adding ${e} atomics to existing staking for node ${A.binaryToHexa(t)}`),r.lockedAmountInAtomics+=e)}planNodeStakingUnlock(e,t,n){let r=this.getNodeStakingLockOrFail(n);if(r.parameters.plannedUnlockAmountInAtomics!=0)throw Error(`There's already a pending staking unlock for this node`);let i=A.addDaysToTimestamp(t,0);this.logger.info(`Planned staking unlock of ${e} atomics on account ${A.binaryToHexa(n)}`),r.parameters.plannedUnlockAmountInAtomics=e,r.parameters.plannedUnlockTimestamp=i}applyNodeStakingUnlocks(e){let t=this.getNodeStakingLocks(),n=0;for(let r of t)if(r.parameters.plannedUnlockTimestamp!=0&&e>=r.parameters.plannedUnlockTimestamp){let e=r.parameters.plannedUnlockAmountInAtomics;this.removeNodeStaking(e,r.parameters.validatorNodeId),n+=e}return this.removeExpiredStakingLocks(),n}setSlashing(e,t){let n=this.getNodeStakingLockOrFail(e);this.logger.info(`Setting slashing of ${n.lockedAmountInAtomics} atomics for node ${A.binaryToHexa(e)}, effective on ${new Date(t*1e3).toISOString()}`),n.parameters.slashed=!0,n.parameters.plannedSlashingAmountInAtomics=n.lockedAmountInAtomics,n.parameters.plannedSlashingTimestamp=t}cancelNodeSlashing(e){let t=this.getNodeStakingLockOrFail(e);t.parameters.slashed?(this.logger.info(`Cancelled slashing of node ${A.binaryToHexa(e)}`),t.parameters.slashed=!1,t.parameters.plannedSlashingAmountInAtomics=0,t.parameters.plannedSlashingTimestamp=0):this.logger.warn(`No pending slashing for node ${A.binaryToHexa(e)}`)}applyNodeSlashing(e){let t=this.getNodeStakingLocks(),n=0;for(let r of t)if(r.parameters.slashed){let t=r.parameters.plannedSlashingAmountInAtomics;t>0&&r.parameters.plannedSlashingTimestamp!=0&&e>=r.parameters.plannedSlashingTimestamp&&(this.logger.info(`Applying slashing of ${t} atomics on node ${A.binaryToHexa(r.parameters.validatorNodeId)}`),r.lockedAmountInAtomics-=t,this.balanceInAtomics-=t,n+=t,r.parameters.slashed=!1,r.parameters.plannedSlashingTimestamp=0,r.parameters.plannedSlashingAmountInAtomics=0)}return this.adjustVesting(),this.removeExpiredStakingLocks(),n}adjustVesting(){let e=this.getBreakdown().vested,t=e-this.balanceInAtomics;if(t>0){let n=this.getVestingLocks(),r=0;for(let i of n){let n=Math.floor(t*i.lockedAmountInAtomics/e);i.lockedAmountInAtomics-=n,r+=n}for(let e of n)r<t&&e.lockedAmountInAtomics>0&&(e.lockedAmountInAtomics--,r++);this.removeExpiredVestingLocks()}}removeNodeStaking(e,t){let n=this.getNodeStakingLockOrFail(t);if(e<0)throw Error(`Unstake amount must be greater than 0`);if(e>n.lockedAmountInAtomics)throw Error(`Cannot unstake more than ${n.lockedAmountInAtomics} atomic units`);n.lockedAmountInAtomics-=e}applyLinearVesting(e){let t=this.getBreakdown().releasable,n=0,r=this.getVestingLocks();for(let i of r){let r=i.parameters.initialVestedAmountInAtomics,a=i.parameters.cliffStartTimestamp,o=i.parameters.cliffDurationDays,s=i.parameters.vestingDurationDays,c=A.addDaysToTimestamp(a,o),l=Math.min(A.timestampDifferenceInDays(c,e),s);if(this.logger.debug(`start date: {cliffStartDate}, initial amount: {initialAmount}, cliff during {cliffDurationDays} day(s), vesting during {vestingDurationDays} day(s)`,()=>({cliffStartDate:new Date(a*1e3).toISOString(),initialAmount:r,cliffDurationDays:o,vestingDurationDays:s})),this.logger.debug(`cliff end date: {cliffEndDay}, today: {today}, elapsed time in vesting: {elapsed} day(s)`,()=>({cliffEndDay:new Date(c*1e3).toISOString(),today:new Date(e*1e3).toISOString(),elapsed:l})),l>0){let e=r-i.lockedAmountInAtomics,a=Math.floor(r*l/s),o=Math.min(a-e,t);this.logger.debug(`already released: ${e}, max. release: ${a}, released today: ${o}`),i.lockedAmountInAtomics-=o,t-=o,n+=o}else this.logger.debug(`nothing is released today`)}return this.removeExpiredVestingLocks(),n}getBreakdown(){let e=new Map;for(let t of this.locks){let n=e.get(t.type)||0;e.set(t.type,n+t.lockedAmountInAtomics)}let t=e.get(Wh.Escrow)||0,n=e.get(Wh.Vesting)||0,r=e.get(Wh.NodeStaking)||0,i=this.balanceInAtomics-r-t,a=Math.max(0,n-r),o=t+Math.max(n,r),s=this.balanceInAtomics-o;return{balance:this.balanceInAtomics,escrowed:t,vested:n,releasable:a,staked:r,stakeable:i,locked:o,spendable:s}}getSpendable(){return hn.createAtomic(this.getBreakdown().spendable)}getVested(){return hn.createAtomic(this.getBreakdown().vested)}getStakeable(){return hn.createAtomic(this.getBreakdown().stakeable)}getStaked(){return hn.createAtomic(this.getBreakdown().staked)}},bE=class{static encoder=new ex({tagUint8Array:!0,mapsAsObjects:!0});static encodeRequest(e){return this.encoder.encode(z(oE,e))}static decodeRequest(e){return z(oE,this.encoder.decode(e))}static encodeResponse(e){return this.encoder.encode(z(dE,e))}static decodeResponse(e){return z(dE,this.encoder.decode(e))}},xE=class{static validateRequest(e){return z(oE,e)}static validateResponse(e){return z(dE,e)}},SE=class extends mE{getPrefix(){return[`WALLET`,`SEED`]}},CE=class e{constructor(e){this.actorSeed=e}static createFromAccountSeedAndVbSeed(t,n){return new e(A.binaryFrom(t,n))}static parseFromString(t,n=new mE){return new e(n.decode(t))}encode(e=new mE){return e.encode(this.actorSeed)}getSeedAsBytes(){return this.actorSeed}async getPrivateSignatureKey(e){let t=Uv.createDefaultKDF(),n=this.encoderStringAsBytes(`SIG`),r=t.deriveKeyNoSalt(this.actorSeed,n,32);return Uv.createPrivateSignatureKey(e,r)}async getPublicSignatureKey(e){return(await this.getPrivateSignatureKey(e)).getPublicKey()}getPrivateDecryptionKey(e){let t=Uv.createDefaultKDF(),n=this.encoderStringAsBytes(`PKE`),r=t.deriveKeyNoSalt(this.actorSeed,n,64);return Uv.createPrivateDecryptionKey(e,r)}async getPublicEncryptionKey(e){return(await this.getPrivateDecryptionKey(e)).getPublicKey()}encoderStringAsBytes(e){return new TextEncoder().encode(e)}},wE=class e{static createFromWalletSeedAndNonce(t,n){let r=A.binaryFrom(t,n),i=Uv.createDefaultKDF(),a=this.encoderStringAsBytes(`ACCOUNT_SEED`);return new e(i.deriveKeyNoSalt(r,a,32))}static parseFromString(t,n=new mE){return new e(n.decode(t))}encode(e=new mE){return e.encode(this.accountSeed)}constructor(e){this.accountSeed=e}deriveActorFromVbSeed(e){return CE.createFromAccountSeedAndVbSeed(this.accountSeed,e)}async getPrivateSignatureKey(t){let n=Uv.createDefaultKDF();Uv.createSignatureScheme(t);let r=e.encoderStringAsBytes(`SIG_${t}`),i=n.deriveKeyNoSalt(this.accountSeed,r,32);return Uv.createPrivateSignatureKey(t,i)}async getPublicSignatureKey(e){return(await this.getPrivateSignatureKey(e)).getPublicKey()}async getPrivateDecryptionKey(t){let n=Uv.createDefaultKDF(),r=e.encoderStringAsBytes(`PKE_${t}`),i=n.deriveKeyNoSalt(this.accountSeed,r,64);return Uv.createPrivateDecryptionKey(t,i)}async getPublicEncryptionKey(e){return(await this.getPrivateDecryptionKey(e)).getPublicKey()}static encoderStringAsBytes(e){return new TextEncoder().encode(e)}getSeedAsBytes(){return this.accountSeed}getAccountSeed(){return this.accountSeed}static concatWalletSeedWith(e,t){return new Uint8Array([...e,...t])}static numberToUint8Array(e,t=4){let n=new ArrayBuffer(t),r=new DataView(n);return t===1?r.setUint8(0,e):t===2?r.setUint16(0,e,!1):t===4?r.setUint32(0,e,!1):t===8&&r.setBigUint64(0,BigInt(e),!1),new Uint8Array(n)}getActor(e){return CE.createFromAccountSeedAndVbSeed(this.accountSeed,e)}},TE=class e{static generateWallet(){return new e(Fu(64))}static fromSeed(t){if(!(t instanceof Uint8Array))throw new i(`Seed must be a Uint8Array, got ${typeof t}`);return new e(t)}static parseFromString(t,n=new mE){if(typeof t!=`string`)throw new i(`Seed must be a string, got ${typeof t}`);return new e(n.decode(t))}encode(e=new mE){return e.encode(this.walletSeed)}constructor(e){this.walletSeed=e}getDefaultAccountCrypto(){return wE.createFromWalletSeedAndNonce(this.walletSeed,0)}async generateActorPrivateSignatureKey(e,t){let n=Uv.createDefaultKDF(),r=new Uint8Array([...this.walletSeed,...t]),i=new TextEncoder,a=n.deriveKeyNoSalt(r,i.encode(`SIG`),32);return Uv.createPrivateSignatureKey(e,a)}async generateActorPrivateDecryptionKey(e,t){let n=Uv.createDefaultKDF(),r=new Uint8Array([...this.walletSeed,...t]),i=new TextEncoder,a=n.deriveKeyNoSalt(r,i.encode(`PKE`),32);return Uv.createPrivateDecryptionKey(e,a)}getPrivateSignatureKey(e=Ya.SECP256K1){let t=Uv.createDefaultKDF(),n=Uv.createSignatureScheme(e).expectedSeedSize(),r=wE.encoderStringAsBytes(`SIG_${e}`),i=t.deriveKeyNoSalt(this.walletSeed,r,n);return Uv.createPrivateSignatureKey(e,i)}getDecapsulationKey(e){return new Uv().createDecapsulationKey(e,this.walletSeed)}getAccountSeed(e){return this.getAccount(e).getAccountSeed()}getAccount(e){return wE.createFromWalletSeedAndNonce(this.walletSeed,e)}getAccountPrivateSignatureKey(e,t){return wE.createFromWalletSeedAndNonce(this.walletSeed,t).getPrivateSignatureKey(e)}getActorPrivateSignatureKey(e,t,n){return wE.createFromWalletSeedAndNonce(this.walletSeed,n).deriveActorFromVbSeed(t).getPrivateSignatureKey(e)}getVirtualBlockchainDecapsulationKey(e,t){return new Uv().createVirtualBlockchainDecapsulationKey(e,this.walletSeed,t)}getSeedAsBytes(){return this.walletSeed}};exports.ACCOUNT_ALLOWED_TRANSFERS=Gr,exports.ACCOUNT_BLOCK_FEES=Ur,exports.ACCOUNT_BURNT_TOKENS=Vr,exports.ACCOUNT_CREATION=ma,exports.ACCOUNT_ESCROW_SETTLEMENT=va,exports.ACCOUNT_ESCROW_TRANSFER=_a,exports.ACCOUNT_HISTORY=ai,exports.ACCOUNT_NAMES=Wr,exports.ACCOUNT_PUBLIC_KEY=fa,exports.ACCOUNT_STAKE=ya,exports.ACCOUNT_STANDARD=Hr,exports.ACCOUNT_STATE=ii,exports.ACCOUNT_TOKEN_ISSUANCE=pa,exports.ACCOUNT_TRANSFER=ha,exports.ACCOUNT_VESTING_TRANSFER=ga,exports.AES256GCMSymmetricEncryptionKey=Ig,exports.AES256GCMSymmetricEncryptionScheme=Fg,exports.ALL_SCHEMAS=aa,exports.ALL_SECTIONS_SCHEMAS=Ga,exports.APP_CREATION=ka,exports.APP_DESCRIPTION=Aa,exports.APP_LEDGER_ACTOR_CREATION=Fa,exports.APP_LEDGER_ACTOR_SUBSCRIPTION=za,exports.APP_LEDGER_ALLOWED_PKE_SCHEMES=Na,exports.APP_LEDGER_ALLOWED_SIG_SCHEMES=Ma,exports.APP_LEDGER_AUTHOR=Ha,exports.APP_LEDGER_CHANNEL_CREATION=Ia,exports.APP_LEDGER_CHANNEL_INVITATION=Ra,exports.APP_LEDGER_CREATION=Pa,exports.APP_LEDGER_ENDORSEMENT_REQUEST=Ua,exports.APP_LEDGER_PRIVATE_CHANNEL_DATA=Va,exports.APP_LEDGER_PUBLIC_CHANNEL_DATA=Ba,exports.APP_LEDGER_SHARED_SECRET=La,exports.ARRAY=am,exports.AbciQueryEncoder=Hw,exports.AbciRequestSchema=gw,exports.AbciRequestType=$,exports.AbciResponseSchema=Vw,exports.AbciResponseType=vw,exports.AbstractPrivateDecryptionKey=Sv,exports.AbstractProvider=KC,exports.AbstractPublicEncryptionKey=xv,exports.AbstractPublicKeyEncryptionScheme=bv,exports.AccountBreakdownSchema=Qh,exports.AccountByPublicKeyHashAbciResponseSchema=Mw,exports.AccountCreationSectionSchema=qm,exports.AccountCrypto=wE,exports.AccountEscrowSettlementSectionSchema=Zm,exports.AccountEscrowTransferSectionSchema=Xm,exports.AccountHistoryAbciResponseSchema=jw,exports.AccountHistoryEntrySchema=tg,exports.AccountHistorySchema=ng,exports.AccountHistoryView=TT,exports.AccountInformationSchema=eg,exports.AccountInternalState=Ex,exports.AccountInternalStateUpdater=Fx,exports.AccountMicroblockStructureChecker=$x,exports.AccountNotFoundForAccountHashError=_e,exports.AccountNotFoundForPublicKeyError=ge,exports.AccountNotFoundForPublicKeyHashError=xe,exports.AccountPublicKeySectionSchema=Gm,exports.AccountSeedEncoder=hE,exports.AccountStakeSectionSchema=Qm,exports.AccountStateAbciResponseSchema=Aw,exports.AccountStateSchema=$h,exports.AccountTokenIssuanceSectionSchema=Km,exports.AccountTransaction=_E,exports.AccountTransactions=gE,exports.AccountTransferSectionSchema=Jm,exports.AccountUnstakeSectionSchema=$m,exports.AccountUpdateSchema=ig,exports.AccountUpdatesAbciResponseSchema=Rw,exports.AccountVb=eS,exports.AccountVestingTransferSectionSchema=Ym,exports.AccountVirtualBlockchainInternalStateSchema=wh,exports.AccountVirtualBlockchainStateSchema=Ph,exports.ActorAlreadyDefinedError=re,exports.ActorCrypto=CE,exports.ActorNotDefinedError=oe,exports.ActorNotInvitedError=he,exports.ActorNotSubscribedError=Te,exports.ActorSeedEncoder=vE,exports.ActorType=BS,exports.Aes=su,exports.AllowedAdditionalWriterSectionSchema=Vm,exports.AlreadySubscribedError=S,exports.AppLedgerLocalStateUpdaterV1=zx,exports.AppLedgerMicroblockBuildRequestSchema=JS,exports.AppLedgerMicroblockBuildRequestValidation=YS,exports.ApplicationCreationSectionSchema=sh,exports.ApplicationDescriptionSectionSchema=ch,exports.ApplicationInternalState=Ox,exports.ApplicationInternalStateUpdater=Ix,exports.ApplicationLedgerActorCreationSectionSchema=fh,exports.ApplicationLedgerActorInvitationStateSchema=kh,exports.ApplicationLedgerActorSchema=jh,exports.ApplicationLedgerActorSubscriptionSectionSchema=gh,exports.ApplicationLedgerAllowedPkeSchemesSectionSchema=uh,exports.ApplicationLedgerAllowedSigSchemesSectionSchema=lh,exports.ApplicationLedgerAuthorSectionSchema=yh,exports.ApplicationLedgerChannelCreationSectionSchema=ph,exports.ApplicationLedgerChannelInvitationSectionSchema=hh,exports.ApplicationLedgerChannelSchema=Oh,exports.ApplicationLedgerCreationSectionSchema=dh,exports.ApplicationLedgerEndorsementRequestSectionSchema=bh,exports.ApplicationLedgerInternalState=kx,exports.ApplicationLedgerInternalStateObjectSchema=Mh,exports.ApplicationLedgerMicroblockBuilder=zS,exports.ApplicationLedgerMicroblockStructureChecker=cS,exports.ApplicationLedgerNotFoundError=Ce,exports.ApplicationLedgerPrivateChannelDataSectionSchema=vh,exports.ApplicationLedgerPublicChannelDataSectionSchema=_h,exports.ApplicationLedgerSharedSecretSectionSchema=mh,exports.ApplicationLedgerSharedSecretStateSchema=Ah,exports.ApplicationLedgerVb=IS,exports.ApplicationLedgerVirtualBlockchainStateSchema=Rh,exports.ApplicationMicroblockStructureChecker=tS,exports.ApplicationNotFoundError=ye,exports.ApplicationVBInternalStateObjectSchema=Dh,exports.ApplicationVb=nS,exports.ApplicationVirtualBlockchainStateSchema=Lh,exports.Assertion=sS,exports.AuxiliarySignatureSectionSchema=Bm,exports.AwaitMicroblockAnchoringAbciRequestSchema=nw,exports.BIN256=_m,exports.BINARY=gm,exports.BK_EARNED_BLOCK_FEES=Dr,exports.BK_EARNED_TX_FEES=Er,exports.BK_NAMES=Br,exports.BK_PAID_BLOCK_FEES=_r,exports.BK_PAID_TX_FEES=gr,exports.BK_PLUS=hr,exports.BK_PURCHASE=kr,exports.BK_RECEIVED_ESCROW=Mr,exports.BK_RECEIVED_ESCROW_REFUND=Nr,exports.BK_RECEIVED_EXPIRED_ESCROW=Pr,exports.BK_RECEIVED_ISSUANCE=Or,exports.BK_RECEIVED_PAYMENT=Ar,exports.BK_RECEIVED_SLASHED_TOKENS=Fr,exports.BK_RECEIVED_VESTING=jr,exports.BK_REFERENCES=zr,exports.BK_REF_BLOCK=Ir,exports.BK_REF_MICROBLOCK=Lr,exports.BK_REF_SECTION=Rr,exports.BK_SALE=yr,exports.BK_SENT_ESCROW=Sr,exports.BK_SENT_ESCROW_REFUND=Cr,exports.BK_SENT_EXPIRED_ESCROW=wr,exports.BK_SENT_ISSUANCE=vr,exports.BK_SENT_PAYMENT=br,exports.BK_SENT_SLASHED_TOKENS=Tr,exports.BK_SENT_VESTING=xr,exports.BLOCK_CONTENT=di,exports.BLOCK_INFORMATION=ui,exports.BOOLEAN=lm,exports.BalanceAvailability=yE,exports.Base32=OC,exports.Base64=sg,exports.BaseHCVSignatureDecoder=Ty,exports.BaseHCVSignatureEncoder=Jv,exports.BasePrivateSignatureKey=zg,exports.BasePublicSignatureKey=Bg,exports.BlockContentAbciResponseSchema=Cw,exports.BlockInformationAbciResponseSchema=xw,exports.BlockModifiedAccountsAbciResponseSchema=Lw,exports.BlockchainError=b,exports.BlockchainUtils=xx,exports.BytesSignatureEncoder=QS,exports.BytesToBase64Encoder=pg,exports.BytesToHexEncoder=mg,exports.CBORCryptoBinaryEncoder=yx,exports.CENTITOKEN=sr,Object.defineProperty(exports,`CHAIN`,{enumerable:!0,get:function(){return Hn}}),exports.CMTSToken=hn,exports.CONTRACT_PARAMETER_SCHEMA=Jr,exports.CONTRACT_SCHEMA=Yr,exports.CannotSubscribeError=le,exports.CarmentisError=o,exports.CarmentisErrorCode=n,exports.ChainInformationAbciResponseSchema=bw,exports.ChannelAlreadyDefinedError=ae,exports.ChannelNotDefinedError=se,exports.ClientBridgeEncoder=XT,exports.ClientBridgeMessageSchema=YT,exports.ClientBridgeMessageSchema_Answer=WT,exports.ClientBridgeMessageSchema_ConnectionAccepted=KT,exports.ClientBridgeMessageSchema_ConnectionInfo=GT,exports.ClientBridgeMessageSchema_ConnectionToken=VT,exports.ClientBridgeMessageSchema_Error=JT,exports.ClientBridgeMessageSchema_ForwardedAnswer=HT,exports.ClientBridgeMessageSchema_ForwardedRequest=qT,exports.ClientBridgeMessageSchema_GetConnectionInfo=UT,exports.ClientBridgeMessageSchema_Request=zT,exports.ClientBridgeMessageSchema_UpdateQr=BT,exports.ClientBridgeMessageType=LT,exports.ClientBridgeValidation=ZT,exports.CometBFTErrorCode=GC,exports.CometBFTNodeWebSocket=Zw,exports.CometBFTPublicKey=ZS,exports.CometBFTPublicKeyConverter=Kw,exports.ConstraintNameByConstraint=Yx,exports.Crypto=N,exports.CryptoEncoderFactory=bx,exports.CryptoError=d,exports.CryptoSchemeFactory=Uv,exports.CryptographicHashSchemeId=nv,exports.CurrencyConverterFactory=HC,exports.CurrentActorNotFoundError=pe,exports.CustomSectionSchema=Rm,Object.defineProperty(exports,`DATA`,{enumerable:!0,get:function(){return gn}}),exports.DEF=Ka,exports.DecryptionError=f,Object.defineProperty(exports,`ECO`,{enumerable:!0,get:function(){return ir}}),exports.ERROR=qr,Object.defineProperty(exports,`ERRORS`,{enumerable:!0,get:function(){return qa}}),exports.Economics=LC,exports.EconomicsError=v,exports.Ed25519PrivateSignatureKey=Hv,exports.Ed25519PublicSignatureKey=Vv,exports.Ed25519SignatureScheme=Bv,exports.EmptyBlockError=u,exports.EncoderFactory=fg,exports.EnvApiKeyPkmsCredentialProvider=_y,exports.ErrorAbciResponseSchema=yw,exports.EscrowLockSchema=Kh,exports.EscrowParametersSchema=Gh,exports.Euros=VC,exports.EurosToCMTSConverter=UC,exports.ExpirationDate=qC,exports.ExtendedSymmetricEncryptionKey=Lg,exports.FIXED_GAS_FEE=fr,exports.FORMAT=Vn,exports.FeesCalculationFormulaFactory=Tx,exports.FirstFeesFormula=wx,exports.GAS_ATOMS_PER_GAS=mr,exports.GAS_PER_BYTE=pr,exports.GenericSymmetricKeyEncoder=hC,exports.GenesisSnapshotAbciResponseSchema=Fw,exports.GetAccountByPublicKeyHashAbciRequestSchema=ow,exports.GetAccountHistoryAbciRequestSchema=aw,exports.GetAccountStateAbciRequestSchema=iw,exports.GetAccountUpdatesAbciRequestSchema=fw,exports.GetBlockContentAbciRequestSchema=QC,exports.GetBlockInformationAbciRequestSchema=ZC,exports.GetBlockModifiedAccountsAbciRequestSchema=dw,exports.GetChainInformationAbciRequestSchema=XC,exports.GetGenesisSnapshotAbciRequestSchema=lw,exports.GetMicroblockBodysAbciRequestSchema=rw,exports.GetMicroblockInformationAbciRequestSchema=tw,exports.GetMicroblockInformationByHeightAbciRequestSchema=pw,exports.GetMicroblockProofAbciRequestSchema=hw,exports.GetObjectListAbciRequestSchema=cw,exports.GetRawBlockContentAbciRequestSchema=uw,exports.GetSerializedMicroblockByHeightAbciRequestSchema=mw,exports.GetValidatorNodeByAddressAbciRequestSchema=sw,exports.GetVirtualBlockchainStateAbciRequestSchema=$C,exports.GetVirtualBlockchainUpdateAbciRequestSchema=ew,exports.HASHABLE=Fn,exports.HASHED=zn,exports.HASH_STR=vm,exports.HCVCodec=gg,exports.HCVDecoded=hg,exports.HCVPkeEncoder=Wv,exports.HKDF=_v,exports.HandlerBasedSignatureEncoder=Ay,exports.Hash=Dx,exports.Hashes=Qc,exports.INITIAL_OFFER=lr,exports.IllegalParameterError=i,exports.IllegalStateError=a,exports.IllegalUsageError=r,exports.IntermediateRepresentation=mT,exports.InternalError=m,exports.InternalStateFactory=Px,exports.InternalStateUpdaterFactory=Ux,exports.InvalidActorError=ie,exports.InvalidChannelError=fe,exports.InvalidTokenUnitError=y,exports.JsonSchema=uS,exports.JwkSignatureEncoder=pC,exports.KeyDerivationFunction=hv,exports.KeyDerivationFunctionSchemeId=gv,exports.KeyExchangeSchemeId=Rg,exports.LOCK_TYPE_COUNT=Uh,exports.LockSchema=Zh,exports.LockType=Wh,exports.Logger=k,exports.MAGIC_STRING=Un,exports.MASKABLE=In,exports.MASKED=Bn,exports.MAXIMUM_GAS_PRICE=dr,exports.MAX_MICROBLOCK_FUTURE_DELAY=er,exports.MAX_MICROBLOCK_PAST_DELAY=$n,exports.MB_STATUS_PREVIOUS_HASH_ERROR=rr,exports.MB_STATUS_TIMESTAMP_ERROR=nr,exports.MB_STATUS_UNRECOVERABLE_ERROR=tr,exports.MICROBLOCK_BODY=_i,exports.MICROBLOCK_HEADER=hi,exports.MICROBLOCK_HEADER_BODY_HASH_OFFSET=pi,exports.MICROBLOCK_HEADER_PREVIOUS_HASH_OFFSET=fi,exports.MICROBLOCK_HEADER_SIZE=mi,exports.MICROBLOCK_SECTION=gi,exports.MICROBLOCK_VB_INFORMATION=vi,exports.MILLITOKEN=cr,exports.MINIMUM_GAS_PRICE=ur,exports.MLDSA65HCVSignatureDecoder=Oy,exports.MLDSA65HCVSignatureEncoder=Zv,exports.MLDSA65PrivateSignatureKey=Ug,exports.MLDSA65PublicSignatureKey=Hg,exports.MLDSA65SignatureScheme=Vg,exports.MLDsa=yd,exports.MLKem=Ud,exports.MSG_ACCOUNT_BY_PUBLIC_KEY_HASH=Vi,exports.MSG_ACCOUNT_HISTORY=zi,exports.MSG_ACCOUNT_STATE=Li,exports.MSG_AWAIT_MICROBLOCK_ANCHORING=Mi,exports.MSG_BLOCK_CONTENT=Ti,exports.MSG_BLOCK_INFORMATION=Ci,exports.MSG_CHAIN_INFORMATION=xi,exports.MSG_ERROR=yi,exports.MSG_GENESIS_SNAPSHOT=qi,exports.MSG_GET_ACCOUNT_BY_PUBLIC_KEY_HASH=Bi,exports.MSG_GET_ACCOUNT_HISTORY=Ri,exports.MSG_GET_ACCOUNT_STATE=Ii,exports.MSG_GET_BLOCK_CONTENT=wi,exports.MSG_GET_BLOCK_INFORMATION=Si,exports.MSG_GET_CHAIN_INFORMATION=bi,exports.MSG_GET_GENESIS_SNAPSHOT=Ki,exports.MSG_GET_MICROBLOCK_BODYS=Pi,exports.MSG_GET_MICROBLOCK_INFORMATION=Ai,exports.MSG_GET_OBJECT_LIST=Wi,exports.MSG_GET_VALIDATOR_NODE_BY_ADDRESS=Hi,exports.MSG_GET_VIRTUAL_BLOCKCHAIN_STATE=Ei,exports.MSG_GET_VIRTUAL_BLOCKCHAIN_UPDATE=Oi,exports.MSG_MICROBLOCK_ANCHORING=Ni,exports.MSG_MICROBLOCK_BODYS=Fi,exports.MSG_MICROBLOCK_INFORMATION=ji,exports.MSG_OBJECT_LIST=Gi,exports.MSG_VALIDATOR_NODE_BY_ADDRESS=Ui,exports.MSG_VIRTUAL_BLOCKCHAIN_STATE=Di,exports.MSG_VIRTUAL_BLOCKCHAIN_UPDATE=ki,exports.MaskManager=cT,exports.MemoryProvider=JC,exports.MerkleLeaf=kS,exports.MerkleLeafTypeEnum=Q,exports.MerkleRecord=NS,exports.MerkleTree=OS,exports.Merklizer=aT,exports.MessageManager=hT,exports.MessageSerializer=PC,exports.MessageUnserializer=FC,exports.MicroBlockNotFoundError=te,exports.MicroBlockNotFoundInBlockError=ne,exports.MicroBlockNotFoundInVirtualBlockchainAtHeightError=x,exports.Microblock=Kx,exports.MicroblockAnchoringAbciResponseSchema=Dw,exports.MicroblockBodyItemSchema=Ow,exports.MicroblockBodySchema=Sh,exports.MicroblockBodysAbciResponseSchema=kw,exports.MicroblockConsistencyChecker=RS,exports.MicroblockHeaderSchema=Mm,exports.MicroblockInformationAbciResponseSchema=Ew,exports.MicroblockInformationSchema=Hh,exports.MicroblockProofAbciResponseSchema=Bw,exports.MicroblockProofSchema=_w,exports.MicroblockStructSchema=Gx,exports.MicroblockStructureCheckingError=s,exports.MlKemCiphertextEncoder=Pv,exports.MlKemPrivateDecryptionKey=Iv,exports.MlKemPublicEncryptionKey=Fv,exports.MlKemPublicKeyEncryptionScheme=Cv,exports.NODE_MESSAGES=D,exports.NULL=um,exports.NUMBER=cm,exports.N_VIRTUAL_BLOCKCHAINS=Zn,exports.NativeHCVSignatureDecoder=Ey,exports.NativeHCVSignatureEncoder=Yv,exports.NetworkProvider=Uw,exports.NetworksFileSchema=$T,exports.NewBlockEventSchema=Xw,exports.NoSharedSecretError=De,exports.NodeConnectionRefusedError=g,exports.NodeEndpointClosedWhileCatchingUpError=_,exports.NodeError=h,exports.NodeStakingLockSchema=Xh,exports.NodeStakingParametersSchema=Yh,exports.NotAllowedPkeSchemeError=de,exports.NotAllowedSignatureSchemeError=ue,exports.NotAuthenticatedError=c,exports.NotImplementedError=ee,exports.NullMemoryProvider=Ww,exports.NullNetworkProvider=Gw,exports.OBJECT=om,exports.ORG_CREATION=Ea,exports.ORG_DESCRIPTION=Da,exports.ObjectListAbciResponseSchema=Pw,exports.OnChainChannelSchema=vS,exports.OnChainItemListSchema=bS,exports.OnChainItemSchema=yS,exports.OnChainRecord=FS,exports.Optional=LS,exports.OrganizationCreationSectionSchema=ah,exports.OrganizationDescriptionSectionSchema=oh,exports.OrganizationInternalState=Mx,exports.OrganizationInternalStateUpdater=Hx,exports.OrganizationMicroblockStructureChecker=Zx,exports.OrganizationNotFoundError=ve,exports.OrganizationVBInternalStateObjectSchema=Th,exports.OrganizationVb=Qx,exports.OrganizationVirtualBlockchainStateSchema=Fh,exports.PBKDF2=lv,exports.PROPERTIES=Ln,exports.PROTOCOL_CREATION=la,exports.PROTOCOL_UPDATE=ua,exports.PROTOCOL_VARIABLES=si,exports.PROTOCOL_VB_STATE=ci,exports.PROTOCOL_VERSION=Wn,exports.ParsingError=l,exports.PasswordBasedKeyDerivationFunction=cv,exports.PasswordBasedKeyDerivationFunctionSchemeId=sv,exports.PathManager=Qw,exports.PepperMerklizer=oT,exports.PkeEncoderFactory=mC,exports.PkmsSecp256k1PrivateSignatureKey=yy,exports.PkmsSecp256k1PublicSignatureKey=by,exports.PkmsSecp256k1SignatureDecoder=ky,exports.PkmsSecp256k1SignatureEncoder=xy,exports.ProofDocument=DS,exports.ProofDocumentVB=lS,exports.ProofFieldTypeEnum=xS,exports.ProofRecord=AS,exports.ProofVerificationFailedError=ce,exports.ProofVerificationResult=WC,exports.ProofWrapperSchema=TS,exports.ProtocolCreationSectionSchema=Hm,exports.ProtocolError=we,exports.ProtocolInternalState=jx,exports.ProtocolInternalStateUpdater=Vx,exports.ProtocolMicroblockStructureChecker=aS,exports.ProtocolUpdateSchema=Lm,exports.ProtocolUpdateSectionSchema=Um,exports.ProtocolVBInternalStateObjectSchema=Ch,exports.ProtocolVariablesSchema=Im,exports.ProtocolVariablesSectionSchema=Wm,exports.ProtocolVb=oS,exports.ProtocolVirtualBlockchainStateSchema=zh,exports.Provider=qw,exports.ProviderFactory=Jw,exports.PublicKeyEncryptionAlgorithmId=yv,exports.PublicKeyEncryptionSchemeId=vv,exports.RADIX_CST=vT,exports.RECORD_DESCRIPTION=ri,exports.REDACTED=Rn,exports.RPCNodeStatusResponseSchema=YC,exports.RadixUtils=yT,exports.Random=Zs,exports.RawBlockContentAbciResponseSchema=Iw,exports.ReadStream=jv,exports.Record=PS,exports.RecordActorAssignationSchema=WS,exports.RecordActorSchema=VS,exports.RecordByChannels=jS,exports.RecordChannelAssignationSchema=US,exports.RecordChannelSchema=HS,exports.RecordHashableFieldSchema=qS,exports.RecordMaskableFieldSchema=KS,exports.RecordMaskedPartSchema=GS,exports.RequestedAccountUpdateSchema=rg,exports.RetentionCostBreakdownSchema=Fm,exports.RetentionCostCalculator=Cx,exports.RetentionPolicySchema=Pm,exports.RetentionTierSchema=Nm,Object.defineProperty(exports,`SCHEMAS`,{enumerable:!0,get:function(){return Kr}}),Object.defineProperty(exports,`SECTIONS`,{enumerable:!0,get:function(){return oa}}),exports.SIGNATURE=sa,exports.SIGNATURE_SCHEMA=ca,exports.STRING=sm,exports.SaltMerklizer=sT,exports.SaltShaker=MS,exports.SchemaSerializer=Mv,exports.SchemaUnserializer=Nv,exports.SchemaValidator=IC,exports.Scrypt=xC,exports.Secp256k1=mp,exports.Secp256k1HCVSignatureDecoder=Dy,exports.Secp256k1HCVSignatureEncoder=Xv,exports.Secp256k1PrivateSignatureKey=zv,exports.Secp256k1PublicSignatureKey=Rv,exports.Secp256k1SignatureScheme=Lv,exports.SectionConstraint=Z,exports.SectionError=me,exports.SectionLabel=Rx,exports.SectionNotFoundError=Ee,exports.SectionSchema=xh,exports.SectionType=O,exports.SeedEncoder=mE,exports.SelfProvidedApiKeyPkmsCredentialProvider=CC,exports.SerializationError=Oe,exports.SerializedMicroblockByHeightAbciResponseSchema=zw,exports.ServerNetworkProvider=Yw,exports.Sha256CryptographicHash=rv,exports.SharedKeyDecryptionError=p,exports.SignatureAlgorithmId=SC,exports.SignatureCacheDisabled=wC,exports.SignatureCacheEntry=TC,exports.SignatureCacheMonothread=EC,exports.SignatureSchemeId=Ya,exports.SignatureSectionSchema=zm,exports.StructureChecker=Xx,exports.SymmetricEncryptionSchemeId=Pg,exports.TOKEN=or,exports.TOKEN_NAME=ar,exports.TYPE_ARRAY=vn,exports.TYPE_ARRAY_OF=Nn,exports.TYPE_BIN256=An,exports.TYPE_BINARY=kn,exports.TYPE_BOOLEAN=Sn,exports.TYPE_HASH_STR=jn,exports.TYPE_MAIN=Mn,exports.TYPE_NAMES=Pn,exports.TYPE_NULL=Cn,exports.TYPE_NUMBER=xn,exports.TYPE_OBJECT=yn,exports.TYPE_STRING=bn,exports.TYPE_UINT16=Tn,exports.TYPE_UINT24=En,exports.TYPE_UINT32=Dn,exports.TYPE_UINT48=On,exports.TYPE_UINT8=wn,exports.TYPE_UNKNOWN=_n,exports.ThrownErrorMicroblockSearchFailureFallback=qx,exports.TimestampValidationResult=Wx,exports.TokenUnit=pn,exports.TokenUnitLabel=mn,exports.Transaction=wT,exports.TransformationTypeEnum=fS,exports.TypeChecker=io,exports.TypeCheckingFailureError=to,exports.TypeEnum=mS,exports.TypeManager=ro,exports.UINT16=fm,exports.UINT24=pm,exports.UINT32=mm,exports.UINT48=hm,exports.UINT8=dm,exports.Utf8Encoder=Qa,exports.Utils=A,exports.VB_ACCOUNT=Kn,exports.VB_APPLICATION=Yn,exports.VB_APP_LEDGER=Xn,exports.VB_NAME=Qn,exports.VB_ORGANIZATION=Jn,exports.VB_PROTOCOL=Gn,exports.VB_STATES=li,exports.VB_VALIDATOR_NODE=qn,exports.VIRTUAL_BLOCKCHAIN_STATE=oi,exports.VN_APPROVAL=wa,exports.VN_COMETBFT_PUBLIC_KEY_DECLARATION=Sa,exports.VN_CREATION=xa,exports.VN_RPC_ENDPOINT=Ca,exports.ValidatorNodeApprovalSectionSchema=rh,exports.ValidatorNodeByAddressAbciResponseSchema=Nw,exports.ValidatorNodeCometbftPublicKeyDeclarationSectionSchema=th,exports.ValidatorNodeCreationSectionSchema=eh,exports.ValidatorNodeInternalState=Nx,exports.ValidatorNodeInternalStateUpdater=Bx,exports.ValidatorNodeMicroblockStructureChecker=rS,exports.ValidatorNodeNotFoundError=be,exports.ValidatorNodeRpcEndpointSectionSchema=nh,exports.ValidatorNodeSlashingCancellationSectionSchema=ih,exports.ValidatorNodeVBInternalStateObjectSchema=Eh,exports.ValidatorNodeVb=iS,exports.ValidatorNodeVirtualBlockchainStateSchema=Ih,exports.VestingLockSchema=Jh,exports.VestingParametersSchema=qh,exports.VirtualBlockchain=Jx,exports.VirtualBlockchainInfoSchema=Vh,exports.VirtualBlockchainLabel=DT,exports.VirtualBlockchainNotFoundError=Se,exports.VirtualBlockchainSharedPropertiesSchema=Nh,exports.VirtualBlockchainStateAbciResponseSchema=ww,exports.VirtualBlockchainStateSchema=Bh,exports.VirtualBlockchainStatusSchema=eE,exports.VirtualBlockchainType=U,exports.VirtualBlockchainUpdateAbciResponseSchema=Tw,exports.WIMSG_ANSWER=ea,exports.WIMSG_CONNECTION_ACCEPTED=na,exports.WIMSG_CONNECTION_INFO=ta,exports.WIMSG_CONNECTION_TOKEN=Zi,exports.WIMSG_FORWARDED_ANSWER=Qi,exports.WIMSG_FORWARDED_REQUEST=ra,exports.WIMSG_GET_CONNECTION_INFO=$i,exports.WIMSG_REQUEST=Yi,exports.WIMSG_UPDATE_QR=Xi,exports.WI_INVALID_SIGNATURE=Ja,exports.WI_MAX_SERVER_URL_LENGTH=IT,exports.WI_MESSAGES=ia,exports.WI_QR_CODE=Ji,exports.WalletCrypto=TE,exports.WalletInteractiveAnchoringEncoder=bE,exports.WalletInteractiveAnchoringRequestActorKeySchema=iE,exports.WalletInteractiveAnchoringRequestApprovalHandshakeSchema=rE,exports.WalletInteractiveAnchoringRequestApprovalSignatureSchema=aE,exports.WalletInteractiveAnchoringRequestSchema=oE,exports.WalletInteractiveAnchoringRequestType=tE,exports.WalletInteractiveAnchoringResponseActorKeyRequiredSchema=cE,exports.WalletInteractiveAnchoringResponseApprovalDataSchema=lE,exports.WalletInteractiveAnchoringResponseApprovalSignatureSchema=uE,exports.WalletInteractiveAnchoringResponseErrorSchema=sE,exports.WalletInteractiveAnchoringResponseSchema=dE,exports.WalletInteractiveAnchoringResponseType=nE,exports.WalletInteractiveAnchoringValidation=xE,exports.WalletRequestAuthByPublicKeySchema=AT,exports.WalletRequestBasedApplicationLedgerMicroblockBuilder=XS,exports.WalletRequestDataApprovalSchema=jT,exports.WalletRequestEncoder=fE,exports.WalletRequestSchema=MT,exports.WalletRequestType=OT,exports.WalletRequestValidation=pE,exports.WalletResponseAuthByPublicKeySchema=NT,exports.WalletResponseDataApprovalSchema=PT,exports.WalletResponseSchema=FT,exports.WalletResponseType=kT,exports.WalletSeedEncoder=SE,exports.WiQrCodeEncoder=QT,exports.WiQrCodeSchema=RT,exports.WriteStream=Av,exports.accountId=Am,exports.array=ym,exports.bin256=km,exports.binary=Om,exports.boolean=xm,exports.height=jm,exports.number=V,exports.string=bm,exports.uint16=wm,exports.uint24=Tm,exports.uint32=Em,exports.uint48=Dm,exports.uint8=Cm,exports.uint8array=H,exports.verifyRadixProof=ST;
|