@chainsafe/libp2p-gossipsub
Version:
A typescript implementation of gossipsub
2 lines • 255 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ChainsafeLibp2PGossipsub = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var ChainsafeLibp2PGossipsub=(()=>{var Ll=Object.create;var nr=Object.defineProperty;var Ul=Object.getOwnPropertyDescriptor;var Fl=Object.getOwnPropertyNames;var Vl=Object.getPrototypeOf,Hl=Object.prototype.hasOwnProperty;var Po=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),ve=(s,e)=>{for(var t in e)nr(s,t,{get:e[t],enumerable:!0})},Do=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Fl(e))!Hl.call(s,n)&&n!==t&&nr(s,n,{get:()=>e[n],enumerable:!(r=Ul(e,n))||r.enumerable});return s};var Co=(s,e,t)=>(t=s!=null?Ll(Vl(s)):{},Do(e||!s||!s.__esModule?nr(t,"default",{value:s,enumerable:!0}):t,s)),Ol=s=>Do(nr({},"__esModule",{value:!0}),s);var Na=Po(ds=>{"use strict";var df="[object ArrayBuffer]",ut=class s{static isArrayBuffer(e){return Object.prototype.toString.call(e)===df}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let r=s.toUint8Array(e),n=s.toUint8Array(t);if(r.length!==n.byteLength)return!1;for(let i=0;i<r.length;i++)if(r[i]!==n[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let r=0;for(let o of t)r+=o.byteLength;let n=new Uint8Array(r),i=0;for(let o of t){let a=this.toUint8Array(o);n.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(n,e[e.length-1]):n.buffer}},Yi="string",pf=/^[0-9a-f]+$/i,gf=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,mf=/^[a-zA-Z0-9-_]+$/,Sr=class{static fromString(e){let t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r.buffer}static toString(e){let t=ut.toUint8Array(e),r="";for(let i=0;i<t.length;i++)r+=String.fromCharCode(t[i]);return decodeURIComponent(escape(r))}},Ve=class{static toString(e,t=!1){let r=ut.toArrayBuffer(e),n=new DataView(r),i="";for(let o=0;o<r.byteLength;o+=2){let a=n.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let r=new ArrayBuffer(e.length*2),n=new DataView(r);for(let i=0;i<e.length;i++)n.setUint16(i*2,e.charCodeAt(i),t);return r}},Br=class s{static isHex(e){return typeof e===Yi&&pf.test(e)}static isBase64(e){return typeof e===Yi&&gf.test(e)}static isBase64Url(e){return typeof e===Yi&&mf.test(e)}static ToString(e,t="utf8"){let r=ut.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(r);case"binary":return this.ToBinary(r);case"hex":return this.ToHex(r);case"base64":return this.ToBase64(r);case"base64url":return this.ToBase64Url(r);case"utf16le":return Ve.toString(r,!0);case"utf16":case"utf16be":return Ve.toString(r);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Ve.fromString(e,!0);case"utf16":case"utf16be":return Ve.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=ut.toUint8Array(e);if(typeof btoa<"u"){let r=this.ToString(t,"binary");return btoa(r)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Sr.fromString(e);case"utf16":case"utf16be":return Ve.fromString(e);case"utf16le":case"usc2":return Ve.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Sr.toString(e);case"utf16":case"utf16be":return Ve.toString(e);case"utf16le":case"usc2":return Ve.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);return r.buffer}static ToBinary(e){let t=ut.toUint8Array(e),r="";for(let n=0;n<t.length;n++)r+=String.fromCharCode(t[n]);return r}static ToHex(e){let t=ut.toUint8Array(e),r="",n=t.length;for(let i=0;i<n;i++){let o=t[i];o<16&&(r+="0"),r+=o.toString(16)}return r}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n=n+2){let i=t.slice(n,n+2);r[n/2]=parseInt(i,16)}return r.buffer}static ToUtf16String(e,t=!1){return Ve.toString(e,t)}static FromUtf16String(e,t=!1){return Ve.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let r=0;r<t;r++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Br.DEFAULT_UTF8_ENCODING="utf8";function bf(s,...e){let t=arguments[0];for(let r=1;r<arguments.length;r++){let n=arguments[r];for(let i in n)t[i]=n[i]}return t}function wf(...s){let e=s.map(n=>n.byteLength).reduce((n,i)=>n+i),t=new Uint8Array(e),r=0;return s.map(n=>new Uint8Array(n)).forEach(n=>{for(let i of n)t[r++]=i}),t.buffer}function yf(s,e){if(!(s&&e)||s.byteLength!==e.byteLength)return!1;let t=new Uint8Array(s),r=new Uint8Array(e);for(let n=0;n<s.byteLength;n++)if(t[n]!==r[n])return!1;return!0}ds.BufferSourceConverter=ut;ds.Convert=Br;ds.assign=bf;ds.combine=wf;ds.isEqual=yf});var cl=Po((Tw,al)=>{"use strict";function Y(s,t){var t=t||{};this._capacity=t.capacity,this._head=0,this._tail=0,Array.isArray(s)?this._fromArray(s):(this._capacityMask=3,this._list=new Array(4))}Y.prototype.peekAt=function(e){var t=e;if(t===(t|0)){var r=this.size();if(!(t>=r||t<-r))return t<0&&(t+=r),t=this._head+t&this._capacityMask,this._list[t]}};Y.prototype.get=function(e){return this.peekAt(e)};Y.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]};Y.prototype.peekFront=function(){return this.peek()};Y.prototype.peekBack=function(){return this.peekAt(-1)};Object.defineProperty(Y.prototype,"length",{get:function(){return this.size()}});Y.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};Y.prototype.unshift=function(e){if(arguments.length===0)return this.size();var t=this._list.length;return this._head=this._head-1+t&this._capacityMask,this._list[this._head]=e,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};Y.prototype.shift=function(){var e=this._head;if(e!==this._tail){var t=this._list[e];return this._list[e]=void 0,this._head=e+1&this._capacityMask,e<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),t}};Y.prototype.push=function(e){if(arguments.length===0)return this.size();var t=this._tail;return this._list[t]=e,this._tail=t+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};Y.prototype.pop=function(){var e=this._tail;if(e!==this._head){var t=this._list.length;this._tail=e-1+t&this._capacityMask;var r=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&e>1e4&&e<=t>>>2&&this._shrinkArray(),r}};Y.prototype.removeOne=function(e){var t=e;if(t===(t|0)&&this._head!==this._tail){var r=this.size(),n=this._list.length;if(!(t>=r||t<-r)){t<0&&(t+=r),t=this._head+t&this._capacityMask;var i=this._list[t],o;if(e<r/2){for(o=e;o>0;o--)this._list[t]=this._list[t=t-1+n&this._capacityMask];this._list[t]=void 0,this._head=this._head+1+n&this._capacityMask}else{for(o=r-1-e;o>0;o--)this._list[t]=this._list[t=t+1+n&this._capacityMask];this._list[t]=void 0,this._tail=this._tail-1+n&this._capacityMask}return i}}};Y.prototype.remove=function(e,t){var r=e,n,i=t;if(r===(r|0)&&this._head!==this._tail){var o=this.size(),a=this._list.length;if(!(r>=o||r<-o||t<1)){if(r<0&&(r+=o),t===1||!t)return n=new Array(1),n[0]=this.removeOne(r),n;if(r===0&&r+t>=o)return n=this.toArray(),this.clear(),n;r+t>o&&(t=o-r);var c;for(n=new Array(t),c=0;c<t;c++)n[c]=this._list[this._head+r+c&this._capacityMask];if(r=this._head+r&this._capacityMask,e+t===o){for(this._tail=this._tail-t+a&this._capacityMask,c=t;c>0;c--)this._list[r=r+1+a&this._capacityMask]=void 0;return n}if(e===0){for(this._head=this._head+t+a&this._capacityMask,c=t-1;c>0;c--)this._list[r=r+1+a&this._capacityMask]=void 0;return n}if(r<o/2){for(this._head=this._head+e+t+a&this._capacityMask,c=e;c>0;c--)this.unshift(this._list[r=r-1+a&this._capacityMask]);for(r=this._head-1+a&this._capacityMask;i>0;)this._list[r=r-1+a&this._capacityMask]=void 0,i--;e<0&&(this._tail=r)}else{for(this._tail=r,r=r+t+a&this._capacityMask,c=o-(t+e);c>0;c--)this.push(this._list[r++]);for(r=this._tail;i>0;)this._list[r=r+1+a&this._capacityMask]=void 0,i--}return this._head<2&&this._tail>1e4&&this._tail<=a>>>2&&this._shrinkArray(),n}}};Y.prototype.splice=function(e,t){var r=e;if(r===(r|0)){var n=this.size();if(r<0&&(r+=n),!(r>n))if(arguments.length>2){var i,o,a,c=arguments.length,h=this._list.length,f=2;if(!n||r<n/2){for(o=new Array(r),i=0;i<r;i++)o[i]=this._list[this._head+i&this._capacityMask];for(t===0?(a=[],r>0&&(this._head=this._head+r+h&this._capacityMask)):(a=this.remove(r,t),this._head=this._head+r+h&this._capacityMask);c>f;)this.unshift(arguments[--c]);for(i=r;i>0;i--)this.unshift(o[i-1])}else{o=new Array(n-(r+t));var l=o.length;for(i=0;i<l;i++)o[i]=this._list[this._head+r+t+i&this._capacityMask];for(t===0?(a=[],r!=n&&(this._tail=this._head+r+h&this._capacityMask)):(a=this.remove(r,t),this._tail=this._tail-l+h&this._capacityMask);f<c;)this.push(arguments[f++]);for(i=0;i<l;i++)this.push(o[i])}return a}else return this.remove(r,t)}};Y.prototype.clear=function(){this._list=new Array(this._list.length),this._head=0,this._tail=0};Y.prototype.isEmpty=function(){return this._head===this._tail};Y.prototype.toArray=function(){return this._copyArray(!1)};Y.prototype._fromArray=function(e){var t=e.length,r=this._nextPowerOf2(t);this._list=new Array(r),this._capacityMask=r-1,this._tail=t;for(var n=0;n<t;n++)this._list[n]=e[n]};Y.prototype._copyArray=function(e,t){var r=this._list,n=r.length,i=this.length;if(t=t|i,t==i&&this._head<this._tail)return this._list.slice(this._head,this._tail);var o=new Array(t),a=0,c;if(e||this._head>this._tail){for(c=this._head;c<n;c++)o[a++]=r[c];for(c=0;c<this._tail;c++)o[a++]=r[c]}else for(c=this._head;c<this._tail;c++)o[a++]=r[c];return o};Y.prototype._growArray=function(){if(this._head!=0){var e=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=e}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1};Y.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1};Y.prototype._nextPowerOf2=function(e){var t=Math.log(e)/Math.log(2),r=1<<t+1;return Math.max(r,4)};al.exports=Y});var zd={};ve(zd,{GossipSub:()=>On,gossipsub:()=>Od,multicodec:()=>Hd});var Gn=Symbol.for("@libp2p/peer-id");var Ut="StrictSign",Xt="StrictNoSign",xe;(function(s){s.Accept="accept",s.Ignore="ignore",s.Reject="reject"})(xe||(xe={}));var ce=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},Yt=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var ir=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Qt=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var No=(s,...e)=>{try{[...e]}catch{}};var or=class extends EventTarget{#e=new Map;constructor(){super(),No(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,r){super.addEventListener(e,t,r);let n=this.#e.get(e);n==null&&(n=[],this.#e.set(e,n)),n.push({callback:t,once:(r!==!0&&r!==!1&&r?.once)??!1})}removeEventListener(e,t,r){super.removeEventListener(e.toString(),t??null,r);let n=this.#e.get(e);n!=null&&(n=n.filter(({callback:i})=>i!==t),this.#e.set(e,n))}dispatchEvent(e){let t=super.dispatchEvent(e),r=this.#e.get(e.type);return r==null||(r=r.filter(({once:n})=>!n),this.#e.set(e.type,r)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Ro=Symbol.for("@libp2p/service-capabilities"),Lo=Symbol.for("@libp2p/service-dependencies");var jn={};ve(jn,{base58btc:()=>te,base58flickr:()=>$l});var yp=new Uint8Array(0);function Uo(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;t<s.byteLength;t++)if(s[t]!==e[t])return!1;return!0}function rt(s){if(s instanceof Uint8Array&&s.constructor.name==="Uint8Array")return s;if(s instanceof ArrayBuffer)return new Uint8Array(s);if(ArrayBuffer.isView(s))return new Uint8Array(s.buffer,s.byteOffset,s.byteLength);throw new Error("Unknown type, must be binary type")}function Fo(s){return new TextEncoder().encode(s)}function Vo(s){return new TextDecoder().decode(s)}function zl(s,e){if(s.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<s.length;n++){var i=s.charAt(n),o=i.charCodeAt(0);if(t[o]!==255)throw new TypeError(i+" is ambiguous");t[o]=n}var a=s.length,c=s.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var m=0,p=0,b=0,y=d.length;b!==y&&d[b]===0;)b++,m++;for(var w=(y-b)*f+1>>>0,I=new Uint8Array(w);b!==y;){for(var x=d[b],B=0,E=w-1;(x!==0||B<p)&&E!==-1;E--,B++)x+=256*I[E]>>>0,I[E]=x%a>>>0,x=x/a>>>0;if(x!==0)throw new Error("Non-zero carry");p=B,b++}for(var _=w-p;_!==w&&I[_]===0;)_++;for(var k=c.repeat(m);_<w;++_)k+=s.charAt(I[_]);return k}function g(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var m=0;if(d[m]!==" "){for(var p=0,b=0;d[m]===c;)p++,m++;for(var y=(d.length-m)*h+1>>>0,w=new Uint8Array(y);d[m];){var I=t[d.charCodeAt(m)];if(I===255)return;for(var x=0,B=y-1;(I!==0||x<b)&&B!==-1;B--,x++)I+=a*w[B]>>>0,w[B]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");b=x,m++}if(d[m]!==" "){for(var E=y-b;E!==y&&w[E]===0;)E++;for(var _=new Uint8Array(p+(y-E)),k=p;E!==y;)_[k++]=w[E++];return _}}}function u(d){var m=g(d);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:g,decode:u}}var Gl=zl,ql=Gl,Oo=ql;var qn=class{name;prefix;baseEncode;constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Kn=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,r){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return zo(this,e)}},Wn=class{decoders;constructor(e){this.decoders=e}or(e){return zo(this,e)}decode(e){let t=e[0],r=this.decoders[t];if(r!=null)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function zo(s,e){return new Wn({...s.decoders??{[s.prefix]:s},...e.decoders??{[e.prefix]:e}})}var $n=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new qn(e,t,r),this.decoder=new Kn(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function es({name:s,prefix:e,encode:t,decode:r}){return new $n(s,e,t,r)}function vt({name:s,prefix:e,alphabet:t}){let{encode:r,decode:n}=Oo(t,s);return es({prefix:e,name:s,encode:r,decode:i=>rt(n(i))})}function Kl(s,e,t,r){let n={};for(let f=0;f<e.length;++f)n[e[f]]=f;let i=s.length;for(;s[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let l=n[s[f]];if(l===void 0)throw new SyntaxError(`Non-${r} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function Wl(s,e,t){let r=e[e.length-1]==="=",n=(1<<t)-1,i="",o=0,a=0;for(let c=0;c<s.length;++c)for(a=a<<8|s[c],o+=8;o>t;)o-=t,i+=e[n&a>>o];if(o!==0&&(i+=e[n&a<<t-o]),r)for(;i.length*t&7;)i+="=";return i}function Q({name:s,prefix:e,bitsPerChar:t,alphabet:r}){return es({prefix:e,name:s,encode(n){return Wl(n,r,t)},decode(n){return Kl(n,r,t,s)}})}var te=vt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),$l=vt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Zn={};ve(Zn,{base32:()=>Ft,base32hex:()=>Xl,base32hexpad:()=>Ql,base32hexpadupper:()=>eu,base32hexupper:()=>Yl,base32pad:()=>Zl,base32padupper:()=>Jl,base32upper:()=>jl,base32z:()=>tu});var Ft=Q({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),jl=Q({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Zl=Q({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Jl=Q({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Xl=Q({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Yl=Q({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ql=Q({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),eu=Q({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),tu=Q({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var su=Ko,Go=128,ru=127,nu=~ru,iu=Math.pow(2,31);function Ko(s,e,t){e=e||[],t=t||0;for(var r=t;s>=iu;)e[t++]=s&255|Go,s/=128;for(;sν)e[t++]=s&255|Go,s>>>=7;return e[t]=s|0,Ko.bytes=t-r+1,e}var ou=Jn,au=128,qo=127;function Jn(s,r){var t=0,r=r||0,n=0,i=r,o,a=s.length;do{if(i>=a)throw Jn.bytes=0,new RangeError("Could not decode varint");o=s[i++],t+=n<28?(o&qo)<<n:(o&qo)*Math.pow(2,n),n+=7}while(o>=au);return Jn.bytes=i-r,t}var cu=Math.pow(2,7),lu=Math.pow(2,14),uu=Math.pow(2,21),hu=Math.pow(2,28),fu=Math.pow(2,35),du=Math.pow(2,42),pu=Math.pow(2,49),gu=Math.pow(2,56),mu=Math.pow(2,63),bu=function(s){return s<cu?1:s<lu?2:s<uu?3:s<hu?4:s<fu?5:s<du?6:s<pu?7:s<gu?8:s<mu?9:10},wu={encode:su,decode:ou,encodingLength:bu},yu=wu,Ms=yu;function Ps(s,e=0){return[Ms.decode(s,e),Ms.decode.bytes]}function ts(s,e,t=0){return Ms.encode(s,e,t),e}function ss(s){return Ms.encodingLength(s)}function He(s,e){let t=e.byteLength,r=ss(s),n=r+ss(t),i=new Uint8Array(n+t);return ts(s,i,0),ts(t,i,r),i.set(e,n),new rs(s,t,e,i)}function Oe(s){let e=rt(s),[t,r]=Ps(e),[n,i]=Ps(e.subarray(r)),o=e.subarray(r+i);if(o.byteLength!==n)throw new Error("Incorrect length");return new rs(t,n,o,e)}function Wo(s,e){if(s===e)return!0;{let t=e;return s.code===t.code&&s.size===t.size&&t.bytes instanceof Uint8Array&&Uo(s.bytes,t.bytes)}}var rs=class{code;size;digest;bytes;constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}};function $o(s,e){let{bytes:t,version:r}=s;switch(r){case 0:return xu(t,Xn(s),e??te.encoder);default:return Eu(t,Xn(s),e??Ft.encoder)}}var jo=new WeakMap;function Xn(s){let e=jo.get(s);if(e==null){let t=new Map;return jo.set(s,t),t}return e}var Pe=class s{code;version;multihash;bytes;"/";constructor(e,t,r,n){this.code=t,this.version=e,this.multihash=r,this.bytes=n,this["/"]=n}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Ds)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Su)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return s.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,r=He(e,t);return s.createV1(this.code,r)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return s.equals(this,e)}static equals(e,t){let r=t;return r!=null&&e.code===r.code&&e.version===r.version&&Wo(e.multihash,r.multihash)}toString(e){return $o(this,e)}toJSON(){return{"/":$o(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof s)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:r,code:n,multihash:i,bytes:o}=t;return new s(r,n,i,o??Zo(r,n,i.bytes))}else if(t[Bu]===!0){let{version:r,multihash:n,code:i}=t,o=Oe(n);return s.create(r,i,o)}else return null}static create(e,t,r){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(r.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Ds)throw new Error(`Version 0 CID must use dag-pb (code: ${Ds}) block encoding`);return new s(e,t,r,r.bytes)}case 1:{let n=Zo(e,t,r.bytes);return new s(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return s.create(0,Ds,e)}static createV1(e,t){return s.create(1,e,t)}static decode(e){let[t,r]=s.decodeFirst(e);if(r.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=s.inspectBytes(e),r=t.size-t.multihashSize,n=rt(e.subarray(r,r+t.multihashSize));if(n.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=n.subarray(t.multihashSize-t.digestSize),o=new rs(t.multihashCode,t.digestSize,i,n);return[t.version===0?s.createV0(o):s.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0,r=()=>{let[l,g]=Ps(e.subarray(t));return t+=g,l},n=r(),i=Ds;if(n===18?(n=0,t=0):i=r(),n!==0&&n!==1)throw new RangeError(`Invalid CID version ${n}`);let o=t,a=r(),c=r(),h=t+c,f=h-o;return{version:n,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(e,t){let[r,n]=vu(e,t),i=s.decode(n);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Xn(i).set(r,e),i}};function vu(s,e){switch(s[0]){case"Q":{let t=e??te;return[te.prefix,t.decode(`${te.prefix}${s}`)]}case te.prefix:{let t=e??te;return[te.prefix,t.decode(s)]}case Ft.prefix:{let t=e??Ft;return[Ft.prefix,t.decode(s)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[s[0],e.decode(s)]}}}function xu(s,e,t){let{prefix:r}=t;if(r!==te.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let n=e.get(r);if(n==null){let i=t.encode(s).slice(1);return e.set(r,i),i}else return n}function Eu(s,e,t){let{prefix:r}=t,n=e.get(r);if(n==null){let i=t.encode(s);return e.set(r,i),i}else return n}var Ds=112,Su=18;function Zo(s,e,t){let r=ss(s),n=r+ss(e),i=new Uint8Array(n+t.byteLength);return ts(s,i,0),ts(e,i,r),i.set(t,n),i}var Bu=Symbol.for("@ipld/js-cid/CID");var Yn={};ve(Yn,{identity:()=>nt});var Jo=0,Iu="identity",Xo=rt;function _u(s){return He(Jo,Xo(s))}var nt={code:Jo,name:Iu,encode:Xo,digest:_u};function Fe(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;t<s.byteLength;t++)if(s[t]!==e[t])return!1;return!0}function Yo(s){if(!Number.isSafeInteger(s)||s<0)throw new Error(`positive integer expected, not ${s}`)}function Au(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function ns(s,...e){if(!Au(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${s.length}`)}function Qo(s){if(typeof s!="function"||typeof s.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Yo(s.outputLen),Yo(s.blockLen)}function is(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function ea(s,e){ns(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Vt=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var cr=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),ze=(s,e)=>s<<32-e|s>>>e;var Hp=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ta(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function Cs(s){return typeof s=="string"&&(s=ta(s)),ns(s),s}function Qn(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];ns(n),e+=n.length}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length}return t}var os=class{clone(){return this._cloneInto()}},Op={}.toString;function lr(s){let e=r=>s().update(Cs(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function as(s=32){if(Vt&&typeof Vt.getRandomValues=="function")return Vt.getRandomValues(new Uint8Array(s));if(Vt&&typeof Vt.randomBytes=="function")return Vt.randomBytes(s);throw new Error("crypto.getRandomValues must be defined")}function ku(s,e,t,r){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,r);let n=BigInt(32),i=BigInt(4294967295),o=Number(t>>n&i),a=Number(t&i),c=r?4:0,h=r?0:4;s.setUint32(e+c,o,r),s.setUint32(e+h,a,r)}var sa=(s,e,t)=>s&e^~s&t,ra=(s,e,t)=>s&e^s&t^e&t,cs=class extends os{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=cr(this.buffer)}update(e){is(this);let{view:t,buffer:r,blockLen:n}=this;e=Cs(e);let i=e.length;for(let o=0;o<i;){let a=Math.min(n-this.pos,i-o);if(a===n){let c=cr(e);for(;n<=i-o;o+=n)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){is(this),ea(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>n-o&&(this.process(r,0),o=0);for(let l=o;l<n;l++)t[l]=0;ku(r,n-8,BigInt(this.length*8),i),this.process(r,0);let a=cr(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<h;l++)a.setUint32(4*l,f[l],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:a}=this;return e.length=n,e.pos=a,e.finished=i,e.destroyed=o,n%t&&e.buffer.set(r),e}};var ur=BigInt(4294967295),ei=BigInt(32);function na(s,e=!1){return e?{h:Number(s&ur),l:Number(s>>ei&ur)}:{h:Number(s>>ei&ur)|0,l:Number(s&ur)|0}}function Tu(s,e=!1){let t=new Uint32Array(s.length),r=new Uint32Array(s.length);for(let n=0;n<s.length;n++){let{h:i,l:o}=na(s[n],e);[t[n],r[n]]=[i,o]}return[t,r]}var Mu=(s,e)=>BigInt(s>>>0)<<ei|BigInt(e>>>0),Pu=(s,e,t)=>s>>>t,Du=(s,e,t)=>s<<32-t|e>>>t,Cu=(s,e,t)=>s>>>t|e<<32-t,Nu=(s,e,t)=>s<<32-t|e>>>t,Ru=(s,e,t)=>s<<64-t|e>>>t-32,Lu=(s,e,t)=>s>>>t-32|e<<64-t,Uu=(s,e)=>e,Fu=(s,e)=>s,Vu=(s,e,t)=>s<<t|e>>>32-t,Hu=(s,e,t)=>e<<t|s>>>32-t,Ou=(s,e,t)=>e<<t-32|s>>>64-t,zu=(s,e,t)=>s<<t-32|e>>>64-t;function Gu(s,e,t,r){let n=(e>>>0)+(r>>>0);return{h:s+t+(n/2**32|0)|0,l:n|0}}var qu=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),Ku=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,Wu=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),$u=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,ju=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Zu=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var Ju={fromBig:na,split:Tu,toBig:Mu,shrSH:Pu,shrSL:Du,rotrSH:Cu,rotrSL:Nu,rotrBH:Ru,rotrBL:Lu,rotr32H:Uu,rotr32L:Fu,rotlSH:Vu,rotlSL:Hu,rotlBH:Ou,rotlBL:zu,add:Gu,add3L:qu,add3H:Ku,add4L:Wu,add4H:$u,add5H:Zu,add5L:ju},R=Ju;var[Xu,Yu]=R.split(["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"].map(s=>BigInt(s))),xt=new Uint32Array(80),Et=new Uint32Array(80),ti=class extends cs{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:l,Fl:g,Gh:u,Gl:d,Hh:m,Hl:p}=this;return[e,t,r,n,i,o,a,c,h,f,l,g,u,d,m,p]}set(e,t,r,n,i,o,a,c,h,f,l,g,u,d,m,p){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=l|0,this.Fl=g|0,this.Gh=u|0,this.Gl=d|0,this.Hh=m|0,this.Hl=p|0}process(e,t){for(let w=0;w<16;w++,t+=4)xt[w]=e.getUint32(t),Et[w]=e.getUint32(t+=4);for(let w=16;w<80;w++){let I=xt[w-15]|0,x=Et[w-15]|0,B=R.rotrSH(I,x,1)^R.rotrSH(I,x,8)^R.shrSH(I,x,7),E=R.rotrSL(I,x,1)^R.rotrSL(I,x,8)^R.shrSL(I,x,7),_=xt[w-2]|0,k=Et[w-2]|0,z=R.rotrSH(_,k,19)^R.rotrBH(_,k,61)^R.shrSH(_,k,6),L=R.rotrSL(_,k,19)^R.rotrBL(_,k,61)^R.shrSL(_,k,6),U=R.add4L(E,L,Et[w-7],Et[w-16]),se=R.add4H(U,B,z,xt[w-7],xt[w-16]);xt[w]=se|0,Et[w]=U|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:l,El:g,Fh:u,Fl:d,Gh:m,Gl:p,Hh:b,Hl:y}=this;for(let w=0;w<80;w++){let I=R.rotrSH(l,g,14)^R.rotrSH(l,g,18)^R.rotrBH(l,g,41),x=R.rotrSL(l,g,14)^R.rotrSL(l,g,18)^R.rotrBL(l,g,41),B=l&u^~l&m,E=g&d^~g&p,_=R.add5L(y,x,E,Yu[w],Et[w]),k=R.add5H(_,b,I,B,Xu[w],xt[w]),z=_|0,L=R.rotrSH(r,n,28)^R.rotrBH(r,n,34)^R.rotrBH(r,n,39),U=R.rotrSL(r,n,28)^R.rotrBL(r,n,34)^R.rotrBL(r,n,39),se=r&i^r&a^i&a,T=n&o^n&c^o&c;b=m|0,y=p|0,m=u|0,p=d|0,u=l|0,d=g|0,{h:l,l:g}=R.add(h|0,f|0,k|0,z|0),h=a|0,f=c|0,a=i|0,c=o|0,i=r|0,o=n|0;let P=R.add3L(z,U,T);r=R.add3H(P,k,L,se),n=P|0}({h:r,l:n}=R.add(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=R.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=R.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=R.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:l,l:g}=R.add(this.Eh|0,this.El|0,l|0,g|0),{h:u,l:d}=R.add(this.Fh|0,this.Fl|0,u|0,d|0),{h:m,l:p}=R.add(this.Gh|0,this.Gl|0,m|0,p|0),{h:b,l:y}=R.add(this.Hh|0,this.Hl|0,b|0,y|0),this.set(r,n,i,o,a,c,h,f,l,g,u,d,m,p,b,y)}roundClean(){xt.fill(0),Et.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var ia=lr(()=>new ti);var fr={};ve(fr,{aInRange:()=>De,abool:()=>Ge,abytes:()=>ls,bitGet:()=>nh,bitLen:()=>oi,bitMask:()=>Rs,bitSet:()=>ih,bytesToHex:()=>ot,bytesToNumberBE:()=>at,bytesToNumberLE:()=>Bt,concatBytes:()=>ct,createHmacDrbg:()=>ai,ensureBytes:()=>ee,equalBytes:()=>sh,hexToBytes:()=>Ot,hexToNumber:()=>ii,inRange:()=>Ns,isBytes:()=>St,memoized:()=>Gt,notImplemented:()=>ah,numberToBytesBE:()=>It,numberToBytesLE:()=>zt,numberToHexUnpadded:()=>Ht,numberToVarBytesBE:()=>th,utf8ToBytes:()=>rh,validateObject:()=>Je});var ni=BigInt(0),hr=BigInt(1),Qu=BigInt(2);function St(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function ls(s){if(!St(s))throw new Error("Uint8Array expected")}function Ge(s,e){if(typeof e!="boolean")throw new Error(`${s} must be valid boolean, got "${e}".`)}var eh=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function ot(s){ls(s);let e="";for(let t=0;t<s.length;t++)e+=eh[s[t]];return e}function Ht(s){let e=s.toString(16);return e.length&1?`0${e}`:e}function ii(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);return BigInt(s===""?"0":`0x${s}`)}var it={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function oa(s){if(s>=it._0&&s<=it._9)return s-it._0;if(s>=it._A&&s<=it._F)return s-(it._A-10);if(s>=it._a&&s<=it._f)return s-(it._a-10)}function Ot(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);let e=s.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(t);for(let n=0,i=0;n<t;n++,i+=2){let o=oa(s.charCodeAt(i)),a=oa(s.charCodeAt(i+1));if(o===void 0||a===void 0){let c=s[i]+s[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}r[n]=o*16+a}return r}function at(s){return ii(ot(s))}function Bt(s){return ls(s),ii(ot(Uint8Array.from(s).reverse()))}function It(s,e){return Ot(s.toString(16).padStart(e*2,"0"))}function zt(s,e){return It(s,e).reverse()}function th(s){return Ot(Ht(s))}function ee(s,e,t){let r;if(typeof e=="string")try{r=Ot(e)}catch(i){throw new Error(`${s} must be valid hex string, got "${e}". Cause: ${i}`)}else if(St(e))r=Uint8Array.from(e);else throw new Error(`${s} must be hex string or Uint8Array`);let n=r.length;if(typeof t=="number"&&n!==t)throw new Error(`${s} expected ${t} bytes, got ${n}`);return r}function ct(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];ls(n),e+=n.length}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length}return t}function sh(s,e){if(s.length!==e.length)return!1;let t=0;for(let r=0;r<s.length;r++)t|=s[r]^e[r];return t===0}function rh(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}var si=s=>typeof s=="bigint"&&ni<=s;function Ns(s,e,t){return si(s)&&si(e)&&si(t)&&e<=s&&s<t}function De(s,e,t,r){if(!Ns(e,t,r))throw new Error(`expected valid ${s}: ${t} <= n < ${r}, got ${typeof e} ${e}`)}function oi(s){let e;for(e=0;s>ni;s>>=hr,e+=1);return e}function nh(s,e){return s>>BigInt(e)&hr}function ih(s,e,t){return s|(t?hr:ni)<<BigInt(e)}var Rs=s=>(Qu<<BigInt(s-1))-hr,ri=s=>new Uint8Array(s),aa=s=>Uint8Array.from(s);function ai(s,e,t){if(typeof s!="number"||s<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let r=ri(s),n=ri(s),i=0,o=()=>{r.fill(1),n.fill(0),i=0},a=(...l)=>t(n,r,...l),c=(l=ri())=>{n=a(aa([0]),l),r=a(),l.length!==0&&(n=a(aa([1]),l),r=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,g=[];for(;l<e;){r=a();let u=r.slice();g.push(u),l+=r.length}return ct(...g)};return(l,g)=>{o(),c(l);let u;for(;!(u=g(h()));)c();return o(),u}}var oh={bigint:s=>typeof s=="bigint",function:s=>typeof s=="function",boolean:s=>typeof s=="boolean",string:s=>typeof s=="string",stringOrUint8Array:s=>typeof s=="string"||St(s),isSafeInteger:s=>Number.isSafeInteger(s),array:s=>Array.isArray(s),field:(s,e)=>e.Fp.isValid(s),hash:s=>typeof s=="function"&&Number.isSafeInteger(s.outputLen)};function Je(s,e,t={}){let r=(n,i,o)=>{let a=oh[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=s[n];if(!(o&&c===void 0)&&!a(c,s))throw new Error(`Invalid param ${String(n)}=${c} (${typeof c}), expected ${i}`)};for(let[n,i]of Object.entries(e))r(n,i,!1);for(let[n,i]of Object.entries(t))r(n,i,!0);return s}var ah=()=>{throw new Error("not implemented")};function Gt(s){let e=new WeakMap;return(t,...r)=>{let n=e.get(t);if(n!==void 0)return n;let i=s(t,...r);return e.set(t,i),i}}var ne=BigInt(0),Z=BigInt(1),qt=BigInt(2),ch=BigInt(3),ci=BigInt(4),ca=BigInt(5),la=BigInt(8),lh=BigInt(9),uh=BigInt(16);function W(s,e){let t=s%e;return t>=ne?t:e+t}function hh(s,e,t){if(t<=ne||e<ne)throw new Error("Expected power/modulo > 0");if(t===Z)return ne;let r=Z;for(;e>ne;)e&Z&&(r=r*s%t),s=s*s%t,e>>=Z;return r}function J(s,e,t){let r=s;for(;e-- >ne;)r*=r,r%=t;return r}function dr(s,e){if(s===ne||e<=ne)throw new Error(`invert: expected positive integers, got n=${s} mod=${e}`);let t=W(s,e),r=e,n=ne,i=Z,o=Z,a=ne;for(;t!==ne;){let h=r/t,f=r%t,l=n-o*h,g=i-a*h;r=t,t=f,n=o,i=a,o=l,a=g}if(r!==Z)throw new Error("invert: does not exist");return W(n,e)}function fh(s){let e=(s-Z)/qt,t,r,n;for(t=s-Z,r=0;t%qt===ne;t/=qt,r++);for(n=qt;n<s&&hh(n,e,s)!==s-Z;n++);if(r===1){let o=(s+Z)/ci;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(t+Z)/qt;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=r,f=a.pow(a.mul(a.ONE,n),t),l=a.pow(c,i),g=a.pow(c,t);for(;!a.eql(g,a.ONE);){if(a.eql(g,a.ZERO))return a.ZERO;let u=1;for(let m=a.sqr(g);u<h&&!a.eql(m,a.ONE);u++)m=a.sqr(m);let d=a.pow(f,Z<<BigInt(h-u-1));f=a.sqr(d),l=a.mul(l,d),g=a.mul(g,f),h=u}return l}}function dh(s){if(s%ci===ch){let e=(s+Z)/ci;return function(r,n){let i=r.pow(n,e);if(!r.eql(r.sqr(i),n))throw new Error("Cannot find square root");return i}}if(s%la===ca){let e=(s-ca)/la;return function(r,n){let i=r.mul(n,qt),o=r.pow(i,e),a=r.mul(n,o),c=r.mul(r.mul(a,qt),o),h=r.mul(a,r.sub(c,r.ONE));if(!r.eql(r.sqr(h),n))throw new Error("Cannot find square root");return h}}return s%uh,fh(s)}var ua=(s,e)=>(W(s,e)&Z)===Z,ph=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function li(s){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=ph.reduce((r,n)=>(r[n]="function",r),e);return Je(s,t)}function gh(s,e,t){if(t<ne)throw new Error("Expected power > 0");if(t===ne)return s.ONE;if(t===Z)return e;let r=s.ONE,n=e;for(;t>ne;)t&Z&&(r=s.mul(r,n)),n=s.sqr(n),t>>=Z;return r}function mh(s,e){let t=new Array(e.length),r=e.reduce((i,o,a)=>s.is0(o)?i:(t[a]=i,s.mul(i,o)),s.ONE),n=s.inv(r);return e.reduceRight((i,o,a)=>s.is0(o)?i:(t[a]=s.mul(i,t[a]),s.mul(i,o)),n),t}function ui(s,e){let t=e!==void 0?e:s.toString(2).length,r=Math.ceil(t/8);return{nBitLength:t,nByteLength:r}}function _t(s,e,t=!1,r={}){if(s<=ne)throw new Error(`Expected Field ORDER > 0, got ${s}`);let{nBitLength:n,nByteLength:i}=ui(s,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=dh(s),a=Object.freeze({ORDER:s,BITS:n,BYTES:i,MASK:Rs(n),ZERO:ne,ONE:Z,create:c=>W(c,s),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ne<=c&&c<s},is0:c=>c===ne,isOdd:c=>(c&Z)===Z,neg:c=>W(-c,s),eql:(c,h)=>c===h,sqr:c=>W(c*c,s),add:(c,h)=>W(c+h,s),sub:(c,h)=>W(c-h,s),mul:(c,h)=>W(c*h,s),pow:(c,h)=>gh(a,c,h),div:(c,h)=>W(c*dr(h,s),s),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>dr(c,s),sqrt:r.sqrt||(c=>o(a,c)),invertBatch:c=>mh(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>t?zt(c,i):It(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Bt(c):at(c)}});return Object.freeze(a)}function ha(s){if(typeof s!="bigint")throw new Error("field order must be bigint");let e=s.toString(2).length;return Math.ceil(e/8)}function hi(s){let e=ha(s);return e+Math.ceil(e/2)}function fa(s,e,t=!1){let r=s.length,n=ha(e),i=hi(e);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);let o=t?at(s):Bt(s),a=W(o,e-Z)+Z;return t?zt(a,n):It(a,n)}var wh=BigInt(0),fi=BigInt(1),di=new WeakMap,da=new WeakMap;function pr(s,e){let t=(i,o)=>{let a=o.negate();return i?a:o},r=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},n=i=>{r(i);let o=Math.ceil(e/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:t,unsafeLadder(i,o){let a=s.ZERO,c=i;for(;o>wh;)o&fi&&(a=a.add(c)),c=c.double(),o>>=fi;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=n(o),h=[],f=i,l=f;for(let g=0;g<a;g++){l=f,h.push(l);for(let u=1;u<c;u++)l=l.add(f),h.push(l);f=l.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=n(i),f=s.ZERO,l=s.BASE,g=BigInt(2**i-1),u=2**i,d=BigInt(i);for(let m=0;m<c;m++){let p=m*h,b=Number(a&g);a>>=d,b>h&&(b-=u,a+=fi);let y=p,w=p+Math.abs(b)-1,I=m%2!==0,x=b<0;b===0?l=l.add(t(I,o[y])):f=f.add(t(x,o[w]))}return{p:f,f:l}},wNAFCached(i,o,a){let c=da.get(i)||1,h=di.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&di.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){r(o),da.set(i,o),di.delete(i)}}}function gr(s,e,t,r){if(!Array.isArray(t)||!Array.isArray(r)||r.length!==t.length)throw new Error("arrays of points and scalars must have equal length");r.forEach((f,l)=>{if(!e.isValid(f))throw new Error(`wrong scalar at index ${l}`)}),t.forEach((f,l)=>{if(!(f instanceof s))throw new Error(`wrong point at index ${l}`)});let n=oi(BigInt(t.length)),i=n>12?n-3:n>4?n-2:n?2:1,o=(1<<i)-1,a=new Array(o+1).fill(s.ZERO),c=Math.floor((e.BITS-1)/i)*i,h=s.ZERO;for(let f=c;f>=0;f-=i){a.fill(s.ZERO);for(let g=0;g<r.length;g++){let u=r[g],d=Number(u>>BigInt(f)&BigInt(o));a[d]=a[d].add(t[g])}let l=s.ZERO;for(let g=a.length-1,u=s.ZERO;g>0;g--)u=u.add(a[g]),l=l.add(u);if(h=h.add(l),f!==0)for(let g=0;g<i;g++)h=h.double()}return h}function Ls(s){return li(s.Fp),Je(s,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ui(s.n,s.nBitLength),...s,p:s.Fp.ORDER})}var qe=BigInt(0),Ce=BigInt(1),mr=BigInt(2),yh=BigInt(8),vh={zip215:!0};function xh(s){let e=Ls(s);return Je(s,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function pa(s){let e=xh(s),{Fp:t,n:r,prehash:n,hash:i,randomBytes:o,nByteLength:a,h:c}=e,h=mr<<BigInt(a*8)-Ce,f=t.create,l=_t(e.n,e.nBitLength),g=e.uvRatio||((S,v)=>{try{return{isValid:!0,value:t.sqrt(S*t.inv(v))}}catch{return{isValid:!1,value:qe}}}),u=e.adjustScalarBytes||(S=>S),d=e.domain||((S,v,A)=>{if(Ge("phflag",A),v.length||A)throw new Error("Contexts/pre-hash are not supported");return S});function m(S,v){De("coordinate "+S,v,qe,h)}function p(S){if(!(S instanceof w))throw new Error("ExtendedPoint expected")}let b=Gt((S,v)=>{let{ex:A,ey:D,ez:C}=S,N=S.is0();v==null&&(v=N?yh:t.inv(C));let F=f(A*v),O=f(D*v),V=f(C*v);if(N)return{x:qe,y:Ce};if(V!==Ce)throw new Error("invZ was invalid");return{x:F,y:O}}),y=Gt(S=>{let{a:v,d:A}=e;if(S.is0())throw new Error("bad point: ZERO");let{ex:D,ey:C,ez:N,et:F}=S,O=f(D*D),V=f(C*C),K=f(N*N),j=f(K*K),oe=f(O*v),ae=f(K*f(oe+V)),ue=f(j+f(A*f(O*V)));if(ae!==ue)throw new Error("bad point: equation left != right (1)");let ye=f(D*C),re=f(N*F);if(ye!==re)throw new Error("bad point: equation left != right (2)");return!0});class w{constructor(v,A,D,C){this.ex=v,this.ey=A,this.ez=D,this.et=C,m("x",v),m("y",A),m("z",D),m("t",C),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(v){if(v instanceof w)throw new Error("extended point not allowed");let{x:A,y:D}=v||{};return m("x",A),m("y",D),new w(A,D,Ce,f(A*D))}static normalizeZ(v){let A=t.invertBatch(v.map(D=>D.ez));return v.map((D,C)=>D.toAffine(A[C])).map(w.fromAffine)}static msm(v,A){return gr(w,l,v,A)}_setWindowSize(v){B.setWindowSize(this,v)}assertValidity(){y(this)}equals(v){p(v);let{ex:A,ey:D,ez:C}=this,{ex:N,ey:F,ez:O}=v,V=f(A*O),K=f(N*C),j=f(D*O),oe=f(F*C);return V===K&&j===oe}is0(){return this.equals(w.ZERO)}negate(){return new w(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:v}=e,{ex:A,ey:D,ez:C}=this,N=f(A*A),F=f(D*D),O=f(mr*f(C*C)),V=f(v*N),K=A+D,j=f(f(K*K)-N-F),oe=V+F,ae=oe-O,ue=V-F,ye=f(j*ae),re=f(oe*ue),Me=f(j*ue),st=f(ae*oe);return new w(ye,re,st,Me)}add(v){p(v);let{a:A,d:D}=e,{ex:C,ey:N,ez:F,et:O}=this,{ex:V,ey:K,ez:j,et:oe}=v;if(A===BigInt(-1)){let Bo=f((N-C)*(K+V)),Io=f((N+C)*(K-V)),zn=f(Io-Bo);if(zn===qe)return this.double();let _o=f(F*mr*oe),Ao=f(O*mr*j),ko=Ao+_o,To=Io+Bo,Mo=Ao-_o,Dl=f(ko*zn),Cl=f(To*Mo),Nl=f(ko*Mo),Rl=f(zn*To);return new w(Dl,Cl,Rl,Nl)}let ae=f(C*V),ue=f(N*K),ye=f(O*D*oe),re=f(F*j),Me=f((C+N)*(V+K)-ae-ue),st=re-ye,ks=re+ye,Ts=f(ue-A*ae),kl=f(Me*st),Tl=f(ks*Ts),Ml=f(Me*Ts),Pl=f(st*ks);return new w(kl,Tl,Pl,Ml)}subtract(v){return this.add(v.negate())}wNAF(v){return B.wNAFCached(this,v,w.normalizeZ)}multiply(v){let A=v;De("scalar",A,Ce,r);let{p:D,f:C}=this.wNAF(A);return w.normalizeZ([D,C])[0]}multiplyUnsafe(v){let A=v;return De("scalar",A,qe,r),A===qe?x:this.equals(x)||A===Ce?this:this.equals(I)?this.wNAF(A).p:B.unsafeLadder(this,A)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return B.unsafeLadder(this,r).is0()}toAffine(v){return b(this,v)}clearCofactor(){let{h:v}=e;return v===Ce?this:this.multiplyUnsafe(v)}static fromHex(v,A=!1){let{d:D,a:C}=e,N=t.BYTES;v=ee("pointHex",v,N),Ge("zip215",A);let F=v.slice(),O=v[N-1];F[N-1]=O&-129;let V=Bt(F),K=A?h:t.ORDER;De("pointHex.y",V,qe,K);let j=f(V*V),oe=f(j-Ce),ae=f(D*j-C),{isValid:ue,value:ye}=g(oe,ae);if(!ue)throw new Error("Point.fromHex: invalid y coordinate");let re=(ye&Ce)===Ce,Me=(O&128)!==0;if(!A&&ye===qe&&Me)throw new Error("Point.fromHex: x=0 and x_0=1");return Me!==re&&(ye=f(-ye)),w.fromAffine({x:ye,y:V})}static fromPrivateKey(v){return k(v).point}toRawBytes(){let{x:v,y:A}=this.toAffine(),D=zt(A,t.BYTES);return D[D.length-1]|=v&Ce?128:0,D}toHex(){return ot(this.toRawBytes())}}w.BASE=new w(e.Gx,e.Gy,Ce,f(e.Gx*e.Gy)),w.ZERO=new w(qe,Ce,Ce,qe);let{BASE:I,ZERO:x}=w,B=pr(w,a*8);function E(S){return W(S,r)}function _(S){return E(Bt(S))}function k(S){let v=a;S=ee("private key",S,v);let A=ee("hashed private key",i(S),2*v),D=u(A.slice(0,v)),C=A.slice(v,2*v),N=_(D),F=I.multiply(N),O=F.toRawBytes();return{head:D,prefix:C,scalar:N,point:F,pointBytes:O}}function z(S){return k(S).pointBytes}function L(S=new Uint8Array,...v){let A=ct(...v);return _(i(d(A,ee("context",S),!!n)))}function U(S,v,A={}){S=ee("message",S),n&&(S=n(S));let{prefix:D,scalar:C,pointBytes:N}=k(v),F=L(A.context,D,S),O=I.multiply(F).toRawBytes(),V=L(A.context,O,N,S),K=E(F+V*C);De("signature.s",K,qe,r);let j=ct(O,zt(K,t.BYTES));return ee("result",j,a*2)}let se=vh;function T(S,v,A,D=se){let{context:C,zip215:N}=D,F=t.BYTES;S=ee("signature",S,2*F),v=ee("message",v),N!==void 0&&Ge("zip215",N),n&&(v=n(v));let O=Bt(S.slice(F,2*F)),V,K,j;try{V=w.fromHex(A,N),K=w.fromHex(S.slice(0,F),N),j=I.multip