@libp2p/pubsub-peer-discovery
Version:
A libp2p module that uses pubsub for mdns like peer discovery
2 lines • 161 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PPubsubPeerDiscovery = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var Libp2PPubsubPeerDiscovery=(()=>{var za=Object.create;var Cr=Object.defineProperty;var $a=Object.getOwnPropertyDescriptor;var ja=Object.getOwnPropertyNames;var Ga=Object.getPrototypeOf,Za=Object.prototype.hasOwnProperty;var Wa=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),mt=(r,t)=>{for(var e in t)Cr(r,e,{get:t[e],enumerable:!0})},Xo=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ja(t))!Za.call(r,s)&&s!==e&&Cr(r,s,{get:()=>t[s],enumerable:!(n=$a(t,s))||n.enumerable});return r};var Ja=(r,t,e)=>(e=r!=null?za(Ga(r)):{},Xo(t||!r||!r.__esModule?Cr(e,"default",{value:r,enumerable:!0}):e,r)),Ya=r=>Xo(Cr({},"__esModule",{value:!0}),r);var cc=Wa(Ze=>{"use strict";var kf="[object ArrayBuffer]",Wt=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===kf}static toArrayBuffer(t){return this.isArrayBuffer(t)?t:t.byteLength===t.buffer.byteLength||t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:this.toUint8Array(t.buffer).slice(t.byteOffset,t.byteOffset+t.byteLength).buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,e){if(t.constructor===e)return t;if(this.isArrayBuffer(t))return new e(t);if(this.isArrayBufferView(t))return new e(t.buffer,t.byteOffset,t.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,e){let n=r.toUint8Array(t),s=r.toUint8Array(e);if(n.length!==s.byteLength)return!1;for(let o=0;o<n.length;o++)if(n[o]!==s[o])return!1;return!0}static concat(...t){let e;Array.isArray(t[0])&&!(t[1]instanceof Function)||Array.isArray(t[0])&&t[1]instanceof Function?e=t[0]:t[t.length-1]instanceof Function?e=t.slice(0,t.length-1):e=t;let n=0;for(let i of e)n+=i.byteLength;let s=new Uint8Array(n),o=0;for(let i of e){let c=this.toUint8Array(i);s.set(c,o),o+=c.length}return t[t.length-1]instanceof Function?this.toView(s,t[t.length-1]):s.buffer}},mo="string",If=/^[0-9a-f\s]+$/i,Nf=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Cf=/^[a-zA-Z0-9-_]+$/,rn=class{static fromString(t){let e=unescape(encodeURIComponent(t)),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n.buffer}static toString(t){let e=Wt.toUint8Array(t),n="";for(let o=0;o<e.length;o++)n+=String.fromCharCode(e[o]);return decodeURIComponent(escape(n))}},kt=class{static toString(t,e=!1){let n=Wt.toArrayBuffer(t),s=new DataView(n),o="";for(let i=0;i<n.byteLength;i+=2){let c=s.getUint16(i,e);o+=String.fromCharCode(c)}return o}static fromString(t,e=!1){let n=new ArrayBuffer(t.length*2),s=new DataView(n);for(let o=0;o<t.length;o++)s.setUint16(o*2,t.charCodeAt(o),e);return n}},nn=class r{static isHex(t){return typeof t===mo&&If.test(t)}static isBase64(t){return typeof t===mo&&Nf.test(t)}static isBase64Url(t){return typeof t===mo&&Cf.test(t)}static ToString(t,e="utf8"){let n=Wt.toUint8Array(t);switch(e.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return kt.toString(n,!0);case"utf16":case"utf16be":return kt.toString(n);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromString(t,e="utf8"){if(!t)return new ArrayBuffer(0);switch(e.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return kt.fromString(t,!0);case"utf16":case"utf16be":return kt.fromString(t);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToBase64(t){let e=Wt.toUint8Array(t);if(typeof btoa<"u"){let n=this.ToString(e,"binary");return btoa(n)}else return Buffer.from(e).toString("base64")}static FromBase64(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64(e))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(e)):new Uint8Array(Buffer.from(e,"base64")).buffer}static FromBase64Url(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64Url(e))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.FromBinary(t);case"utf8":return rn.fromString(t);case"utf16":case"utf16be":return kt.fromString(t);case"utf16le":case"usc2":return kt.fromString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.ToBinary(t);case"utf8":return rn.toString(t);case"utf16":case"utf16be":return kt.toString(t);case"utf16le":case"usc2":return kt.toString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromBinary(t){let e=t.length,n=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);return n.buffer}static ToBinary(t){let e=Wt.toUint8Array(t),n="";for(let s=0;s<e.length;s++)n+=String.fromCharCode(e[s]);return n}static ToHex(t){let e=Wt.toUint8Array(t),n="",s=e.length;for(let o=0;o<s;o++){let i=e[o];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isHex(e))throw new TypeError("Argument 'hexString' is not HEX encoded");e.length%2&&(e=`0${e}`);let n=new Uint8Array(e.length/2);for(let s=0;s<e.length;s=s+2){let o=e.slice(s,s+2);n[s/2]=parseInt(o,16)}return n.buffer}static ToUtf16String(t,e=!1){return kt.toString(t,e)}static FromUtf16String(t,e=!1){return kt.fromString(t,e)}static Base64Padding(t){let e=4-t.length%4;if(e<4)for(let n=0;n<e;n++)t+="=";return t}static formatString(t){return t?.replace(/[\n\r\t ]/g,"")||""}};nn.DEFAULT_UTF8_ENCODING="utf8";function Tf(r,...t){let e=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let o in s)e[o]=s[o]}return e}function Uf(...r){let t=r.map(s=>s.byteLength).reduce((s,o)=>s+o),e=new Uint8Array(t),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let o of s)e[n++]=o}),e.buffer}function Lf(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;s<r.byteLength;s++)if(e[s]!==n[s])return!1;return!0}Ze.BufferSourceConverter=Wt;Ze.Convert=nn;Ze.assign=Tf;Ze.combine=Uf;Ze.isEqual=Lf});var yh={};mt(yh,{PubSubPeerDiscovery:()=>ns,TOPIC:()=>Ha,pubsubPeerDiscovery:()=>bh});var Qo=Symbol.for("@libp2p/peer-discovery");var os=Symbol.for("@libp2p/peer-id");var xt=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},Ue=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var Le=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var ti=(r,...t)=>{try{[...t]}catch{}};var Tr=class extends EventTarget{#t=new Map;constructor(){super(),ti(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let s=this.#t.get(t);s!=null&&(s=s.filter(({callback:o})=>o!==e),this.#t.set(t,s))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:s})=>!s),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var us={};mt(us,{base58btc:()=>J,base58flickr:()=>nl});var Ih=new Uint8Array(0);function ei(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Kt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function ri(r){return new TextEncoder().encode(r)}function ni(r){return new TextDecoder().decode(r)}function Xa(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var s=0;s<r.length;s++){var o=r.charAt(s),i=o.charCodeAt(0);if(e[i]!==255)throw new TypeError(o+" is ambiguous");e[i]=s}var c=r.length,a=r.charAt(0),f=Math.log(c)/Math.log(256),l=Math.log(256)/Math.log(c);function u(y){if(y instanceof Uint8Array||(ArrayBuffer.isView(y)?y=new Uint8Array(y.buffer,y.byteOffset,y.byteLength):Array.isArray(y)&&(y=Uint8Array.from(y))),!(y instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(y.length===0)return"";for(var b=0,d=0,v=0,A=y.length;v!==A&&y[v]===0;)v++,b++;for(var g=(A-v)*l+1>>>0,k=new Uint8Array(g);v!==A;){for(var L=y[v],U=0,I=g-1;(L!==0||U<d)&&I!==-1;I--,U++)L+=256*k[I]>>>0,k[I]=L%c>>>0,L=L/c>>>0;if(L!==0)throw new Error("Non-zero carry");d=U,v++}for(var T=g-d;T!==g&&k[T]===0;)T++;for(var N=a.repeat(b);T<g;++T)N+=r.charAt(k[T]);return N}function h(y){if(typeof y!="string")throw new TypeError("Expected String");if(y.length===0)return new Uint8Array;var b=0;if(y[b]!==" "){for(var d=0,v=0;y[b]===a;)d++,b++;for(var A=(y.length-b)*f+1>>>0,g=new Uint8Array(A);y[b];){var k=e[y.charCodeAt(b)];if(k===255)return;for(var L=0,U=A-1;(k!==0||L<v)&&U!==-1;U--,L++)k+=c*g[U]>>>0,g[U]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");v=L,b++}if(y[b]!==" "){for(var I=A-v;I!==A&&g[I]===0;)I++;for(var T=new Uint8Array(d+(A-I)),N=d;I!==A;)T[N++]=g[I++];return T}}}function x(y){var b=h(y);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:u,decodeUnsafe:h,decode:x}}var Qa=Xa,tl=Qa,oi=tl;var is=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},cs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let s=e.codePointAt(0);if(s===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=s,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return ii(this,t)}},as=class{decoders;constructor(t){this.decoders=t}or(t){return ii(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function ii(r,t){return new as({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var ls=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,s){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=s,this.encoder=new is(t,e,n),this.decoder=new cs(t,e,s)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Re({name:r,prefix:t,encode:e,decode:n}){return new ls(r,t,e,n)}function ne({name:r,prefix:t,alphabet:e}){let{encode:n,decode:s}=oi(e,r);return Re({prefix:t,name:r,encode:n,decode:o=>Kt(s(o))})}function el(r,t,e,n){let s={};for(let l=0;l<t.length;++l)s[t[l]]=l;let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*e/8|0),c=0,a=0,f=0;for(let l=0;l<o;++l){let u=s[r[l]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,c+=e,c>=8&&(c-=8,i[f++]=255&a>>c)}if(c>=e||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return i}function rl(r,t,e){let n=t[t.length-1]==="=",s=(1<<e)-1,o="",i=0,c=0;for(let a=0;a<r.length;++a)for(c=c<<8|r[a],i+=8;i>e;)i-=e,o+=t[s&c>>i];if(i!==0&&(o+=t[s&c<<e-i]),n)for(;o.length*e&7;)o+="=";return o}function X({name:r,prefix:t,bitsPerChar:e,alphabet:n}){return Re({prefix:t,name:r,encode(s){return rl(s,n,e)},decode(s){return el(s,n,e,r)}})}var J=ne({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),nl=ne({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var fs={};mt(fs,{base32:()=>qt,base32hex:()=>cl,base32hexpad:()=>ll,base32hexpadupper:()=>ul,base32hexupper:()=>al,base32pad:()=>ol,base32padupper:()=>il,base32upper:()=>sl,base32z:()=>fl});var qt=X({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),sl=X({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ol=X({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),il=X({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),cl=X({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),al=X({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ll=X({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ul=X({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),fl=X({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var hs={};mt(hs,{base36:()=>nr,base36upper:()=>hl});var nr=ne({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),hl=ne({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var dl=li,ci=128,pl=127,gl=~pl,ml=Math.pow(2,31);function li(r,t,e){t=t||[],e=e||0;for(var n=e;r>=ml;)t[e++]=r&255|ci,r/=128;for(;r≷)t[e++]=r&255|ci,r>>>=7;return t[e]=r|0,li.bytes=e-n+1,t}var xl=ds,bl=128,ai=127;function ds(r,n){var e=0,n=n||0,s=0,o=n,i,c=r.length;do{if(o>=c)throw ds.bytes=0,new RangeError("Could not decode varint");i=r[o++],e+=s<28?(i&ai)<<s:(i&ai)*Math.pow(2,s),s+=7}while(i>=bl);return ds.bytes=o-n,e}var yl=Math.pow(2,7),wl=Math.pow(2,14),vl=Math.pow(2,21),Bl=Math.pow(2,28),El=Math.pow(2,35),Al=Math.pow(2,42),Sl=Math.pow(2,49),kl=Math.pow(2,56),Il=Math.pow(2,63),Nl=function(r){return r<yl?1:r<wl?2:r<vl?3:r<Bl?4:r<El?5:r<Al?6:r<Sl?7:r<kl?8:r<Il?9:10},Cl={encode:dl,decode:xl,encodingLength:Nl},Tl=Cl,sr=Tl;function or(r,t=0){return[sr.decode(r,t),sr.decode.bytes]}function Ve(r,t,e=0){return sr.encode(r,t,e),t}function He(r){return sr.encodingLength(r)}function It(r,t){let e=t.byteLength,n=He(r),s=n+He(e),o=new Uint8Array(s+e);return Ve(r,o,0),Ve(e,o,n),o.set(t,s),new _e(r,e,t,o)}function ir(r){let t=Kt(r),[e,n]=or(t),[s,o]=or(t.subarray(n)),i=t.subarray(n+o);if(i.byteLength!==s)throw new Error("Incorrect length");return new _e(e,s,i,t)}function ui(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&ei(r.bytes,e.bytes)}}var _e=class{code;size;digest;bytes;constructor(t,e,n,s){this.code=t,this.size=e,this.digest=n,this.bytes=s}};function fi(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return Ll(e,ps(r),t??J.encoder);default:return Rl(e,ps(r),t??qt.encoder)}}var hi=new WeakMap;function ps(r){let t=hi.get(r);if(t==null){let e=new Map;return hi.set(r,e),e}return t}var ct=class r{code;version;multihash;bytes;"/";constructor(t,e,n,s){this.code=e,this.version=t,this.multihash=n,this.bytes=s,this["/"]=s}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:t,multihash:e}=this;if(t!==cr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Vl)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}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:t,digest:e}=this.multihash,n=It(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&ui(t.multihash,n.multihash)}toString(t){return fi(this,t)}toJSON(){return{"/":fi(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:s,multihash:o,bytes:i}=e;return new r(n,s,o,i??di(n,s,o.bytes))}else if(e[Hl]===!0){let{version:n,multihash:s,code:o}=e,i=ir(s);return r.create(n,o,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==cr)throw new Error(`Version 0 CID must use dag-pb (code: ${cr}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let s=di(t,e,n.bytes);return new r(t,e,n,s)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,cr,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,s=Kt(t.subarray(n,n+e.multihashSize));if(s.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=s.subarray(e.multihashSize-e.digestSize),i=new _e(e.multihashCode,e.digestSize,o,s);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[u,h]=or(t.subarray(e));return e+=h,u},s=n(),o=cr;if(s===18?(s=0,e=0):o=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let i=e,c=n(),a=n(),f=e+a,l=f-i;return{version:s,codec:o,multihashCode:c,digestSize:a,multihashSize:l,size:f}}static parse(t,e){let[n,s]=Ul(t,e),o=r.decode(s);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ps(o).set(n,t),o}};function Ul(r,t){switch(r[0]){case"Q":{let e=t??J;return[J.prefix,e.decode(`${J.prefix}${r}`)]}case J.prefix:{let e=t??J;return[J.prefix,e.decode(r)]}case qt.prefix:{let e=t??qt;return[qt.prefix,e.decode(r)]}case nr.prefix:{let e=t??nr;return[nr.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Ll(r,t,e){let{prefix:n}=e;if(n!==J.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let s=t.get(n);if(s==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return s}function Rl(r,t,e){let{prefix:n}=e,s=t.get(n);if(s==null){let o=e.encode(r);return t.set(n,o),o}else return s}var cr=112,Vl=18;function di(r,t,e){let n=He(r),s=n+He(t),o=new Uint8Array(s+e.byteLength);return Ve(r,o,0),Ve(t,o,n),o.set(e,s),o}var Hl=Symbol.for("@ipld/js-cid/CID");var gs={};mt(gs,{identity:()=>se});var pi=0,_l="identity",gi=Kt;function Ml(r){return It(pi,gi(r))}var se={code:pi,name:_l,encode:gi,digest:Ml};function St(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function mi(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function Ol(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Me(r,...t){if(!Ol(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error("Uint8Array expected of length "+t+", got length="+r.length)}function xi(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");mi(r.outputLen),mi(r.blockLen)}function Oe(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function bi(r,t){Me(r);let e=t.outputLen;if(r.length<e)throw new Error("digestInto() expects output buffer of length at least "+e)}var we=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Lr=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Nt=(r,t)=>r<<32-t|r>>>t;function yi(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function ar(r){return typeof r=="string"&&(r=yi(r)),Me(r),r}function ms(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];Me(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let o=r[n];e.set(o,s),s+=o.length}return e}var De=class{clone(){return this._cloneInto()}};function Rr(r){let t=n=>r().update(ar(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function Vr(r=32){if(we&&typeof we.getRandomValues=="function")return we.getRandomValues(new Uint8Array(r));if(we&&typeof we.randomBytes=="function")return we.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Dl(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(e>>s&o),c=Number(e&o),a=n?4:0,f=n?0:4;r.setUint32(t+a,i,n),r.setUint32(t+f,c,n)}var wi=(r,t,e)=>r&t^~r&e,vi=(r,t,e)=>r&t^r&e^t&e,Pe=class extends De{constructor(t,e,n,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Lr(this.buffer)}update(t){Oe(this);let{view:e,buffer:n,blockLen:s}=this;t=ar(t);let o=t.length;for(let i=0;i<o;){let c=Math.min(s-this.pos,o-i);if(c===s){let a=Lr(t);for(;s<=o-i;i+=s)this.process(a,i);continue}n.set(t.subarray(i,i+c),this.pos),this.pos+=c,i+=c,this.pos===s&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Oe(this),bi(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;e[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>s-i&&(this.process(n,0),i=0);for(let u=i;u<s;u++)e[u]=0;Dl(n,s-8,BigInt(this.length*8),o),this.process(n,0);let c=Lr(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let f=a/4,l=this.get();if(f>l.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<f;u++)c.setUint32(4*u,l[u],o)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:s,finished:o,destroyed:i,pos:c}=this;return t.length=s,t.pos=c,t.finished=o,t.destroyed=i,s%e&&t.buffer.set(n),t}};var Hr=BigInt(4294967295),xs=BigInt(32);function Bi(r,t=!1){return t?{h:Number(r&Hr),l:Number(r>>xs&Hr)}:{h:Number(r>>xs&Hr)|0,l:Number(r&Hr)|0}}function Pl(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:o,l:i}=Bi(r[s],t);[e[s],n[s]]=[o,i]}return[e,n]}var Fl=(r,t)=>BigInt(r>>>0)<<xs|BigInt(t>>>0),Kl=(r,t,e)=>r>>>e,ql=(r,t,e)=>r<<32-e|t>>>e,zl=(r,t,e)=>r>>>e|t<<32-e,$l=(r,t,e)=>r<<32-e|t>>>e,jl=(r,t,e)=>r<<64-e|t>>>e-32,Gl=(r,t,e)=>r>>>e-32|t<<64-e,Zl=(r,t)=>t,Wl=(r,t)=>r,Jl=(r,t,e)=>r<<e|t>>>32-e,Yl=(r,t,e)=>t<<e|r>>>32-e,Xl=(r,t,e)=>t<<e-32|r>>>64-e,Ql=(r,t,e)=>r<<e-32|t>>>64-e;function tu(r,t,e,n){let s=(t>>>0)+(n>>>0);return{h:r+e+(s/2**32|0)|0,l:s|0}}var eu=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),ru=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,nu=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),su=(r,t,e,n,s)=>t+e+n+s+(r/2**32|0)|0,ou=(r,t,e,n,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),iu=(r,t,e,n,s,o)=>t+e+n+s+o+(r/2**32|0)|0;var cu={fromBig:Bi,split:Pl,toBig:Fl,shrSH:Kl,shrSL:ql,rotrSH:zl,rotrSL:$l,rotrBH:jl,rotrBL:Gl,rotr32H:Zl,rotr32L:Wl,rotlSH:Jl,rotlSL:Yl,rotlBH:Xl,rotlBL:Ql,add:tu,add3L:eu,add3H:ru,add4L:nu,add4H:su,add5H:iu,add5L:ou},_=cu;var[au,lu]=_.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(r=>BigInt(r))),oe=new Uint32Array(80),ie=new Uint32Array(80),bs=class extends Pe{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:t,Al:e,Bh:n,Bl:s,Ch:o,Cl:i,Dh:c,Dl:a,Eh:f,El:l,Fh:u,Fl:h,Gh:x,Gl:y,Hh:b,Hl:d}=this;return[t,e,n,s,o,i,c,a,f,l,u,h,x,y,b,d]}set(t,e,n,s,o,i,c,a,f,l,u,h,x,y,b,d){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=c|0,this.Dl=a|0,this.Eh=f|0,this.El=l|0,this.Fh=u|0,this.Fl=h|0,this.Gh=x|0,this.Gl=y|0,this.Hh=b|0,this.Hl=d|0}process(t,e){for(let g=0;g<16;g++,e+=4)oe[g]=t.getUint32(e),ie[g]=t.getUint32(e+=4);for(let g=16;g<80;g++){let k=oe[g-15]|0,L=ie[g-15]|0,U=_.rotrSH(k,L,1)^_.rotrSH(k,L,8)^_.shrSH(k,L,7),I=_.rotrSL(k,L,1)^_.rotrSL(k,L,8)^_.shrSL(k,L,7),T=oe[g-2]|0,N=ie[g-2]|0,G=_.rotrSH(T,N,19)^_.rotrBH(T,N,61)^_.shrSH(T,N,6),F=_.rotrSL(T,N,19)^_.rotrBL(T,N,61)^_.shrSL(T,N,6),O=_.add4L(I,F,ie[g-7],ie[g-16]),tt=_.add4H(O,U,G,oe[g-7],oe[g-16]);oe[g]=tt|0,ie[g]=O|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:c,Cl:a,Dh:f,Dl:l,Eh:u,El:h,Fh:x,Fl:y,Gh:b,Gl:d,Hh:v,Hl:A}=this;for(let g=0;g<80;g++){let k=_.rotrSH(u,h,14)^_.rotrSH(u,h,18)^_.rotrBH(u,h,41),L=_.rotrSL(u,h,14)^_.rotrSL(u,h,18)^_.rotrBL(u,h,41),U=u&x^~u&b,I=h&y^~h&d,T=_.add5L(A,L,I,lu[g],ie[g]),N=_.add5H(T,v,k,U,au[g],oe[g]),G=T|0,F=_.rotrSH(n,s,28)^_.rotrBH(n,s,34)^_.rotrBH(n,s,39),O=_.rotrSL(n,s,28)^_.rotrBL(n,s,34)^_.rotrBL(n,s,39),tt=n&o^n&c^o&c,B=s&i^s&a^i&a;v=b|0,A=d|0,b=x|0,d=y|0,x=u|0,y=h|0,{h:u,l:h}=_.add(f|0,l|0,N|0,G|0),f=c|0,l=a|0,c=o|0,a=i|0,o=n|0,i=s|0;let C=_.add3L(G,O,B);n=_.add3H(C,N,F,tt),s=C|0}({h:n,l:s}=_.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=_.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:c,l:a}=_.add(this.Ch|0,this.Cl|0,c|0,a|0),{h:f,l}=_.add(this.Dh|0,this.Dl|0,f|0,l|0),{h:u,l:h}=_.add(this.Eh|0,this.El|0,u|0,h|0),{h:x,l:y}=_.add(this.Fh|0,this.Fl|0,x|0,y|0),{h:b,l:d}=_.add(this.Gh|0,this.Gl|0,b|0,d|0),{h:v,l:A}=_.add(this.Hh|0,this.Hl|0,v|0,A|0),this.set(n,s,o,i,c,a,f,l,u,h,x,y,b,d,v,A)}roundClean(){oe.fill(0),ie.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 Ei=Rr(()=>new bs);var Or={};mt(Or,{aInRange:()=>wt,abool:()=>Ct,abytes:()=>Fe,bitGet:()=>gu,bitLen:()=>Bs,bitMask:()=>ur,bitSet:()=>mu,bytesToHex:()=>$t,bytesToNumberBE:()=>jt,bytesToNumberLE:()=>ae,concatBytes:()=>Gt,createHmacDrbg:()=>Es,ensureBytes:()=>Y,equalBytes:()=>du,hexToBytes:()=>Be,hexToNumber:()=>vs,inRange:()=>lr,isBytes:()=>ce,memoized:()=>Ae,notImplemented:()=>bu,numberToBytesBE:()=>le,numberToBytesLE:()=>Ee,numberToHexUnpadded:()=>ve,numberToVarBytesBE:()=>hu,utf8ToBytes:()=>pu,validateObject:()=>_t});var _r=BigInt(0),Mr=BigInt(1),uu=BigInt(2);function ce(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Fe(r){if(!ce(r))throw new Error("Uint8Array expected")}function Ct(r,t){if(typeof t!="boolean")throw new Error(r+" boolean expected, got "+t)}var fu=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function $t(r){Fe(r);let t="";for(let e=0;e<r.length;e++)t+=fu[r[e]];return t}function ve(r){let t=r.toString(16);return t.length&1?"0"+t:t}function vs(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?_r:BigInt("0x"+r)}var zt={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ai(r){if(r>=zt._0&&r<=zt._9)return r-zt._0;if(r>=zt.A&&r<=zt.F)return r-(zt.A-10);if(r>=zt.a&&r<=zt.f)return r-(zt.a-10)}function Be(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let t=r.length,e=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let s=0,o=0;s<e;s++,o+=2){let i=Ai(r.charCodeAt(o)),c=Ai(r.charCodeAt(o+1));if(i===void 0||c===void 0){let a=r[o]+r[o+1];throw new Error('hex string expected, got non-hex character "'+a+'" at index '+o)}n[s]=i*16+c}return n}function jt(r){return vs($t(r))}function ae(r){return Fe(r),vs($t(Uint8Array.from(r).reverse()))}function le(r,t){return Be(r.toString(16).padStart(t*2,"0"))}function Ee(r,t){return le(r,t).reverse()}function hu(r){return Be(ve(r))}function Y(r,t,e){let n;if(typeof t=="string")try{n=Be(t)}catch(o){throw new Error(r+" must be hex string or Uint8Array, cause: "+o)}else if(ce(t))n=Uint8Array.from(t);else throw new Error(r+" must be hex string or Uint8Array");let s=n.length;if(typeof e=="number"&&s!==e)throw new Error(r+" of length "+e+" expected, got "+s);return n}function Gt(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];Fe(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let o=r[n];e.set(o,s),s+=o.length}return e}function du(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function pu(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}var ys=r=>typeof r=="bigint"&&_r<=r;function lr(r,t,e){return ys(r)&&ys(t)&&ys(e)&&t<=r&&r<e}function wt(r,t,e,n){if(!lr(t,e,n))throw new Error("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function Bs(r){let t;for(t=0;r>_r;r>>=Mr,t+=1);return t}function gu(r,t){return r>>BigInt(t)&Mr}function mu(r,t,e){return r|(e?Mr:_r)<<BigInt(t)}var ur=r=>(uu<<BigInt(r-1))-Mr,ws=r=>new Uint8Array(r),Si=r=>Uint8Array.from(r);function Es(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=ws(r),s=ws(r),o=0,i=()=>{n.fill(1),s.fill(0),o=0},c=(...u)=>e(s,n,...u),a=(u=ws())=>{s=c(Si([0]),u),n=c(),u.length!==0&&(s=c(Si([1]),u),n=c())},f=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,h=[];for(;u<t;){n=c();let x=n.slice();h.push(x),u+=n.length}return Gt(...h)};return(u,h)=>{i(),a(u);let x;for(;!(x=h(f()));)a();return i(),x}}var xu={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||ce(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function _t(r,t,e={}){let n=(s,o,i)=>{let c=xu[o];if(typeof c!="function")throw new Error("invalid validator function");let a=r[s];if(!(i&&a===void 0)&&!c(a,r))throw new Error("param "+String(s)+" is invalid. Expected "+o+", got "+a)};for(let[s,o]of Object.entries(t))n(s,o,!1);for(let[s,o]of Object.entries(e))n(s,o,!0);return r}var bu=()=>{throw new Error("not implemented")};function Ae(r){let t=new WeakMap;return(e,...n)=>{let s=t.get(e);if(s!==void 0)return s;let o=r(e,...n);return t.set(e,o),o}}var et=BigInt(0),Z=BigInt(1),Se=BigInt(2),yu=BigInt(3),As=BigInt(4),ki=BigInt(5),Ii=BigInt(8),wu=BigInt(9),vu=BigInt(16);function z(r,t){let e=r%t;return e>=et?e:t+e}function Bu(r,t,e){if(t<et)throw new Error("invalid exponent, negatives unsupported");if(e<=et)throw new Error("invalid modulus");if(e===Z)return et;let n=Z;for(;t>et;)t&Z&&(n=n*r%e),r=r*r%e,t>>=Z;return n}function W(r,t,e){let n=r;for(;t-- >et;)n*=n,n%=e;return n}function Dr(r,t){if(r===et)throw new Error("invert: expected non-zero number");if(t<=et)throw new Error("invert: expected positive modulus, got "+t);let e=z(r,t),n=t,s=et,o=Z,i=Z,c=et;for(;e!==et;){let f=n/e,l=n%e,u=s-i*f,h=o-c*f;n=e,e=l,s=i,o=c,i=u,c=h}if(n!==Z)throw new Error("invert: does not exist");return z(s,t)}function Eu(r){let t=(r-Z)/Se,e,n,s;for(e=r-Z,n=0;e%Se===et;e/=Se,n++);for(s=Se;s<r&&Bu(s,t,r)!==r-Z;s++)if(s>1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){let i=(r+Z)/As;return function(a,f){let l=a.pow(f,i);if(!a.eql(a.sqr(l),f))throw new Error("Cannot find square root");return l}}let o=(e+Z)/Se;return function(c,a){if(c.pow(a,t)===c.neg(c.ONE))throw new Error("Cannot find square root");let f=n,l=c.pow(c.mul(c.ONE,s),e),u=c.pow(a,o),h=c.pow(a,e);for(;!c.eql(h,c.ONE);){if(c.eql(h,c.ZERO))return c.ZERO;let x=1;for(let b=c.sqr(h);x<f&&!c.eql(b,c.ONE);x++)b=c.sqr(b);let y=c.pow(l,Z<<BigInt(f-x-1));l=c.sqr(y),u=c.mul(u,y),h=c.mul(h,l),f=x}return u}}function Au(r){if(r%As===yu){let t=(r+Z)/As;return function(n,s){let o=n.pow(s,t);if(!n.eql(n.sqr(o),s))throw new Error("Cannot find square root");return o}}if(r%Ii===ki){let t=(r-ki)/Ii;return function(n,s){let o=n.mul(s,Se),i=n.pow(o,t),c=n.mul(s,i),a=n.mul(n.mul(c,Se),i),f=n.mul(c,n.sub(a,n.ONE));if(!n.eql(n.sqr(f),s))throw new Error("Cannot find square root");return f}}return r%vu,Eu(r)}var Ni=(r,t)=>(z(r,t)&Z)===Z,Su=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ss(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=Su.reduce((n,s)=>(n[s]="function",n),t);return _t(r,e)}function ku(r,t,e){if(e<et)throw new Error("invalid exponent, negatives unsupported");if(e===et)return r.ONE;if(e===Z)return t;let n=r.ONE,s=t;for(;e>et;)e&Z&&(n=r.mul(n,s)),s=r.sqr(s),e>>=Z;return n}function Iu(r,t){let e=new Array(t.length),n=t.reduce((o,i,c)=>r.is0(i)?o:(e[c]=o,r.mul(o,i)),r.ONE),s=r.inv(n);return t.reduceRight((o,i,c)=>r.is0(i)?o:(e[c]=r.mul(o,e[c]),r.mul(o,i)),s),e}function ks(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function ue(r,t,e=!1,n={}){if(r<=et)throw new Error("invalid field: expected ORDER > 0, got "+r);let{nBitLength:s,nByteLength:o}=ks(r,t);if(o>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let i,c=Object.freeze({ORDER:r,BITS:s,BYTES:o,MASK:ur(s),ZERO:et,ONE:Z,create:a=>z(a,r),isValid:a=>{if(typeof a!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof a);return et<=a&&a<r},is0:a=>a===et,isOdd:a=>(a&Z)===Z,neg:a=>z(-a,r),eql:(a,f)=>a===f,sqr:a=>z(a*a,r),add:(a,f)=>z(a+f,r),sub:(a,f)=>z(a-f,r),mul:(a,f)=>z(a*f,r),pow:(a,f)=>ku(c,a,f),div:(a,f)=>z(a*Dr(f,r),r),sqrN:a=>a*a,addN:(a,f)=>a+f,subN:(a,f)=>a-f,mulN:(a,f)=>a*f,inv:a=>Dr(a,r),sqrt:n.sqrt||(a=>(i||(i=Au(r)),i(c,a))),invertBatch:a=>Iu(c,a),cmov:(a,f,l)=>l?f:a,toBytes:a=>e?Ee(a,o):le(a,o),fromBytes:a=>{if(a.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+a.length);return e?ae(a):jt(a)}});return Object.freeze(c)}function Ci(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let t=r.toString(2).length;return Math.ceil(t/8)}function Is(r){let t=Ci(r);return t+Math.ceil(t/2)}function Ti(r,t,e=!1){let n=r.length,s=Ci(t),o=Is(t);if(n<16||n<o||n>1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);let i=e?jt(r):ae(r),c=z(i,t-Z)+Z;return e?Ee(c,s):le(c,s)}var Ui=BigInt(0),Pr=BigInt(1);function Ns(r,t){let e=t.negate();return r?e:t}function Li(r,t){if(!Number.isSafeInteger(r)||r<=0||r>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+r)}function Cs(r,t){Li(r,t);let e=Math.ceil(t/r)+1,n=2**(r-1);return{windows:e,windowSize:n}}function Cu(r,t){if(!Array.isArray(r))throw new Error("array expected");r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function Tu(r,t){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}var Ts=new WeakMap,Ri=new WeakMap;function Us(r){return Ri.get(r)||1}function Fr(r,t){return{constTimeNegate:Ns,hasPrecomputes(e){return Us(e)!==1},unsafeLadder(e,n,s=r.ZERO){let o=e;for(;n>Ui;)n&Pr&&(s=s.add(o)),o=o.double(),n>>=Pr;return s},precomputeWindow(e,n){let{windows:s,windowSize:o}=Cs(n,t),i=[],c=e,a=c;for(let f=0;f<s;f++){a=c,i.push(a);for(let l=1;l<o;l++)a=a.add(c),i.push(a);c=a.double()}return i},wNAF(e,n,s){let{windows:o,windowSize:i}=Cs(e,t),c=r.ZERO,a=r.BASE,f=BigInt(2**e-1),l=2**e,u=BigInt(e);for(let h=0;h<o;h++){let x=h*i,y=Number(s&f);s>>=u,y>i&&(y-=l,s+=Pr);let b=x,d=x+Math.abs(y)-1,v=h%2!==0,A=y<0;y===0?a=a.add(Ns(v,n[b])):c=c.add(Ns(A,n[d]))}return{p:c,f:a}},wNAFUnsafe(e,n,s,o=r.ZERO){let{windows:i,windowSize:c}=Cs(e,t),a=BigInt(2**e-1),f=2**e,l=BigInt(e);for(let u=0;u<i;u++){let h=u*c;if(s===Ui)break;let x=Number(s&a);if(s>>=l,x>c&&(x-=f,s+=Pr),x===0)continue;let y=n[h+Math.abs(x)-1];x<0&&(y=y.negate()),o=o.add(y)}return o},getPrecomputes(e,n,s){let o=Ts.get(n);return o||(o=this.precomputeWindow(n,e),e!==1&&Ts.set(n,s(o))),o},wNAFCached(e,n,s){let o=Us(e);return this.wNAF(o,this.getPrecomputes(o,e,s),n)},wNAFCachedUnsafe(e,n,s,o){let i=Us(e);return i===1?this.unsafeLadder(e,n,o):this.wNAFUnsafe(i,this.getPrecomputes(i,e,s),n,o)},setWindowSize(e,n){Li(n,t),Ri.set(e,n),Ts.delete(e)}}}function Kr(r,t,e,n){if(Cu(e,r),Tu(n,t),e.length!==n.length)throw new Error("arrays of points and scalars must have equal length");let s=r.ZERO,o=Bs(BigInt(e.length)),i=o>12?o-3:o>4?o-2:o?2:1,c=(1<<i)-1,a=new Array(c+1).fill(s),f=Math.floor((t.BITS-1)/i)*i,l=s;for(let u=f;u>=0;u-=i){a.fill(s);for(let x=0;x<n.length;x++){let y=n[x],b=Number(y>>BigInt(u)&BigInt(c));a[b]=a[b].add(e[x])}let h=s;for(let x=a.length-1,y=s;x>0;x--)y=y.add(a[x]),h=h.add(y);if(l=l.add(h),u!==0)for(let x=0;x<i;x++)l=l.double()}return l}function fr(r){return Ss(r.Fp),_t(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ks(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Tt=BigInt(0),vt=BigInt(1),qr=BigInt(2),Uu=BigInt(8),Lu={zip215:!0};function Ru(r){let t=fr(r);return _t(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Vi(r){let t=Ru(r),{Fp:e,n,prehash:s,hash:o,randomBytes:i,nByteLength:c,h:a}=t,f=qr<<BigInt(c*8)-vt,l=e.create,u=ue(t.n,t.nBitLength),h=t.uvRatio||((m,p)=>{try{return{isValid:!0,value:e.sqrt(m*e.inv(p))}}catch{return{isValid:!1,value:Tt}}}),x=t.adjustScalarBytes||(m=>m),y=t.domain||((m,p,w)=>{if(Ct("phflag",w),p.length||w)throw new Error("Contexts/pre-hash are not supported");return m});function b(m,p){wt("coordinate "+m,p,Tt,f)}function d(m){if(!(m instanceof g))throw new Error("ExtendedPoint expected")}let v=Ae((m,p)=>{let{ex:w,ey:S,ez:R}=m,V=m.is0();p==null&&(p=V?Uu:e.inv(R));let M=l(w*p),P=l(S*p),H=l(R*p);if(V)return{x:Tt,y:vt};if(H!==vt)throw new Error("invZ was invalid");return{x:M,y:P}}),A=Ae(m=>{let{a:p,d:w}=t;if(m.is0())throw new Error("bad point: ZERO");let{ex:S,ey:R,ez:V,et:M}=m,P=l(S*S),H=l(R*R),q=l(V*V),j=l(q*q),nt=l(P*p),st=l(q*l(nt+H)),it=l(j+l(w*l(P*H)));if(st!==it)throw new Error("bad point: equation left != right (1)");let ft=l(S*R),yt=l(V*M);if(ft!==yt)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(p,w,S,R){this.ex=p,this.ey=w,this.ez=S,this.et=R,b("x",p),b("y",w),b("z",S),b("t",R),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(p){if(p instanceof g)throw new Error("extended point not allowed");let{x:w,y:S}=p||{};return b("x",w),b("y",S),new g(w,S,vt,l(w*S))}static normalizeZ(p){let w=e.invertBatch(p.map(S=>S.ez));return p.map((S,R)=>S.toAffine(w[R])).map(g.fromAffine)}static msm(p,w){return Kr(g,u,p,w)}_setWindowSize(p){U.setWindowSize(this,p)}assertValidity(){A(this)}equals(p){d(p);let{ex:w,ey:S,ez:R}=this,{ex:V,ey:M,ez:P}=p,H=l(w*P),q=l(V*R),j=l(S*P),nt=l(M*R);return H===q&&j===nt}is0(){return this.equals(g.ZERO)}negate(){return new g(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:p}=t,{ex:w,ey:S,ez:R}=this,V=l(w*w),M=l(S*S),P=l(qr*l(R*R)),H=l(p*V),q=w+S,j=l(l(q*q)-V-M),nt=H+M,st=nt-P,it=H-M,ft=l(j*st),yt=l(nt*it),gt=l(j*it),Ht=l(st*nt);return new g(ft,yt,Ht,gt)}add(p){d(p);let{a:w,d:S}=t,{ex:R,ey:V,ez:M,et:P}=this,{ex:H,ey:q,ez:j,et:nt}=p;if(w===BigInt(-1)){let $o=l((V-R)*(q+H)),jo=l((V+R)*(q-H)),ss=l(jo-$o);if(ss===Tt)return this.double();let Go=l(M*qr*nt),Zo=l(P*qr*j),Wo=Zo+Go,Jo=jo+$o,Yo=Zo-Go,Pa=l(Wo*ss),Fa=l(Jo*Yo),Ka=l(Wo*Yo),qa=l(ss*Jo);return new g(Pa,Fa,qa,Ka)}let st=l(R*H),it=l(V*q),ft=l(P*S*nt),yt=l(M*j),gt=l((R+V)*(H+q)-st-it),Ht=yt-ft,Ft=yt+ft,rr=l(it-w*st),_a=l(gt*Ht),Ma=l(Ft*rr),Oa=l(gt*rr),Da=l(Ht*Ft);return new g(_a,Ma,Da,Oa)}subtract(p){return this.add(p.negate())}wNAF(p){return U.wNAFCached(this,p,g.normalizeZ)}multiply(p){let w=p;wt("scalar",w,vt,n);let{p:S,f:R}=this.wNAF(w);return g.normalizeZ([S,R])[0]}multiplyUnsafe(p,w=g.ZERO){let S=p;return wt("scalar",S,Tt,n),S===Tt?L:this.is0()||S===vt?this:U.wNAFCachedUnsafe(this,S,g.normalizeZ,w)}isSmallOrder(){return this.multiplyUnsafe(a).is0()}isTorsionFree(){return U.unsafeLadder(this,n).is0()}toAffine(p){return v(this,p)}clearCofactor(){let{h:p}=t;return p===vt?this:this.multiplyUnsafe(p)}static fromHex(p,w=!1){let{d:S,a:R}=t,V=e.BYTES;p=Y("pointHex",p,V),Ct("zip215",w);let M=p.slice(),P=p[V-1];M[V-1]=P&-129;let H=ae(M),q=w?f:e.ORDER;wt("pointHex.y",H,Tt,q);let j=l(H*H),nt=l(j-vt),st=l(S*j-R),{isValid:it,value:ft}=h(nt,st);if(!it)throw new Error("Point.fromHex: invalid y coordinate");let yt=(ft&vt)===vt,gt=(P&128)!==0;if(!w&&ft===Tt&>)throw new Error("Point.fromHex: x=0 and x_0=1");return gt!==yt&&(ft=l(-ft)),g.fromAffine({x:ft,y:H})}static fromPrivateKey(p){return N(p).point}toRawBytes(){let{x:p,y:w}=this.toAffine(),S=Ee(w,e.BYTES);return S[S.length-1]|=p&vt?128:0,S}toHex(){return $t(this.toRawBytes())}}g.BASE=new g(t.Gx,t.Gy,vt,l(t.Gx*t.Gy)),g.ZERO=new g(Tt,vt,vt,Tt);let{BASE:k,ZERO:L}=g,U=Fr(g,c*8);function I(m){return z(m,n)}function T(m){return I(ae(m))}function N(m){let p=e.BYTES;m=Y("private key",m,p);let w=Y("hashed private key",o(m),2*p),S=x(w.slice(0,p)),R=w.slice(p,2*p),V=T(S),M=k.multiply(V),P=M.toRawBytes();return{head:S,prefix:R,scalar:V,point:M,pointBytes:P}}function G(m){return N(m).pointBytes}function F(m=new Uint8Array,...p){let w=Gt(...p);return T(o(y(w,Y("context",m),!!s)))}function O(m,p,w={}){m=Y("message",m),s&&(m=s(m));let{prefix:S,scalar:R,pointBytes:V}=N(p),M=F(w.context,S,m),P=k.multiply(M).toRawBytes(),H=F(w.context,P,V,m),q=I(M+H*R);wt("signature.s",q,Tt,n);let j=Gt(P,Ee(q,e.BYTES));return Y("result",j,e.BYTES*2)}let tt=Lu;function B(m,p,w,S=tt){let{context:R,zip215:V}=S,M=e.BYTES;m=Y("signature",m,2*M),p=Y("message",p),w=Y("publicKey",w,M),V!==void 0&&Ct("zip215",V),s&&(p=s(p));let P=ae(m.slice(M,2*M)),H,q,j;try{H=g.fromHex(w,V),q=g.fromHex(m.slice(0,M),V),j=k.multiplyUnsafe(P)}catch{return!1}if(!V&&H.isSmallOrder())return!1;let nt=F(R,q.toRawBytes(),H.toRawBytes(),p);return q.add(H.multiplyUnsafe(nt)).subtract(j).clearCofactor().equals(g.ZERO)}return k._setWindowSize(8),{CURVE:t,getPublicKey:G,sign:O,verify:B,ExtendedPoint:g,utils:{getExtendedPublicKey:N,randomPrivateKey:()=>i(e.BYTES),precompute(m=8,p=g.BASE){return p._setWindowSize(m),p.multiply(BigInt(3)),p}}}}var Ls=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Hi=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),bd=BigInt(0),Vu=BigInt(1),_i=BigInt(2),yd=BigInt(3),Hu=BigInt(5),_u=BigInt(8);function Mu(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),s=BigInt(80),o=Ls,c=r*r%o*r%o,a=W(c,_i,o)*c%o,f=W(a,Vu,o)*r%o,l=W(f,Hu,o)*f%o,u=W(l,t,o)*l%o,h=W(u,e,o)*u%o,x=W(h,n,o)*h%o,y=W(x,s,o)*x%o,b=W(y,s,o)*x%o,d=W(b,t,o)*l%o;return{pow_p_5_8:W(d,_i,o)*r%o,b2:c}}function Ou(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Du(r,t){let e=Ls,n=z(t*t*t,e),s=z(n*n*t,e),o=Mu(r*s).pow_p_5_8,i=z(r*n*o,e),c=z(t*i*i,e),a=i,f=z(i*Hi,e),l=c===r,u=c===z(-r,e),h=c===z(-r*Hi,e);return l&&(i=a),(u||h)&&(i=f),Ni(i,e)&&(i=z(-i,e)),{isValid:l||u,value:i}}var Pu=ue(Ls,void 0,!0),Fu={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Pu,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:_u,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ei,randomBytes:Vr,adjustScalarBytes:Ou,uvRatio:Du},Mi=Vi(Fu);var zr=32;function Oi(r,t,e){return Mi.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}var $r=class{type="Ed25519";raw;constructor(t){this.raw=Rs(t,zr)}toMultihash(){return se.digest(Ke(this))}toCID(){return ct.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:St(this.raw,t.raw)}verify(t,e){return Oi(this.raw,e,t)}};function Pi(r){return r=Rs(r,zr),new $r(r)}function Rs(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new xt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}function Fi(r=0){return new Uint8Array(r)}function Ut(r=0){return new Uint8Array(r)}var qu=Math.pow(2,7),zu=Math.pow(2,14),$u=Math.pow(2,21),Vs=Math.pow(2,28),Hs=Math.pow(2,35),_s=Math.pow(2,42),Ms=Math.pow(2,49),K=128,ht=127;function Bt(r){if(r<qu)return 1;if(r<zu)return 2;if(r<$u)return 3;if(r<Vs)return 4;if(r<Hs)return 5;if(r<_s)return 6;if(r<Ms)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Os(r,t,e=0){switch(Bt(r)){case 8:t[e++]=r&255|K,r/=128;case 7:t[e++]=r&255|K,r/=128;case 6:t[e++]=r&255|K,r/=128;case 5:t[e++]=r&255|K,r/=128;case 4:t[e++]=r&255|K,r>>>=7;case 3:t[e++]=r&255|K,r>>>=7;case 2:t[e++]=r&255|K,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function ju(r,t,e=0){switch(Bt(r)){case 8:t.set(e++,r&255|K),r/=128;case 7:t.set(e++,r&255|K),r/=128;case 6:t.set(e++,r&255|K),r/=128;case 5:t.set(e++,r&255|K),r/=128;case 4:t.set(e++,r&255|K),r>>>=7;case 3:t.set(e++,r&255|K),r>>>=7;case 2:t.set(e++,r&255|K),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Ds(r,t){let e=r[t],n=0;if(n+=e&ht,e<K||(e=r[t+1],n+=(e&ht)<<7,e<K)||(e=r[t+2],n+=(e&ht)<<14,e<K)||(e=r[t+3],n+=(e&ht)<<21,e<K)||(e=r[t+4],n+=(e&ht)*Vs,e<K)||(e=r[t+5],n+=(e&ht)*Hs,e<K)||(e=r[t+6],n+=(e&ht)*_s,e<K)||(e=r[t+7],n+=(e&ht)*Ms,e<K))return n;throw new RangeError("Could not decode varint")}function Gu(r,t){let e=r.get(t),n=0;if(n+=e&ht,e<K||(e=r.get(t+1),n+=(e&ht)<<7,e<K)||(e=r.get(t+2),n+=(e&ht)<<14,e<K)||(e=r.get(t+3),n+=(e&ht)<<21,e<K)||(e=r.get(t+4),n+=(e&ht)*Vs,e<K)||(e=r.get(t+5),n+=(e&ht)*Hs,e<K)||(e=r.get(t+6),n+=(e&ht)*_s,e<K)||(e=r.get(t+7),n+=(e&ht)*Ms,e<K))return n;throw new RangeError("Could not decode varint")}function qe(r,t,e=0){return t==null&&(t=Ut(Bt(r))),t instanceof Uint8Array?Os(r,t,e):ju(r,t,e)}function ke(r,t=0){return r instanceof Uint8Array?Ds(r,t):Gu(r,t)}var Ps=new Float32Array([-0]),fe=new Uint8Array(Ps.buffer);function qi(r,t,e){Ps[0]=r,t[e]=fe[0],t[e+1]=fe[1],t[e+2]=fe[2],t[e+3]=fe[3]}function zi(r,t){return fe[0]=r[t],fe[1]=r[t+1],fe[2]=r[t+2],fe[3]=r[t+3],Ps[0]}var Fs=new Float64Array([-0]),dt=new Uint8Array(Fs.buffer);function $i(r,t,e){Fs[0]=r,t[e]=dt[0],t[e+1]=dt[1],t[e+2]=dt[2],t[e+3]=dt[3],t[e+4]=dt[4],t[e+5]=dt[5],t[e+6]=dt[6],t[e+7]=dt[7]}function ji(r,t){return dt[0]=r[t],dt[1]=r[t+1],dt[2]=r[t+2],dt[3]=r[t+3],dt[4]=r[t+4],dt[5]=r[t+5],dt[6]=r[t+6],dt[7]=r[t+7],Fs[0]}var Zu=BigInt(Number.MAX_SAFE_INTEGER),Wu=BigInt(Number.MIN_SAFE_INTEGER),At=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0