From 7cd984569dbf0046861ec84e8e030ef62725fd14 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 11 Sep 2024 17:32:17 +0100 Subject: [PATCH] fix: remove patches for gossipsub, noise and the daemon modules (#2694) These have all been updated so the patches are no longer required. --- interop/BrowserDockerfile | 1 - interop/Dockerfile | 1 - interop/package.json | 4 +- package.json | 7 +- packages/integration-tests/package.json | 12 +- packages/libp2p/package.json | 2 +- packages/transport-webrtc/package.json | 4 +- packages/transport-webtransport/package.json | 4 +- .../@chainsafe+libp2p-gossipsub+13.2.0.patch | 6447 ----------------- patches/@chainsafe+libp2p-noise+15.1.2.patch | 767 -- patches/@chainsafe+libp2p-yamux+6.0.2.patch | 2295 ------ patches/@libp2p+daemon-client+8.0.6.patch | 1731 ----- patches/@libp2p+daemon-server+7.0.6.patch | 580 -- 13 files changed, 15 insertions(+), 11840 deletions(-) delete mode 100644 patches/@chainsafe+libp2p-gossipsub+13.2.0.patch delete mode 100644 patches/@chainsafe+libp2p-noise+15.1.2.patch delete mode 100644 patches/@chainsafe+libp2p-yamux+6.0.2.patch delete mode 100644 patches/@libp2p+daemon-client+8.0.6.patch delete mode 100644 patches/@libp2p+daemon-server+7.0.6.patch diff --git a/interop/BrowserDockerfile b/interop/BrowserDockerfile index 5fa9b62593..b4a768df14 100644 --- a/interop/BrowserDockerfile +++ b/interop/BrowserDockerfile @@ -5,7 +5,6 @@ WORKDIR /app COPY package.json ./ COPY ./packages ./packages COPY ./interop ./interop -COPY ./patches ./patches # disable colored output and CLI animation from test runners ENV CI=true diff --git a/interop/Dockerfile b/interop/Dockerfile index 6ff28edec7..225c55b653 100644 --- a/interop/Dockerfile +++ b/interop/Dockerfile @@ -7,7 +7,6 @@ WORKDIR /app COPY package.json ./ COPY ./packages ./packages COPY ./interop ./interop -COPY ./patches ./patches # disable colored output and CLI animation from test runners ENV CI=true diff --git a/interop/package.json b/interop/package.json index 7c97584e0e..1650d02938 100644 --- a/interop/package.json +++ b/interop/package.json @@ -18,8 +18,8 @@ "dep-check": "aegir dep-check" }, "devDependencies": { - "@chainsafe/libp2p-noise": "^15.0.0", - "@chainsafe/libp2p-yamux": "^6.0.2", + "@chainsafe/libp2p-noise": "^16.0.0", + "@chainsafe/libp2p-yamux": "^7.0.0", "@libp2p/circuit-relay-v2": "^2.0.0", "@libp2p/interface": "^2.0.0", "@libp2p/identify": "^3.0.0", diff --git a/package.json b/package.json index cc35e3dca2..886a8d17ce 100644 --- a/package.json +++ b/package.json @@ -33,14 +33,11 @@ "npm:release": "aegir exec --bail false npm -- publish", "release:rc": "aegir release-rc", "docs": "aegir docs", - "docs:no-publish": "aegir docs --publish false -- --exclude interop --exclude doc", - "postinstall": "patch-package && rm -rf node_modules/@chainsafe/libp2p-yamux/node_modules node_modules/@chainsafe/libp2p-noise/node_modules node_modules/@chainsafe/libp2p-gossipsub/node_modules node_modules/@libp2p/daemon-client/node_modules node_modules/@libp2p/daemon-server/node_modules node_modules/@libp2p/daemon-protocol/node_modules node_modules/@libp2p/interop/node_modules" + "docs:no-publish": "aegir docs --publish false -- --exclude interop --exclude doc" }, "devDependencies": { "aegir": "^44.0.1", - "npm-run-all": "^4.1.5", - "patch-package": "^8.0.0", - "rimraf": "^6.0.1" + "npm-run-all": "^4.1.5" }, "eslintConfig": { "extends": "ipfs", diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 277b1f7c3e..0a63252332 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -33,14 +33,14 @@ "dep-check": "aegir dep-check" }, "devDependencies": { - "@chainsafe/libp2p-gossipsub": "^13.0.0", - "@chainsafe/libp2p-noise": "^15.0.0", - "@chainsafe/libp2p-yamux": "^6.0.2", + "@chainsafe/libp2p-gossipsub": "^14.0.0", + "@chainsafe/libp2p-noise": "^16.0.0", + "@chainsafe/libp2p-yamux": "^7.0.0", "@libp2p/bootstrap": "^11.0.0", "@libp2p/circuit-relay-v2": "^2.0.0", "@libp2p/crypto": "^5.0.0", - "@libp2p/daemon-client": "^8.0.5", - "@libp2p/daemon-server": "^7.0.5", + "@libp2p/daemon-client": "^9.0.1", + "@libp2p/daemon-server": "^8.0.1", "@libp2p/dcutr": "^2.0.0", "@libp2p/echo": "^2.0.0", "@libp2p/fetch": "^2.0.0", @@ -49,7 +49,7 @@ "@libp2p/interface": "^2.0.0", "@libp2p/interface-compliance-tests": "^6.0.0", "@libp2p/interface-internal": "^2.0.0", - "@libp2p/interop": "^12.2.0", + "@libp2p/interop": "^13.0.0", "@libp2p/kad-dht": "^13.0.0", "@libp2p/logger": "^5.0.0", "@libp2p/mdns": "^11.0.0", diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 1e6c058344..f5a4515ab7 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -113,7 +113,7 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@chainsafe/libp2p-yamux": "^6.0.2", + "@chainsafe/libp2p-yamux": "^7.0.0", "@libp2p/circuit-relay-v2": "^2.0.0", "@libp2p/identify": "^3.0.0", "@libp2p/interface-compliance-tests": "^6.0.0", diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index d6d403d70b..6af22b66b0 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -50,7 +50,7 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@chainsafe/libp2p-noise": "^15.0.0", + "@chainsafe/libp2p-noise": "^16.0.0", "@libp2p/interface": "^2.0.0", "@libp2p/interface-internal": "^2.0.0", "@libp2p/peer-id": "^5.0.0", @@ -77,7 +77,7 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@chainsafe/libp2p-yamux": "^6.0.2", + "@chainsafe/libp2p-yamux": "^7.0.0", "@libp2p/circuit-relay-v2": "^2.0.0", "@libp2p/crypto": "^5.0.0", "@libp2p/identify": "^3.0.0", diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index c685610667..92c3e6afdc 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -50,7 +50,7 @@ "test:chrome-webworker": "aegir test -t webworker" }, "dependencies": { - "@chainsafe/libp2p-noise": "^15.0.0", + "@chainsafe/libp2p-noise": "^16.0.0", "@libp2p/interface": "^2.0.0", "@libp2p/peer-id": "^5.0.0", "@libp2p/utils": "^6.0.0", @@ -65,7 +65,7 @@ }, "devDependencies": { "@libp2p/crypto": "^5.0.0", - "@libp2p/daemon-client": "^8.0.5", + "@libp2p/daemon-client": "^9.0.1", "@libp2p/logger": "^5.0.0", "@libp2p/ping": "^2.0.0", "@noble/hashes": "^1.4.0", diff --git a/patches/@chainsafe+libp2p-gossipsub+13.2.0.patch b/patches/@chainsafe+libp2p-gossipsub+13.2.0.patch deleted file mode 100644 index 2bb1580341..0000000000 --- a/patches/@chainsafe+libp2p-gossipsub+13.2.0.patch +++ /dev/null @@ -1,6447 +0,0 @@ -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/index.min.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/index.min.js -index 5736a01..00b6e64 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/index.min.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/index.min.js -@@ -1,10 +1,9 @@ - (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 Yl=Object.create;var mr=Object.defineProperty;var Xl=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var Ql=Object.getPrototypeOf,eu=Object.prototype.hasOwnProperty;var $n=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),ue=(s,e)=>{for(var t in e)mr(s,t,{get:e[t],enumerable:!0})},Oo=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Jl(e))!eu.call(s,n)&&n!==t&&mr(s,n,{get:()=>e[n],enumerable:!(r=Xl(e,n))||r.enumerable});return s};var jn=(s,e,t)=>(t=s!=null?Yl(Ql(s)):{},Oo(e||!s||!s.__esModule?mr(t,"default",{value:s,enumerable:!0}):t,s)),tu=s=>Oo(mr({},"__esModule",{value:!0}),s);var ma=$n((hm,ga)=>{"use strict";function pa(s,e){for(let t in e)Object.defineProperty(s,t,{value:e[t],enumerable:!0,configurable:!0});return s}function ph(s,e,t){if(!s||typeof s=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return pa(s,t)}catch{t.message=s.message,t.stack=s.stack;let n=function(){};return n.prototype=Object.create(Object.getPrototypeOf(s)),pa(new n,t)}}ga.exports=ph});var Ga=$n((I0,Ha)=>{"use strict";function Q(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))}Q.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]}};Q.prototype.get=function(e){return this.peekAt(e)};Q.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]};Q.prototype.peekFront=function(){return this.peek()};Q.prototype.peekBack=function(){return this.peekAt(-1)};Object.defineProperty(Q.prototype,"length",{get:function(){return this.size()}});Q.prototype.size=function(){return this._head===this._tail?0:this._headthis._capacity&&this.pop(),this._head1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),t}};Q.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._head1e4&&e<=t>>>2&&this._shrinkArray(),r}};Q.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(e0;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}}};Q.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;c0;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(r0;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}}};Q.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,f=this._list.length,l=2;if(!n||r0&&(this._head=this._head+r+f&this._capacityMask)):(a=this.remove(r,t),this._head=this._head+r+f&this._capacityMask);c>l;)this.unshift(arguments[--c]);for(i=r;i>0;i--)this.unshift(o[i-1])}else{o=new Array(n-(r+t));var u=o.length;for(i=0;ithis._tail){for(c=this._head;c>>=1,this._capacityMask>>>=1};Q.prototype._nextPowerOf2=function(e){var t=Math.log(e)/Math.log(2),r=1<{"use strict";var Xf="[object ArrayBuffer]",yt=class s{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Xf}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;in.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 rd(s,e){if(!(s&&e)||s.byteLength!==e.byteLength)return!1;let t=new Uint8Array(s),r=new Uint8Array(e);for(let n=0;nqn,gossipsub:()=>Ep,multicodec:()=>xp});var Fo=Symbol.for("@libp2p/peer-id");var qt="StrictSign",rs="StrictNoSign",Be;(function(s){s.Accept="accept",s.Ignore="ignore",s.Reject="reject"})(Be||(Be={}));var T=class extends Error{code;props;constructor(e,t,r){super(e),this.code=t,this.name=r?.name??"CodeError",this.props=r??{}}};var Ho=(s,...e)=>{try{[...e]}catch{}};var br=class extends EventTarget{#e=new Map;constructor(){super(),Ho(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 su(e,t))}},Zn=class extends Event{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},su=globalThis.CustomEvent??Zn;var Go=Symbol.for("@libp2p/service-capabilities"),Ko=Symbol.for("@libp2p/service-dependencies");var ei={};ue(ei,{base58btc:()=>me,base58flickr:()=>cu});var eg=new Uint8Array(0);function zo(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;t=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,A=new Uint8Array(w);b!==_;){for(var y=g[b],x=0,E=w-1;(y!==0||x>>0,A[E]=y%a>>>0,y=y/a>>>0;if(y!==0)throw new Error("Non-zero carry");m=x,b++}for(var B=w-m;B!==w&&A[B]===0;)B++;for(var D=c.repeat(d);B>>0,w=new Uint8Array(_);g[d];){var A=t[g.charCodeAt(d)];if(A===255)return;for(var y=0,x=_-1;(A!==0||y>>0,w[x]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");b=y,d++}if(g[d]!==" "){for(var E=_-b;E!==_&&w[E]===0;)E++;for(var B=new Uint8Array(m+(_-E)),D=m;E!==_;)B[D++]=w[E++];return B}}}function p(g){var d=h(g);if(d)return d;throw new Error(`Non-${e} character`)}return{encode:u,decodeUnsafe:h,decode:p}}var nu=ru,iu=nu,jo=iu;var Yn=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")}},Xn=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)}},Jn=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 Jn({...s.decoders??{[s.prefix]:s},...e.decoders??{[e.prefix]:e}})}var Qn=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 Yn(e,t,r),this.decoder=new Xn(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function ns({name:s,prefix:e,encode:t,decode:r}){return new Qn(s,e,t,r)}function St({name:s,prefix:e,alphabet:t}){let{encode:r,decode:n}=jo(t,s);return ns({prefix:e,name:s,encode:r,decode:i=>at(n(i))})}function ou(s,e,t,r){let n={};for(let l=0;l=8&&(a-=8,o[f++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function au(s,e,t){let r=e[e.length-1]==="=",n=(1<t;)o-=t,i+=e[n&a>>o];if(o!==0&&(i+=e[n&a<lu});var lu=St({prefix:"9",name:"base10",alphabet:"0123456789"});var si={};ue(si,{base16:()=>uu,base16upper:()=>hu});var uu=te({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),hu=te({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ri={};ue(ri,{base2:()=>fu});var fu=te({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ni={};ue(ni,{base256emoji:()=>bu});var Yo=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),du=Yo.reduce((s,e,t)=>(s[t]=e,s),[]),pu=Yo.reduce((s,e,t)=>(s[e.codePointAt(0)]=t,s),[]);function gu(s){return s.reduce((e,t)=>(e+=du[t],e),"")}function mu(s){let e=[];for(let t of s){let r=pu[t.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(r)}return new Uint8Array(e)}var bu=ns({prefix:"\u{1F680}",name:"base256emoji",encode:gu,decode:mu});var ii={};ue(ii,{base32:()=>Wt,base32hex:()=>xu,base32hexpad:()=>_u,base32hexpadupper:()=>Bu,base32hexupper:()=>Eu,base32pad:()=>wu,base32padupper:()=>vu,base32upper:()=>yu,base32z:()=>Su});var Wt=te({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),yu=te({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),wu=te({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),vu=te({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),xu=te({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Eu=te({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),_u=te({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Bu=te({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Su=te({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var oi={};ue(oi,{base36:()=>Iu,base36upper:()=>Au});var Iu=St({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Au=St({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ci={};ue(ci,{base64:()=>ai,base64pad:()=>ku,base64url:()=>Tu,base64urlpad:()=>Pu});var ai=te({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ku=te({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Tu=te({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Pu=te({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var li={};ue(li,{base8:()=>Ru});var Ru=te({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ui={};ue(ui,{identity:()=>Mu});var Mu=ns({prefix:"\0",name:"identity",encode:s=>Wo(s),decode:s=>qo(s)});var mg=new TextEncoder,bg=new TextDecoder;var fi={};ue(fi,{identity:()=>ls});var Cu=Qo,Xo=128,Lu=127,Uu=~Lu,Vu=Math.pow(2,31);function Qo(s,e,t){e=e||[],t=t||0;for(var r=t;s>=Vu;)e[t++]=s&255|Xo,s/=128;for(;s&Uu;)e[t++]=s&255|Xo,s>>>=7;return e[t]=s|0,Qo.bytes=t-r+1,e}var Ou=hi,Fu=128,Jo=127;function hi(s,r){var t=0,r=r||0,n=0,i=r,o,a=s.length;do{if(i>=a)throw hi.bytes=0,new RangeError("Could not decode varint");o=s[i++],t+=n<28?(o&Jo)<=Fu);return hi.bytes=i-r,t}var Hu=Math.pow(2,7),Gu=Math.pow(2,14),Ku=Math.pow(2,21),zu=Math.pow(2,28),qu=Math.pow(2,35),Wu=Math.pow(2,42),$u=Math.pow(2,49),ju=Math.pow(2,56),Zu=Math.pow(2,63),Yu=function(s){return sce,sha512:()=>th});function pi({name:s,code:e,encode:t}){return new di(s,e,t)}var di=class{name;code;encode;constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?It(this.code,t):t.then(r=>It(this.code,r))}else throw Error("Unknown type, must be binary type")}};function na(s){return async e=>new Uint8Array(await crypto.subtle.digest(s,e))}var ce=pi({name:"sha2-256",code:18,encode:na("SHA-256")}),th=pi({name:"sha2-512",code:19,encode:na("SHA-512")});function ia(s,e){let{bytes:t,version:r}=s;switch(r){case 0:return rh(t,mi(s),e??me.encoder);default:return nh(t,mi(s),e??Wt.encoder)}}var oa=new WeakMap;function mi(s){let e=oa.get(s);if(e==null){let t=new Map;return oa.set(s,t),t}return e}var At=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!==Ks)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==ih)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=It(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&&ea(e.multihash,r.multihash)}toString(e){return ia(this,e)}toJSON(){return{"/":ia(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??aa(r,n,i.bytes))}else if(t[oh]===!0){let{version:r,multihash:n,code:i}=t,o=cs(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!==Ks)throw new Error(`Version 0 CID must use dag-pb (code: ${Ks}) block encoding`);return new s(e,t,r,r.bytes)}case 1:{let n=aa(e,t,r.bytes);return new s(e,t,r,n)}default:throw new Error("Invalid version")}}static createV0(e){return s.create(0,Ks,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=at(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 as(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[u,h]=Gs(e.subarray(t));return t+=h,u},n=r(),i=Ks;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(),f=t+c,l=f-o;return{version:n,codec:i,multihashCode:a,digestSize:c,multihashSize:l,size:f}}static parse(e,t){let[r,n]=sh(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 mi(i).set(r,e),i}};function sh(s,e){switch(s[0]){case"Q":{let t=e??me;return[me.prefix,t.decode(`${me.prefix}${s}`)]}case me.prefix:{let t=e??me;return[me.prefix,t.decode(s)]}case Wt.prefix:{let t=e??Wt;return[Wt.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 rh(s,e,t){let{prefix:r}=t;if(r!==me.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 nh(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 Ks=112,ih=18;function aa(s,e,t){let r=os(s),n=r+os(e),i=new Uint8Array(n+t.byteLength);return is(s,i,0),is(e,i,r),i.set(t,n),i}var oh=Symbol.for("@ipld/js-cid/CID");var kt={...ui,...ri,...li,...ti,...si,...ii,...oi,...ei,...ci,...ni},Vg={...gi,...fi};function be(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;ts.decoder).reduce((s,e)=>s.or(e),kt.identity.decoder),la=114,ua=36,ha=37,zs=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Fo]=!0;toString(){return this.string==null&&(this.string=me.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return At.createV1(la,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return be(this.multihash.bytes,e);if(typeof e=="string")return ct(e).equals(this);if(e?.multihash?.bytes!=null)return be(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[ah](){return`PeerId(${this.toString()})`}},qs=class extends zs{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ws=class extends zs{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},$s=class extends zs{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function ct(s,e){if(e=e??ca,s.charAt(0)==="1"||s.charAt(0)==="Q"){let t=cs(me.decode(`z${s}`));return s.startsWith("12D")?new Ws({multihash:t}):s.startsWith("16U")?new $s({multihash:t}):new qs({multihash:t})}return js(ca.decode(s))}function js(s){try{let e=cs(s);if(e.code===ls.code){if(e.digest.length===ua)return new Ws({multihash:e});if(e.digest.length===ha)return new $s({multihash:e})}if(e.code===ce.code)return new qs({multihash:e})}catch{return ch(At.decode(s))}throw new Error("Supplied PeerID CID is invalid")}function ch(s){if(s==null||s.multihash==null||s.version==null||s.version===1&&s.code!==la)throw new Error("Supplied PeerID CID is invalid");let e=s.multihash;if(e.code===ce.code)return new qs({multihash:s.multihash});if(e.code===ls.code){if(e.digest.length===ua)return new Ws({multihash:s.multihash});if(e.digest.length===ha)return new $s({multihash:s.multihash})}throw new Error("Supplied PeerID CID is invalid")}function lt(s=0){return new Uint8Array(s)}function ye(s=0){return new Uint8Array(s)}var lh=Math.pow(2,7),uh=Math.pow(2,14),hh=Math.pow(2,21),bi=Math.pow(2,28),yi=Math.pow(2,35),wi=Math.pow(2,42),vi=Math.pow(2,49),q=128,we=127;function Se(s){if(sNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function xi(s,e,t=0){switch(Se(s)){case 8:e[t++]=s&255|q,s/=128;case 7:e[t++]=s&255|q,s/=128;case 6:e[t++]=s&255|q,s/=128;case 5:e[t++]=s&255|q,s/=128;case 4:e[t++]=s&255|q,s>>>=7;case 3:e[t++]=s&255|q,s>>>=7;case 2:e[t++]=s&255|q,s>>>=7;case 1:{e[t++]=s&255,s>>>=7;break}default:throw new Error("unreachable")}return e}function fh(s,e,t=0){switch(Se(s)){case 8:e.set(t++,s&255|q),s/=128;case 7:e.set(t++,s&255|q),s/=128;case 6:e.set(t++,s&255|q),s/=128;case 5:e.set(t++,s&255|q),s/=128;case 4:e.set(t++,s&255|q),s>>>=7;case 3:e.set(t++,s&255|q),s>>>=7;case 2:e.set(t++,s&255|q),s>>>=7;case 1:{e.set(t++,s&255),s>>>=7;break}default:throw new Error("unreachable")}return e}function Ei(s,e){let t=s[e],r=0;if(r+=t&we,tn+i.length,0));let t=ye(e),r=0;for(let n of s)t.set(n,r),r+=n.length;return t}var da=Symbol.for("@achingbrain/uint8arraylist");function fa(s,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let r of s){let n=t+r.byteLength;if(e0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let r of e)if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.push(r);else if(wr(r))t+=r.byteLength,this.bufs.push(...r.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let r of e.reverse())if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.unshift(r);else if(wr(r))t+=r.byteLength,this.bufs.unshift(...r.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=fa(this.bufs,e);return t.buf[t.index]}set(e,t){let r=fa(this.bufs,e);r.buf[r.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let r=0;r0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:r,length:n}=this._subList(e,t);return Ye(r,n)}subarray(e,t){let{bufs:r,length:n}=this._subList(e,t);return r.length===1?r[0]:Ye(r,n)}sublist(e,t){let{bufs:r,length:n}=this._subList(e,t),i=new s;return i.length=n,i.bufs=[...r],i}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let r=[],n=0;for(let i=0;i=c)continue;let f=e>=a&&ea&&t<=c;if(f&&l){if(e===a&&t===c){r.push(o);break}let u=e-a;r.push(o.subarray(u,u+(t-e)));break}if(f){if(e===0){r.push(o);continue}r.push(o.subarray(e-a));continue}if(l){if(t===c){r.push(o);break}r.push(o.subarray(0,t-a));break}r.push(o)}return{bufs:r,length:t-e}}indexOf(e,t=0){if(!wr(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let r=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let n=r.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u=0;h--){let p=this.get(u+h);if(r[h]!==p){l=Math.max(1,h-a[p]);break}}if(l===0)return u}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let r=ye(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt8(0,t),this.write(r,e)}getInt16(e,t){let r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt16(0,t)}setInt16(e,t,r){let n=lt(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,t,r),this.write(n,e)}getInt32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt32(0,t)}setInt32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,t,r),this.write(n,e)}getBigInt64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigInt64(0,t)}setBigInt64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,t,r),this.write(n,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let r=ye(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint8(0,t),this.write(r,e)}getUint16(e,t){let r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,t)}setUint16(e,t,r){let n=lt(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,t,r),this.write(n,e)}getUint32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,t)}setUint32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,t,r),this.write(n,e)}getBigUint64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigUint64(0,t)}setBigUint64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,t,r),this.write(n,e)}getFloat32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat32(0,t)}setFloat32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,t,r),this.write(n,e)}getFloat64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat64(0,t)}setFloat64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,t,r),this.write(n,e)}equals(e){if(e==null||!(e instanceof s)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;tn+i.byteLength,0)),r.length=t,r}};function vr(s){return s[Symbol.asyncIterator]!=null}var xr=s=>{let e=Se(s),t=ye(e);return _i(s,t),xr.bytes=e,t};xr.bytes=0;function fs(s,e){e=e??{};let t=e.lengthEncoder??xr;function*r(n){let i=t(n.byteLength);i instanceof Uint8Array?yield i:yield*i,n instanceof Uint8Array?yield n:yield*n}return vr(s)?async function*(){for await(let n of s)yield*r(n)}():function*(){for(let n of s)yield*r(n)}()}fs.single=(s,e)=>{e=e??{};let t=e.lengthEncoder??xr;return new hs(t(s.byteLength),s)};var ds=jn(ma(),1);var gh=8,mh=1024*1024*4,jt;(function(s){s[s.LENGTH=0]="LENGTH",s[s.DATA=1]="DATA"})(jt||(jt={}));var Si=s=>{let e=us(s);return Si.bytes=Se(e),e};Si.bytes=0;function Zs(s,e){let t=new hs,r=jt.LENGTH,n=-1,i=e?.lengthDecoder??Si,o=e?.maxLengthLength??gh,a=e?.maxDataLength??mh;function*c(){for(;t.byteLength>0;){if(r===jt.LENGTH)try{if(n=i(t),n<0)throw(0,ds.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(n>a)throw(0,ds.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let f=i.bytes;t.consume(f),e?.onLength!=null&&e.onLength(n),r=jt.DATA}catch(f){if(f instanceof RangeError){if(t.byteLength>o)throw(0,ds.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw f}if(r===jt.DATA){if(t.byteLength0)throw(0,ds.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let f of s)t.append(f),yield*c();if(t.byteLength>0)throw(0,ds.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Zs.fromReader=(s,e)=>{let t=1,r=async function*(){for(;;)try{let{done:i,value:o}=await s.next(t);if(i===!0)return;o!=null&&(yield o)}catch(i){if(i.code==="ERR_UNDER_READ")return{done:!0,value:null};throw i}finally{t=1}}();return Zs(r,{...e??{},onLength:i=>{t=i}})};function Er(){let s={};return s.promise=new Promise((e,t)=>{s.resolve=e,s.reject=t}),s}var _r=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},ps=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new _r(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new _r(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Ii=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function ut(s={}){return bh(t=>{let r=t.shift();if(r==null)return{done:!0};if(r.error!=null)throw r.error;return{done:r.done===!0,value:r.value}},s)}function bh(s,e){e=e??{};let t=e.onEnd,r=new ps,n,i,o,a=Er(),c=async()=>{try{return r.isEmpty()?o?{done:!0}:await new Promise((m,b)=>{i=_=>{i=null,r.push(_);try{m(s(r))}catch(w){b(w)}return n}}):s(r)}finally{r.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Er()})}},f=m=>i!=null?i(m):(r.push(m),n),l=m=>(r=new ps,i!=null?i({error:m}):(r.push({error:m}),n)),u=m=>{if(o)return n;if(e?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:m})},h=m=>o?n:(o=!0,m!=null?l(m):f({done:!0})),p=()=>(r=new ps,h(),{done:!0}),g=m=>(h(m),{done:!0});if(n={[Symbol.asyncIterator](){return this},next:c,return:p,throw:g,push:u,end:h,get readableLength(){return r.size},onEmpty:async m=>{let b=m?.signal;if(b?.throwIfAborted(),r.isEmpty())return;let _,w;b!=null&&(_=new Promise((A,y)=>{w=()=>{y(new Ii)},b.addEventListener("abort",w)}));try{await Promise.race([a.promise,_])}finally{w!=null&&b!=null&&b?.removeEventListener("abort",w)}}},t==null)return n;let d=n;return n={[Symbol.asyncIterator](){return this},next(){return d.next()},throw(m){return d.throw(m),t!=null&&(t(m),t=void 0),{done:!0}},return(){return d.return(),t!=null&&(t(),t=void 0),{done:!0}},push:u,end(m){return d.end(m),t!=null&&(t(m),t=void 0),n},get readableLength(){return d.readableLength},onEmpty:m=>d.onEmpty(m)},n}function yh(s){return s[Symbol.asyncIterator]!=null}function wh(...s){let e=[];for(let t of s)yh(t)||e.push(t);return e.length===s.length?function*(){for(let t of e)yield*t}():async function*(){let t=ut({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(s.map(async r=>{for await(let n of r)t.push(n)})),t.end()}catch(r){t.end(r)}}),yield*t}()}var ba=wh;function gs(s,...e){if(s==null)throw new Error("Empty pipeline");if(Ai(s)){let r=s;s=()=>r.source}else if(wa(s)||ya(s)){let r=s;s=()=>r}let t=[s,...e];if(t.length>1&&Ai(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let r=1;r{let e;for(;s.length>0;)e=s.shift()(e);return e},ya=s=>s?.[Symbol.asyncIterator]!=null,wa=s=>s?.[Symbol.iterator]!=null,Ai=s=>s==null?!1:s.sink!=null&&s.source!=null,xh=s=>e=>{let t=s.sink(e);if(t?.then!=null){let r=ut({objectMode:!0});t.then(()=>{r.end()},o=>{r.end(o)});let n,i=s.source;if(ya(i))n=async function*(){yield*i,r.end()};else if(wa(i))n=function*(){yield*i,r.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return ba(r,n())}return s.source};var ki="/floodsub/1.0.0",Ti="/meshsub/1.0.0",Br="/meshsub/1.1.0";var va="ERR_TOPIC_VALIDATOR_REJECT",xa="ERR_TOPIC_VALIDATOR_IGNORE";var Ea={maxSubscriptions:1/0,maxMessages:1/0,maxIhaveMessageIDs:1/0,maxIwantMessageIDs:1/0,maxControlMessages:1/0,maxPeerInfos:1/0};var Pi=new Float32Array([-0]),Tt=new Uint8Array(Pi.buffer);function _a(s,e,t){Pi[0]=s,e[t]=Tt[0],e[t+1]=Tt[1],e[t+2]=Tt[2],e[t+3]=Tt[3]}function Ba(s,e){return Tt[0]=s[e],Tt[1]=s[e+1],Tt[2]=s[e+2],Tt[3]=s[e+3],Pi[0]}var Ri=new Float64Array([-0]),ve=new Uint8Array(Ri.buffer);function Sa(s,e,t){Ri[0]=s,e[t]=ve[0],e[t+1]=ve[1],e[t+2]=ve[2],e[t+3]=ve[3],e[t+4]=ve[4],e[t+5]=ve[5],e[t+6]=ve[6],e[t+7]=ve[7]}function Ia(s,e){return ve[0]=s[e],ve[1]=s[e+1],ve[2]=s[e+2],ve[3]=s[e+3],ve[4]=s[e+4],ve[5]=s[e+5],ve[6]=s[e+6],ve[7]=s[e+7],Ri[0]}var _h=BigInt(Number.MAX_SAFE_INTEGER),Bh=BigInt(Number.MIN_SAFE_INTEGER),Ce=class s{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,r=~this.hi>>>0;return t===0&&(r=r+1>>>0),-(t+r*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,r=~this.hi>>>0;return t===0&&(r=r+1>>>0),-(BigInt(t)+(BigInt(r)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return r===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}static fromBigInt(e){if(e===0n)return Zt;if(e<_h&&e>Bh)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let r=e>>32n,n=e-(r<<32n);return t&&(r=~r|0n,n=~n|0n,++n>Aa&&(n=0n,++r>Aa&&(r=0n))),new s(Number(n),Number(r))}static fromNumber(e){if(e===0)return Zt;let t=e<0;t&&(e=-e);let r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new s(r,n)}static from(e){return typeof e=="number"?s.fromNumber(e):typeof e=="bigint"?s.fromBigInt(e):typeof e=="string"?s.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new s(e.low>>>0,e.high>>>0):Zt}},Zt=new Ce(0,0);Zt.toBigInt=function(){return 0n};Zt.zzEncode=Zt.zzDecode=function(){return this};Zt.length=function(){return 1};var Aa=4294967296n;function ka(s){let e=0,t=0;for(let r=0;r191&&a<224?i[o++]=(a&31)<<6|s[e++]&63:a>239&&a<365?(a=((a&7)<<18|(s[e++]&63)<<12|(s[e++]&63)<<6|s[e++]&63)-65536,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(s[e++]&63)<<6|s[e++]&63,o>8191&&((n??(n=[])).push(String.fromCharCode.apply(String,i)),o=0);return n!=null?(o>0&&n.push(String.fromCharCode.apply(String,i.slice(0,o))),n.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function Mi(s,e,t){let r=t,n,i;for(let o=0;o>6|192,e[t++]=n&63|128):(n&64512)===55296&&((i=s.charCodeAt(o+1))&64512)===56320?(n=65536+((n&1023)<<10)+(i&1023),++o,e[t++]=n>>18|240,e[t++]=n>>12&63|128,e[t++]=n>>6&63|128,e[t++]=n&63|128):(e[t++]=n>>12|224,e[t++]=n>>6&63|128,e[t++]=n&63|128);return t-r}function Ke(s,e){return RangeError(`index out of range: ${s.pos} + ${e??1} > ${s.len}`)}function Sr(s,e){return(s[e-4]|s[e-3]<<8|s[e-2]<<16|s[e-1]<<24)>>>0}var Di=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Ke(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ke(this,4);return Sr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ke(this,4);return Sr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ke(this,4);let e=Ba(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ke(this,4);let e=Ia(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw Ke(this,e);return this.pos+=e,t===r?new Uint8Array(0):this.buf.subarray(t,r)}string(){let e=this.bytes();return Ta(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ke(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ke(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Ce(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Ke(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Ke(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ke(this,8);let e=Sr(this.buf,this.pos+=4),t=Sr(this.buf,this.pos+=4);return new Ce(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Ei(this.buf,this.pos);return this.pos+=Se(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ni(s){return new Di(s instanceof Uint8Array?s:s.subarray())}function Re(s,e,t){let r=Ni(s);return e.decode(r,void 0,t)}function Ma(s,e,t,r){return{name:s,prefix:e,encoder:{name:s,prefix:e,encode:t},decoder:{decode:r}}}var Ra=Ma("utf8","u",s=>"u"+new TextDecoder("utf8").decode(s),s=>new TextEncoder().encode(s.substring(1))),Ci=Ma("ascii","a",s=>{let e="a";for(let t=0;t{s=s.substring(1);let e=ye(s.length);for(let t=0;t>>1,r,n=e;return function(o){if(o<1||o>t)return ye(o);n+o>e&&(r=ye(e),n=0);let a=r.subarray(n,n+=o);return n&7&&(n=(n|7)+1),a}}var Yt=class{fn;len;next;val;constructor(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}};function Ui(){}var Oi=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Ih=Li();function Ah(s){return globalThis.Buffer!=null?ye(s):Ih(s)}var Xs=class{len;head;tail;states;constructor(){this.len=0,this.head=new Yt(Ui,0,0),this.tail=this.head,this.states=null}_push(e,t,r){return this.tail=this.tail.next=new Yt(e,t,r),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Fi((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Ar,10,Ce.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Ce.fromBigInt(e);return this._push(Ar,t.length(),t)}uint64Number(e){return this._push(xi,Se(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=Ce.fromBigInt(e).zzEncode();return this._push(Ar,t.length(),t)}sint64Number(e){let t=Ce.fromNumber(e).zzEncode();return this._push(Ar,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Vi,1,e?1:0)}fixed32(e){return this._push(Ys,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Ce.fromBigInt(e);return this._push(Ys,4,t.lo)._push(Ys,4,t.hi)}fixed64Number(e){let t=Ce.fromNumber(e);return this._push(Ys,4,t.lo)._push(Ys,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(_a,4,e)}double(e){return this._push(Sa,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Vi,1,0):this.uint32(t)._push(Th,t,e)}string(e){let t=ka(e);return t!==0?this.uint32(t)._push(Mi,t,e):this._push(Vi,1,0)}fork(){return this.states=new Oi(this),this.head=this.tail=new Yt(Ui,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Yt(Ui,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r!==0&&(this.tail.next=e.next,this.tail=t,this.len+=r),this}finish(){let e=this.head.next,t=Ah(this.len),r=0;for(;e!=null;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t}};function Vi(s,e,t){e[t]=s&255}function kh(s,e,t){for(;s>127;)e[t++]=s&127|128,s>>>=7;e[t]=s}var Fi=class extends Yt{next;constructor(e,t){super(kh,e,t),this.next=void 0}};function Ar(s,e,t){for(;s.hi!==0;)e[t++]=s.lo&127|128,s.lo=(s.lo>>>7|s.hi<<25)>>>0,s.hi>>>=7;for(;s.lo>127;)e[t++]=s.lo&127|128,s.lo=s.lo>>>7;e[t++]=s.lo}function Ys(s,e,t){e[t]=s&255,e[t+1]=s>>>8&255,e[t+2]=s>>>16&255,e[t+3]=s>>>24}function Th(s,e,t){e.set(s,t)}globalThis.Buffer!=null&&(Xs.prototype.bytes=function(s){let e=s.length>>>0;return this.uint32(e),e>0&&this._push(Ph,e,s),this},Xs.prototype.string=function(s){let e=globalThis.Buffer.byteLength(s);return this.uint32(e),e>0&&this._push(Rh,e,s),this});function Ph(s,e,t){e.set(s,t)}function Rh(s,e,t){s.length<40?Mi(s,e,t):e.utf8Write!=null?e.utf8Write(s,t):e.set(Z(s),t)}function Hi(){return new Xs}function Me(s,e){let t=Hi();return e.encode(s,t,{lengthDelimited:!1}),t.finish()}var ms;(function(s){s[s.VARINT=0]="VARINT",s[s.BIT64=1]="BIT64",s[s.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",s[s.START_GROUP=3]="START_GROUP",s[s.END_GROUP=4]="END_GROUP",s[s.BIT32=5]="BIT32"})(ms||(ms={}));function kr(s,e,t,r){return{name:s,type:e,encode:t,decode:r}}function Gi(s){function e(n){if(s[n.toString()]==null)throw new Error("Invalid enum value");return s[n]}let t=function(i,o){let a=e(i);o.int32(a)},r=function(i){let o=i.int32();return e(o)};return kr("enum",ms.VARINT,t,r)}function De(s,e){return kr("message",ms.LENGTH_DELIMITED,s,e)}var Oe=class extends Error{code;constructor(e,t,r){super(e,r),this.code=t}};var ht;(function(s){let e;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{g.lengthDelimited!==!1&&p.fork(),h.subscribe!=null&&(p.uint32(8),p.bool(h.subscribe)),h.topic!=null&&(p.uint32(18),p.string(h.topic)),g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.subscribe=h.bool();break}case 2:{d.topic=h.string();break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(e=s.SubOpts||(s.SubOpts={}));let t;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{g.lengthDelimited!==!1&&p.fork(),h.from!=null&&(p.uint32(10),p.bytes(h.from)),h.data!=null&&(p.uint32(18),p.bytes(h.data)),h.seqno!=null&&(p.uint32(26),p.bytes(h.seqno)),h.topic!=null&&h.topic!==""&&(p.uint32(34),p.string(h.topic)),h.signature!=null&&(p.uint32(42),p.bytes(h.signature)),h.key!=null&&(p.uint32(50),p.bytes(h.key)),g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={topic:""},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.from=h.bytes();break}case 2:{d.data=h.bytes();break}case 3:{d.seqno=h.bytes();break}case 4:{d.topic=h.string();break}case 5:{d.signature=h.bytes();break}case 6:{d.key=h.bytes();break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(t=s.Message||(s.Message={}));let r;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{if(g.lengthDelimited!==!1&&p.fork(),h.ihave!=null)for(let d of h.ihave)p.uint32(10),s.ControlIHave.codec().encode(d,p);if(h.iwant!=null)for(let d of h.iwant)p.uint32(18),s.ControlIWant.codec().encode(d,p);if(h.graft!=null)for(let d of h.graft)p.uint32(26),s.ControlGraft.codec().encode(d,p);if(h.prune!=null)for(let d of h.prune)p.uint32(34),s.ControlPrune.codec().encode(d,p);g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={ihave:[],iwant:[],graft:[],prune:[]},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{if(g.limits?.ihave!=null&&d.ihave.length===g.limits.ihave)throw new Oe('decode error - map field "ihave" had too many elements',"ERR_MAX_LENGTH");d.ihave.push(s.ControlIHave.codec().decode(h,h.uint32()));break}case 2:{if(g.limits?.iwant!=null&&d.iwant.length===g.limits.iwant)throw new Oe('decode error - map field "iwant" had too many elements',"ERR_MAX_LENGTH");d.iwant.push(s.ControlIWant.codec().decode(h,h.uint32()));break}case 3:{if(g.limits?.graft!=null&&d.graft.length===g.limits.graft)throw new Oe('decode error - map field "graft" had too many elements',"ERR_MAX_LENGTH");d.graft.push(s.ControlGraft.codec().decode(h,h.uint32()));break}case 4:{if(g.limits?.prune!=null&&d.prune.length===g.limits.prune)throw new Oe('decode error - map field "prune" had too many elements',"ERR_MAX_LENGTH");d.prune.push(s.ControlPrune.codec().decode(h,h.uint32()));break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(r=s.ControlMessage||(s.ControlMessage={}));let n;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{if(g.lengthDelimited!==!1&&p.fork(),h.topicID!=null&&(p.uint32(10),p.string(h.topicID)),h.messageIDs!=null)for(let d of h.messageIDs)p.uint32(18),p.bytes(d);g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={messageIDs:[]},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.topicID=h.string();break}case 2:{if(g.limits?.messageIDs!=null&&d.messageIDs.length===g.limits.messageIDs)throw new Oe('decode error - map field "messageIDs" had too many elements',"ERR_MAX_LENGTH");d.messageIDs.push(h.bytes());break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(n=s.ControlIHave||(s.ControlIHave={}));let i;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{if(g.lengthDelimited!==!1&&p.fork(),h.messageIDs!=null)for(let d of h.messageIDs)p.uint32(10),p.bytes(d);g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={messageIDs:[]},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{if(g.limits?.messageIDs!=null&&d.messageIDs.length===g.limits.messageIDs)throw new Oe('decode error - map field "messageIDs" had too many elements',"ERR_MAX_LENGTH");d.messageIDs.push(h.bytes());break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(i=s.ControlIWant||(s.ControlIWant={}));let o;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{g.lengthDelimited!==!1&&p.fork(),h.topicID!=null&&(p.uint32(10),p.string(h.topicID)),g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.topicID=h.string();break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(o=s.ControlGraft||(s.ControlGraft={}));let a;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{if(g.lengthDelimited!==!1&&p.fork(),h.topicID!=null&&(p.uint32(10),p.string(h.topicID)),h.peers!=null)for(let d of h.peers)p.uint32(18),s.PeerInfo.codec().encode(d,p);h.backoff!=null&&(p.uint32(24),p.uint64Number(h.backoff)),g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={peers:[]},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.topicID=h.string();break}case 2:{if(g.limits?.peers!=null&&d.peers.length===g.limits.peers)throw new Oe('decode error - map field "peers" had too many elements',"ERR_MAX_LENGTH");d.peers.push(s.PeerInfo.codec().decode(h,h.uint32()));break}case 3:{d.backoff=h.uint64Number();break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(a=s.ControlPrune||(s.ControlPrune={}));let c;(function(l){let u;l.codec=()=>(u==null&&(u=De((h,p,g={})=>{g.lengthDelimited!==!1&&p.fork(),h.peerID!=null&&(p.uint32(10),p.bytes(h.peerID)),h.signedPeerRecord!=null&&(p.uint32(18),p.bytes(h.signedPeerRecord)),g.lengthDelimited!==!1&&p.ldelim()},(h,p,g={})=>{let d={},m=p==null?h.len:h.pos+p;for(;h.pos>>3){case 1:{d.peerID=h.bytes();break}case 2:{d.signedPeerRecord=h.bytes();break}default:{h.skipType(b&7);break}}}return d})),u),l.encode=h=>Me(h,l.codec()),l.decode=(h,p)=>Re(h,l.codec(),p)})(c=s.PeerInfo||(s.PeerInfo={}));let f;s.codec=()=>(f==null&&(f=De((l,u,h={})=>{if(h.lengthDelimited!==!1&&u.fork(),l.subscriptions!=null)for(let p of l.subscriptions)u.uint32(10),s.SubOpts.codec().encode(p,u);if(l.messages!=null)for(let p of l.messages)u.uint32(18),s.Message.codec().encode(p,u);l.control!=null&&(u.uint32(26),s.ControlMessage.codec().encode(l.control,u)),h.lengthDelimited!==!1&&u.ldelim()},(l,u,h={})=>{let p={subscriptions:[],messages:[]},g=u==null?l.len:l.pos+u;for(;l.pos>>3){case 1:{if(h.limits?.subscriptions!=null&&p.subscriptions.length===h.limits.subscriptions)throw new Oe('decode error - map field "subscriptions" had too many elements',"ERR_MAX_LENGTH");p.subscriptions.push(s.SubOpts.codec().decode(l,l.uint32()));break}case 2:{if(h.limits?.messages!=null&&p.messages.length===h.limits.messages)throw new Oe('decode error - map field "messages" had too many elements',"ERR_MAX_LENGTH");p.messages.push(s.Message.codec().decode(l,l.uint32()));break}case 3:{p.control=s.ControlMessage.codec().decode(l,l.uint32());break}default:{l.skipType(d&7);break}}}return p})),f),s.encode=l=>Me(l,s.codec()),s.decode=(l,u)=>Re(l,s.codec(),u)})(ht||(ht={}));var Tr=class{gossip;msgs=new Map;msgIdToStrFn;history=[];notValidatedCount=0;constructor(e,t,r){this.gossip=e,this.msgIdToStrFn=r;for(let n=0;n{if((this.msgs.get(n.msgIdStr)?.validated??!1)&&e.has(n.topic)){let o=t.get(n.topic);o==null&&(o=[],t.set(n.topic,o)),o.push(n.msgId)}});return t}validate(e){let t=this.msgs.get(e);if(t==null)return null;t.validated||this.notValidatedCount--;let{message:r,originatingPeers:n}=t;return t.validated=!0,t.originatingPeers=new Set,{message:r,originatingPeers:n}}shift(){this.history[this.history.length-1].forEach(t=>{let r=this.msgs.get(t.msgIdStr);r!=null&&(this.msgs.delete(t.msgIdStr),r.validated||this.notValidatedCount--)}),this.history.pop(),this.history.unshift([])}remove(e){let t=this.msgs.get(e);return t==null?null:(this.msgs.delete(e),t)}};var Da;(function(s){s.StrictSign="StrictSign",s.StrictNoSign="StrictNoSign"})(Da||(Da={}));var Pt;(function(s){s[s.Signing=0]="Signing",s[s.Anonymous=1]="Anonymous"})(Pt||(Pt={}));var Ie;(function(s){s.Error="error",s.Ignore="ignore",s.Reject="reject",s.Blacklisted="blacklisted"})(Ie||(Ie={}));var xe;(function(s){s.InvalidSignature="invalid_signature",s.InvalidSeqno="invalid_seqno",s.InvalidPeerId="invalid_peerid",s.SignaturePresent="signature_present",s.SeqnoPresent="seqno_present",s.FromPresent="from_present",s.TransformFailed="transform_failed"})(xe||(xe={}));var Ee;(function(s){s.duplicate="duplicate",s.invalid="invalid",s.valid="valid"})(Ee||(Ee={}));function Ki(s){switch(s){case Be.Ignore:return Ie.Ignore;case Be.Reject:return Ie.Reject;default:throw new Error("Unreachable")}}var Na;(function(s){s.forward="forward",s.publish="publish"})(Na||(Na={}));var Ae;(function(s){s.Fanout="fanout",s.Random="random",s.Subscribed="subscribed",s.Outbound="outbound",s.NotEnough="not_enough",s.Opportunistic="opportunistic"})(Ae||(Ae={}));var ze;(function(s){s.Dc="disconnected",s.BadScore="bad_score",s.Prune="prune",s.Excess="excess"})(ze||(ze={}));var ys;(function(s){s.GraftBackoff="graft_backoff",s.BrokenPromise="broken_promise",s.MessageDeficit="message_deficit",s.IPColocation="IP_colocation"})(ys||(ys={}));var ws;(function(s){s.LowScore="low_score",s.MaxIhave="max_ihave",s.MaxIasked="max_iasked"})(ws||(ws={}));var bs;(function(s){s.graylist="graylist",s.publish="publish",s.gossip="gossip",s.mesh="mesh"})(bs||(bs={}));function Ca(s,e,t){return{protocolsEnabled:s.gauge({name:"gossipsub_protocol",help:"Status of enabled protocols",labelNames:["protocol"]}),topicSubscriptionStatus:s.gauge({name:"gossipsub_topic_subscription_status",help:"Status of our subscription to this topic",labelNames:["topicStr"]}),topicPeersCount:s.gauge({name:"gossipsub_topic_peer_count",help:"Number of peers subscribed to each topic",labelNames:["topicStr"]}),meshPeerCounts:s.gauge({name:"gossipsub_mesh_peer_count",help:"Number of peers in our mesh",labelNames:["topicStr"]}),meshPeerInclusionEventsFanout:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_fanout_total",help:"Number of times we include peers in a topic mesh for fanout reasons",labelNames:["topic"]}),meshPeerInclusionEventsRandom:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_random_total",help:"Number of times we include peers in a topic mesh for random reasons",labelNames:["topic"]}),meshPeerInclusionEventsSubscribed:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_subscribed_total",help:"Number of times we include peers in a topic mesh for subscribed reasons",labelNames:["topic"]}),meshPeerInclusionEventsOutbound:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_outbound_total",help:"Number of times we include peers in a topic mesh for outbound reasons",labelNames:["topic"]}),meshPeerInclusionEventsNotEnough:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_not_enough_total",help:"Number of times we include peers in a topic mesh for not_enough reasons",labelNames:["topic"]}),meshPeerInclusionEventsOpportunistic:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_opportunistic_total",help:"Number of times we include peers in a topic mesh for opportunistic reasons",labelNames:["topic"]}),meshPeerInclusionEventsUnknown:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_unknown_total",help:"Number of times we include peers in a topic mesh for unknown reasons",labelNames:["topic"]}),meshPeerChurnEventsDisconnected:s.gauge({name:"gossipsub_peer_churn_events_disconnected_total",help:"Number of times we remove peers in a topic mesh for disconnected reasons",labelNames:["topic"]}),meshPeerChurnEventsBadScore:s.gauge({name:"gossipsub_peer_churn_events_bad_score_total",help:"Number of times we remove peers in a topic mesh for bad_score reasons",labelNames:["topic"]}),meshPeerChurnEventsPrune:s.gauge({name:"gossipsub_peer_churn_events_prune_total",help:"Number of times we remove peers in a topic mesh for prune reasons",labelNames:["topic"]}),meshPeerChurnEventsExcess:s.gauge({name:"gossipsub_peer_churn_events_excess_total",help:"Number of times we remove peers in a topic mesh for excess reasons",labelNames:["topic"]}),meshPeerChurnEventsUnknown:s.gauge({name:"gossipsub_peer_churn_events_unknown_total",help:"Number of times we remove peers in a topic mesh for unknown reasons",labelNames:["topic"]}),peersPerProtocol:s.gauge({name:"gossipsub_peers_per_protocol_count",help:"Peers connected for each topic",labelNames:["protocol"]}),heartbeatDuration:s.histogram({name:"gossipsub_heartbeat_duration_seconds",help:"The time it takes to complete one iteration of the heartbeat",buckets:[.01,.1,1]}),heartbeatSkipped:s.gauge({name:"gossipsub_heartbeat_skipped",help:"Heartbeat run took longer than heartbeat interval so next is skipped"}),acceptedMessagesTotal:s.gauge({name:"gossipsub_accepted_messages_total",help:"Total accepted messages for each topic",labelNames:["topic"]}),ignoredMessagesTotal:s.gauge({name:"gossipsub_ignored_messages_total",help:"Total ignored messages for each topic",labelNames:["topic"]}),rejectedMessagesTotal:s.gauge({name:"gossipsub_rejected_messages_total",help:"Total rejected messages for each topic",labelNames:["topic"]}),unknownValidationResultsTotal:s.gauge({name:"gossipsub_unknown_validation_results_total",help:"Total unknown validation results for each topic",labelNames:["topic"]}),asyncValidationMcacheHit:s.gauge({name:"gossipsub_async_validation_mcache_hit_total",help:"Async validation result reported by the user layer",labelNames:["hit"]}),asyncValidationDelayFromFirstSeenSec:s.histogram({name:"gossipsub_async_validation_delay_from_first_seen",help:"Async validation report delay from first seen in second",buckets:[.01,.03,.1,.3,1,3,10]}),asyncValidationUnknownFirstSeen:s.gauge({name:"gossipsub_async_validation_unknown_first_seen_count_total",help:"Async validation report unknown first seen value for message"}),peerReadStreamError:s.gauge({name:"gossipsub_peer_read_stream_err_count_total",help:"Peer read stream error"}),rpcRecvBytes:s.gauge({name:"gossipsub_rpc_recv_bytes_total",help:"RPC recv"}),rpcRecvCount:s.gauge({name:"gossipsub_rpc_recv_count_total",help:"RPC recv"}),rpcRecvSubscription:s.gauge({name:"gossipsub_rpc_recv_subscription_total",help:"RPC recv"}),rpcRecvMessage:s.gauge({name:"gossipsub_rpc_recv_message_total",help:"RPC recv"}),rpcRecvControl:s.gauge({name:"gossipsub_rpc_recv_control_total",help:"RPC recv"}),rpcRecvIHave:s.gauge({name:"gossipsub_rpc_recv_ihave_total",help:"RPC recv"}),rpcRecvIWant:s.gauge({name:"gossipsub_rpc_recv_iwant_total",help:"RPC recv"}),rpcRecvGraft:s.gauge({name:"gossipsub_rpc_recv_graft_total",help:"RPC recv"}),rpcRecvPrune:s.gauge({name:"gossipsub_rpc_recv_prune_total",help:"RPC recv"}),rpcDataError:s.gauge({name:"gossipsub_rpc_data_err_count_total",help:"RPC data error"}),rpcRecvError:s.gauge({name:"gossipsub_rpc_recv_err_count_total",help:"RPC recv error"}),rpcRecvNotAccepted:s.gauge({name:"gossipsub_rpc_rcv_not_accepted_total",help:"Total count of RPC dropped because acceptFrom() == false"}),rpcSentBytes:s.gauge({name:"gossipsub_rpc_sent_bytes_total",help:"RPC sent"}),rpcSentCount:s.gauge({name:"gossipsub_rpc_sent_count_total",help:"RPC sent"}),rpcSentSubscription:s.gauge({name:"gossipsub_rpc_sent_subscription_total",help:"RPC sent"}),rpcSentMessage:s.gauge({name:"gossipsub_rpc_sent_message_total",help:"RPC sent"}),rpcSentControl:s.gauge({name:"gossipsub_rpc_sent_control_total",help:"RPC sent"}),rpcSentIHave:s.gauge({name:"gossipsub_rpc_sent_ihave_total",help:"RPC sent"}),rpcSentIWant:s.gauge({name:"gossipsub_rpc_sent_iwant_total",help:"RPC sent"}),rpcSentGraft:s.gauge({name:"gossipsub_rpc_sent_graft_total",help:"RPC sent"}),rpcSentPrune:s.gauge({name:"gossipsub_rpc_sent_prune_total",help:"RPC sent"}),msgPublishCount:s.gauge({name:"gossipsub_msg_publish_count_total",help:"Total count of msg published by topic",labelNames:["topic"]}),msgPublishPeersByTopic:s.gauge({name:"gossipsub_msg_publish_peers_total",help:"Total count of peers that we publish a msg to",labelNames:["topic"]}),directPeersPublishedTotal:s.gauge({name:"gossipsub_direct_peers_published_total",help:"Total direct peers that we publish a msg to",labelNames:["topic"]}),floodsubPeersPublishedTotal:s.gauge({name:"gossipsub_floodsub_peers_published_total",help:"Total floodsub peers that we publish a msg to",labelNames:["topic"]}),meshPeersPublishedTotal:s.gauge({name:"gossipsub_mesh_peers_published_total",help:"Total mesh peers that we publish a msg to",labelNames:["topic"]}),fanoutPeersPublishedTotal:s.gauge({name:"gossipsub_fanout_peers_published_total",help:"Total fanout peers that we publish a msg to",labelNames:["topic"]}),msgPublishBytes:s.gauge({name:"gossipsub_msg_publish_bytes_total",help:"Total count of msg publish data.length bytes",labelNames:["topic"]}),msgPublishTime:s.histogram({name:"gossipsub_msg_publish_seconds",help:"Total time in seconds to publish a message",buckets:[.001,.002,.005,.01,.1,.5,1],labelNames:["topic"]}),msgForwardCount:s.gauge({name:"gossipsub_msg_forward_count_total",help:"Total count of msg forwarded by topic",labelNames:["topic"]}),msgForwardPeers:s.gauge({name:"gossipsub_msg_forward_peers_total",help:"Total count of peers that we forward a msg to",labelNames:["topic"]}),msgReceivedPreValidation:s.gauge({name:"gossipsub_msg_received_prevalidation_total",help:"Total count of recv msgs before any validation",labelNames:["topic"]}),msgReceivedError:s.gauge({name:"gossipsub_msg_received_error_total",help:"Total count of recv msgs error",labelNames:["topic"]}),prevalidationInvalidTotal:s.gauge({name:"gossipsub_pre_validation_invalid_total",help:"Total count of invalid messages received",labelNames:["topic"]}),prevalidationValidTotal:s.gauge({name:"gossipsub_pre_validation_valid_total",help:"Total count of valid messages received",labelNames:["topic"]}),prevalidationDuplicateTotal:s.gauge({name:"gossipsub_pre_validation_duplicate_total",help:"Total count of duplicate messages received",labelNames:["topic"]}),prevalidationUnknownTotal:s.gauge({name:"gossipsub_pre_validation_unknown_status_total",help:"Total count of unknown_status messages received",labelNames:["topic"]}),msgReceivedInvalid:s.gauge({name:"gossipsub_msg_received_invalid_total",help:"Tracks specific reason of invalid",labelNames:["error"]}),msgReceivedInvalidByTopic:s.gauge({name:"gossipsub_msg_received_invalid_by_topic_total",help:"Tracks specific invalid message by topic",labelNames:["topic"]}),duplicateMsgDeliveryDelay:s.histogram({name:"gossisub_duplicate_msg_delivery_delay_seconds",help:"Time since the 1st duplicated message validated",labelNames:["topic"],buckets:[.25*t.maxMeshMessageDeliveriesWindowSec,.5*t.maxMeshMessageDeliveriesWindowSec,Number(t.maxMeshMessageDeliveriesWindowSec),2*t.maxMeshMessageDeliveriesWindowSec,4*t.maxMeshMessageDeliveriesWindowSec]}),duplicateMsgLateDelivery:s.gauge({name:"gossisub_duplicate_msg_late_delivery_total",help:"Total count of late duplicate message delivery by topic, which triggers P3 penalty",labelNames:["topic"]}),duplicateMsgIgnored:s.gauge({name:"gossisub_ignored_published_duplicate_msgs_total",help:"Total count of published duplicate message ignored by topic",labelNames:["topic"]}),scoreFnCalls:s.gauge({name:"gossipsub_score_fn_calls_total",help:"Total times score() is called"}),scoreFnRuns:s.gauge({name:"gossipsub_score_fn_runs_total",help:"Total times score() call actually computed computeScore(), no cache"}),scoreCachedDelta:s.histogram({name:"gossipsub_score_cache_delta",help:"Delta of score between cached values that expired",buckets:[10,100,1e3]}),peersByScoreThreshold:s.gauge({name:"gossipsub_peers_by_score_threshold_count",help:"Current count of peers by score threshold",labelNames:["threshold"]}),score:s.avgMinMax({name:"gossipsub_score",help:"Avg min max of gossip scores"}),scoreWeights:s.avgMinMax({name:"gossipsub_score_weights",help:"Separate score weights",labelNames:["topic","p"]}),scorePerMesh:s.avgMinMax({name:"gossipsub_score_per_mesh",help:"Histogram of the scores for each mesh topic",labelNames:["topic"]}),scoringPenalties:s.gauge({name:"gossipsub_scoring_penalties_total",help:"A counter of the kind of penalties being applied to peers",labelNames:["penalty"]}),behaviourPenalty:s.histogram({name:"gossipsub_peer_stat_behaviour_penalty",help:"Current peer stat behaviour_penalty at each scrape",buckets:[.25*t.behaviourPenaltyThreshold,.5*t.behaviourPenaltyThreshold,Number(t.behaviourPenaltyThreshold),2*t.behaviourPenaltyThreshold,4*t.behaviourPenaltyThreshold]}),ihaveRcvIgnored:s.gauge({name:"gossipsub_ihave_rcv_ignored_total",help:"Total received IHAVE messages that we ignore for some reason",labelNames:["reason"]}),ihaveRcvMsgids:s.gauge({name:"gossipsub_ihave_rcv_msgids_total",help:"Total received IHAVE messages by topic",labelNames:["topic"]}),ihaveRcvNotSeenMsgids:s.gauge({name:"gossipsub_ihave_rcv_not_seen_msgids_total",help:"Total messages per topic we do not have, not actual requests",labelNames:["topic"]}),iwantRcvMsgids:s.gauge({name:"gossipsub_iwant_rcv_msgids_total",help:"Total received IWANT messages by topic",labelNames:["topic"]}),iwantRcvDonthaveMsgids:s.gauge({name:"gossipsub_iwant_rcv_dont_have_msgids_total",help:"Total requested messageIDs that we do not have"}),iwantPromiseStarted:s.gauge({name:"gossipsub_iwant_promise_sent_total",help:"Total count of started IWANT promises"}),iwantPromiseResolved:s.gauge({name:"gossipsub_iwant_promise_resolved_total",help:"Total count of resolved IWANT promises"}),iwantPromiseResolvedFromDuplicate:s.gauge({name:"gossipsub_iwant_promise_resolved_from_duplicate_total",help:"Total count of resolved IWANT promises from duplicate messages"}),iwantPromiseResolvedPeers:s.gauge({name:"gossipsub_iwant_promise_resolved_peers",help:"Total count of peers we have asked IWANT promises that are resolved"}),iwantPromiseBroken:s.gauge({name:"gossipsub_iwant_promise_broken",help:"Total count of broken IWANT promises"}),iwantMessagePruned:s.gauge({name:"gossipsub_iwant_message_pruned",help:"Total count of pruned IWANT messages"}),iwantPromiseDeliveryTime:s.histogram({name:"gossipsub_iwant_promise_delivery_seconds",help:"Histogram of delivery time of resolved IWANT promises",buckets:[.5*t.gossipPromiseExpireSec,Number(t.gossipPromiseExpireSec),2*t.gossipPromiseExpireSec,4*t.gossipPromiseExpireSec]}),iwantPromiseUntracked:s.gauge({name:"gossip_iwant_promise_untracked",help:"Total count of untracked IWANT promise"}),connectedPeersBackoffSec:s.histogram({name:"gossipsub_connected_peers_backoff_seconds",help:"Backoff time in seconds",buckets:[1,2,4,10,20,60,120]}),cacheSize:s.gauge({name:"gossipsub_cache_size",help:"Unbounded cache sizes",labelNames:["cache"]}),mcacheSize:s.gauge({name:"gossipsub_mcache_size",help:"Current mcache msg count"}),mcacheNotValidatedCount:s.gauge({name:"gossipsub_mcache_not_validated_count",help:"Current mcache msg count not validated"}),fastMsgIdCacheCollision:s.gauge({name:"gossipsub_fastmsgid_cache_collision_total",help:"Total count of key collisions on fastmsgid cache put"}),newConnectionCount:s.gauge({name:"gossipsub_new_connection_total",help:"Total new connection by status",labelNames:["status"]}),topicStrToLabel:e,toTopic(r){return this.topicStrToLabel.get(r)??r},onJoin(r){this.topicSubscriptionStatus.set({topicStr:r},1),this.meshPeerCounts.set({topicStr:r},0)},onLeave(r){this.topicSubscriptionStatus.set({topicStr:r},0),this.meshPeerCounts.set({topicStr:r},0)},onAddToMesh(r,n,i){let o=this.toTopic(r);switch(n){case Ae.Fanout:this.meshPeerInclusionEventsFanout.inc({topic:o},i);break;case Ae.Random:this.meshPeerInclusionEventsRandom.inc({topic:o},i);break;case Ae.Subscribed:this.meshPeerInclusionEventsSubscribed.inc({topic:o},i);break;case Ae.Outbound:this.meshPeerInclusionEventsOutbound.inc({topic:o},i);break;case Ae.NotEnough:this.meshPeerInclusionEventsNotEnough.inc({topic:o},i);break;case Ae.Opportunistic:this.meshPeerInclusionEventsOpportunistic.inc({topic:o},i);break;default:this.meshPeerInclusionEventsUnknown.inc({topic:o},i);break}},onRemoveFromMesh(r,n,i){let o=this.toTopic(r);switch(n){case ze.Dc:this.meshPeerChurnEventsDisconnected.inc({topic:o},i);break;case ze.BadScore:this.meshPeerChurnEventsBadScore.inc({topic:o},i);break;case ze.Prune:this.meshPeerChurnEventsPrune.inc({topic:o},i);break;case ze.Excess:this.meshPeerChurnEventsExcess.inc({topic:o},i);break;default:this.meshPeerChurnEventsUnknown.inc({topic:o},i);break}},onReportValidation(r,n,i){if(this.asyncValidationMcacheHit.inc({hit:r!=null?"hit":"miss"}),r!=null){let o=this.toTopic(r.message.topic);switch(n){case Be.Accept:this.acceptedMessagesTotal.inc({topic:o});break;case Be.Ignore:this.ignoredMessagesTotal.inc({topic:o});break;case Be.Reject:this.rejectedMessagesTotal.inc({topic:o});break;default:this.unknownValidationResultsTotal.inc({topic:o});break}}i!=null?this.asyncValidationDelayFromFirstSeenSec.observe((Date.now()-i)/1e3):this.asyncValidationUnknownFirstSeen.inc()},onScorePenalty(r){this.scoringPenalties.inc({penalty:r},1)},onIhaveRcv(r,n,i){let o=this.toTopic(r);this.ihaveRcvMsgids.inc({topic:o},n),this.ihaveRcvNotSeenMsgids.inc({topic:o},i)},onIwantRcv(r,n){for(let[i,o]of r){let a=this.toTopic(i);this.iwantRcvMsgids.inc({topic:a},o)}this.iwantRcvDonthaveMsgids.inc(n)},onForwardMsg(r,n){let i=this.toTopic(r);this.msgForwardCount.inc({topic:i},1),this.msgForwardPeers.inc({topic:i},n)},onPublishMsg(r,n,i,o,a){let c=this.toTopic(r);this.msgPublishCount.inc({topic:c},1),this.msgPublishBytes.inc({topic:c},i*o),this.msgPublishPeersByTopic.inc({topic:c},i),this.directPeersPublishedTotal.inc({topic:c},n.direct),this.floodsubPeersPublishedTotal.inc({topic:c},n.floodsub),this.meshPeersPublishedTotal.inc({topic:c},n.mesh),this.fanoutPeersPublishedTotal.inc({topic:c},n.fanout),this.msgPublishTime.observe({topic:c},a/1e3)},onMsgRecvPreValidation(r){let n=this.toTopic(r);this.msgReceivedPreValidation.inc({topic:n},1)},onMsgRecvError(r){let n=this.toTopic(r);this.msgReceivedError.inc({topic:n},1)},onPrevalidationResult(r,n){let i=this.toTopic(r);switch(n){case Ee.duplicate:this.prevalidationDuplicateTotal.inc({topic:i});break;case Ee.invalid:this.prevalidationInvalidTotal.inc({topic:i});break;case Ee.valid:this.prevalidationValidTotal.inc({topic:i});break;default:this.prevalidationUnknownTotal.inc({topic:i});break}},onMsgRecvInvalid(r,n){let i=this.toTopic(r),o=n.reason===Ie.Error?n.error:n.reason;this.msgReceivedInvalid.inc({error:o},1),this.msgReceivedInvalidByTopic.inc({topic:i},1)},onDuplicateMsgDelivery(r,n,i){let o=this.toTopic(r);this.duplicateMsgDeliveryDelay.observe({topic:o},n/1e3),i&&this.duplicateMsgLateDelivery.inc({topic:o},1)},onPublishDuplicateMsg(r){let n=this.toTopic(r);this.duplicateMsgIgnored.inc({topic:n},1)},onPeerReadStreamError(){this.peerReadStreamError.inc(1)},onRpcRecvError(){this.rpcRecvError.inc(1)},onRpcDataError(){this.rpcDataError.inc(1)},onRpcRecv(r,n){this.rpcRecvBytes.inc(n),this.rpcRecvCount.inc(1),r.subscriptions!=null&&this.rpcRecvSubscription.inc(r.subscriptions.length),r.messages!=null&&this.rpcRecvMessage.inc(r.messages.length),r.control!=null&&(this.rpcRecvControl.inc(1),r.control.ihave!=null&&this.rpcRecvIHave.inc(r.control.ihave.length),r.control.iwant!=null&&this.rpcRecvIWant.inc(r.control.iwant.length),r.control.graft!=null&&this.rpcRecvGraft.inc(r.control.graft.length),r.control.prune!=null&&this.rpcRecvPrune.inc(r.control.prune.length))},onRpcSent(r,n){if(this.rpcSentBytes.inc(n),this.rpcSentCount.inc(1),r.subscriptions!=null&&this.rpcSentSubscription.inc(r.subscriptions.length),r.messages!=null&&this.rpcSentMessage.inc(r.messages.length),r.control!=null){let i=r.control.ihave?.length??0,o=r.control.iwant?.length??0,a=r.control.graft?.length??0,c=r.control.prune?.length??0;i>0&&this.rpcSentIHave.inc(i),o>0&&this.rpcSentIWant.inc(o),a>0&&this.rpcSentGraft.inc(a),c>0&&this.rpcSentPrune.inc(c),(i>0||o>0||a>0||c>0)&&this.rpcSentControl.inc(1)}},registerScores(r,n){let i=0,o=0,a=0,c=0;for(let f of r)f>=n.graylistThreshold&&i++,f>=n.publishThreshold&&o++,f>=n.gossipThreshold&&a++,f>=0&&c++;this.peersByScoreThreshold.set({threshold:bs.graylist},i),this.peersByScoreThreshold.set({threshold:bs.publish},o),this.peersByScoreThreshold.set({threshold:bs.gossip},a),this.peersByScoreThreshold.set({threshold:bs.mesh},c),this.score.set(r)},registerScoreWeights(r){for(let[n,i]of r.byTopic)this.scoreWeights.set({topic:n,p:"p1"},i.p1w),this.scoreWeights.set({topic:n,p:"p2"},i.p2w),this.scoreWeights.set({topic:n,p:"p3"},i.p3w),this.scoreWeights.set({topic:n,p:"p3b"},i.p3bw),this.scoreWeights.set({topic:n,p:"p4"},i.p4w);this.scoreWeights.set({p:"p5"},r.p5w),this.scoreWeights.set({p:"p6"},r.p6w),this.scoreWeights.set({p:"p7"},r.p7w)},registerScorePerMesh(r,n){let i=new Map;r.forEach((o,a)=>{let c=this.topicStrToLabel.get(a)??"unknown",f=i.get(c);f==null&&(f=new Set,i.set(c,f)),o.forEach(l=>f?.add(l))});for(let[o,a]of i){let c=[];a.forEach(f=>{c.push(n.get(f)??0)}),this.scorePerMesh.set({topic:o},c)}}}}var $="ERR_INVALID_PEER_SCORE_PARAMS";var Mh={topics:{},topicScoreCap:10,appSpecificScore:()=>0,appSpecificWeight:10,IPColocationFactorWeight:-5,IPColocationFactorThreshold:10,IPColocationFactorWhitelist:new Set,behaviourPenaltyWeight:-10,behaviourPenaltyThreshold:0,behaviourPenaltyDecay:.2,decayInterval:1e3,decayToZero:.1,retainScore:3600*1e3},Dh={topicWeight:.5,timeInMeshWeight:1,timeInMeshQuantum:1,timeInMeshCap:3600,firstMessageDeliveriesWeight:1,firstMessageDeliveriesDecay:.5,firstMessageDeliveriesCap:2e3,meshMessageDeliveriesWeight:-1,meshMessageDeliveriesDecay:.5,meshMessageDeliveriesCap:100,meshMessageDeliveriesThreshold:20,meshMessageDeliveriesWindow:10,meshMessageDeliveriesActivation:5e3,meshFailurePenaltyWeight:-1,meshFailurePenaltyDecay:.5,invalidMessageDeliveriesWeight:-1,invalidMessageDeliveriesDecay:.3};function La(s={}){return{...Mh,...s,topics:s.topics!=null?Object.entries(s.topics).reduce((e,[t,r])=>(e[t]=Nh(r),e),{}):{}}}function Nh(s={}){return{...Dh,...s}}function Ua(s){for(let[e,t]of Object.entries(s.topics))try{Ch(t)}catch(r){throw new T(`invalid score parameters for topic ${e}: ${r.message}`,$)}if(s.topicScoreCap<0)throw new T("invalid topic score cap; must be positive (or 0 for no cap)",$);if(s.appSpecificScore===null||s.appSpecificScore===void 0)throw new T("missing application specific score function",$);if(s.IPColocationFactorWeight>0)throw new T("invalid IPColocationFactorWeight; must be negative (or 0 to disable)",$);if(s.IPColocationFactorWeight!==0&&s.IPColocationFactorThreshold<1)throw new T("invalid IPColocationFactorThreshold; must be at least 1",$);if(s.behaviourPenaltyWeight>0)throw new T("invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)",$);if(s.behaviourPenaltyWeight!==0&&(s.behaviourPenaltyDecay<=0||s.behaviourPenaltyDecay>=1))throw new T("invalid BehaviourPenaltyDecay; must be between 0 and 1",$);if(s.decayInterval<1e3)throw new T("invalid DecayInterval; must be at least 1s",$);if(s.decayToZero<=0||s.decayToZero>=1)throw new T("invalid DecayToZero; must be between 0 and 1",$)}function Ch(s){if(s.topicWeight<0)throw new T("invalid topic weight; must be >= 0",$);if(s.timeInMeshQuantum===0)throw new T("invalid TimeInMeshQuantum; must be non zero",$);if(s.timeInMeshWeight<0)throw new T("invalid TimeInMeshWeight; must be positive (or 0 to disable)",$);if(s.timeInMeshWeight!==0&&s.timeInMeshQuantum<=0)throw new T("invalid TimeInMeshQuantum; must be positive",$);if(s.timeInMeshWeight!==0&&s.timeInMeshCap<=0)throw new T("invalid TimeInMeshCap; must be positive",$);if(s.firstMessageDeliveriesWeight<0)throw new T("invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)",$);if(s.firstMessageDeliveriesWeight!==0&&(s.firstMessageDeliveriesDecay<=0||s.firstMessageDeliveriesDecay>=1))throw new T("invalid FirstMessageDeliveriesDecay; must be between 0 and 1",$);if(s.firstMessageDeliveriesWeight!==0&&s.firstMessageDeliveriesCap<=0)throw new T("invalid FirstMessageDeliveriesCap; must be positive",$);if(s.meshMessageDeliveriesWeight>0)throw new T("invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)",$);if(s.meshMessageDeliveriesWeight!==0&&(s.meshMessageDeliveriesDecay<=0||s.meshMessageDeliveriesDecay>=1))throw new T("invalid MeshMessageDeliveriesDecay; must be between 0 and 1",$);if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesCap<=0)throw new T("invalid MeshMessageDeliveriesCap; must be positive",$);if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesThreshold<=0)throw new T("invalid MeshMessageDeliveriesThreshold; must be positive",$);if(s.meshMessageDeliveriesWindow<0)throw new T("invalid MeshMessageDeliveriesWindow; must be non-negative",$);if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesActivation<1e3)throw new T("invalid MeshMessageDeliveriesActivation; must be at least 1s",$);if(s.meshFailurePenaltyWeight>0)throw new T("invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)",$);if(s.meshFailurePenaltyWeight!==0&&(s.meshFailurePenaltyDecay<=0||s.meshFailurePenaltyDecay>=1))throw new T("invalid MeshFailurePenaltyDecay; must be between 0 and 1",$);if(s.invalidMessageDeliveriesWeight>0)throw new T("invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)",$);if(s.invalidMessageDeliveriesDecay<=0||s.invalidMessageDeliveriesDecay>=1)throw new T("invalid InvalidMessageDeliveriesDecay; must be between 0 and 1",$)}var Lh={gossipThreshold:-10,publishThreshold:-50,graylistThreshold:-80,acceptPXThreshold:10,opportunisticGraftThreshold:20};function Va(s={}){return{...Lh,...s}}function Rr(s,e,t=()=>!0){let r=new Set;if(e<=0)return r;for(let n of s){if(r.size>=e)break;t(n)&&(r.add(n),s.delete(n))}return r}function Oa(s,e){return Rr(s,e,()=>!0)}var Pr=class extends Map{getDefault;constructor(e){super(),this.getDefault=e}getOrDefault(e){let t=super.get(e);return t===void 0&&(t=this.getDefault(),this.set(e,t)),t}};function Fa(s,e,t,r){let n=0;Object.entries(e.topics).forEach(([o,a])=>{let c=t.topics[o];if(c===void 0)return;let f=0;if(a.inMesh){let p=a.meshTime/c.timeInMeshQuantum;p>c.timeInMeshCap&&(p=c.timeInMeshCap),f+=p*c.timeInMeshWeight}let l=a.firstMessageDeliveries;if(l>c.firstMessageDeliveriesCap&&(l=c.firstMessageDeliveriesCap),f+=l*c.firstMessageDeliveriesWeight,a.meshMessageDeliveriesActive&&a.meshMessageDeliveries0&&n>t.topicScoreCap&&(n=t.topicScoreCap);let i=t.appSpecificScore(s);if(n+=i*t.appSpecificWeight,e.knownIPs.forEach(o=>{if(t.IPColocationFactorWhitelist.has(o))return;let a=r.get(o),c=a!=null?a.size:0;if(c>t.IPColocationFactorThreshold){let f=c-t.IPColocationFactorThreshold,l=f*f;n+=l*t.IPColocationFactorWeight}}),e.behaviourPenalty>t.behaviourPenaltyThreshold){let o=e.behaviourPenalty-t.behaviourPenaltyThreshold,a=o*o;n+=a*t.behaviourPenaltyWeight}return n}var Ka=jn(Ga(),1);var ke;(function(s){s[s.unknown=0]="unknown",s[s.valid=1]="valid",s[s.invalid=2]="invalid",s[s.ignored=3]="ignored"})(ke||(ke={}));var Mr=class{records;queue;constructor(){this.records=new Map,this.queue=new Ka.default}getRecord(e){return this.records.get(e)}ensureRecord(e){let t=this.records.get(e);if(t!=null)return t;t={status:ke.unknown,firstSeenTsMs:Date.now(),validated:0,peers:new Set},this.records.set(e,t);let r={msgId:e,expire:Date.now()+12e4};return this.queue.push(r),t}gc(){let e=Date.now(),t=this.queue.peekFront();for(;t!=null&&t.expirenew Set);scoreCache=new Map;deliveryRecords=new Mr;_backgroundInterval;scoreCacheValidityMs;computeScore;log;constructor(e,t,r,n){this.params=e,this.metrics=t,Ua(e),this.scoreCacheValidityMs=n.scoreCacheValidityMs,this.computeScore=n.computeScore??Fa,this.log=r.forComponent("libp2p:gossipsub:score")}get size(){return this.peerStats.size}start(){if(this._backgroundInterval!=null){this.log("Peer score already running");return}this._backgroundInterval=setInterval(()=>{this.background()},this.params.decayInterval),this.log("started")}stop(){if(this._backgroundInterval==null){this.log("Peer score already stopped");return}clearInterval(this._backgroundInterval),delete this._backgroundInterval,this.peerIPs.clear(),this.peerStats.clear(),this.deliveryRecords.clear(),this.log("stopped")}background(){this.refreshScores(),this.deliveryRecords.gc()}dumpPeerScoreStats(){return Object.fromEntries(Array.from(this.peerStats.entries()).map(([e,t])=>[e,t]))}messageFirstSeenTimestampMs(e){let t=this.deliveryRecords.getRecord(e);return t!=null?t.firstSeenTsMs:null}refreshScores(){let e=Date.now(),t=this.params.decayToZero;this.peerStats.forEach((r,n)=>{if(!r.connected){e>r.expire&&(this.removeIPsForPeer(n,r.knownIPs),this.peerStats.delete(n),this.scoreCache.delete(n));return}Object.entries(r.topics).forEach(([i,o])=>{let a=this.params.topics[i];a!==void 0&&(o.firstMessageDeliveries*=a.firstMessageDeliveriesDecay,o.firstMessageDeliveriesa.meshMessageDeliveriesActivation&&(o.meshMessageDeliveriesActive=!0)))}),r.behaviourPenalty*=this.params.behaviourPenaltyDecay,r.behaviourPenaltyr)return n.score;this.metrics?.scoreFnRuns.inc();let i=this.computeScore(e,t,this.params,this.peerIPs),o=r+this.scoreCacheValidityMs;return n!=null?(this.metrics?.scoreCachedDelta.observe(Math.abs(i-n.score)),n.score=i,n.cacheUntil=o):this.scoreCache.set(e,{score:i,cacheUntil:o}),i}addPenalty(e,t,r){let n=this.peerStats.get(e);n!=null&&(n.behaviourPenalty+=t,this.metrics?.onScorePenalty(r))}addPeer(e){let t={connected:!0,expire:0,topics:{},knownIPs:new Set,behaviourPenalty:0};this.peerStats.set(e,t)}addIP(e,t){let r=this.peerStats.get(e);r?.knownIPs.add(t),this.peerIPs.getOrDefault(t).add(e)}removeIP(e,t){let r=this.peerStats.get(e);r?.knownIPs.delete(t);let n=this.peerIPs.get(t);n!=null&&(n.delete(e),n.size===0&&this.peerIPs.delete(t))}removePeer(e){let t=this.peerStats.get(e);if(t!=null){if(this.score(e)>0){this.removeIPsForPeer(e,t.knownIPs),this.peerStats.delete(e);return}Object.entries(t.topics).forEach(([r,n])=>{n.firstMessageDeliveries=0;let i=this.params.topics[r].meshMessageDeliveriesThreshold;if(n.inMesh&&n.meshMessageDeliveriesActive&&n.meshMessageDeliveries{o!==e.toString()&&this.markDuplicateMessageDelivery(o,r)})}rejectInvalidMessage(e,t){this.markInvalidMessageDelivery(e,t)}rejectMessage(e,t,r,n){switch(n){case Ie.Error:this.markInvalidMessageDelivery(e,r);return;case Ie.Blacklisted:return}let i=this.deliveryRecords.ensureRecord(t);if(i.status!==ke.unknown){this.log("unexpected rejection: message from %s was first seen %s ago and has delivery status %d",e,Date.now()-i.firstSeenTsMs,ke[i.status]);return}if(n===Ie.Ignore){i.status=ke.ignored,i.peers.clear();return}i.status=ke.invalid,this.markInvalidMessageDelivery(e,r),i.peers.forEach(o=>{this.markInvalidMessageDelivery(o,r)}),i.peers.clear()}duplicateMessage(e,t,r){let n=this.deliveryRecords.ensureRecord(t);if(!n.peers.has(e))switch(n.status){case ke.unknown:n.peers.add(e);break;case ke.valid:n.peers.add(e),this.markDuplicateMessageDelivery(e,r,n.validated);break;case ke.invalid:this.markInvalidMessageDelivery(e,r);break;case ke.ignored:break}}markInvalidMessageDelivery(e,t){let r=this.peerStats.get(e);if(r!=null){let n=this.getPtopicStats(r,t);n!=null&&(n.invalidMessageDeliveries+=1)}}markFirstMessageDelivery(e,t){let r=this.peerStats.get(e);if(r!=null){let n=this.getPtopicStats(r,t);if(n!=null){let i=this.params.topics[t].firstMessageDeliveriesCap;n.firstMessageDeliveries=Math.min(i,n.firstMessageDeliveries+1),n.inMesh&&(i=this.params.topics[t].meshMessageDeliveriesCap,n.meshMessageDeliveries=Math.min(i,n.meshMessageDeliveries+1))}}}markDuplicateMessageDelivery(e,t,r){let n=this.peerStats.get(e);if(n!=null){let i=r!==void 0?Date.now():0,o=this.getPtopicStats(n,t);if(o!=null&&o.inMesh){let a=this.params.topics[t];if(r!==void 0){let f=i-r,l=f>a.meshMessageDeliveriesWindow;if(this.metrics?.onDuplicateMsgDelivery(t,f,l),l)return}let c=a.meshMessageDeliveriesCap;o.meshMessageDeliveries=Math.min(c,o.meshMessageDeliveries+1)}}}removeIPsForPeer(e,t){for(let r of t){let n=this.peerIPs.get(r);n!=null&&(n.delete(e),n.size===0&&this.peerIPs.delete(r))}}getPtopicStats(e,t){let r=e.topics[t];return r!==void 0?r:this.params.topics[t]!==void 0?(r={inMesh:!1,graftTime:0,meshTime:0,firstMessageDeliveries:0,meshMessageDeliveries:0,meshMessageDeliveriesActive:!1,meshFailurePenalty:0,invalidMessageDeliveries:0},e.topics[t]=r,r):null}};function Uh(s,e,t,r,n){let i=0,o=new Map;if(Object.entries(e.topics).forEach(([h,p])=>{let g=n.get(h)??"unknown",d=t.topics[h];if(d===void 0)return;let m=o.get(g);m==null&&(m={p1w:0,p2w:0,p3w:0,p3bw:0,p4w:0},o.set(g,m));let b=0,_=0,w=0,A=0,y=0;if(p.inMesh){let D=Math.max(p.meshTime/d.timeInMeshQuantum,d.timeInMeshCap);b+=D*d.timeInMeshWeight}let x=p.firstMessageDeliveries;if(x>d.firstMessageDeliveriesCap&&(x=d.firstMessageDeliveriesCap),_+=x*d.firstMessageDeliveriesWeight,p.meshMessageDeliveriesActive&&p.meshMessageDeliveries0&&i>t.topicScoreCap){i=t.topicScoreCap;let h=t.topicScoreCap/i;for(let p of o.values())p.p1w*=h,p.p2w*=h,p.p3w*=h,p.p3bw*=h,p.p4w*=h}let a=0,c=0,f=0,l=t.appSpecificScore(s);a+=l*t.appSpecificWeight,e.knownIPs.forEach(h=>{if(t.IPColocationFactorWhitelist.has(h))return;let p=r.get(h),g=p!=null?p.size:0;if(g>t.IPColocationFactorThreshold){let d=g-t.IPColocationFactorThreshold,m=d*d;c+=m*t.IPColocationFactorWeight}});let u=e.behaviourPenalty*e.behaviourPenalty;return f+=u*t.behaviourPenaltyWeight,i+=a+c+f,{byTopic:o,p5w:a,p6w:c,p7w:f,score:i}}function za(s,e,t,r,n){let i={byTopic:new Map,p5w:[],p6w:[],p7w:[],score:[]};for(let o of s){let a=e.get(o);if(a!=null){let c=Uh(o,a,t,r,n);for(let[f,l]of c.byTopic){let u=i.byTopic.get(f);u==null&&(u={p1w:[],p2w:[],p3w:[],p3bw:[],p4w:[]},i.byTopic.set(f,u)),u.p1w.push(l.p1w),u.p2w.push(l.p2w),u.p3w.push(l.p3w),u.p3bw.push(l.p3bw),u.p4w.push(l.p4w)}i.p5w.push(c.p5w),i.p6w.push(c.p6w),i.p7w.push(c.p7w),i.score.push(c.score)}else i.p5w.push(0),i.p6w.push(0),i.p7w.push(0),i.score.push(0)}return i}var Nr=class{rawStream;pushable;closeController;maxBufferSize;constructor(e,t,r){this.rawStream=e,this.pushable=ut(),this.closeController=new AbortController,this.maxBufferSize=r.maxBufferSize??1/0,this.closeController.signal.addEventListener("abort",()=>{e.close().catch(n=>{e.abort(n)})}),gs(this.pushable,this.rawStream).catch(t)}get protocol(){return this.rawStream.protocol}push(e){if(this.pushable.readableLength>this.maxBufferSize)throw Error(`OutboundStream buffer full, size > ${this.maxBufferSize}`);this.pushable.push(fs.single(e))}pushPrefixed(e){if(this.pushable.readableLength>this.maxBufferSize)throw Error(`OutboundStream buffer full, size > ${this.maxBufferSize}`);this.pushable.push(e)}async close(){this.closeController.abort(),await this.pushable.return()}},Cr=class{source;rawStream;closeController;constructor(e,t={}){this.rawStream=e,this.closeController=new AbortController,this.closeController.signal.addEventListener("abort",()=>{e.close().catch(r=>{e.abort(r)})}),this.source=gs(this.rawStream,r=>Zs(r,t))}async close(){this.closeController.abort()}};var Lr=class{gossipsubIWantFollowupMs;msgIdToStrFn;metrics;promises=new Map;requestMsByMsg=new Map;requestMsByMsgExpire;constructor(e,t,r){this.gossipsubIWantFollowupMs=e,this.msgIdToStrFn=t,this.metrics=r,this.requestMsByMsgExpire=10*e}get size(){return this.promises.size}get requestMsByMsgSize(){return this.requestMsByMsg.size}addPromise(e,t){let r=Math.floor(Math.random()*t.length),n=t[r],i=this.msgIdToStrFn(n),o=this.promises.get(i);o==null&&(o=new Map,this.promises.set(i,o));let a=Date.now();o.has(e)||(o.set(e,a+this.gossipsubIWantFollowupMs),this.metrics!=null&&(this.metrics.iwantPromiseStarted.inc(1),this.requestMsByMsg.has(i)||this.requestMsByMsg.set(i,a)))}getBrokenPromises(){let e=Date.now(),t=new Map,r=0;return this.promises.forEach((n,i)=>{n.forEach((o,a)=>{oes,Ed25519PublicKey:()=>er,generateKeyPair:()=>jf,generateKeyPairFromSeed:()=>bc,unmarshalEd25519PrivateKey:()=>Wf,unmarshalEd25519PublicKey:()=>$f});function Fe(s){return s==null?!1:typeof s.then=="function"&&typeof s.catch=="function"&&typeof s.finally=="function"}function vs(s){if(!Number.isSafeInteger(s)||s<0)throw new Error(`positive integer expected, not ${s}`)}function Vh(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function xs(s,...e){if(!Vh(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 Ur(s){if(typeof s!="function"||typeof s.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");vs(s.outputLen),vs(s.blockLen)}function Es(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 qa(s,e){xs(s);let t=e.outputLen;if(s.lengthnew DataView(s.buffer,s.byteOffset,s.byteLength),qe=(s,e)=>s<<32-e|s>>>e;var Y0=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Oh=async()=>{};async function Wa(s,e,t){let r=Date.now();for(let n=0;n=0&&is().update(Rt(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function Ss(s=32){if(Vr&&typeof Vr.getRandomValues=="function")return Vr.getRandomValues(new Uint8Array(s));throw new Error("crypto.getRandomValues must be defined")}function Hh(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,f=r?0:4;s.setUint32(e+c,o,r),s.setUint32(e+f,a,r)}var ja=(s,e,t)=>s&e^~s&t,Za=(s,e,t)=>s&e^s&t^e&t,Is=class extends _s{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=Bs(this.buffer)}update(e){Es(this);let{view:t,buffer:r,blockLen:n}=this;e=Rt(e);let i=e.length;for(let o=0;on-o&&(this.process(r,0),o=0);for(let u=o;ul.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u>qi&Hr)}:{h:Number(s>>qi&Hr)|0,l:Number(s&Hr)|0}}function Gh(s,e=!1){let t=new Uint32Array(s.length),r=new Uint32Array(s.length);for(let n=0;nBigInt(s>>>0)<>>0),zh=(s,e,t)=>s>>>t,qh=(s,e,t)=>s<<32-t|e>>>t,Wh=(s,e,t)=>s>>>t|e<<32-t,$h=(s,e,t)=>s<<32-t|e>>>t,jh=(s,e,t)=>s<<64-t|e>>>t-32,Zh=(s,e,t)=>s>>>t-32|e<<64-t,Yh=(s,e)=>e,Xh=(s,e)=>s,Jh=(s,e,t)=>s<>>32-t,Qh=(s,e,t)=>e<>>32-t,ef=(s,e,t)=>e<>>64-t,tf=(s,e,t)=>s<>>64-t;function sf(s,e,t,r){let n=(e>>>0)+(r>>>0);return{h:s+t+(n/2**32|0)|0,l:n|0}}var rf=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),nf=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,of=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),af=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,cf=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),lf=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var uf={fromBig:Ya,split:Gh,toBig:Kh,shrSH:zh,shrSL:qh,rotrSH:Wh,rotrSL:$h,rotrBH:jh,rotrBL:Zh,rotr32H:Yh,rotr32L:Xh,rotlSH:Jh,rotlSL:Qh,rotlBH:ef,rotlBL:tf,add:sf,add3L:rf,add3H:nf,add4L:of,add4H:af,add5H:lf,add5L:cf},U=uf;var[hf,ff]=U.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))),Mt=new Uint32Array(80),Dt=new Uint32Array(80),Wi=class extends Is{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:f,El:l,Fh:u,Fl:h,Gh:p,Gl:g,Hh:d,Hl:m}=this;return[e,t,r,n,i,o,a,c,f,l,u,h,p,g,d,m]}set(e,t,r,n,i,o,a,c,f,l,u,h,p,g,d,m){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=f|0,this.El=l|0,this.Fh=u|0,this.Fl=h|0,this.Gh=p|0,this.Gl=g|0,this.Hh=d|0,this.Hl=m|0}process(e,t){for(let w=0;w<16;w++,t+=4)Mt[w]=e.getUint32(t),Dt[w]=e.getUint32(t+=4);for(let w=16;w<80;w++){let A=Mt[w-15]|0,y=Dt[w-15]|0,x=U.rotrSH(A,y,1)^U.rotrSH(A,y,8)^U.shrSH(A,y,7),E=U.rotrSL(A,y,1)^U.rotrSL(A,y,8)^U.shrSL(A,y,7),B=Mt[w-2]|0,D=Dt[w-2]|0,N=U.rotrSH(B,D,19)^U.rotrBH(B,D,61)^U.shrSH(B,D,6),L=U.rotrSL(B,D,19)^U.rotrBL(B,D,61)^U.shrSL(B,D,6),ne=U.add4L(E,L,Dt[w-7],Dt[w-16]),re=U.add4H(ne,x,N,Mt[w-7],Mt[w-16]);Mt[w]=re|0,Dt[w]=ne|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:a,Cl:c,Dh:f,Dl:l,Eh:u,El:h,Fh:p,Fl:g,Gh:d,Gl:m,Hh:b,Hl:_}=this;for(let w=0;w<80;w++){let A=U.rotrSH(u,h,14)^U.rotrSH(u,h,18)^U.rotrBH(u,h,41),y=U.rotrSL(u,h,14)^U.rotrSL(u,h,18)^U.rotrBL(u,h,41),x=u&p^~u&d,E=h&g^~h&m,B=U.add5L(_,y,E,ff[w],Dt[w]),D=U.add5H(B,b,A,x,hf[w],Mt[w]),N=B|0,L=U.rotrSH(r,n,28)^U.rotrBH(r,n,34)^U.rotrBH(r,n,39),ne=U.rotrSL(r,n,28)^U.rotrBL(r,n,34)^U.rotrBL(r,n,39),re=r&i^r&a^i&a,Ve=n&o^n&c^o&c;b=d|0,_=m|0,d=p|0,m=g|0,p=u|0,g=h|0,{h:u,l:h}=U.add(f|0,l|0,D|0,N|0),f=a|0,l=c|0,a=i|0,c=o|0,i=r|0,o=n|0;let S=U.add3L(N,ne,Ve);r=U.add3H(S,D,L,re),n=S|0}({h:r,l:n}=U.add(this.Ah|0,this.Al|0,r|0,n|0)),{h:i,l:o}=U.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=U.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l}=U.add(this.Dh|0,this.Dl|0,f|0,l|0),{h:u,l:h}=U.add(this.Eh|0,this.El|0,u|0,h|0),{h:p,l:g}=U.add(this.Fh|0,this.Fl|0,p|0,g|0),{h:d,l:m}=U.add(this.Gh|0,this.Gl|0,d|0,m|0),{h:b,l:_}=U.add(this.Hh|0,this.Hl|0,b|0,_|0),this.set(r,n,i,o,a,c,f,l,u,h,p,g,d,m,b,_)}roundClean(){Mt.fill(0),Dt.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 As=Fr(()=>new Wi);var Kr={};ue(Kr,{abytes:()=>ks,bitGet:()=>wf,bitLen:()=>yf,bitMask:()=>Js,bitSet:()=>vf,bytesToHex:()=>dt,bytesToNumberBE:()=>pt,bytesToNumberLE:()=>Ct,concatBytes:()=>gt,createHmacDrbg:()=>Zi,ensureBytes:()=>se,equalBytes:()=>mf,hexToBytes:()=>Xt,hexToNumber:()=>ji,isBytes:()=>Nt,numberToBytesBE:()=>Lt,numberToBytesLE:()=>Jt,numberToHexUnpadded:()=>ec,numberToVarBytesBE:()=>gf,utf8ToBytes:()=>bf,validateObject:()=>Xe});var Qa=BigInt(0),Gr=BigInt(1),df=BigInt(2);function Nt(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function ks(s){if(!Nt(s))throw new Error("Uint8Array expected")}var pf=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function dt(s){ks(s);let e="";for(let t=0;t=ft._0&&s<=ft._9)return s-ft._0;if(s>=ft._A&&s<=ft._F)return s-(ft._A-10);if(s>=ft._a&&s<=ft._f)return s-(ft._a-10)}function Xt(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;nQa;s>>=Gr,e+=1);return e}function wf(s,e){return s>>BigInt(e)&Gr}function vf(s,e,t){return s|(t?Gr:Qa)<(df<new Uint8Array(s),Ja=s=>Uint8Array.from(s);function Zi(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=$i(s),n=$i(s),i=0,o=()=>{r.fill(1),n.fill(0),i=0},a=(...u)=>t(n,r,...u),c=(u=$i())=>{n=a(Ja([0]),u),r=a(),u.length!==0&&(n=a(Ja([1]),u),r=a())},f=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,h=[];for(;u{o(),c(u);let p;for(;!(p=h(f()));)c();return o(),p}}var xf={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"||Nt(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 Xe(s,e,t={}){let r=(n,i,o)=>{let a=xf[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 le=BigInt(0),Y=BigInt(1),Qt=BigInt(2),Ef=BigInt(3),Yi=BigInt(4),tc=BigInt(5),sc=BigInt(8),_f=BigInt(9),Bf=BigInt(16);function j(s,e){let t=s%e;return t>=le?t:e+t}function Sf(s,e,t){if(t<=le||e 0");if(t===Y)return le;let r=Y;for(;e>le;)e&Y&&(r=r*s%t),s=s*s%t,e>>=Y;return r}function X(s,e,t){let r=s;for(;e-- >le;)r*=r,r%=t;return r}function zr(s,e){if(s===le||e<=le)throw new Error(`invert: expected positive integers, got n=${s} mod=${e}`);let t=j(s,e),r=e,n=le,i=Y,o=Y,a=le;for(;t!==le;){let f=r/t,l=r%t,u=n-o*f,h=i-a*f;r=t,t=l,n=o,i=a,o=u,a=h}if(r!==Y)throw new Error("invert: does not exist");return j(n,e)}function If(s){let e=(s-Y)/Qt,t,r,n;for(t=s-Y,r=0;t%Qt===le;t/=Qt,r++);for(n=Qt;n(j(s,e)&Y)===Y,kf=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Xi(s){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=kf.reduce((r,n)=>(r[n]="function",r),e);return Xe(s,t)}function Tf(s,e,t){if(t 0");if(t===le)return s.ONE;if(t===Y)return e;let r=s.ONE,n=e;for(;t>le;)t&Y&&(r=s.mul(r,n)),n=s.sqr(n),t>>=Y;return r}function Pf(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 Ji(s,e){let t=e!==void 0?e:s.toString(2).length,r=Math.ceil(t/8);return{nBitLength:t,nByteLength:r}}function qr(s,e,t=!1,r={}){if(s<=le)throw new Error(`Expected Field ORDER > 0, got ${s}`);let{nBitLength:n,nByteLength:i}=Ji(s,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=Af(s),a=Object.freeze({ORDER:s,BITS:n,BYTES:i,MASK:Js(n),ZERO:le,ONE:Y,create:c=>j(c,s),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return le<=c&&cc===le,isOdd:c=>(c&Y)===Y,neg:c=>j(-c,s),eql:(c,f)=>c===f,sqr:c=>j(c*c,s),add:(c,f)=>j(c+f,s),sub:(c,f)=>j(c-f,s),mul:(c,f)=>j(c*f,s),pow:(c,f)=>Tf(a,c,f),div:(c,f)=>j(c*zr(f,s),s),sqrN:c=>c*c,addN:(c,f)=>c+f,subN:(c,f)=>c-f,mulN:(c,f)=>c*f,inv:c=>zr(c,s),sqrt:r.sqrt||(c=>o(a,c)),invertBatch:c=>Pf(a,c),cmov:(c,f,l)=>l?f:c,toBytes:c=>t?Jt(c,i):Lt(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Ct(c):pt(c)}});return Object.freeze(a)}function nc(s,e){if(!s.isOdd)throw new Error("Field doesn't have isOdd");let t=s.sqrt(e);return s.isOdd(t)?s.neg(t):t}function ic(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 Qi(s){let e=ic(s);return e+Math.ceil(e/2)}function oc(s,e,t=!1){let r=s.length,n=ic(e),i=Qi(e);if(r<16||r1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);let o=t?pt(s):Ct(s),a=j(o,e-Y)+Y;return t?Jt(a,n):Lt(a,n)}var Mf=BigInt(0),eo=BigInt(1);function Wr(s,e){let t=(n,i)=>{let o=i.negate();return n?o:i},r=n=>{let i=Math.ceil(e/n)+1,o=2**(n-1);return{windows:i,windowSize:o}};return{constTimeNegate:t,unsafeLadder(n,i){let o=s.ZERO,a=n;for(;i>Mf;)i&eo&&(o=o.add(a)),a=a.double(),i>>=eo;return o},precomputeWindow(n,i){let{windows:o,windowSize:a}=r(i),c=[],f=n,l=f;for(let u=0;u>=p,m>c&&(m-=h,o+=eo);let b=d,_=d+Math.abs(m)-1,w=g%2!==0,A=m<0;m===0?l=l.add(t(w,i[b])):f=f.add(t(A,i[_]))}return{p:f,f:l}},wNAFCached(n,i,o,a){let c=n._WINDOW_SIZE||1,f=i.get(n);return f||(f=this.precomputeWindow(n,c),c!==1&&i.set(n,a(f))),this.wNAF(c,f,o)}}}function Qs(s){return Xi(s.Fp),Xe(s,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Ji(s.n,s.nBitLength),...s,p:s.Fp.ORDER})}var We=BigInt(0),Le=BigInt(1),$r=BigInt(2),Df=BigInt(8),Nf={zip215:!0};function Cf(s){let e=Qs(s);return Xe(s,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function jr(s){let e=Cf(s),{Fp:t,n:r,prehash:n,hash:i,randomBytes:o,nByteLength:a,h:c}=e,f=$r<{try{return{isValid:!0,value:t.sqrt(I*t.inv(v))}}catch{return{isValid:!1,value:We}}}),h=e.adjustScalarBytes||(I=>I),p=e.domain||((I,v,P)=>{if(v.length||P)throw new Error("Contexts/pre-hash are not supported");return I}),g=I=>typeof I=="bigint"&&Weg(I)&&g(v)&&II===We||d(I,f);function b(I,v){if(d(I,v))return I;throw new Error(`Expected valid scalar < ${v}, got ${typeof I} ${I}`)}function _(I){return I===We?I:b(I,r)}let w=new Map;function A(I){if(!(I instanceof y))throw new Error("ExtendedPoint expected")}class y{constructor(v,P,M,C){if(this.ex=v,this.ey=P,this.ez=M,this.et=C,!m(v))throw new Error("x required");if(!m(P))throw new Error("y required");if(!m(M))throw new Error("z required");if(!m(C))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(v){if(v instanceof y)throw new Error("extended point not allowed");let{x:P,y:M}=v||{};if(!m(P)||!m(M))throw new Error("invalid affine point");return new y(P,M,Le,l(P*M))}static normalizeZ(v){let P=t.invertBatch(v.map(M=>M.ez));return v.map((M,C)=>M.toAffine(P[C])).map(y.fromAffine)}_setWindowSize(v){this._WINDOW_SIZE=v,w.delete(this)}assertValidity(){let{a:v,d:P}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:C,ez:O,et:F}=this,z=l(M*M),G=l(C*C),K=l(O*O),ie=l(K*K),ee=l(z*v),fe=l(K*l(ee+G)),de=l(ie+l(P*l(z*G)));if(fe!==de)throw new Error("bad point: equation left != right (1)");let ae=l(M*C),ge=l(O*F);if(ae!==ge)throw new Error("bad point: equation left != right (2)")}equals(v){A(v);let{ex:P,ey:M,ez:C}=this,{ex:O,ey:F,ez:z}=v,G=l(P*z),K=l(O*C),ie=l(M*z),ee=l(F*C);return G===K&&ie===ee}is0(){return this.equals(y.ZERO)}negate(){return new y(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:v}=e,{ex:P,ey:M,ez:C}=this,O=l(P*P),F=l(M*M),z=l($r*l(C*C)),G=l(v*O),K=P+M,ie=l(l(K*K)-O-F),ee=G+F,fe=ee-z,de=G-F,ae=l(ie*fe),ge=l(ee*de),ot=l(ie*de),zt=l(fe*ee);return new y(ae,ge,zt,ot)}add(v){A(v);let{a:P,d:M}=e,{ex:C,ey:O,ez:F,et:z}=this,{ex:G,ey:K,ez:ie,et:ee}=v;if(P===BigInt(-1)){let Mo=l((O-C)*(K+G)),Do=l((O+C)*(K-G)),Wn=l(Do-Mo);if(Wn===We)return this.double();let No=l(F*$r*ee),Co=l(z*$r*ie),Lo=Co+No,Uo=Do+Mo,Vo=Co-No,Wl=l(Lo*Wn),$l=l(Uo*Vo),jl=l(Lo*Vo),Zl=l(Wn*Uo);return new y(Wl,$l,Zl,jl)}let fe=l(C*G),de=l(O*K),ae=l(z*M*ee),ge=l(F*ie),ot=l((C+O)*(G+K)-fe-de),zt=ge-ae,Fs=ge+ae,Ro=l(de-P*fe),Gl=l(ot*zt),Kl=l(Fs*Ro),zl=l(ot*Ro),ql=l(zt*Fs);return new y(Gl,Kl,ql,zl)}subtract(v){return this.add(v.negate())}wNAF(v){return B.wNAFCached(this,w,v,y.normalizeZ)}multiply(v){let{p:P,f:M}=this.wNAF(b(v,r));return y.normalizeZ([P,M])[0]}multiplyUnsafe(v){let P=_(v);return P===We?E:this.equals(E)||P===Le?this:this.equals(x)?this.wNAF(P).p:B.unsafeLadder(this,P)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return B.unsafeLadder(this,r).is0()}toAffine(v){let{ex:P,ey:M,ez:C}=this,O=this.is0();v==null&&(v=O?Df:t.inv(C));let F=l(P*v),z=l(M*v),G=l(C*v);if(O)return{x:We,y:Le};if(G!==Le)throw new Error("invZ was invalid");return{x:F,y:z}}clearCofactor(){let{h:v}=e;return v===Le?this:this.multiplyUnsafe(v)}static fromHex(v,P=!1){let{d:M,a:C}=e,O=t.BYTES;v=se("pointHex",v,O);let F=v.slice(),z=v[O-1];F[O-1]=z&-129;let G=Ct(F);G===We||(P?b(G,f):b(G,t.ORDER));let K=l(G*G),ie=l(K-Le),ee=l(M*K-C),{isValid:fe,value:de}=u(ie,ee);if(!fe)throw new Error("Point.fromHex: invalid y coordinate");let ae=(de&Le)===Le,ge=(z&128)!==0;if(!P&&de===We&&ge)throw new Error("Point.fromHex: x=0 and x_0=1");return ge!==ae&&(de=l(-de)),y.fromAffine({x:de,y:G})}static fromPrivateKey(v){return L(v).point}toRawBytes(){let{x:v,y:P}=this.toAffine(),M=Jt(P,t.BYTES);return M[M.length-1]|=v&Le?128:0,M}toHex(){return dt(this.toRawBytes())}}y.BASE=new y(e.Gx,e.Gy,Le,l(e.Gx*e.Gy)),y.ZERO=new y(We,Le,Le,We);let{BASE:x,ZERO:E}=y,B=Wr(y,a*8);function D(I){return j(I,r)}function N(I){return D(Ct(I))}function L(I){let v=a;I=se("private key",I,v);let P=se("hashed private key",i(I),2*v),M=h(P.slice(0,v)),C=P.slice(v,2*v),O=N(M),F=x.multiply(O),z=F.toRawBytes();return{head:M,prefix:C,scalar:O,point:F,pointBytes:z}}function ne(I){return L(I).pointBytes}function re(I=new Uint8Array,...v){let P=gt(...v);return N(i(p(P,se("context",I),!!n)))}function Ve(I,v,P={}){I=se("message",I),n&&(I=n(I));let{prefix:M,scalar:C,pointBytes:O}=L(v),F=re(P.context,M,I),z=x.multiply(F).toRawBytes(),G=re(P.context,z,O,I),K=D(F+G*C);_(K);let ie=gt(z,Jt(K,t.BYTES));return se("result",ie,a*2)}let S=Nf;function R(I,v,P,M=S){let{context:C,zip215:O}=M,F=t.BYTES;I=se("signature",I,2*F),v=se("message",v),n&&(v=n(v));let z=Ct(I.slice(F,2*F)),G,K,ie;try{G=y.fromHex(P,O),K=y.fromHex(I.slice(0,F),O),ie=x.multiplyUnsafe(z)}catch{return!1}if(!O&&G.isSmallOrder())return!1;let ee=re(C,K.toRawBytes(),G.toRawBytes(),v);return K.add(G.multiplyUnsafe(ee)).subtract(ie).clearCofactor().equals(y.ZERO)}return x._setWindowSize(8),{CURVE:e,getPublicKey:ne,sign:Ve,verify:R,ExtendedPoint:y,utils:{getExtendedPublicKey:L,randomPrivateKey:()=>o(t.BYTES),precompute(I=8,v=y.BASE){return v._setWindowSize(I),v.multiply(BigInt(3)),v}}}}var so=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),ac=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),yb=BigInt(0),Lf=BigInt(1),to=BigInt(2),Uf=BigInt(5),cc=BigInt(10),Vf=BigInt(20),Of=BigInt(40),lc=BigInt(80);function Ff(s){let e=so,r=s*s%e*s%e,n=X(r,to,e)*r%e,i=X(n,Lf,e)*s%e,o=X(i,Uf,e)*i%e,a=X(o,cc,e)*o%e,c=X(a,Vf,e)*a%e,f=X(c,Of,e)*c%e,l=X(f,lc,e)*f%e,u=X(l,lc,e)*f%e,h=X(u,cc,e)*o%e;return{pow_p_5_8:X(h,to,e)*s%e,b2:r}}function Hf(s){return s[0]&=248,s[31]&=127,s[31]|=64,s}function Gf(s,e){let t=so,r=j(e*e*e,t),n=j(r*r*e,t),i=Ff(s*n).pow_p_5_8,o=j(s*r*i,t),a=j(e*o*o,t),c=o,f=j(o*ac,t),l=a===s,u=a===j(-s,t),h=a===j(-s*ac,t);return l&&(o=c),(u||h)&&(o=f),rc(o,t)&&(o=j(-o,t)),{isValid:l||u,value:o}}var mt=qr(so,void 0,!0),ro={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:mt,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:As,randomBytes:Ss,adjustScalarBytes:Hf,uvRatio:Gf},Ts=jr(ro);function uc(s,e,t){if(e.length>255)throw new Error("Context is too big");return Or(zi("SigEd25519 no Ed25519 collisions"),new Uint8Array([t?1:0,e.length]),e,s)}var wb=jr({...ro,domain:uc}),vb=jr({...ro,domain:uc,prehash:As});var Kf=(mt.ORDER+BigInt(3))/BigInt(8),xb=mt.pow(to,Kf),Eb=mt.sqrt(mt.neg(mt.ONE)),_b=(mt.ORDER-BigInt(5))/BigInt(8),Bb=BigInt(486662);var Sb=nc(mt,mt.neg(BigInt(486664)));var Ib=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Ab=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),kb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Tb=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var Pb=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Ps=32,bt=64,Zr=32;function hc(){let s=Ts.utils.randomPrivateKey(),e=Ts.getPublicKey(s);return{privateKey:gc(s,e),publicKey:e}}function fc(s){if(s.length!==Zr)throw new TypeError('"seed" must be 32 bytes in length.');if(!(s instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=s,t=Ts.getPublicKey(e);return{privateKey:gc(e,t),publicKey:t}}function dc(s,e){let t=s.subarray(0,Zr);return Ts.sign(e instanceof Uint8Array?e:e.subarray(),t)}function pc(s,e,t){return Ts.verify(e,t instanceof Uint8Array?t:t.subarray(),s)}function gc(s,e){let t=new Uint8Array(bt);for(let r=0;rGi(io)})(J||(J={}));var Je;(function(s){let e;s.codec=()=>(e==null&&(e=De((t,r,n={})=>{n.lengthDelimited!==!1&&r.fork(),t.Type!=null&&(r.uint32(8),J.codec().encode(t.Type,r)),t.Data!=null&&(r.uint32(18),r.bytes(t.Data)),n.lengthDelimited!==!1&&r.ldelim()},(t,r)=>{let n={},i=r==null?t.len:t.pos+r;for(;t.pos>>3){case 1:n.Type=J.codec().decode(t);break;case 2:n.Data=t.bytes();break;default:t.skipType(o&7);break}}return n})),e),s.encode=t=>Me(t,s.codec()),s.decode=t=>Re(t,s.codec())})(Je||(Je={}));var Qe;(function(s){let e;s.codec=()=>(e==null&&(e=De((t,r,n={})=>{n.lengthDelimited!==!1&&r.fork(),t.Type!=null&&(r.uint32(8),J.codec().encode(t.Type,r)),t.Data!=null&&(r.uint32(18),r.bytes(t.Data)),n.lengthDelimited!==!1&&r.ldelim()},(t,r)=>{let n={},i=r==null?t.len:t.pos+r;for(;t.pos>>3){case 1:n.Type=J.codec().decode(t);break;case 2:n.Data=t.bytes();break;default:t.skipType(o&7);break}}return n})),e),s.encode=t=>Me(t,s.codec()),s.decode=t=>Re(t,s.codec())})(Qe||(Qe={}));var er=class{_key;constructor(e){this._key=Ms(e,Ps)}verify(e,t){return pc(this._key,t,e)}marshal(){return this._key}get bytes(){return Je.encode({Type:J.Ed25519,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=ce.digest(this.bytes);return Fe(e)?e.then(({bytes:t})=>t):e.bytes}},es=class{_key;_publicKey;constructor(e,t){this._key=Ms(e,bt),this._publicKey=Ms(t,Ps)}sign(e){return dc(this._key,e)}get public(){return new er(this._publicKey)}marshal(){return this._key}get bytes(){return Qe.encode({Type:J.Ed25519,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}async hash(){let e=ce.digest(this.bytes),t;return Fe(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=ls.digest(this.public.bytes);return me.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Rs(this.bytes,e);throw new T(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Wf(s){if(s.length>bt){s=Ms(s,bt+Ps);let r=s.subarray(0,bt),n=s.subarray(bt,s.length);return new es(r,n)}s=Ms(s,bt);let e=s.subarray(0,bt),t=s.subarray(Ps);return new es(e,t)}function $f(s){return s=Ms(s,Ps),new er(s)}async function jf(){let{privateKey:s,publicKey:e}=hc();return new es(s,e)}async function bc(s){let{privateKey:e,publicKey:t}=fc(s);return new es(e,t)}function Ms(s,e){if(s=Uint8Array.from(s??[]),s.length!==e)throw new T(`Key must be a Uint8Array of length ${e}, got ${s.length}`,"ERR_INVALID_KEY_TYPE");return s}function W(s,e="utf8"){let t=Ir[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(s).substring(1)}var bo={};ue(bo,{MAX_RSA_KEY_SIZE:()=>fr,RsaPrivateKey:()=>Us,RsaPublicKey:()=>hr,fromJwk:()=>xd,generateKeyPair:()=>Ed,unmarshalRsaPrivateKey:()=>go,unmarshalRsaPublicKey:()=>vd});function et(s){if(isNaN(s)||s<=0)throw new T("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ss(s)}var Ft={};ue(Ft,{exportToPem:()=>gd,importFromPem:()=>md,jwkToPkcs1:()=>hd,jwkToPkix:()=>dd,pkcs1ToJwk:()=>ud,pkixToJwk:()=>fd});var Xr=class extends _s{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ur(e);let r=Rt(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let o=0;onew Xr(s,e).update(t).digest();tr.create=(s,e)=>new Xr(s,e);function Zf(s,e,t,r){Ur(s);let n=$a({dkLen:32,asyncTick:10},r),{c:i,dkLen:o,asyncTick:a}=n;if(vs(i),vs(o),vs(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Rt(e),f=Rt(t),l=new Uint8Array(o),u=tr.create(s,c),h=u._cloneInto().update(f);return{c:i,dkLen:o,asyncTick:a,DK:l,PRF:u,PRFSalt:h}}function Yf(s,e,t,r,n){return s.destroy(),e.destroy(),r&&r.destroy(),n.fill(0),t}async function ao(s,e,t,r){let{c:n,dkLen:i,asyncTick:o,DK:a,PRF:c,PRFSalt:f}=Zf(s,e,t,r),l,u=new Uint8Array(4),h=Bs(u),p=new Uint8Array(c.outputLen);for(let g=1,d=0;d{c._cloneInto(l).update(p).digestInto(p);for(let b=0;b=0;r--)t+=s[s.length-1-r]*Math.pow(2,e*r);return t}function Ut(s,e,t=-1){let r=t,n=s,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(s=0;l--){let u=Math.pow(2,l*e);f[i-l-1]=Math.floor(n/u),n-=f[i-l-1]*u}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function en(...s){let e=0,t=0;for(let i of s)e+=i.length;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(i,t),t+=i.length;return n}function lo(){let s=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=s[0]===255&&s[1]&128,c=s[0]===0&&(s[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function uo(s){let e=0,t=0;for(let n=0;n=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===l){l+=255;let h=new Uint8Array(l);for(let p=0;p8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=n.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=ts(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){let n=Ut(this.length,8);if(n.byteLength>127)return this.error="Too big length",je;if(t=new ArrayBuffer(n.byteLength+1),e)return t;let i=new Uint8Array(n);r=new Uint8Array(t),r[0]=n.byteLength|128;for(let o=0;o=37&&n.idBlock.isHexOnly===!1)return n.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:n};switch(n.idBlock.tagNumber){case 0:if(n.idBlock.isConstructed&&n.lenBlock.length>0)return n.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:n};c=k.EndOfContent;break;case 1:c=k.Boolean;break;case 2:c=k.Integer;break;case 3:c=k.BitString;break;case 4:c=k.OctetString;break;case 5:c=k.Null;break;case 6:c=k.ObjectIdentifier;break;case 10:c=k.Enumerated;break;case 12:c=k.Utf8String;break;case 13:c=k.RelativeObjectIdentifier;break;case 14:c=k.TIME;break;case 15:return n.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:n};case 16:c=k.Sequence;break;case 17:c=k.Set;break;case 18:c=k.NumericString;break;case 19:c=k.PrintableString;break;case 20:c=k.TeletexString;break;case 21:c=k.VideotexString;break;case 22:c=k.IA5String;break;case 23:c=k.UTCTime;break;case 24:c=k.GeneralizedTime;break;case 25:c=k.GraphicString;break;case 26:c=k.VisibleString;break;case 27:c=k.GeneralString;break;case 28:c=k.UniversalString;break;case 29:c=k.CharacterString;break;case 30:c=k.BmpString;break;case 31:c=k.DATE;break;case 32:c=k.TimeOfDay;break;case 33:c=k.DateTime;break;case 34:c=k.Duration;break;default:{let f=n.idBlock.isConstructed?new k.Constructed:new k.Primitive;f.idBlock=n.idBlock,f.lenBlock=n.lenBlock,f.warnings=n.warnings,n=f}}break;case 2:case 3:case 4:default:c=n.idBlock.isConstructed?k.Constructed:k.Primitive}return n=id(n,c),a=n.fromBER(s,e,n.lenBlock.isIndefiniteForm?t:n.lenBlock.length),n.valueBeforeDecodeView=s.subarray(r,r+n.blockLength),{offset:a,result:n}}function Ls(s){if(!s.byteLength){let e=new pe({},_e);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Fn(H.BufferSourceConverter.toUint8Array(s).slice(),0,s.byteLength)}function od(s,e){return s?1:e}var tt=class extends _e{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,r){let n=H.BufferSourceConverter.toUint8Array(e);if(!Et(this,n,t,r))return-1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;od(this.isIndefiniteForm,r)>0;){let o=Fn(n,i,r);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,r-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===nr)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===nr?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let r=t||new rr;for(let n=0;n{var Rl=Object.create;var rr=Object.defineProperty;var Ll=Object.getOwnPropertyDescriptor;var Ul=Object.getOwnPropertyNames;var Fl=Object.getPrototypeOf,Vl=Object.prototype.hasOwnProperty;var Po=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),ve=(s,e)=>{for(var t in e)rr(s,t,{get:e[t],enumerable:!0})},Do=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ul(e))!Vl.call(s,n)&&n!==t&&rr(s,n,{get:()=>e[n],enumerable:!(r=Ll(e,n))||r.enumerable});return s};var Co=(s,e,t)=>(t=s!=null?Rl(Fl(s)):{},Do(e||!s||!s.__esModule?rr(t,"default",{value:s,enumerable:!0}):t,s)),Hl=s=>Do(rr({},"__esModule",{value:!0}),s);var Na=Po(ds=>{"use strict";var ff="[object ArrayBuffer]",ut=class s{static isArrayBuffer(e){return Object.prototype.toString.call(e)===ff}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;in.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{"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._headthis._capacity&&this.pop(),this._head1e4&&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._head1e4&&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(e0;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;c0;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(r0;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,f=this._list.length,u=2;if(!n||r0&&(this._head=this._head+r+f&this._capacityMask)):(a=this.remove(r,t),this._head=this._head+r+f&this._capacityMask);c>u;)this.unshift(arguments[--c]);for(i=r;i>0;i--)this.unshift(o[i-1])}else{o=new Array(n-(r+t));var h=o.length;for(i=0;ithis._tail){for(c=this._head;c>>=1,this._capacityMask>>>=1};Y.prototype._nextPowerOf2=function(e){var t=Math.log(e)/Math.log(2),r=1<On,gossipsub:()=>Fd,multicodec:()=>Ud});var Gn=Symbol.for("@libp2p/peer-id");var Ft="StrictSign",Xt="StrictNoSign",xe;(function(s){s.Accept="accept",s.Ignore="ignore",s.Reject="reject"})(xe||(xe={}));var ce=class extends Error{constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},Yt=class extends Error{constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var nr=class extends Error{constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Qt=class extends Error{constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var No=(s,...e)=>{try{[...e]}catch{}};var ir=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:()=>Wl});var mp=new Uint8Array(0);function Uo(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;t=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,I=new Uint8Array(y);b!==S;){for(var v=m[b],B=0,x=y-1;(v!==0||B>>0,I[x]=v%a>>>0,v=v/a>>>0;if(v!==0)throw new Error("Non-zero carry");g=B,b++}for(var _=y-g;_!==y&&I[_]===0;)_++;for(var k=c.repeat(p);_>>0,y=new Uint8Array(S);m[p];){var I=t[m.charCodeAt(p)];if(I===255)return;for(var v=0,B=S-1;(I!==0||v>>0,y[B]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");b=v,p++}if(m[p]!==" "){for(var x=S-b;x!==S&&y[x]===0;)x++;for(var _=new Uint8Array(g+(S-x)),k=g;x!==S;)_[k++]=y[x++];return _}}}function d(m){var p=l(m);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:l,decode:d}}var zl=Ol,Gl=zl,Oo=Gl;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 ql(s,e,t,r){let n={};for(let u=0;u=8&&(a-=8,o[f++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function Kl(s,e,t){let r=e[e.length-1]==="=",n=(1<t;)o-=t,i+=e[n&a>>o];if(o!==0&&(i+=e[n&a<Vt,base32hex:()=>Jl,base32hexpad:()=>Yl,base32hexpadupper:()=>Ql,base32hexupper:()=>Xl,base32pad:()=>jl,base32padupper:()=>Zl,base32upper:()=>$l,base32z:()=>eu});var Vt=Q({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),$l=Q({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),jl=Q({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Zl=Q({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Jl=Q({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Xl=Q({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Yl=Q({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ql=Q({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),eu=Q({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var tu=Ko,Go=128,su=127,ru=~su,nu=Math.pow(2,31);function Ko(s,e,t){e=e||[],t=t||0;for(var r=t;s>=nu;)e[t++]=s&255|Go,s/=128;for(;s&ru;)e[t++]=s&255|Go,s>>>=7;return e[t]=s|0,Ko.bytes=t-r+1,e}var iu=Jn,ou=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)<=ou);return Jn.bytes=i-r,t}var au=Math.pow(2,7),cu=Math.pow(2,14),lu=Math.pow(2,21),uu=Math.pow(2,28),hu=Math.pow(2,35),fu=Math.pow(2,42),du=Math.pow(2,49),pu=Math.pow(2,56),gu=Math.pow(2,63),mu=function(s){return s{let[h,l]=Ps(e.subarray(t));return t+=l,h},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(),f=t+c,u=f-o;return{version:n,codec:i,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(e,t){let[r,n]=wu(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 wu(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 Vt.prefix:{let t=e??Vt;return[Vt.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 vu(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 xu(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,Eu=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 Su=Symbol.for("@ipld/js-cid/CID");var Yn={};ve(Yn,{identity:()=>nt});var Jo=0,Bu="identity",Xo=rt;function Iu(s){return He(Jo,Xo(s))}var nt={code:Jo,name:Bu,encode:Xo,digest:Iu};function Ue(s,e){if(s===e)return!0;if(s.byteLength!==e.byteLength)return!1;for(let t=0;t0&&!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.lengthnew DataView(s.buffer,s.byteOffset,s.byteLength),ze=(s,e)=>s<<32-e|s>>>e;var Up=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;rs().update(Cs(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function as(s=32){if(Ht&&typeof Ht.getRandomValues=="function")return Ht.getRandomValues(new Uint8Array(s));if(Ht&&typeof Ht.randomBytes=="function")return Ht.randomBytes(s);throw new Error("crypto.getRandomValues must be defined")}function Au(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,f=r?0:4;s.setUint32(e+c,o,r),s.setUint32(e+f,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=ar(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;on-o&&(this.process(r,0),o=0);for(let h=o;hu.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h>ei&lr)}:{h:Number(s>>ei&lr)|0,l:Number(s&lr)|0}}function ku(s,e=!1){let t=new Uint32Array(s.length),r=new Uint32Array(s.length);for(let n=0;nBigInt(s>>>0)<>>0),Mu=(s,e,t)=>s>>>t,Pu=(s,e,t)=>s<<32-t|e>>>t,Du=(s,e,t)=>s>>>t|e<<32-t,Cu=(s,e,t)=>s<<32-t|e>>>t,Nu=(s,e,t)=>s<<64-t|e>>>t-32,Ru=(s,e,t)=>s>>>t-32|e<<64-t,Lu=(s,e)=>e,Uu=(s,e)=>s,Fu=(s,e,t)=>s<>>32-t,Vu=(s,e,t)=>e<>>32-t,Hu=(s,e,t)=>e<>>64-t,Ou=(s,e,t)=>s<>>64-t;function zu(s,e,t,r){let n=(e>>>0)+(r>>>0);return{h:s+t+(n/2**32|0)|0,l:n|0}}var Gu=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),qu=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,Ku=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),Wu=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,$u=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),ju=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var Zu={fromBig:na,split:ku,toBig:Tu,shrSH:Mu,shrSL:Pu,rotrSH:Du,rotrSL:Cu,rotrBH:Nu,rotrBL:Ru,rotr32H:Lu,rotr32L:Uu,rotlSH:Fu,rotlSL:Vu,rotlBH:Hu,rotlBL:Ou,add:zu,add3L:Gu,add3H:qu,add4L:Ku,add4H:Wu,add5H:ju,add5L:$u},R=Zu;var[Ju,Xu]=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:f,El:u,Fh:h,Fl:l,Gh:d,Gl:m,Hh:p,Hl:g}=this;return[e,t,r,n,i,o,a,c,f,u,h,l,d,m,p,g]}set(e,t,r,n,i,o,a,c,f,u,h,l,d,m,p,g){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=f|0,this.El=u|0,this.Fh=h|0,this.Fl=l|0,this.Gh=d|0,this.Gl=m|0,this.Hh=p|0,this.Hl=g|0}process(e,t){for(let y=0;y<16;y++,t+=4)xt[y]=e.getUint32(t),Et[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){let I=xt[y-15]|0,v=Et[y-15]|0,B=R.rotrSH(I,v,1)^R.rotrSH(I,v,8)^R.shrSH(I,v,7),x=R.rotrSL(I,v,1)^R.rotrSL(I,v,8)^R.shrSL(I,v,7),_=xt[y-2]|0,k=Et[y-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(x,L,Et[y-7],Et[y-16]),se=R.add4H(U,B,z,xt[y-7],xt[y-16]);xt[y]=se|0,Et[y]=U|0}let{Ah:r,Al:n,Bh:i,Bl:o,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:l,Fh:d,Fl:m,Gh:p,Gl:g,Hh:b,Hl:S}=this;for(let y=0;y<80;y++){let I=R.rotrSH(h,l,14)^R.rotrSH(h,l,18)^R.rotrBH(h,l,41),v=R.rotrSL(h,l,14)^R.rotrSL(h,l,18)^R.rotrBL(h,l,41),B=h&d^~h&p,x=l&m^~l&g,_=R.add5L(S,v,x,Xu[y],Et[y]),k=R.add5H(_,b,I,B,Ju[y],xt[y]),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=p|0,S=g|0,p=d|0,g=m|0,d=h|0,m=l|0,{h,l}=R.add(f|0,u|0,k|0,z|0),f=a|0,u=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:f,l:u}=R.add(this.Dh|0,this.Dl|0,f|0,u|0),{h,l}=R.add(this.Eh|0,this.El|0,h|0,l|0),{h:d,l:m}=R.add(this.Fh|0,this.Fl|0,d|0,m|0),{h:p,l:g}=R.add(this.Gh|0,this.Gl|0,p|0,g|0),{h:b,l:S}=R.add(this.Hh|0,this.Hl|0,b|0,S|0),this.set(r,n,i,o,a,c,f,u,h,l,d,m,p,g,b,S)}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=cr(()=>new ti);var hr={};ve(hr,{aInRange:()=>Te,abool:()=>Ge,abytes:()=>ls,bitGet:()=>rh,bitLen:()=>oi,bitMask:()=>Rs,bitSet:()=>nh,bytesToHex:()=>ot,bytesToNumberBE:()=>at,bytesToNumberLE:()=>Bt,concatBytes:()=>ct,createHmacDrbg:()=>ai,ensureBytes:()=>ee,equalBytes:()=>th,hexToBytes:()=>zt,hexToNumber:()=>ii,inRange:()=>Ns,isBytes:()=>St,memoized:()=>qt,notImplemented:()=>oh,numberToBytesBE:()=>It,numberToBytesLE:()=>Gt,numberToHexUnpadded:()=>Ot,numberToVarBytesBE:()=>eh,utf8ToBytes:()=>sh,validateObject:()=>Ze});var ni=BigInt(0),ur=BigInt(1),Yu=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 Qu=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function ot(s){ls(s);let e="";for(let t=0;t=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 zt(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;ntypeof s=="bigint"&&ni<=s;function Ns(s,e,t){return si(s)&&si(e)&&si(t)&&e<=s&&sni;s>>=ur,e+=1);return e}function rh(s,e){return s>>BigInt(e)&ur}function nh(s,e,t){return s|(t?ur:ni)<(Yu<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=(...h)=>t(n,r,...h),c=(h=ri())=>{n=a(aa([0]),h),r=a(),h.length!==0&&(n=a(aa([1]),h),r=a())},f=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let h=0,l=[];for(;h{o(),c(h);let d;for(;!(d=l(f()));)c();return o(),d}}var ih={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 Ze(s,e,t={}){let r=(n,i,o)=>{let a=ih[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 oh=()=>{throw new Error("not implemented")};function qt(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),Kt=BigInt(2),ah=BigInt(3),ci=BigInt(4),ca=BigInt(5),la=BigInt(8),ch=BigInt(9),lh=BigInt(16);function W(s,e){let t=s%e;return t>=ne?t:e+t}function uh(s,e,t){if(t<=ne||e 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 fr(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 f=r/t,u=r%t,h=n-o*f,l=i-a*f;r=t,t=u,n=o,i=a,o=h,a=l}if(r!==Z)throw new Error("invert: does not exist");return W(n,e)}function hh(s){let e=(s-Z)/Kt,t,r,n;for(t=s-Z,r=0;t%Kt===ne;t/=Kt,r++);for(n=Kt;n(W(s,e)&Z)===Z,dh=["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=dh.reduce((r,n)=>(r[n]="function",r),e);return Ze(s,t)}function ph(s,e,t){if(t 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 gh(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=fh(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&&cc===ne,isOdd:c=>(c&Z)===Z,neg:c=>W(-c,s),eql:(c,f)=>c===f,sqr:c=>W(c*c,s),add:(c,f)=>W(c+f,s),sub:(c,f)=>W(c-f,s),mul:(c,f)=>W(c*f,s),pow:(c,f)=>ph(a,c,f),div:(c,f)=>W(c*fr(f,s),s),sqrN:c=>c*c,addN:(c,f)=>c+f,subN:(c,f)=>c-f,mulN:(c,f)=>c*f,inv:c=>fr(c,s),sqrt:r.sqrt||(c=>o(a,c)),invertBatch:c=>gh(a,c),cmov:(c,f,u)=>u?f:c,toBytes:c=>t?Gt(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||r1024)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?Gt(a,n):It(a,n)}var bh=BigInt(0),fi=BigInt(1),di=new WeakMap,da=new WeakMap;function dr(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>bh;)o&fi&&(a=a.add(c)),c=c.double(),o>>=fi;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=n(o),f=[],u=i,h=u;for(let l=0;l>=m,b>f&&(b-=d,a+=fi);let S=g,y=g+Math.abs(b)-1,I=p%2!==0,v=b<0;b===0?h=h.add(t(I,o[S])):u=u.add(t(v,o[y]))}return{p:u,f:h}},wNAFCached(i,o,a){let c=da.get(i)||1,f=di.get(i);return f||(f=this.precomputeWindow(i,c),c!==1&&di.set(i,a(f))),this.wNAF(c,f,o)},setWindowSize(i,o){r(o),da.set(i,o),di.delete(i)}}}function pr(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((u,h)=>{if(!e.isValid(u))throw new Error(`wrong scalar at index ${h}`)}),t.forEach((u,h)=>{if(!(u instanceof s))throw new Error(`wrong point at index ${h}`)});let n=oi(BigInt(t.length)),i=n>12?n-3:n>4?n-2:n?2:1,o=(1<=0;u-=i){a.fill(s.ZERO);for(let l=0;l>BigInt(u)&BigInt(o));a[m]=a[m].add(t[l])}let h=s.ZERO;for(let l=a.length-1,d=s.ZERO;l>0;l--)d=d.add(a[l]),h=h.add(d);if(f=f.add(h),u!==0)for(let l=0;l{try{return{isValid:!0,value:t.sqrt(E*t.inv(w))}}catch{return{isValid:!1,value:qe}}}),d=e.adjustScalarBytes||(E=>E),m=e.domain||((E,w,A)=>{if(Ge("phflag",A),w.length||A)throw new Error("Contexts/pre-hash are not supported");return E});function p(E,w){Te("coordinate "+E,w,qe,f)}function g(E){if(!(E instanceof y))throw new Error("ExtendedPoint expected")}let b=qt((E,w)=>{let{ex:A,ey:D,ez:C}=E,N=E.is0();w==null&&(w=N?yh:t.inv(C));let F=u(A*w),O=u(D*w),V=u(C*w);if(N)return{x:qe,y:Me};if(V!==Me)throw new Error("invZ was invalid");return{x:F,y:O}}),S=qt(E=>{let{a:w,d:A}=e;if(E.is0())throw new Error("bad point: ZERO");let{ex:D,ey:C,ez:N,et:F}=E,O=u(D*D),V=u(C*C),K=u(N*N),j=u(K*K),oe=u(O*w),ae=u(K*u(oe+V)),ue=u(j+u(A*u(O*V)));if(ae!==ue)throw new Error("bad point: equation left != right (1)");let we=u(D*C),re=u(N*F);if(we!==re)throw new Error("bad point: equation left != right (2)");return!0});class y{constructor(w,A,D,C){this.ex=w,this.ey=A,this.ez=D,this.et=C,p("x",w),p("y",A),p("z",D),p("t",C),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(w){if(w instanceof y)throw new Error("extended point not allowed");let{x:A,y:D}=w||{};return p("x",A),p("y",D),new y(A,D,Me,u(A*D))}static normalizeZ(w){let A=t.invertBatch(w.map(D=>D.ez));return w.map((D,C)=>D.toAffine(A[C])).map(y.fromAffine)}static msm(w,A){return pr(y,h,w,A)}_setWindowSize(w){B.setWindowSize(this,w)}assertValidity(){S(this)}equals(w){g(w);let{ex:A,ey:D,ez:C}=this,{ex:N,ey:F,ez:O}=w,V=u(A*O),K=u(N*C),j=u(D*O),oe=u(F*C);return V===K&&j===oe}is0(){return this.equals(y.ZERO)}negate(){return new y(u(-this.ex),this.ey,this.ez,u(-this.et))}double(){let{a:w}=e,{ex:A,ey:D,ez:C}=this,N=u(A*A),F=u(D*D),O=u(gr*u(C*C)),V=u(w*N),K=A+D,j=u(u(K*K)-N-F),oe=V+F,ae=oe-O,ue=V-F,we=u(j*ae),re=u(oe*ue),Ae=u(j*ue),st=u(ae*oe);return new y(we,re,st,Ae)}add(w){g(w);let{a:A,d:D}=e,{ex:C,ey:N,ez:F,et:O}=this,{ex:V,ey:K,ez:j,et:oe}=w;if(A===BigInt(-1)){let Bo=u((N-C)*(K+V)),Io=u((N+C)*(K-V)),zn=u(Io-Bo);if(zn===qe)return this.double();let _o=u(F*gr*oe),Ao=u(O*gr*j),ko=Ao+_o,To=Io+Bo,Mo=Ao-_o,Pl=u(ko*zn),Dl=u(To*Mo),Cl=u(ko*Mo),Nl=u(zn*To);return new y(Pl,Dl,Nl,Cl)}let ae=u(C*V),ue=u(N*K),we=u(O*D*oe),re=u(F*j),Ae=u((C+N)*(V+K)-ae-ue),st=re-we,ks=re+we,Ts=u(ue-A*ae),Al=u(Ae*st),kl=u(ks*Ts),Tl=u(Ae*Ts),Ml=u(st*ks);return new y(Al,kl,Ml,Tl)}subtract(w){return this.add(w.negate())}wNAF(w){return B.wNAFCached(this,w,y.normalizeZ)}multiply(w){let A=w;Te("scalar",A,Me,r);let{p:D,f:C}=this.wNAF(A);return y.normalizeZ([D,C])[0]}multiplyUnsafe(w){let A=w;return Te("scalar",A,qe,r),A===qe?v:this.equals(v)||A===Me?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(w){return b(this,w)}clearCofactor(){let{h:w}=e;return w===Me?this:this.multiplyUnsafe(w)}static fromHex(w,A=!1){let{d:D,a:C}=e,N=t.BYTES;w=ee("pointHex",w,N),Ge("zip215",A);let F=w.slice(),O=w[N-1];F[N-1]=O&-129;let V=Bt(F),K=A?f:t.ORDER;Te("pointHex.y",V,qe,K);let j=u(V*V),oe=u(j-Me),ae=u(D*j-C),{isValid:ue,value:we}=l(oe,ae);if(!ue)throw new Error("Point.fromHex: invalid y coordinate");let re=(we&Me)===Me,Ae=(O&128)!==0;if(!A&&we===qe&&Ae)throw new Error("Point.fromHex: x=0 and x_0=1");return Ae!==re&&(we=u(-we)),y.fromAffine({x:we,y:V})}static fromPrivateKey(w){return k(w).point}toRawBytes(){let{x:w,y:A}=this.toAffine(),D=Gt(A,t.BYTES);return D[D.length-1]|=w&Me?128:0,D}toHex(){return ot(this.toRawBytes())}}y.BASE=new y(e.Gx,e.Gy,Me,u(e.Gx*e.Gy)),y.ZERO=new y(qe,Me,Me,qe);let{BASE:I,ZERO:v}=y,B=dr(y,a*8);function x(E){return W(E,r)}function _(E){return x(Bt(E))}function k(E){let w=a;E=ee("private key",E,w);let A=ee("hashed private key",i(E),2*w),D=d(A.slice(0,w)),C=A.slice(w,2*w),N=_(D),F=I.multiply(N),O=F.toRawBytes();return{head:D,prefix:C,scalar:N,point:F,pointBytes:O}}function z(E){return k(E).pointBytes}function L(E=new Uint8Array,...w){let A=ct(...w);return _(i(m(A,ee("context",E),!!n)))}function U(E,w,A={}){E=ee("message",E),n&&(E=n(E));let{prefix:D,scalar:C,pointBytes:N}=k(w),F=L(A.context,D,E),O=I.multiply(F).toRawBytes(),V=L(A.context,O,N,E),K=x(F+V*C);Te("signature.s",K,qe,r);let j=ct(O,Gt(K,t.BYTES));return ee("result",j,a*2)}let se=wh;function T(E,w,A,D=se){let{context:C,zip215:N}=D,F=t.BYTES;E=ee("signature",E,2*F),w=ee("message",w),N!==void 0&&Ge("zip215",N),n&&(w=n(w));let O=Bt(E.slice(F,2*F)),V,K,j;try{V=y.fromHex(A,N),K=y.fromHex(E.slice(0,F),N),j=I.multiplyUnsafe(O)}catch{return!1}if(!N&&V.isSmallOrder())return!1;let oe=L(C,K.toRawBytes(),V.toRawBytes(),w);return K.add(V.multiplyUnsafe(oe)).subtract(j).clearCofactor().equals(y.ZERO)}return I._setWindowSize(8),{CURVE:e,getPublicKey:z,sign:U,verify:T,ExtendedPoint:y,utils:{getExtendedPublicKey:k,randomPrivateKey:()=>o(t.BYTES),precompute(E=8,w=y.BASE){return w._setWindowSize(E),w.multiply(BigInt(3)),w}}}}var pi=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),ga=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),ag=BigInt(0),xh=BigInt(1),ma=BigInt(2),cg=BigInt(3),Eh=BigInt(5),Sh=BigInt(8);function Bh(s){let e=BigInt(10),t=BigInt(20),r=BigInt(40),n=BigInt(80),i=pi,a=s*s%i*s%i,c=J(a,ma,i)*a%i,f=J(c,xh,i)*s%i,u=J(f,Eh,i)*f%i,h=J(u,e,i)*u%i,l=J(h,t,i)*h%i,d=J(l,r,i)*l%i,m=J(d,n,i)*d%i,p=J(m,n,i)*d%i,g=J(p,e,i)*u%i;return{pow_p_5_8:J(g,ma,i)*s%i,b2:a}}function Ih(s){return s[0]&=248,s[31]&=127,s[31]|=64,s}function _h(s,e){let t=pi,r=W(e*e*e,t),n=W(r*r*e,t),i=Bh(s*n).pow_p_5_8,o=W(s*r*i,t),a=W(e*o*o,t),c=o,f=W(o*ga,t),u=a===s,h=a===W(-s,t),l=a===W(-s*ga,t);return u&&(o=c),(h||l)&&(o=f),ua(o,t)&&(o=W(-o,t)),{isValid:u||h,value:o}}var Ah=_t(pi,void 0,!0),kh={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Ah,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Sh,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:ia,randomBytes:as,adjustScalarBytes:Ih,uvRatio:_h},ba=pa(kh);var mr=32;function ya(s,e,t){return ba.verify(e,t instanceof Uint8Array?t:t.subarray(),s)}var br=class{type="Ed25519";raw;constructor(e){this.raw=gi(e,mr)}toMultihash(){return nt.digest(At(this))}toCID(){return ke.createV1(114,this.toMultihash())}toString(){return te.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ue(this.raw,e.raw)}verify(e,t){return ya(this.raw,t,e)}};function mi(s){return s=gi(s,mr),new br(s)}function gi(s,e){if(s=Uint8Array.from(s??[]),s.length!==e)throw new ce(`Key must be a Uint8Array of length ${e}, got ${s.length}`);return s}function lt(s=0){return new Uint8Array(s)}function de(s=0){return new Uint8Array(s)}var Mh=Math.pow(2,7),Ph=Math.pow(2,14),Dh=Math.pow(2,21),bi=Math.pow(2,28),yi=Math.pow(2,35),wi=Math.pow(2,42),vi=Math.pow(2,49),G=128,pe=127;function Ee(s){if(sNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function xi(s,e,t=0){switch(Ee(s)){case 8:e[t++]=s&255|G,s/=128;case 7:e[t++]=s&255|G,s/=128;case 6:e[t++]=s&255|G,s/=128;case 5:e[t++]=s&255|G,s/=128;case 4:e[t++]=s&255|G,s>>>=7;case 3:e[t++]=s&255|G,s>>>=7;case 2:e[t++]=s&255|G,s>>>=7;case 1:{e[t++]=s&255,s>>>=7;break}default:throw new Error("unreachable")}return e}function Ch(s,e,t=0){switch(Ee(s)){case 8:e.set(t++,s&255|G),s/=128;case 7:e.set(t++,s&255|G),s/=128;case 6:e.set(t++,s&255|G),s/=128;case 5:e.set(t++,s&255|G),s/=128;case 4:e.set(t++,s&255|G),s>>>=7;case 3:e.set(t++,s&255|G),s>>>=7;case 2:e.set(t++,s&255|G),s>>>=7;case 1:{e.set(t++,s&255),s>>>=7;break}default:throw new Error("unreachable")}return e}function Ei(s,e){let t=s[e],r=0;if(r+=t&pe,t>>31>0){let t=~this.lo+1>>>0,r=~this.hi>>>0;return t===0&&(r=r+1>>>0),-(t+r*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,r=~this.hi>>>0;return t===0&&(r=r+1>>>0),-(BigInt(t)+(BigInt(r)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return r===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}static fromBigInt(e){if(e===0n)return Wt;if(eLh)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let r=e>>32n,n=e-(r<<32n);return t&&(r=~r|0n,n=~n|0n,++n>Ba&&(n=0n,++r>Ba&&(r=0n))),new s(Number(n),Number(r))}static fromNumber(e){if(e===0)return Wt;let t=e<0;t&&(e=-e);let r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new s(r,n)}static from(e){return typeof e=="number"?s.fromNumber(e):typeof e=="bigint"?s.fromBigInt(e):typeof e=="string"?s.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new s(e.low>>>0,e.high>>>0):Wt}},Wt=new Re(0,0);Wt.toBigInt=function(){return 0n};Wt.zzEncode=Wt.zzDecode=function(){return this};Wt.length=function(){return 1};var Ba=4294967296n;function Ia(s){let e=0,t=0;for(let r=0;r191&&a<224?i[o++]=(a&31)<<6|s[e++]&63:a>239&&a<365?(a=((a&7)<<18|(s[e++]&63)<<12|(s[e++]&63)<<6|s[e++]&63)-65536,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(s[e++]&63)<<6|s[e++]&63,o>8191&&((n??(n=[])).push(String.fromCharCode.apply(String,i)),o=0);return n!=null?(o>0&&n.push(String.fromCharCode.apply(String,i.slice(0,o))),n.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function Ai(s,e,t){let r=t,n,i;for(let o=0;o>6|192,e[t++]=n&63|128):(n&64512)===55296&&((i=s.charCodeAt(o+1))&64512)===56320?(n=65536+((n&1023)<<10)+(i&1023),++o,e[t++]=n>>18|240,e[t++]=n>>12&63|128,e[t++]=n>>6&63|128,e[t++]=n&63|128):(e[t++]=n>>12|224,e[t++]=n>>6&63|128,e[t++]=n&63|128);return t-r}function Ke(s,e){return RangeError(`index out of range: ${s.pos} + ${e??1} > ${s.len}`)}function yr(s,e){return(s[e-4]|s[e-3]<<8|s[e-2]<<16|s[e-1]<<24)>>>0}var ki=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Ke(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ke(this,4);return yr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ke(this,4);return yr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ke(this,4);let e=xa(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ke(this,4);let e=Sa(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw Ke(this,e);return this.pos+=e,t===r?new Uint8Array(0):this.buf.subarray(t,r)}string(){let e=this.bytes();return _a(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ke(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ke(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Re(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Ke(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Ke(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ke(this,8);let e=yr(this.buf,this.pos+=4),t=yr(this.buf,this.pos+=4);return new Re(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Ei(this.buf,this.pos);return this.pos+=Ee(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ti(s){return new ki(s instanceof Uint8Array?s:s.subarray())}function Pe(s,e,t){let r=Ti(s);return e.decode(r,void 0,t)}var Mi={};ve(Mi,{base10:()=>Uh});var Uh=vt({prefix:"9",name:"base10",alphabet:"0123456789"});var Pi={};ve(Pi,{base16:()=>Fh,base16upper:()=>Vh});var Fh=Q({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Vh=Q({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Di={};ve(Di,{base2:()=>Hh});var Hh=Q({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ci={};ve(Ci,{base256emoji:()=>Kh});var ka=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Oh=ka.reduce((s,e,t)=>(s[t]=e,s),[]),zh=ka.reduce((s,e,t)=>(s[e.codePointAt(0)]=t,s),[]);function Gh(s){return s.reduce((e,t)=>(e+=Oh[t],e),"")}function qh(s){let e=[];for(let t of s){let r=zh[t.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(r)}return new Uint8Array(e)}var Kh=es({prefix:"\u{1F680}",name:"base256emoji",encode:Gh,decode:qh});var Ni={};ve(Ni,{base36:()=>Wh,base36upper:()=>$h});var Wh=vt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),$h=vt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ri={};ve(Ri,{base64:()=>jh,base64pad:()=>Zh,base64url:()=>Jh,base64urlpad:()=>Xh});var jh=Q({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zh=Q({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Jh=Q({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Xh=Q({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Li={};ve(Li,{base8:()=>Yh});var Yh=Q({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ui={};ve(Ui,{identity:()=>Qh});var Qh=es({prefix:"\0",name:"identity",encode:s=>Vo(s),decode:s=>Fo(s)});var Kg=new TextEncoder,Wg=new TextDecoder;var Hi={};ve(Hi,{sha256:()=>Tt,sha512:()=>sf});function Vi({name:s,code:e,encode:t}){return new Fi(s,e,t)}var Fi=class{name;code;encode;constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?He(this.code,t):t.then(r=>He(this.code,r))}else throw Error("Unknown type, must be binary type")}};function Ma(s){return async e=>new Uint8Array(await crypto.subtle.digest(s,e))}var Tt=Vi({name:"sha2-256",code:18,encode:Ma("SHA-256")}),sf=Vi({name:"sha2-512",code:19,encode:Ma("SHA-512")});var Us={...Ui,...Di,...Li,...Mi,...Pi,...Zn,...Ni,...jn,...Ri,...Ci},nm={...Hi,...Yn};function Da(s,e,t,r){return{name:s,prefix:e,encoder:{name:s,prefix:e,encode:t},decoder:{decode:r}}}var Pa=Da("utf8","u",s=>"u"+new TextDecoder("utf8").decode(s),s=>new TextEncoder().encode(s.substring(1))),Oi=Da("ascii","a",s=>{let e="a";for(let t=0;t{s=s.substring(1);let e=de(s.length);for(let t=0;t>>1,r,n=e;return function(o){if(o<1||o>t)return de(o);n+o>e&&(r=de(e),n=0);let a=r.subarray(n,n+=o);return n&7&&(n=(n|7)+1),a}}var $t=class{fn;len;next;val;constructor(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}};function Gi(){}var Ki=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},nf=zi();function of(s){return globalThis.Buffer!=null?de(s):nf(s)}var Vs=class{len;head;tail;states;constructor(){this.len=0,this.head=new $t(Gi,0,0),this.tail=this.head,this.states=null}_push(e,t,r){return this.tail=this.tail.next=new $t(e,t,r),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Wi((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(vr,10,Re.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Re.fromBigInt(e);return this._push(vr,t.length(),t)}uint64Number(e){return this._push(xi,Ee(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=Re.fromBigInt(e).zzEncode();return this._push(vr,t.length(),t)}sint64Number(e){let t=Re.fromNumber(e).zzEncode();return this._push(vr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(qi,1,e?1:0)}fixed32(e){return this._push(Fs,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Re.fromBigInt(e);return this._push(Fs,4,t.lo)._push(Fs,4,t.hi)}fixed64Number(e){let t=Re.fromNumber(e);return this._push(Fs,4,t.lo)._push(Fs,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(va,4,e)}double(e){return this._push(Ea,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(qi,1,0):this.uint32(t)._push(cf,t,e)}string(e){let t=Ia(e);return t!==0?this.uint32(t)._push(Ai,t,e):this._push(qi,1,0)}fork(){return this.states=new Ki(this),this.head=this.tail=new $t(Gi,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new $t(Gi,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r!==0&&(this.tail.next=e.next,this.tail=t,this.len+=r),this}finish(){let e=this.head.next,t=of(this.len),r=0;for(;e!=null;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t}};function qi(s,e,t){e[t]=s&255}function af(s,e,t){for(;s>127;)e[t++]=s&127|128,s>>>=7;e[t]=s}var Wi=class extends $t{next;constructor(e,t){super(af,e,t),this.next=void 0}};function vr(s,e,t){for(;s.hi!==0;)e[t++]=s.lo&127|128,s.lo=(s.lo>>>7|s.hi<<25)>>>0,s.hi>>>=7;for(;s.lo>127;)e[t++]=s.lo&127|128,s.lo=s.lo>>>7;e[t++]=s.lo}function Fs(s,e,t){e[t]=s&255,e[t+1]=s>>>8&255,e[t+2]=s>>>16&255,e[t+3]=s>>>24}function cf(s,e,t){e.set(s,t)}globalThis.Buffer!=null&&(Vs.prototype.bytes=function(s){let e=s.length>>>0;return this.uint32(e),e>0&&this._push(lf,e,s),this},Vs.prototype.string=function(s){let e=globalThis.Buffer.byteLength(s);return this.uint32(e),e>0&&this._push(uf,e,s),this});function lf(s,e,t){e.set(s,t)}function uf(s,e,t){s.length<40?Ai(s,e,t):e.utf8Write!=null?e.utf8Write(s,t):e.set(X(s),t)}function $i(){return new Vs}function De(s,e){let t=$i();return e.encode(s,t,{lengthDelimited:!1}),t.finish()}var hs;(function(s){s[s.VARINT=0]="VARINT",s[s.BIT64=1]="BIT64",s[s.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",s[s.START_GROUP=3]="START_GROUP",s[s.END_GROUP=4]="END_GROUP",s[s.BIT32=5]="BIT32"})(hs||(hs={}));function xr(s,e,t,r){return{name:s,type:e,encode:t,decode:r}}function ji(s){function e(n){if(s[n.toString()]==null)throw new Error("Invalid enum value");return s[n]}let t=function(i,o){let a=e(i);o.int32(a)},r=function(i){let o=i.int32();return e(o)};return xr("enum",hs.VARINT,t,r)}function Ce(s,e){return xr("message",hs.LENGTH_DELIMITED,s,e)}var Fe=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var ie;(function(s){s.RSA="RSA",s.Ed25519="Ed25519",s.secp256k1="secp256k1"})(ie||(ie={}));var Zi;(function(s){s[s.RSA=0]="RSA",s[s.Ed25519=1]="Ed25519",s[s.secp256k1=2]="secp256k1"})(Zi||(Zi={}));(function(s){s.codec=()=>ji(Zi)})(ie||(ie={}));var Je;(function(s){let e;s.codec=()=>(e==null&&(e=Ce((t,r,n={})=>{n.lengthDelimited!==!1&&r.fork(),t.Type!=null&&(r.uint32(8),ie.codec().encode(t.Type,r)),t.Data!=null&&(r.uint32(18),r.bytes(t.Data)),n.lengthDelimited!==!1&&r.ldelim()},(t,r,n={})=>{let i={},o=r==null?t.len:t.pos+r;for(;t.pos>>3){case 1:{i.Type=ie.codec().decode(t);break}case 2:{i.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),s.encode=t=>De(t,s.codec()),s.decode=(t,r)=>Pe(t,s.codec(),r)})(Je||(Je={}));var Ji;(function(s){let e;s.codec=()=>(e==null&&(e=Ce((t,r,n={})=>{n.lengthDelimited!==!1&&r.fork(),t.Type!=null&&(r.uint32(8),ie.codec().encode(t.Type,r)),t.Data!=null&&(r.uint32(18),r.bytes(t.Data)),n.lengthDelimited!==!1&&r.ldelim()},(t,r,n={})=>{let i={},o=r==null?t.len:t.pos+r;for(;t.pos>>3){case 1:{i.Type=ie.codec().decode(t);break}case 2:{i.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),s.encode=t=>De(t,s.codec()),s.decode=(t,r)=>Pe(t,s.codec(),r)})(Ji||(Ji={}));var Zs={};ve(Zs,{MAX_RSA_KEY_SIZE:()=>pn,generateRSAKeyPair:()=>Tc,jwkToJWKKeyPair:()=>Mc,jwkToPkcs1:()=>_f,jwkToPkix:()=>io,jwkToRSAPrivateKey:()=>kc,pkcs1ToJwk:()=>Ic,pkcs1ToRSAPrivateKey:()=>Ac,pkixToJwk:()=>_c,pkixToRSAPublicKey:()=>oo});var hf=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Mt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Pt=new Uint32Array(64),Xi=class extends cs{constructor(){super(64,32,8,!1),this.A=Mt[0]|0,this.B=Mt[1]|0,this.C=Mt[2]|0,this.D=Mt[3]|0,this.E=Mt[4]|0,this.F=Mt[5]|0,this.G=Mt[6]|0,this.H=Mt[7]|0}get(){let{A:e,B:t,C:r,D:n,E:i,F:o,G:a,H:c}=this;return[e,t,r,n,i,o,a,c]}set(e,t,r,n,i,o,a,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let h=0;h<16;h++,t+=4)Pt[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){let l=Pt[h-15],d=Pt[h-2],m=ze(l,7)^ze(l,18)^l>>>3,p=ze(d,17)^ze(d,19)^d>>>10;Pt[h]=p+Pt[h-7]+m+Pt[h-16]|0}let{A:r,B:n,C:i,D:o,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let l=ze(a,6)^ze(a,11)^ze(a,25),d=u+l+sa(a,c,f)+hf[h]+Pt[h]|0,p=(ze(r,2)^ze(r,13)^ze(r,22))+ra(r,n,i)|0;u=f,f=c,c=a,a=o+d|0,o=i,i=n,n=r,r=d+p|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(r,n,i,o,a,c,f,u)}roundClean(){Pt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var fs=cr(()=>new Xi);var H=Co(Na());function jt(s,e){let t=0;if(s.length===1)return s[0];for(let r=s.length-1;r>=0;r--)t+=s[s.length-1-r]*Math.pow(2,e*r);return t}function Dt(s,e,t=-1){let r=t,n=s,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(s=0;u--){let h=Math.pow(2,u*e);f[i-u-1]=Math.floor(n/h),n-=f[i-u-1]*h}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function Br(...s){let e=0,t=0;for(let i of s)e+=i.length;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(i,t),t+=i.length;return n}function Qi(){let s=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=s[0]===255&&s[1]&128,c=s[0]===0&&(s[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function eo(s){let e=0,t=0;for(let n=0;n=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===u){u+=255;let l=new Uint8Array(u);for(let d=0;d8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=n.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=jt(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){let n=Dt(this.length,8);if(n.byteLength>127)return this.error="Too big length",We;if(t=new ArrayBuffer(n.byteLength+1),e)return t;let i=new Uint8Array(n);r=new Uint8Array(t),r[0]=n.byteLength|128;for(let o=0;o=37&&n.idBlock.isHexOnly===!1)return n.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:n};switch(n.idBlock.tagNumber){case 0:if(n.idBlock.isConstructed&&n.lenBlock.length>0)return n.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:n};c=M.EndOfContent;break;case 1:c=M.Boolean;break;case 2:c=M.Integer;break;case 3:c=M.BitString;break;case 4:c=M.OctetString;break;case 5:c=M.Null;break;case 6:c=M.ObjectIdentifier;break;case 10:c=M.Enumerated;break;case 12:c=M.Utf8String;break;case 13:c=M.RelativeObjectIdentifier;break;case 14:c=M.TIME;break;case 15:return n.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:n};case 16:c=M.Sequence;break;case 17:c=M.Set;break;case 18:c=M.NumericString;break;case 19:c=M.PrintableString;break;case 20:c=M.TeletexString;break;case 21:c=M.VideotexString;break;case 22:c=M.IA5String;break;case 23:c=M.UTCTime;break;case 24:c=M.GeneralizedTime;break;case 25:c=M.GraphicString;break;case 26:c=M.VisibleString;break;case 27:c=M.GeneralString;break;case 28:c=M.UniversalString;break;case 29:c=M.CharacterString;break;case 30:c=M.BmpString;break;case 31:c=M.DATE;break;case 32:c=M.TimeOfDay;break;case 33:c=M.DateTime;break;case 34:c=M.Duration;break;default:{let f=n.idBlock.isConstructed?new M.Constructed:new M.Primitive;f.idBlock=n.idBlock,f.lenBlock=n.lenBlock,f.warnings=n.warnings,n=f}}break;case 2:case 3:case 4:default:c=n.idBlock.isConstructed?M.Constructed:M.Primitive}return n=vf(n,c),a=n.fromBER(s,e,n.lenBlock.isIndefiniteForm?t:n.lenBlock.length),n.valueBeforeDecodeView=s.subarray(r,r+n.blockLength),{offset:a,result:n}}function so(s){if(!s.byteLength){let e=new he({},me);return e.error="Input buffer has zero length",{offset:-1,result:e}}return hn(H.BufferSourceConverter.toUint8Array(s).slice(),0,s.byteLength)}function xf(s,e){return s?1:e}var Xe=class extends me{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,r){let n=H.BufferSourceConverter.toUint8Array(e);if(!pt(this,n,t,r))return-1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;xf(this.isIndefiniteForm,r)>0;){let o=hn(n,i,r);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,r-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===zs)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===zs?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let r=t||new Os;for(let n=0;n` ${n}`).join(` - `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} : - ${e.join(` --`)}`:`${t} :`}};Ac=Vt;k.Constructed=Ac;Vt.NAME="CONSTRUCTED";var cn=class extends _e{fromBER(e,t,r){return t}toBER(e){return je}};cn.override="EndOfContentValueBlock";var kc,ln=class extends pe{constructor(e={}){super(e,cn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};kc=ln;k.EndOfContent=kc;ln.NAME=nr;var Tc,Ot=class extends pe{constructor(e={}){super(e,_e),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){let r=new ArrayBuffer(2);if(!e){let n=new Uint8Array(r);n[0]=5,n[1]=0}return t&&t.write(r),r}onAsciiEncoding(){return`${this.constructor.NAME}`}};Tc=Ot;k.Null=Tc;Ot.NAME="NULL";var un=class extends _t(_e){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=H.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,r){let n=H.BufferSourceConverter.toUint8Array(e);return Et(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,lo.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};un.NAME="BooleanValueBlock";var Pc,hn=class extends pe{constructor(e={}){super(e,un),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Pc=hn;k.Boolean=Pc;hn.NAME="BOOLEAN";var fn=class extends _t(tt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=tt.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let i=0;i0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return n}let i=H.BufferSourceConverter.toUint8Array(e);if(!Et(this,i,t,r))return-1;let o=i.subarray(t,t+r);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Fn(a,0,a.byteLength);c.offset!==-1&&c.offset===r-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+r}toBER(e,t){if(this.isConstructed)return tt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return je;let r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};dn.NAME="BitStringValueBlock";var Mc,Ns=class extends pe{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},dn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Vt.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let n of t)e.push(n.toString(2).padStart(8,"0"));let r=e.join("");return`${this.constructor.NAME} : ${r.substring(0,r.length-this.valueBlock.unusedBits)}`}}};Mc=Ns;k.BitString=Mc;Ns.NAME=Bc;var Dc;function ad(s,e){let t=new Uint8Array([0]),r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,f=0,l=c=0;h--,u++){switch(!0){case u=i.length:i=en(new Uint8Array([f%10]),i);break;default:i[o-u]=f%10}}return t[0]>0&&(i=en(t,i)),i}function Ec(s){if(s>=sr.length)for(let e=sr.length;e<=s;e++){let t=new Uint8Array([0]),r=sr[e-1].slice(0);for(let n=r.length-1;n>=0;n--){let i=new Uint8Array([(r[n]<<1)+t[0]]);t[0]=i[0]/10,r[n]=i[0]%10}t[0]>0&&(r=en(t,r)),sr.push(r)}return sr[s]}function cd(s,e){let t=0,r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,f,l=0;for(let u=c;u>=0;u--,l++)switch(f=i[o-l]-a[c-l]-t,!0){case f<0:t=1,i[o-l]=f+10;break;default:t=0,i[o-l]=f}if(t>0)for(let u=o-c+1;u>=0;u--,l++)if(f=i[o-l]-t,f<0)t=1,i[o-l]=f+10;else{t=0,i[o-l]=f;break}return i.slice()}var ir=class extends _t(_e){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=lo.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(wc(e))}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){let i=this.fromBER(e,t,r);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):n!==0&&o.length1&&(n=o.length+1),this.valueHexView=o.subarray(n-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let r=new Uint8Array(this.valueHexView.length+1);r[0]=0,r.set(t,1),this.valueHexView=r}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,r){let n=super.fromBER(e,t,r);return n===-1||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),r=0,n,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){n=i[c];for(let f=0;f<8;f++){if((n&1)===1)switch(r){case e:t=cd(Ec(r),t),o="-";break;default:t=ad(t,Ec(r))}r++,n>>=1}}for(let c=0;c0;){let i=new or;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i)}return n}toBER(e){let t=[];for(let r=0;rNumber.MAX_SAFE_INTEGER){tn();let a=BigInt(n);o.valueBigInt=a}else if(o.valueDec=parseInt(n,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(r!==-1)}toString(){let e="",t=!1;for(let r=0;r0;){let i=new ar;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i)}return n}toBER(e,t){let r=[];for(let n=0;n4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)r[n*4+c+a]=o[c]}this.valueBlock.value=e}};Bn.NAME="UniversalStringValueBlock";var Gc,Sn=class extends Bn{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Gc=Sn;k.UniversalString=Gc;Sn.NAME="UniversalString";var Kc,In=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Kc=In;k.NumericString=Kc;In.NAME="NumericString";var zc,An=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};zc=An;k.PrintableString=zc;An.NAME="PrintableString";var qc,kn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};qc=kn;k.TeletexString=qc;kn.NAME="TeletexString";var Wc,Tn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Wc=Tn;k.VideotexString=Wc;Tn.NAME="VideotexString";var $c,Pn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};$c=Pn;k.IA5String=$c;Pn.NAME="IA5String";var jc,Rn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};jc=Rn;k.GraphicString=jc;Rn.NAME="GraphicString";var Zc,cr=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Zc=cr;k.VisibleString=Zc;cr.NAME="VisibleString";var Yc,Mn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Yc=Mn;k.GeneralString=Yc;Mn.NAME="GeneralString";var Xc,Dn=class extends Pe{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Xc=Dn;k.CharacterString=Xc;Dn.NAME="CharacterString";var Jc,lr=class extends cr{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let n=0;n=50?this.year=1900+n:this.year=2e3+n,this.month=parseInt(r[2],10),this.day=parseInt(r[3],10),this.hour=parseInt(r[4],10),this.minute=parseInt(r[5],10),this.second=parseInt(r[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=Ne(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=Ne(this.month,2),t[2]=Ne(this.day,2),t[3]=Ne(this.hour,2),t[4]=Ne(this.minute,2),t[5]=Ne(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Jc=lr;k.UTCTime=Jc;lr.NAME="UTCTime";var Qc,Nn=class extends lr{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,r="",n="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")r=e.substring(0,e.length-1),t=!0;else{let u=new Number(e[e.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");r=e}if(t){if(r.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(r.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,h=r.indexOf("+"),p="";if(h===-1&&(h=r.indexOf("-"),u=-1),h!==-1){if(p=r.substring(h+1),r=r.substring(0,h),p.length!==2&&p.length!==4)throw new Error("Wrong input string for conversion");let g=parseInt(p.substring(0,2),10);if(isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*g,p.length===4){if(g=parseInt(p.substring(2,4),10),isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");c=u*g}}}let f=r.indexOf(".");if(f===-1&&(f=r.indexOf(",")),f!==-1){let u=new Number(`0${r.substring(f)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),n=r.substring(0,f)}else n=r;switch(!0){case n.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case n.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case n.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case n.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let l=o.exec(n);if(l===null)throw new Error("Wrong input string for conversion");for(let u=1;u0&&(e=`0${e}`);let t=e.length/2,r=new Uint8Array(t),n=0,i=0;for(;n0&&(r=`0${r}`),e.push(r)}),BigInt("0x"+e.join(""))}var pd=16,fo=32,po=1e4;async function gd(s,e){let t=Te.get(),n=new he({value:[new oe({value:0}),new he({value:[new $e({value:"1.2.840.113549.1.1.1"}),new Ot]}),new vt({valueHex:s.marshal()})]}).toBER(),i=new Uint8Array(n,0,n.byteLength),o=et(pd),a=await ao(As,e,o,{c:po,dkLen:fo}),c=et(16),f=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),l=await t.subtle.encrypt({name:"AES-CBC",iv:c},f,i),u=new he({value:[new vt({valueHex:o}),new oe({value:po}),new oe({value:fo}),new he({value:[new $e({value:"1.2.840.113549.2.11"}),new Ot]})]}),h=new he({value:[new $e({value:"1.2.840.113549.1.5.13"}),new he({value:[new he({value:[new $e({value:"1.2.840.113549.1.5.12"}),u]}),new he({value:[new $e({value:"2.16.840.1.101.3.4.1.42"}),new vt({valueHex:c})]})]})]}),g=new he({value:[h,new vt({valueHex:l})]}).toBER(),d=new Uint8Array(g,0,g.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...W(d,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(` --`)}async function md(s,e){let t=Te.get(),r;if(s.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let n=Z(s.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ls(n),{iv:o,salt:a,iterations:c,keySize:f,cipherText:l}=bd(i),u=await ao(As,e,a,{c,dkLen:f}),h=await t.subtle.importKey("raw",u,"AES-CBC",!1,["decrypt"]),p=ur(await t.subtle.decrypt({name:"AES-CBC",iv:o},h,l)),{result:g}=Ls(p);r=il(g)}else if(s.includes("-----BEGIN PRIVATE KEY-----")){let n=Z(s.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ls(n);r=il(i)}else throw new T("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return go(r)}function bd(s){let e=s.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new T("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let r=e.valueBlock.value[1].valueBlock.value[0];if(r.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new T("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=r.valueBlock.value[1],o=ur(i.valueBlock.value[0].getValue()),a=po,c=fo;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new T("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let f=e.valueBlock.value[1].valueBlock.value[1],l=f.valueBlock.value[0].toString();if(l!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(l!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new T("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let u=ur(f.valueBlock.value[1].getValue());return{cipherText:ur(s.valueBlock.value[1].getValue()),salt:o,iterations:a,keySize:c,iv:u}}function il(s){return ur(s.valueBlock.value[2].getValue())}function ur(s){return new Uint8Array(s,0,s.byteLength)}async function ol(s){let e=await Te.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:s,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await ll(e);return{privateKey:t[0],publicKey:t[1]}}async function mo(s){let t=[await Te.get().subtle.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await yd(s)],r=await ll({privateKey:t[0],publicKey:t[1]});return{privateKey:r[0],publicKey:r[1]}}async function al(s,e){let t=await Te.get().subtle.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),r=await Te.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(r,0,r.byteLength)}async function cl(s,e,t){let r=await Te.get().subtle.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Te.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},r,e,t instanceof Uint8Array?t:t.subarray())}async function ll(s){if(s.privateKey==null||s.publicKey==null)throw new T("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Te.get().subtle.exportKey("jwk",s.privateKey),Te.get().subtle.exportKey("jwk",s.publicKey)])}async function yd(s){return Te.get().subtle.importKey("jwk",{kty:s.kty,n:s.n,e:s.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Hn(s){if(s.kty!=="RSA")throw new T("invalid key type","ERR_INVALID_KEY_TYPE");if(s.n==null)throw new T("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Z(s.n,"base64url").length*8}var fr=8192,hr=class{_key;constructor(e){this._key=e}verify(e,t){return cl(this._key,t,e)}marshal(){return Ft.jwkToPkix(this._key)}get bytes(){return Je.encode({Type:J.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=ce.digest(this.bytes);return Fe(e)?e.then(({bytes:t})=>t):e.bytes}},Us=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return et(16)}sign(e){return al(this._key,e)}get public(){if(this._publicKey==null)throw new T("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new hr(this._publicKey)}marshal(){return Ft.jwkToPkcs1(this._key)}get bytes(){return Qe.encode({Type:J.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=ce.digest(this.bytes);return Fe(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return Ft.exportToPem(this,e);if(t==="libp2p-key")return Rs(this.bytes,e);throw new T(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function go(s){let e=Ft.pkcs1ToJwk(s);if(Hn(e)>fr)throw new T("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await mo(e);return new Us(t.privateKey,t.publicKey)}function vd(s){let e=Ft.pkixToJwk(s);if(Hn(e)>fr)throw new T("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new hr(e)}async function xd(s){if(Hn(s)>fr)throw new T("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await mo(s);return new Us(e.privateKey,e.publicKey)}async function Ed(s){if(s>fr)throw new T("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await ol(s);return new Us(e.privateKey,e.publicKey)}var Eo={};ue(Eo,{Secp256k1PrivateKey:()=>pr,Secp256k1PublicKey:()=>dr,generateKeyPair:()=>Cd,unmarshalSecp256k1PrivateKey:()=>Dd,unmarshalSecp256k1PublicKey:()=>Nd});var _d=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ht=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Gt=new Uint32Array(64),yo=class extends Is{constructor(){super(64,32,8,!1),this.A=Ht[0]|0,this.B=Ht[1]|0,this.C=Ht[2]|0,this.D=Ht[3]|0,this.E=Ht[4]|0,this.F=Ht[5]|0,this.G=Ht[6]|0,this.H=Ht[7]|0}get(){let{A:e,B:t,C:r,D:n,E:i,F:o,G:a,H:c}=this;return[e,t,r,n,i,o,a,c]}set(e,t,r,n,i,o,a,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)Gt[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){let h=Gt[u-15],p=Gt[u-2],g=qe(h,7)^qe(h,18)^h>>>3,d=qe(p,17)^qe(p,19)^p>>>10;Gt[u]=d+Gt[u-7]+g+Gt[u-16]|0}let{A:r,B:n,C:i,D:o,E:a,F:c,G:f,H:l}=this;for(let u=0;u<64;u++){let h=qe(a,6)^qe(a,11)^qe(a,25),p=l+h+ja(a,c,f)+_d[u]+Gt[u]|0,d=(qe(r,2)^qe(r,13)^qe(r,22))+Za(r,n,i)|0;l=f,f=c,c=a,a=o+p|0,o=i,i=n,n=r,r=p+d|0}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,l=l+this.H|0,this.set(r,n,i,o,a,c,f,l)}roundClean(){Gt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ul=Fr(()=>new yo);function Bd(s){let e=Qs(s);Xe(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:r,a:n}=e;if(t){if(!r.eql(n,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Sd,hexToBytes:Id}=Kr,ss={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(s){let{Err:e}=ss;if(s.length<2||s[0]!==2)throw new e("Invalid signature integer tag");let t=s[1],r=s.subarray(2,t+2);if(!t||r.length!==t)throw new e("Invalid signature integer: wrong length");if(r[0]&128)throw new e("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Sd(r),l:s.subarray(t+2)}},toSig(s){let{Err:e}=ss,t=typeof s=="string"?Id(s):s;ks(t);let r=t.length;if(r<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==r-2)throw new e("Invalid signature: incorrect length");let{d:n,l:i}=ss._parseInt(t.subarray(2)),{d:o,l:a}=ss._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:n,s:o}},hexFromSig(s){let e=f=>Number.parseInt(f[0],16)&8?"00"+f:f,t=f=>{let l=f.toString(16);return l.length&1?`0${l}`:l},r=e(t(s.s)),n=e(t(s.r)),i=r.length/2,o=n.length/2,a=t(i),c=t(o);return`30${t(o+i+4)}02${c}${n}02${a}${r}`}},Bt=BigInt(0),Ge=BigInt(1),Ry=BigInt(2),hl=BigInt(3),My=BigInt(4);function Ad(s){let e=Bd(s),{Fp:t}=e,r=e.toBytes||((g,d,m)=>{let b=d.toAffine();return gt(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),n=e.fromBytes||(g=>{let d=g.subarray(1),m=t.fromBytes(d.subarray(0,t.BYTES)),b=t.fromBytes(d.subarray(t.BYTES,2*t.BYTES));return{x:m,y:b}});function i(g){let{a:d,b:m}=e,b=t.sqr(g),_=t.mul(b,g);return t.add(t.add(_,t.mul(g,d)),m)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function o(g){return typeof g=="bigint"&&Btt.eql(w,t.ZERO);return _(m)&&_(b)?u.ZERO:new u(m,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let m=t.invertBatch(d.map(b=>b.pz));return d.map((b,_)=>b.toAffine(m[_])).map(u.fromAffine)}static fromHex(d){let m=u.fromAffine(n(se("pointHex",d)));return m.assertValidity(),m}static fromPrivateKey(d){return u.BASE.multiply(c(d))}_setWindowSize(d){this._WINDOW_SIZE=d,f.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:d,y:m}=this.toAffine();if(!t.isValid(d)||!t.isValid(m))throw new Error("bad point: x or y not FE");let b=t.sqr(m),_=i(d);if(!t.eql(b,_))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:d}=this.toAffine();if(t.isOdd)return!t.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){l(d);let{px:m,py:b,pz:_}=this,{px:w,py:A,pz:y}=d,x=t.eql(t.mul(m,y),t.mul(w,_)),E=t.eql(t.mul(b,y),t.mul(A,_));return x&&E}negate(){return new u(this.px,t.neg(this.py),this.pz)}double(){let{a:d,b:m}=e,b=t.mul(m,hl),{px:_,py:w,pz:A}=this,y=t.ZERO,x=t.ZERO,E=t.ZERO,B=t.mul(_,_),D=t.mul(w,w),N=t.mul(A,A),L=t.mul(_,w);return L=t.add(L,L),E=t.mul(_,A),E=t.add(E,E),y=t.mul(d,E),x=t.mul(b,N),x=t.add(y,x),y=t.sub(D,x),x=t.add(D,x),x=t.mul(y,x),y=t.mul(L,y),E=t.mul(b,E),N=t.mul(d,N),L=t.sub(B,N),L=t.mul(d,L),L=t.add(L,E),E=t.add(B,B),B=t.add(E,B),B=t.add(B,N),B=t.mul(B,L),x=t.add(x,B),N=t.mul(w,A),N=t.add(N,N),B=t.mul(N,L),y=t.sub(y,B),E=t.mul(N,D),E=t.add(E,E),E=t.add(E,E),new u(y,x,E)}add(d){l(d);let{px:m,py:b,pz:_}=this,{px:w,py:A,pz:y}=d,x=t.ZERO,E=t.ZERO,B=t.ZERO,D=e.a,N=t.mul(e.b,hl),L=t.mul(m,w),ne=t.mul(b,A),re=t.mul(_,y),Ve=t.add(m,b),S=t.add(w,A);Ve=t.mul(Ve,S),S=t.add(L,ne),Ve=t.sub(Ve,S),S=t.add(m,_);let R=t.add(w,y);return S=t.mul(S,R),R=t.add(L,re),S=t.sub(S,R),R=t.add(b,_),x=t.add(A,y),R=t.mul(R,x),x=t.add(ne,re),R=t.sub(R,x),B=t.mul(D,S),x=t.mul(N,re),B=t.add(x,B),x=t.sub(ne,B),B=t.add(ne,B),E=t.mul(x,B),ne=t.add(L,L),ne=t.add(ne,L),re=t.mul(D,re),S=t.mul(N,S),ne=t.add(ne,re),re=t.sub(L,re),re=t.mul(D,re),S=t.add(S,re),L=t.mul(ne,S),E=t.add(E,L),L=t.mul(R,S),x=t.mul(Ve,x),x=t.sub(x,L),L=t.mul(Ve,ne),B=t.mul(R,B),B=t.add(B,L),new u(x,E,B)}subtract(d){return this.add(d.negate())}is0(){return this.equals(u.ZERO)}wNAF(d){return p.wNAFCached(this,f,d,m=>{let b=t.invertBatch(m.map(_=>_.pz));return m.map((_,w)=>_.toAffine(b[w])).map(u.fromAffine)})}multiplyUnsafe(d){let m=u.ZERO;if(d===Bt)return m;if(a(d),d===Ge)return this;let{endo:b}=e;if(!b)return p.unsafeLadder(this,d);let{k1neg:_,k1:w,k2neg:A,k2:y}=b.splitScalar(d),x=m,E=m,B=this;for(;w>Bt||y>Bt;)w&Ge&&(x=x.add(B)),y&Ge&&(E=E.add(B)),B=B.double(),w>>=Ge,y>>=Ge;return _&&(x=x.negate()),A&&(E=E.negate()),E=new u(t.mul(E.px,b.beta),E.py,E.pz),x.add(E)}multiply(d){a(d);let m=d,b,_,{endo:w}=e;if(w){let{k1neg:A,k1:y,k2neg:x,k2:E}=w.splitScalar(m),{p:B,f:D}=this.wNAF(y),{p:N,f:L}=this.wNAF(E);B=p.constTimeNegate(A,B),N=p.constTimeNegate(x,N),N=new u(t.mul(N.px,w.beta),N.py,N.pz),b=B.add(N),_=D.add(L)}else{let{p:A,f:y}=this.wNAF(m);b=A,_=y}return u.normalizeZ([b,_])[0]}multiplyAndAddUnsafe(d,m,b){let _=u.BASE,w=(y,x)=>x===Bt||x===Ge||!y.equals(_)?y.multiplyUnsafe(x):y.multiply(x),A=w(this,m).add(w(d,b));return A.is0()?void 0:A}toAffine(d){let{px:m,py:b,pz:_}=this,w=this.is0();d==null&&(d=w?t.ONE:t.inv(_));let A=t.mul(m,d),y=t.mul(b,d),x=t.mul(_,d);if(w)return{x:t.ZERO,y:t.ZERO};if(!t.eql(x,t.ONE))throw new Error("invZ was invalid");return{x:A,y}}isTorsionFree(){let{h:d,isTorsionFree:m}=e;if(d===Ge)return!0;if(m)return m(u,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:m}=e;return d===Ge?this:m?m(u,this):this.multiplyUnsafe(e.h)}toRawBytes(d=!0){return this.assertValidity(),r(u,this,d)}toHex(d=!0){return dt(this.toRawBytes(d))}}u.BASE=new u(e.Gx,e.Gy,t.ONE),u.ZERO=new u(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,p=Wr(u,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:o}}function kd(s){let e=Qs(s);return Xe(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function fl(s){let e=kd(s),{Fp:t,n:r}=e,n=t.BYTES+1,i=2*t.BYTES+1;function o(S){return Btdt(Lt(S,e.nByteLength));function g(S){let R=r>>Ge;return S>R}function d(S){return g(S)?a(-S):S}let m=(S,R,V)=>pt(S.slice(R,V));class b{constructor(R,V,I){this.r=R,this.s=V,this.recovery=I,this.assertValidity()}static fromCompact(R){let V=e.nByteLength;return R=se("compactSignature",R,V*2),new b(m(R,0,V),m(R,V,2*V))}static fromDER(R){let{r:V,s:I}=ss.toSig(se("DER",R));return new b(V,I)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new b(this.r,this.s,R)}recoverPublicKey(R){let{r:V,s:I,recovery:v}=this,P=E(se("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let M=v===2||v===3?V+e.n:V;if(M>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let C=v&1?"03":"02",O=f.fromHex(C+p(M)),F=c(M),z=a(-P*F),G=a(I*F),K=f.BASE.multiplyAndAddUnsafe(O,z,G);if(!K)throw new Error("point at infinify");return K.assertValidity(),K}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Xt(this.toDERHex())}toDERHex(){return ss.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Xt(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let _={isValidPrivateKey(S){try{return l(S),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let S=Qi(e.n);return oc(e.randomBytes(S),e.n)},precompute(S=8,R=f.BASE){return R._setWindowSize(S),R.multiply(BigInt(3)),R}};function w(S,R=!0){return f.fromPrivateKey(S).toRawBytes(R)}function A(S){let R=Nt(S),V=typeof S=="string",I=(R||V)&&S.length;return R?I===n||I===i:V?I===2*n||I===2*i:S instanceof f}function y(S,R,V=!0){if(A(S))throw new Error("first arg must be private key");if(!A(R))throw new Error("second arg must be public key");return f.fromHex(R).multiply(l(S)).toRawBytes(V)}let x=e.bits2int||function(S){let R=pt(S),V=S.length*8-e.nBitLength;return V>0?R>>BigInt(V):R},E=e.bits2int_modN||function(S){return a(x(S))},B=Js(e.nBitLength);function D(S){if(typeof S!="bigint")throw new Error("bigint expected");if(!(Bt<=S&&See in V))throw new Error("sign() legacy options not supported");let{hash:I,randomBytes:v}=e,{lowS:P,prehash:M,extraEntropy:C}=V;P==null&&(P=!0),S=se("msgHash",S),M&&(S=se("prehashed msgHash",I(S)));let O=E(S),F=l(R),z=[D(F),D(O)];if(C!=null&&C!==!1){let ee=C===!0?v(t.BYTES):C;z.push(se("extraEntropy",ee))}let G=gt(...z),K=O;function ie(ee){let fe=x(ee);if(!h(fe))return;let de=c(fe),ae=f.BASE.multiply(fe).toAffine(),ge=a(ae.x);if(ge===Bt)return;let ot=a(de*a(K+ge*F));if(ot===Bt)return;let zt=(ae.x===ge?0:2)|Number(ae.y&Ge),Fs=ot;return P&&g(ot)&&(Fs=d(ot),zt^=1),new b(ge,Fs,zt)}return{seed:G,k2sig:ie}}let L={lowS:e.lowS,prehash:!1},ne={lowS:e.lowS,prehash:!1};function re(S,R,V=L){let{seed:I,k2sig:v}=N(S,R,V),P=e;return Zi(P.hash.outputLen,P.nByteLength,P.hmac)(I,v)}f.BASE._setWindowSize(8);function Ve(S,R,V,I=ne){let v=S;if(R=se("msgHash",R),V=se("publicKey",V),"strict"in I)throw new Error("options.strict was renamed to lowS");let{lowS:P,prehash:M}=I,C,O;try{if(typeof v=="string"||Nt(v))try{C=b.fromDER(v)}catch(ae){if(!(ae instanceof ss.Err))throw ae;C=b.fromCompact(v)}else if(typeof v=="object"&&typeof v.r=="bigint"&&typeof v.s=="bigint"){let{r:ae,s:ge}=v;C=new b(ae,ge)}else throw new Error("PARSE");O=f.fromHex(V)}catch(ae){if(ae.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(P&&C.hasHighS())return!1;M&&(R=e.hash(R));let{r:F,s:z}=C,G=E(R),K=c(z),ie=a(G*K),ee=a(F*K),fe=f.BASE.multiplyAndAddUnsafe(O,ie,ee)?.toAffine();return fe?a(fe.x)===F:!1}return{CURVE:e,getPublicKey:w,getSharedSecret:y,sign:re,verify:Ve,ProjectivePoint:f,Signature:b,utils:_}}function Td(s){return{hash:s,hmac:(e,...t)=>tr(s,e,Or(...t)),randomBytes:Ss}}function dl(s,e){let t=r=>fl({...s,...Td(r)});return Object.freeze({...t(e),create:t})}var ml=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Pd=BigInt(1),wo=BigInt(2),gl=(s,e)=>(s+e/wo)/e;function Rd(s){let e=ml,t=BigInt(3),r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=s*s*s%e,l=f*f*s%e,u=X(l,t,e)*l%e,h=X(u,t,e)*l%e,p=X(h,wo,e)*f%e,g=X(p,n,e)*p%e,d=X(g,i,e)*g%e,m=X(d,a,e)*d%e,b=X(m,c,e)*m%e,_=X(b,a,e)*d%e,w=X(_,t,e)*l%e,A=X(w,o,e)*g%e,y=X(A,r,e)*f%e,x=X(y,wo,e);if(!vo.eql(vo.sqr(x),s))throw new Error("Cannot find square root");return x}var vo=qr(ml,void 0,void 0,{sqrt:Rd}),Ze=dl({a:BigInt(0),b:BigInt(7),Fp:vo,n:pl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:s=>{let e=pl,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Pd*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=gl(i*s,e),c=gl(-r*s,e),f=j(s-a*t-c*n,e),l=j(-a*r-c*i,e),u=f>o,h=l>o;if(u&&(f=e-f),h&&(l=e-l),f>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+s);return{k1neg:u,k1:f,k2neg:h,k2:l}}}},ul),Hy=BigInt(0);var Gy=Ze.ProjectivePoint;function bl(){return Ze.utils.randomPrivateKey()}function yl(s,e){let t=ce.digest(e instanceof Uint8Array?e:e.subarray());if(Fe(t))return t.then(({digest:r})=>Ze.sign(r,s).toDERRawBytes()).catch(r=>{throw new T(String(r),"ERR_INVALID_INPUT")});try{return Ze.sign(t.digest,s).toDERRawBytes()}catch(r){throw new T(String(r),"ERR_INVALID_INPUT")}}function wl(s,e,t){let r=ce.digest(t instanceof Uint8Array?t:t.subarray());if(Fe(r))return r.then(({digest:n})=>Ze.verify(e,n,s)).catch(n=>{throw new T(String(n),"ERR_INVALID_INPUT")});try{return Ze.verify(e,r.digest,s)}catch(n){throw new T(String(n),"ERR_INVALID_INPUT")}}function vl(s){return Ze.ProjectivePoint.fromHex(s).toRawBytes(!0)}function xl(s){try{Ze.getPublicKey(s,!0)}catch(e){throw new T(String(e),"ERR_INVALID_PRIVATE_KEY")}}function xo(s){try{Ze.ProjectivePoint.fromHex(s)}catch(e){throw new T(String(e),"ERR_INVALID_PUBLIC_KEY")}}function El(s){try{return Ze.getPublicKey(s,!0)}catch(e){throw new T(String(e),"ERR_INVALID_PRIVATE_KEY")}}var dr=class{_key;constructor(e){xo(e),this._key=e}verify(e,t){return wl(this._key,t,e)}marshal(){return vl(this._key)}get bytes(){return Je.encode({Type:J.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}async hash(){let e=ce.digest(this.bytes),t;return Fe(e)?{bytes:t}=await e:t=e.bytes,t}},pr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??El(e),xl(this._key),xo(this._publicKey)}sign(e){return yl(this._key,e)}get public(){return new dr(this._publicKey)}marshal(){return this._key}get bytes(){return Qe.encode({Type:J.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=ce.digest(this.bytes);return Fe(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Rs(this.bytes,e);throw new T(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Dd(s){return new pr(s)}function Nd(s){return new dr(s)}async function Cd(){let s=bl();return new pr(s)}var Kt={rsa:bo,ed25519:oo,secp256k1:Eo};function _o(s){let e=Object.keys(Kt).join(" / ");return new T(`invalid or unsupported key type ${s}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Ld(s){if(s=s.toLowerCase(),s==="rsa"||s==="ed25519"||s==="secp256k1")return Kt[s];throw _o(s)}function Bo(s){let e=Je.decode(s),t=e.Data??new Uint8Array;switch(e.Type){case J.RSA:return Kt.rsa.unmarshalRsaPublicKey(t);case J.Ed25519:return Kt.ed25519.unmarshalEd25519PublicKey(t);case J.Secp256k1:return Kt.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw _o(e.Type??"unknown")}}function _l(s,e){return e=(e??"rsa").toLowerCase(),Ld(e),s.bytes}async function Bl(s){let e=Qe.decode(s),t=e.Data??new Uint8Array;switch(e.Type){case J.RSA:return Kt.rsa.unmarshalRsaPrivateKey(t);case J.Ed25519:return Kt.ed25519.unmarshalEd25519PrivateKey(t);case J.Secp256k1:return Kt.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw _o(e.Type??"RSA")}}var Sl=Z("libp2p-pubsub:");async function Il(s,e,t,r){switch(s.type){case Pt.Signing:{let n={from:s.author.toBytes(),data:r,seqno:et(8),topic:e,signature:void 0,key:void 0},i=Ye([Sl,ht.Message.encode(n)]);n.signature=await s.privateKey.sign(i),n.key=s.key;let o={type:"signed",from:s.author,data:t,sequenceNumber:BigInt(`0x${W(n.seqno,"base16")}`),topic:e,signature:n.signature,key:n.key};return{raw:n,msg:o}}case Pt.Anonymous:return{raw:{from:void 0,data:r,seqno:void 0,topic:e,signature:void 0,key:void 0},msg:{type:"unsigned",data:t,topic:e}};default:throw new Error("Unreachable")}}async function Al(s,e){switch(s){case rs:return e.signature!=null?{valid:!1,error:xe.SignaturePresent}:e.seqno!=null?{valid:!1,error:xe.SeqnoPresent}:e.key!=null?{valid:!1,error:xe.FromPresent}:{valid:!0,message:{type:"unsigned",topic:e.topic,data:e.data??new Uint8Array(0)}};case qt:{if(e.seqno==null)return{valid:!1,error:xe.InvalidSeqno};if(e.seqno.length!==8)return{valid:!1,error:xe.InvalidSeqno};if(e.signature==null)return{valid:!1,error:xe.InvalidSignature};if(e.from==null)return{valid:!1,error:xe.InvalidPeerId};let t;try{t=js(e.from)}catch{return{valid:!1,error:xe.InvalidPeerId}}let r;if(e.key!=null){if(r=Bo(e.key),t.publicKey!==void 0&&!be(r.bytes,t.publicKey))return{valid:!1,error:xe.InvalidPeerId}}else{if(t.publicKey==null)return{valid:!1,error:xe.InvalidPeerId};r=Bo(t.publicKey)}let n={from:e.from,data:e.data,seqno:e.seqno,topic:e.topic,signature:void 0,key:void 0},i=Ye([Sl,ht.Message.encode(n)]);return await r.verify(i,e.signature)?{valid:!0,message:{type:"signed",from:t,data:e.data??new Uint8Array(0),sequenceNumber:BigInt(`0x${W(e.seqno,"base16")}`),topic:e.topic,signature:e.signature,key:e.key??_l(r)}}:{valid:!1,error:xe.InvalidSignature}}default:throw new Error("Unreachable")}}function nt(s=[],e){return{subscriptions:[],messages:s,control:e!==void 0?{graft:e.graft??[],prune:e.prune??[],ihave:e.ihave??[],iwant:e.iwant??[]}:void 0}}function So(s){return s.control===void 0&&(s.control={graft:[],prune:[],ihave:[],iwant:[]}),s}function it(s){if(s.length<=1)return s;let e=()=>Math.floor(Math.random()*Math.floor(s.length));for(let t=0;t{let t=Z(e.toString(16).padStart(16,"0"),"base16"),r=new Uint8Array(s.length+t.length);return r.set(s,0),r.set(t,s.length),r};function Rl(s){if(s.type!=="signed")throw new Error("expected signed message type");if(s.sequenceNumber==null)throw Error("missing seqno field");return Pl(s.from.toBytes(),s.sequenceNumber)}async function Ml(s){return ce.encode(s.data)}var Gn=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,r=e();return r===void 0&&(this.index=t),r}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,r){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return r()})}readNumber(e,t,r,n){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*n)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let h=Number.parseInt(u,e);if(!Number.isNaN(h))return h});if(l===void 0)break;if(i*=e,i+=l,i>f||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!r&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;tthis.readNumber(10,3,!1,1));if(r===void 0)return;e[t]=r}return e})}readIPv6Addr(){let e=t=>{for(let r=0;rthis.readIPv4Addr());if(o!==void 0)return t[n]=o[0],t[n+1]=o[1],t[n+2]=o[2],t[n+3]=o[3],[n+4,!0]}let i=this.readSeparator(":",r,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[n,!1];t[n]=i>>8,t[n+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[r,n]=e(t);if(r===16)return t;if(n||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(r+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Ud=45;var Dl=new Gn;function Kn(s){if(s.includes("%")&&(s=s.split("%")[0]),!(s.length>Ud))return Dl.new(s).parseWith(()=>Dl.readIPAddr())}var Ow=parseInt("0xFFFF",16),Fw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Io(s){return!!Kn(s)}var Ll=function(s,e=0,t){e=~~e,t=t??s.length-e;let r=new DataView(s.buffer);if(t===4){let n=[];for(let i=0;i{let e=Wd(...s);ko[e.code]=e,Ao[e.name]=e});function Wd(s,e,t,r,n){return{code:s,size:e,name:t,resolvable:!!r,path:!!n}}function gr(s){if(typeof s=="number"){if(ko[s]!=null)return ko[s];throw new Error(`no protocol with code: ${s}`)}else if(typeof s=="string"){if(Ao[s]!=null)return Ao[s];throw new Error(`no protocol with name: ${s}`)}throw new Error(`invalid protocol id type: ${typeof s}`)}var Iv=gr("ip4"),Av=gr("ip6"),kv=gr("ipcidr");function Vl(s,e){switch(gr(s).code){case 4:case 41:return $d(e);case 42:return Po(e);case 6:case 273:case 33:case 132:return Ol(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Po(e);case 421:return Zd(e);case 444:return Ul(e);case 445:return Ul(e);case 466:return jd(e);case 481:return globalThis.encodeURIComponent(Po(e));default:return W(e,"base16")}}var To=Object.values(kt).map(s=>s.decoder),Tv=function(){let s=To[0].or(To[1]);return To.slice(2).forEach(e=>s=s.or(e)),s}();function $d(s){let e=Ll(s,0,s.length);if(e==null)throw new Error("ipBuff is required");if(!Io(e))throw new Error("invalid ip address");return e}function Ol(s){return new DataView(s.buffer).getUint16(s.byteOffset)}function Po(s){let e=us(s);if(s=s.slice(Se(e)),s.length!==e)throw new Error("inconsistent lengths");return W(s)}function jd(s){let e=us(s),t=s.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+W(t,"base64url")}function Zd(s){let e=us(s),t=s.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return W(t,"base58btc")}function Ul(s){let e=s.slice(0,s.length-2),t=s.slice(s.length-2),r=W(e,"base32"),n=Ol(t);return`${r}:${n}`}var zn;(function(s){s[s.ip4=4]="ip4",s[s.ip6=41]="ip6"})(zn||(zn={}));function Fl(s){for(let e of s.tuples())switch(e[0]){case zn.ip4:case zn.ip6:return Vl(e[0],e[1]);default:break}return null}var Vs=class{entries=new Map;validityMs;constructor(e){this.validityMs=e.validityMs}get size(){return this.entries.size}put(e,t){return this.entries.has(e)?!0:(this.entries.set(e,{value:t,validUntilMs:Date.now()+this.validityMs}),!1)}prune(){let e=Date.now();for(let[t,r]of this.entries.entries())if(r.validUntilMs=Date.now()?t.value:void 0}clear(){this.entries.clear()}};var xp=Br,Ue;(function(s){s[s.started=0]="started",s[s.stopped=1]="stopped"})(Ue||(Ue={}));var qn=class extends br{globalSignaturePolicy;multicodecs=[Br,Ti];publishConfig;dataTransform;peers=new Set;streamsInbound=new Map;streamsOutbound=new Map;outboundInflightQueue=ut({objectMode:!0});direct=new Set;floodsubPeers=new Set;seenCache;acceptFromWhitelist=new Map;topics=new Map;subscriptions=new Set;mesh=new Map;fanout=new Map;fanoutLastpub=new Map;gossip=new Map;control=new Map;peerhave=new Map;iasked=new Map;backoff=new Map;outbound=new Map;msgIdFn;fastMsgIdFn;msgIdToStrFn;fastMsgIdCache;publishedMessageIds;mcache;score;topicValidators=new Map;log;heartbeatTicks=0;gossipTracer;components;directPeerInitial=null;static multicodec=Br;opts;decodeRpcLimits;metrics;status={code:Ue.stopped};maxInboundStreams;maxOutboundStreams;runOnTransientConnection;allowedTopics;heartbeatTimer=null;constructor(e,t={}){super();let r={fallbackToFloodsub:!0,floodPublish:!0,batchPublish:!1,tagMeshPeers:!0,doPX:!1,directPeers:[],D:6,Dlo:4,Dhi:12,Dscore:4,Dout:2,Dlazy:6,heartbeatInterval:1e3,fanoutTTL:6e4,mcacheLength:5,mcacheGossip:3,seenTTL:12e4,gossipsubIWantFollowupMs:3e3,prunePeers:16,pruneBackoff:6e4,unsubcribeBackoff:1e4,graftFloodThreshold:1e4,opportunisticGraftPeers:2,opportunisticGraftTicks:60,directConnectTicks:300,gossipFactor:.25,...t,scoreParams:La(t.scoreParams),scoreThresholds:Va(t.scoreThresholds)};if(this.components=e,this.decodeRpcLimits=r.decodeRpcLimits??Ea,this.globalSignaturePolicy=r.globalSignaturePolicy??qt,r.fallbackToFloodsub&&this.multicodecs.push(ki),this.log=e.logger.forComponent(r.debugName??"libp2p:gossipsub"),this.opts=r,this.direct=new Set(r.directPeers.map(n=>n.id.toString())),this.seenCache=new Vs({validityMs:r.seenTTL}),this.publishedMessageIds=new Vs({validityMs:r.seenTTL}),t.msgIdFn!=null)this.msgIdFn=t.msgIdFn;else switch(this.globalSignaturePolicy){case qt:this.msgIdFn=Rl;break;case rs:this.msgIdFn=Ml;break;default:throw new Error(`Invalid globalSignaturePolicy: ${this.globalSignaturePolicy}`)}if(t.fastMsgIdFn!=null&&(this.fastMsgIdFn=t.fastMsgIdFn,this.fastMsgIdCache=new Vs({validityMs:r.seenTTL})),this.msgIdToStrFn=t.msgIdToStrFn??kl,this.mcache=t.messageCache??new Tr(r.mcacheGossip,r.mcacheLength,this.msgIdToStrFn),t.dataTransform!=null&&(this.dataTransform=t.dataTransform),t.metricsRegister!=null){if(t.metricsTopicStrToLabel==null)throw Error("Must set metricsTopicStrToLabel with metrics");let n=Math.max(...Object.values(r.scoreParams.topics).map(o=>o.meshMessageDeliveriesWindow),1e3),i=Ca(t.metricsRegister,t.metricsTopicStrToLabel,{gossipPromiseExpireSec:this.opts.gossipsubIWantFollowupMs/1e3,behaviourPenaltyThreshold:r.scoreParams.behaviourPenaltyThreshold,maxMeshMessageDeliveriesWindowSec:n/1e3});i.mcacheSize.addCollect(()=>{this.onScrapeMetrics(i)});for(let o of this.multicodecs)i.protocolsEnabled.set({protocol:o},1);this.metrics=i}else this.metrics=null;this.gossipTracer=new Lr(this.opts.gossipsubIWantFollowupMs,this.msgIdToStrFn,this.metrics),this.score=new Dr(this.opts.scoreParams,this.metrics,this.components.logger,{scoreCacheValidityMs:r.heartbeatInterval}),this.maxInboundStreams=t.maxInboundStreams,this.maxOutboundStreams=t.maxOutboundStreams,this.runOnTransientConnection=t.runOnTransientConnection,this.allowedTopics=r.allowedTopics!=null?new Set(r.allowedTopics):null}[Symbol.toStringTag]="@chainsafe/libp2p-gossipsub";[Go]=["@libp2p/pubsub"];[Ko]=["@libp2p/identify"];getPeers(){return[...this.peers.keys()].map(e=>ct(e))}isStarted(){return this.status.code===Ue.started}async start(){if(this.isStarted())return;this.log("starting"),this.publishConfig=await Tl(this.globalSignaturePolicy,this.components.peerId),this.outboundInflightQueue=ut({objectMode:!0}),gs(this.outboundInflightQueue,async i=>{for await(let{peerId:o,connection:a}of i)await this.createOutboundStream(o,a)}).catch(i=>{this.log.error("outbound inflight queue error",i)}),await Promise.all(this.opts.directPeers.map(async i=>{await this.components.peerStore.merge(i.id,{multiaddrs:i.addrs})}));let e=this.components.registrar;await Promise.all(this.multicodecs.map(async i=>e.handle(i,this.onIncomingStream.bind(this),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams,runOnTransientConnection:this.runOnTransientConnection})));let t={onConnect:this.onPeerConnected.bind(this),onDisconnect:this.onPeerDisconnected.bind(this),notifyOnTransient:this.runOnTransientConnection},r=await Promise.all(this.multicodecs.map(async i=>e.register(i,t))),n=setTimeout(this.runHeartbeat,100);this.status={code:Ue.started,registrarTopologyIds:r,heartbeatTimeout:n,hearbeatStartMs:Date.now()+100},this.score.start(),this.directPeerInitial=setTimeout(()=>{Promise.resolve().then(async()=>{await Promise.all(Array.from(this.direct).map(async i=>this.connect(i)))}).catch(i=>{this.log(i)})},1e3),this.opts.tagMeshPeers&&(this.addEventListener("gossipsub:graft",this.tagMeshPeer),this.addEventListener("gossipsub:prune",this.untagMeshPeer)),this.log("started")}async stop(){if(this.log("stopping"),this.status.code!==Ue.started)return;let{registrarTopologyIds:e}=this.status;this.status={code:Ue.stopped},this.opts.tagMeshPeers&&(this.removeEventListener("gossipsub:graft",this.tagMeshPeer),this.removeEventListener("gossipsub:prune",this.untagMeshPeer));let t=this.components.registrar;await Promise.all(this.multicodecs.map(async n=>t.unhandle(n))),e.forEach(n=>{t.unregister(n)}),this.outboundInflightQueue.end();let r=[];for(let n of this.streamsOutbound.values())r.push(n.close());this.streamsOutbound.clear();for(let n of this.streamsInbound.values())r.push(n.close());this.streamsInbound.clear(),await Promise.all(r),this.peers.clear(),this.subscriptions.clear(),this.heartbeatTimer!=null&&(this.heartbeatTimer.cancel(),this.heartbeatTimer=null),this.score.stop(),this.mesh.clear(),this.fanout.clear(),this.fanoutLastpub.clear(),this.gossip.clear(),this.control.clear(),this.peerhave.clear(),this.iasked.clear(),this.backoff.clear(),this.outbound.clear(),this.gossipTracer.clear(),this.seenCache.clear(),this.fastMsgIdCache!=null&&this.fastMsgIdCache.clear(),this.directPeerInitial!=null&&clearTimeout(this.directPeerInitial),this.log("stopped")}dumpPeerScoreStats(){return this.score.dumpPeerScoreStats()}onIncomingStream({stream:e,connection:t}){if(!this.isStarted())return;let r=t.remotePeer;this.addPeer(r,t.direction,t.remoteAddr),this.createInboundStream(r,e),this.outboundInflightQueue.push({peerId:r,connection:t})}onPeerConnected(e,t){this.metrics?.newConnectionCount.inc({status:t.status}),!(!this.isStarted()||t.status!=="open")&&(this.addPeer(e,t.direction,t.remoteAddr),this.outboundInflightQueue.push({peerId:e,connection:t}))}onPeerDisconnected(e){this.log("connection ended %p",e),this.removePeer(e)}async createOutboundStream(e,t){if(!this.isStarted())return;let r=e.toString();if(this.peers.has(r)&&!this.streamsOutbound.has(r))try{let n=new Nr(await t.newStream(this.multicodecs,{runOnTransientConnection:this.runOnTransientConnection}),o=>{this.log.error("outbound pipe error",o)},{maxBufferSize:this.opts.maxOutboundBufferSize});this.log("create outbound stream %p",e),this.streamsOutbound.set(r,n);let i=n.protocol;i===ki&&this.floodsubPeers.add(r),this.metrics?.peersPerProtocol.inc({protocol:i},1),this.subscriptions.size>0&&(this.log("send subscriptions to",r),this.sendSubscriptions(r,Array.from(this.subscriptions),!0))}catch(n){this.log.error("createOutboundStream error",n)}}createInboundStream(e,t){if(!this.isStarted())return;let r=e.toString();if(!this.peers.has(r))return;let n=this.streamsInbound.get(r);n!==void 0&&(this.log("replacing existing inbound steam %s",r),n.close().catch(o=>{this.log.error(o)})),this.log("create inbound stream %s",r);let i=new Cr(t,{maxDataLength:this.opts.maxInboundDataLength});this.streamsInbound.set(r,i),this.pipePeerReadStream(e,i.source).catch(o=>{this.log(o)})}addPeer(e,t,r){let n=e.toString();if(!this.peers.has(n)){this.log("new peer %p",e),this.peers.add(n),this.score.addPeer(n);let i=Fl(r);i!==null?this.score.addIP(n,i):this.log("Added peer has no IP in current address %s %s",n,r.toString()),this.outbound.has(n)||this.outbound.set(n,t==="outbound")}}removePeer(e){let t=e.toString();if(!this.peers.has(t))return;this.log("delete peer %p",e),this.peers.delete(t);let r=this.streamsOutbound.get(t),n=this.streamsInbound.get(t);r!=null&&this.metrics?.peersPerProtocol.inc({protocol:r.protocol},-1),r?.close().catch(i=>{this.log.error(i)}),n?.close().catch(i=>{this.log.error(i)}),this.streamsOutbound.delete(t),this.streamsInbound.delete(t);for(let i of this.topics.values())i.delete(t);for(let[i,o]of this.mesh)o.delete(t)&&this.metrics?.onRemoveFromMesh(i,ze.Dc,1);for(let i of this.fanout.values())i.delete(t);this.floodsubPeers.delete(t),this.gossip.delete(t),this.control.delete(t),this.outbound.delete(t),this.score.removePeer(t),this.acceptFromWhitelist.delete(t)}get started(){return this.status.code===Ue.started}getMeshPeers(e){let t=this.mesh.get(e);return t!=null?Array.from(t):[]}getSubscribers(e){let t=this.topics.get(e);return(t!=null?Array.from(t):[]).map(r=>ct(r))}getTopics(){return Array.from(this.subscriptions)}async pipePeerReadStream(e,t){try{await gs(t,async r=>{for await(let n of r)try{let i=n.subarray(),o=ht.decode(i,{limits:{subscriptions:this.decodeRpcLimits.maxSubscriptions,messages:this.decodeRpcLimits.maxMessages,control$:{ihave:this.decodeRpcLimits.maxIhaveMessageIDs,iwant:this.decodeRpcLimits.maxIwantMessageIDs,graft:this.decodeRpcLimits.maxControlMessages,prune:this.decodeRpcLimits.maxControlMessages,prune$:{peers:this.decodeRpcLimits.maxPeerInfos}}}});if(this.metrics?.onRpcRecv(o,i.length),this.opts.awaitRpcHandler)try{await this.handleReceivedRpc(e,o)}catch(a){this.metrics?.onRpcRecvError(),this.log(a)}else this.handleReceivedRpc(e,o).catch(a=>{this.metrics?.onRpcRecvError(),this.log(a)})}catch(i){this.metrics?.onRpcDataError(),this.log(i)}})}catch(r){this.metrics?.onPeerReadStreamError(),this.handlePeerReadStreamError(r,e)}}handlePeerReadStreamError(e,t){this.log.error(e),this.onPeerDisconnected(t)}async handleReceivedRpc(e,t){if(!this.acceptFrom(e.toString())){this.log("received message from unacceptable peer %p",e),this.metrics?.rpcRecvNotAccepted.inc();return}let r=t.subscriptions!=null?t.subscriptions.length:0,n=t.messages!=null?t.messages.length:0,i=0,o=0,a=0,c=0;if(t.control!=null&&(t.control.ihave!=null&&(i=t.control.ihave.length),t.control.iwant!=null&&(o=t.control.iwant.length),t.control.graft!=null&&(a=t.control.graft.length),t.control.prune!=null&&(c=t.control.prune.length)),this.log(`rpc.from ${e.toString()} subscriptions ${r} messages ${n} ihave ${i} iwant ${o} graft ${a} prune ${c}`),t.subscriptions!=null&&t.subscriptions.length>0){let f=[];t.subscriptions.forEach(l=>{let u=l.topic,h=l.subscribe===!0;if(u!=null){if(this.allowedTopics!=null&&!this.allowedTopics.has(u))return;this.handleReceivedSubscription(e,u,h),f.push({topic:u,subscribe:h})}}),this.safeDispatchEvent("subscription-change",{detail:{peerId:e,subscriptions:f}})}for(let f of t.messages){if(this.allowedTopics!=null&&!this.allowedTopics.has(f.topic))continue;let l=this.handleReceivedMessage(e,f).catch(u=>{this.metrics?.onMsgRecvError(f.topic),this.log(u)});this.opts.awaitRpcMessageHandler&&await l}t.control!=null&&await this.handleControlMessage(e.toString(),t.control)}handleReceivedSubscription(e,t,r){this.log("subscription update from %p topic %s",e,t);let n=this.topics.get(t);n==null&&(n=new Set,this.topics.set(t,n)),r?n.add(e.toString()):n.delete(e.toString())}async handleReceivedMessage(e,t){this.metrics?.onMsgRecvPreValidation(t.topic);let r=await this.validateReceivedMessage(e,t);this.metrics?.onPrevalidationResult(t.topic,r.code);let n=r.code;switch(n){case Ee.duplicate:this.score.duplicateMessage(e.toString(),r.msgIdStr,t.topic),this.gossipTracer.deliverMessage(r.msgIdStr,!0),this.mcache.observeDuplicate(r.msgIdStr,e.toString());return;case Ee.invalid:if(r.msgIdStr!=null){let i=r.msgIdStr;this.score.rejectMessage(e.toString(),i,t.topic,r.reason),this.gossipTracer.rejectMessage(i,r.reason)}else this.score.rejectInvalidMessage(e.toString(),t.topic);this.metrics?.onMsgRecvInvalid(t.topic,r);return;case Ee.valid:this.score.validateMessage(r.messageId.msgIdStr),this.gossipTracer.deliverMessage(r.messageId.msgIdStr),this.mcache.put(r.messageId,t,!this.opts.asyncValidation),this.subscriptions.has(t.topic)&&(!this.components.peerId.equals(e)||this.opts.emitSelf)&&(super.dispatchEvent(new CustomEvent("gossipsub:message",{detail:{propagationSource:e,msgId:r.messageId.msgIdStr,msg:r.msg}})),super.dispatchEvent(new CustomEvent("message",{detail:r.msg}))),this.opts.asyncValidation||this.forwardMessage(r.messageId.msgIdStr,t,e.toString());break;default:throw new Error(`Invalid validation result: ${n}`)}}async validateReceivedMessage(e,t){let r=this.fastMsgIdFn?.(t),n=r!==void 0?this.fastMsgIdCache?.get(r):void 0;if(n!=null)return{code:Ee.duplicate,msgIdStr:n};let i=await Al(this.globalSignaturePolicy,t);if(!i.valid)return{code:Ee.invalid,reason:Ie.Error,error:i.error};let o=i.message;try{this.dataTransform!=null&&(o.data=this.dataTransform.inboundTransform(t.topic,o.data))}catch(u){return this.log("Invalid message, transform failed",u),{code:Ee.invalid,reason:Ie.Error,error:xe.TransformFailed}}let a=await this.msgIdFn(o),c=this.msgIdToStrFn(a),f={msgId:a,msgIdStr:c};if(r!==void 0&&this.fastMsgIdCache!=null&&this.fastMsgIdCache.put(r,c)&&this.metrics?.fastMsgIdCacheCollision.inc(),this.seenCache.has(c))return{code:Ee.duplicate,msgIdStr:c};this.seenCache.put(c);let l=this.topicValidators.get(t.topic);if(l!=null){let u;try{u=await l(e,o)}catch(h){let p=h.code;p===xa&&(u=Be.Ignore),p===va?u=Be.Reject:u=Be.Ignore}if(u!==Be.Accept)return{code:Ee.invalid,reason:Ki(u),msgIdStr:c}}return{code:Ee.valid,messageId:f,msg:o}}getScore(e){return this.score.score(e)}sendSubscriptions(e,t,r){this.sendRpc(e,{subscriptions:t.map(n=>({topic:n,subscribe:r})),messages:[]})}async handleControlMessage(e,t){if(t===void 0)return;let r=t.ihave!=null?this.handleIHave(e,t.ihave):[],n=t.iwant!=null?this.handleIWant(e,t.iwant):[],i=t.graft!=null?await this.handleGraft(e,t.graft):[];if(t.prune!=null&&await this.handlePrune(e,t.prune),r.length===0&&n.length===0&&i.length===0)return;let o=this.sendRpc(e,nt(n,{iwant:r,prune:i})),a=r[0]?.messageIDs;a!=null&&(o?this.gossipTracer.addPromise(e,a):this.metrics?.iwantPromiseUntracked.inc(1))}acceptFrom(e){if(this.direct.has(e))return!0;let t=Date.now(),r=this.acceptFromWhitelist.get(e);if(r!=null&&r.messagesAccepted<128&&r.acceptUntil>=t)return r.messagesAccepted+=1,!0;let n=this.score.score(e);return n>=0?this.acceptFromWhitelist.set(e,{messagesAccepted:0,acceptUntil:t+1e3}):this.acceptFromWhitelist.delete(e),n>=this.opts.scoreThresholds.graylistThreshold}handleIHave(e,t){if(t.length===0)return[];let r=this.score.score(e);if(r10)return this.log("IHAVE: peer %s has advertised too many times (%d) within this heartbeat interval; ignoring",e,n),this.metrics?.ihaveRcvIgnored.inc({reason:ws.MaxIhave}),[];let i=this.iasked.get(e)??0;if(i>=5e3)return this.log("IHAVE: peer %s has already advertised too many messages (%d); ignoring",e,i),this.metrics?.ihaveRcvIgnored.inc({reason:ws.MaxIasked}),[];let o=new Map;if(t.forEach(({topicID:f,messageIDs:l})=>{if(f==null||l==null||!this.mesh.has(f))return;let u=0;l.forEach(h=>{let p=this.msgIdToStrFn(h);this.seenCache.has(p)||(o.set(p,h),u++)}),this.metrics?.onIhaveRcv(f,l.length,u)}),o.size===0)return[];let a=o.size;a+i>5e3&&(a=5e3-i),this.log("IHAVE: Asking for %d out of %d messages from %s",a,o.size,e);let c=Array.from(o.values());return it(c),c=c.slice(0,a),this.iasked.set(e,i+a),[{messageIDs:c}]}handleIWant(e,t){if(t.length===0)return[];let r=this.score.score(e);if(r{a?.forEach(c=>{let f=this.msgIdToStrFn(c),l=this.mcache.getWithIWantCount(f,e);if(l==null){o++;return}if(i.set(l.msg.topic,1+(i.get(l.msg.topic)??0)),l.count>3){this.log("IWANT: Peer %s has asked for message %s too many times: ignoring request",e,c);return}n.set(f,l.msg)})}),this.metrics?.onIwantRcv(i,o),n.size===0?(this.log("IWANT: Could not provide any wanted messages to %s",e),[]):(this.log("IWANT: Sending %d messages to %s",n.size,e),Array.from(n.values()))}async handleGraft(e,t){let r=[],n=this.score.score(e),i=Date.now(),o=this.opts.doPX;if(t.forEach(({topicID:c})=>{if(c==null)return;let f=this.mesh.get(c);if(f==null){o=!1;return}if(f.has(e))return;let l=this.backoff.get(c)?.get(e);if(this.direct.has(e))this.log("GRAFT: ignoring request from direct peer %s",e),r.push(c),o=!1;else if(typeof l=="number"&&i=this.opts.Dhi&&!(this.outbound.get(e)??!1)?(r.push(c),this.addBackoff(e,c)):(this.log("GRAFT: Add mesh link from %s in %s",e,c),this.score.graft(e,c),f.add(e),this.metrics?.onAddToMesh(c,Ae.Subscribed,1));this.safeDispatchEvent("gossipsub:graft",{detail:{peerId:e,topic:c,direction:"inbound"}})}),r.length===0)return[];let a=!1;return Promise.all(r.map(async c=>this.makePrune(e,c,o,a)))}async handlePrune(e,t){let r=this.score.score(e);for(let{topicID:n,backoff:i,peers:o}of t){if(n==null)continue;let a=this.mesh.get(n);if(a==null)return;this.log("PRUNE: Remove mesh link to %s in %s",e,n),this.score.prune(e,n),a.has(e)&&(a.delete(e),this.metrics?.onRemoveFromMesh(n,ze.Prune,1)),typeof i=="number"&&i>0?this.doAddBackoff(e,n,i*1e3):this.addBackoff(e,n),o!=null&&o.length>0&&(r{this.log("peer %s didn't follow up in %d IWANT requests; adding penalty",t,e),this.score.addPenalty(t,e,ys.BrokenPromise)})}clearBackoff(){if(this.heartbeatTicks%15!==0)return;let e=Date.now();this.backoff.forEach((t,r)=>{t.forEach((n,i)=>{n+1*this.opts.heartbeatInterval{this.streamsOutbound.has(t)||e.push(t)}),await Promise.all(e.map(async t=>this.connect(t)))}async pxConnect(e){e.length>this.opts.prunePeers&&(it(e),e=e.slice(0,this.opts.prunePeers));let t=[];await Promise.all(e.map(async r=>{if(r.peerID==null)return;let n=js(r.peerID),i=n.toString();if(!this.peers.has(i)){if(r.signedPeerRecord==null){t.push(i);return}try{if(!await this.components.peerStore.consumePeerRecord(r.signedPeerRecord,n)){this.log("bogus peer record obtained through px: could not add peer record to address book");return}t.push(i)}catch{this.log("bogus peer record obtained through px: invalid signature or not a peer record")}}})),t.length!==0&&await Promise.all(t.map(async r=>this.connect(r)))}async connect(e){this.log("Initiating connection with %s",e);let t=ct(e),r=await this.components.connectionManager.openConnection(t);for(let n of this.multicodecs)for(let i of this.components.registrar.getTopologies(n))i.onConnect?.(t,r)}subscribe(e){if(this.status.code!==Ue.started)throw new Error("Pubsub has not started");if(!this.subscriptions.has(e)){this.subscriptions.add(e);for(let t of this.peers.keys())this.sendSubscriptions(t,[e],!0)}this.join(e)}unsubscribe(e){if(this.status.code!==Ue.started)throw new Error("Pubsub is not started");let t=this.subscriptions.delete(e);if(this.log("unsubscribe from %s - am subscribed %s",e,t),t)for(let r of this.peers.keys())this.sendSubscriptions(r,[e],!1);this.leave(e)}join(e){if(this.status.code!==Ue.started)throw new Error("Gossipsub has not started");if(this.mesh.has(e))return;this.log("JOIN %s",e),this.metrics?.onJoin(e);let t=new Set,r=this.backoff.get(e),n=this.fanout.get(e);if(n!=null&&(this.fanout.delete(e),this.fanoutLastpub.delete(e),n.forEach(i=>{!this.direct.has(i)&&this.score.score(i)>=0&&(r==null||!r.has(i))&&t.add(i)}),this.metrics?.onAddToMesh(e,Ae.Fanout,t.size)),t.size!t.has(a)&&!this.direct.has(a)&&this.score.score(a)>=0&&(r==null||!r.has(a))).forEach(a=>{t.add(a)}),this.metrics?.onAddToMesh(e,Ae.Random,t.size-i)}this.mesh.set(e,t),t.forEach(i=>{this.log("JOIN: Add mesh link to %s in %s",i,e),this.sendGraft(i,e)})}leave(e){if(this.status.code!==Ue.started)throw new Error("Gossipsub has not started");this.log("LEAVE %s",e),this.metrics?.onLeave(e);let t=this.mesh.get(e);t!=null&&(Promise.all(Array.from(t).map(async r=>{this.log("LEAVE: Remove mesh link to %s in %s",r,e),await this.sendPrune(r,e)})).catch(r=>{this.log("Error sending prunes to mesh peers",r)}),this.mesh.delete(e))}selectPeersToForward(e,t,r){let n=new Set,i=this.topics.get(e);i!=null&&(this.direct.forEach(a=>{i.has(a)&&t!==a&&!(r?.has(a)??!1)&&n.add(a)}),this.floodsubPeers.forEach(a=>{i.has(a)&&t!==a&&!(r?.has(a)??!1)&&this.score.score(a)>=this.opts.scoreThresholds.publishThreshold&&n.add(a)}));let o=this.mesh.get(e);return o!=null&&o.size>0&&o.forEach(a=>{t!==a&&!(r?.has(a)??!1)&&n.add(a)}),n}selectPeersToPublish(e){let t=new Set,r={direct:0,floodsub:0,mesh:0,fanout:0},n=this.topics.get(e);if(n!=null)if(this.opts.floodPublish)n.forEach(i=>{this.direct.has(i)?(t.add(i),r.direct++):this.score.score(i)>=this.opts.scoreThresholds.publishThreshold&&(t.add(i),r.floodsub++)});else{this.direct.forEach(o=>{n.has(o)&&(t.add(o),r.direct++)}),this.floodsubPeers.forEach(o=>{n.has(o)&&this.score.score(o)>=this.opts.scoreThresholds.publishThreshold&&(t.add(o),r.floodsub++)});let i=this.mesh.get(e);if(i!=null&&i.size>0)i.forEach(o=>{t.add(o),r.mesh++}),i.size!i.has(a)&&!this.direct.has(a)&&!this.floodsubPeers.has(a)&&this.score.score(a)>=this.opts.scoreThresholds.publishThreshold).forEach(a=>{t.add(a),r.mesh++});else{let o=this.fanout.get(e);if(o!=null&&o.size>0)o.forEach(a=>{t.add(a),r.fanout++});else{let a=this.getRandomGossipPeers(e,this.opts.D,c=>this.score.score(c)>=this.opts.scoreThresholds.publishThreshold);a.size>0&&(this.fanout.set(e,a),a.forEach(c=>{t.add(c),r.fanout++}))}this.fanoutLastpub.set(e,Date.now())}}return{tosend:t,tosendCount:r}}forwardMessage(e,t,r,n){r!=null&&this.score.deliverMessage(r,e,t.topic);let i=this.selectPeersToForward(t.topic,r,n);i.forEach(o=>{this.sendRpc(o,nt([t]))}),this.metrics?.onForwardMsg(t.topic,i.size)}async publish(e,t,r){let n=Date.now(),i=this.dataTransform!=null?this.dataTransform.outboundTransform(e,t):t;if(this.publishConfig==null)throw Error("PublishError.Uninitialized");let{raw:o,msg:a}=await Il(this.publishConfig,e,t,i),c=await this.msgIdFn(a),f=this.msgIdToStrFn(c),l=r?.ignoreDuplicatePublishError??this.opts.ignoreDuplicatePublishError;if(this.seenCache.has(f)){if(l)return this.metrics?.onPublishDuplicateMsg(e),{recipients:[]};throw Error("PublishError.Duplicate")}let{tosend:u,tosendCount:h}=this.selectPeersToPublish(e),p=this.opts.emitSelf&&this.subscriptions.has(e),g=r?.allowPublishToZeroTopicPeers??this.opts.allowPublishToZeroTopicPeers;if(u.size===0&&!g&&!p)throw Error("PublishError.NoPeersSubscribedToTopic");this.seenCache.put(f),this.mcache.put({msgId:c,msgIdStr:f},o,!0),this.publishedMessageIds.put(f);let d=r?.batchPublish??this.opts.batchPublish,m=nt([o]);if(d)this.sendRpcInBatch(u,m);else for(let _ of u)this.sendRpc(_,m)||u.delete(_);let b=Date.now()-n;return this.metrics?.onPublishMsg(e,h,u.size,o.data!=null?o.data.length:0,b),p&&(u.add(this.components.peerId.toString()),super.dispatchEvent(new CustomEvent("gossipsub:message",{detail:{propagationSource:this.components.peerId,msgId:f,msg:a}})),super.dispatchEvent(new CustomEvent("message",{detail:a}))),{recipients:Array.from(u.values()).map(_=>ct(_))}}sendRpcInBatch(e,t){let r=ht.encode(t),n=fs.single(r);for(let i of e){let o=this.streamsOutbound.get(i);if(o==null){this.log(`Cannot send RPC to ${i} as there is no open stream to it available`),e.delete(i);continue}try{o.pushPrefixed(n)}catch(a){e.delete(i),this.log.error(`Cannot send rpc to ${i}`,a)}this.metrics?.onRpcSent(t,r.length)}}reportMessageValidationResult(e,t,r){let n;if(r===Be.Accept){if(n=this.mcache.validate(e),n!=null){let{message:o,originatingPeers:a}=n;this.score.deliverMessage(t,e,o.topic),this.forwardMessage(e,n.message,t,a)}}else if(n=this.mcache.remove(e),n!=null){let o=Ki(r),{message:a,originatingPeers:c}=n;this.score.rejectMessage(t,e,a.topic,o);for(let f of c)this.score.rejectMessage(f,e,a.topic,o)}let i=this.score.messageFirstSeenTimestampMs(e);this.metrics?.onReportValidation(n,r,i)}sendGraft(e,t){let n=nt([],{graft:[{topicID:t}]});this.sendRpc(e,n)}async sendPrune(e,t){let n=[await this.makePrune(e,t,this.opts.doPX,!0)],i=nt([],{prune:n});this.sendRpc(e,i)}sendRpc(e,t){let r=this.streamsOutbound.get(e);if(r==null)return this.log(`Cannot send RPC to ${e} as there is no open stream to it available`),!1;let n=this.control.get(e);n!=null&&(this.piggybackControl(e,t,n),this.control.delete(e));let i=this.gossip.get(e);i!=null&&(this.piggybackGossip(e,t,i),this.gossip.delete(e));let o=ht.encode(t);try{r.push(o)}catch(a){return this.log.error(`Cannot send rpc to ${e}`,a),n!=null&&this.control.set(e,n),i!=null&&this.gossip.set(e,i),!1}if(this.metrics?.onRpcSent(t,o.length),t.control?.graft!=null)for(let a of t.control?.graft)a.topicID!=null&&this.safeDispatchEvent("gossipsub:graft",{detail:{peerId:e,topic:a.topicID,direction:"outbound"}});if(t.control?.prune!=null)for(let a of t.control?.prune)a.topicID!=null&&this.safeDispatchEvent("gossipsub:prune",{detail:{peerId:e,topic:a.topicID,direction:"outbound"}});return!0}piggybackControl(e,t,r){let n=So(t);for(let i of r.graft)i.topicID!=null&&(this.mesh.get(i.topicID)?.has(e)??!1)&&n.control.graft.push(i);for(let i of r.prune)i.topicID!=null&&!(this.mesh.get(i.topicID)?.has(e)??!1)&&n.control.prune.push(i)}piggybackGossip(e,t,r){let n=So(t);n.control.ihave=r}async sendGraftPrune(e,t,r){let n=this.opts.doPX,i=!1;for(let[o,a]of e){let c=a.map(u=>({topicID:u})),f=[],l=t.get(o);l!=null&&(f=await Promise.all(l.map(async u=>this.makePrune(o,u,n&&!(r.get(o)??!1),i))),t.delete(o)),this.sendRpc(o,nt([],{graft:c,prune:f}))}for(let[o,a]of t){let c=await Promise.all(a.map(async f=>this.makePrune(o,f,n&&!(r.get(o)??!1),i)));this.sendRpc(o,nt([],{prune:c}))}}emitGossip(e){let t=this.mcache.getGossipIDs(new Set(e.keys()));for(let[r,n]of e)this.doEmitGossip(r,n,t.get(r)??[])}doEmitGossip(e,t,r){if(r.length===0||(it(r),r.length>5e3&&this.log("too many messages for gossip; will truncate IHAVE list (%d messages)",r.length),t.size===0))return;let n=this.opts.Dlazy,o=this.opts.gossipFactor*t.size,a=t;o>n&&(n=o),n>a.size?n=a.size:a=it(Array.from(a)).slice(0,n),a.forEach(c=>{let f=r;r.length>5e3&&(f=it(f.slice()).slice(0,5e3)),this.pushGossip(c,{topicID:e,messageIDs:f})})}flush(){for(let[e,t]of this.gossip.entries())this.gossip.delete(e),this.sendRpc(e,nt([],{ihave:t}));for(let[e,t]of this.control.entries()){this.control.delete(e);let r=nt([],{graft:t.graft,prune:t.prune});this.sendRpc(e,r)}}pushGossip(e,t){this.log("Add gossip to %s",e);let r=this.gossip.get(e)??[];this.gossip.set(e,r.concat(t))}async makePrune(e,t,r,n){if(this.score.prune(e,t),this.streamsOutbound.get(e)?.protocol===Ti)return{topicID:t,peers:[]};let i=n?this.opts.unsubcribeBackoff:this.opts.pruneBackoff,o=i/1e3;if(this.doAddBackoff(e,t,i),!r)return{topicID:t,peers:[],backoff:o};let a=this.getRandomGossipPeers(t,this.opts.prunePeers,f=>f!==e&&this.score.score(f)>=0),c=await Promise.all(Array.from(a).map(async f=>{let l=ct(f),u;try{u=await this.components.peerStore.get(l)}catch(h){if(h.code!=="ERR_NOT_FOUND")throw h}return{peerID:l.toBytes(),signedPeerRecord:u?.peerRecordEnvelope}}));return{topicID:t,peers:c,backoff:o}}runHeartbeat=()=>{let e=this.metrics?.heartbeatDuration.startTimer();this.heartbeat().catch(t=>{this.log("Error running heartbeat",t)}).finally(()=>{if(e?.(),this.status.code===Ue.started){clearTimeout(this.status.heartbeatTimeout);let t=this.opts.heartbeatInterval-(Date.now()-this.status.hearbeatStartMs)%this.opts.heartbeatInterval;t{let d=a.get(g);return d===void 0&&(d=this.score.score(g),a.set(g,d)),d},f=new Map,l=new Map,u=new Map;this.clearBackoff(),this.peerhave.clear(),this.metrics?.cacheSize.set({cache:"iasked"},this.iasked.size),this.iasked.clear(),this.applyIwantPenalties(),this.heartbeatTicks%this.opts.directConnectTicks===0&&await this.directConnect(),this.fastMsgIdCache?.prune(),this.seenCache.prune(),this.gossipTracer.prune(),this.publishedMessageIds.prune();let h=new Map;this.mesh.forEach((g,d)=>{let m=this.topics.get(d),b=new Set,_=new Set;if(h.set(d,_),m!=null){let y=it(Array.from(m)),x=this.backoff.get(d);for(let E of y){let B=this.streamsOutbound.get(E);if(B!=null&&this.multicodecs.includes(B.protocol)&&!g.has(E)&&!this.direct.has(E)){let D=c(E);(x==null||!x.has(E))&&D>=0&&b.add(E),D>=this.opts.scoreThresholds.gossipThreshold&&_.add(E)}}}let w=(y,x)=>{this.log("HEARTBEAT: Remove mesh link to %s in %s",y,d),this.addBackoff(y,d),g.delete(y),c(y)>=this.opts.scoreThresholds.gossipThreshold&&_.add(y),this.metrics?.onRemoveFromMesh(d,x,1);let E=l.get(y);E==null?l.set(y,[d]):E.push(d)},A=(y,x)=>{this.log("HEARTBEAT: Add mesh link to %s in %s",y,d),this.score.graft(y,d),g.add(y),_.delete(y),this.metrics?.onAddToMesh(d,x,1);let E=f.get(y);E==null?f.set(y,[d]):E.push(d)};if(g.forEach(y=>{let x=c(y);x<0&&(this.log("HEARTBEAT: Prune peer %s with negative score: score=%d, topic=%s",y,x,d),w(y,ze.BadScore),u.set(y,!0))}),g.size{A(E,Ae.NotEnough)})}if(g.size>r){let y=Array.from(g);y.sort((E,B)=>c(B)-c(E)),y=y.slice(0,n).concat(it(y.slice(n)));let x=0;if(y.slice(0,e).forEach(E=>{(this.outbound.get(E)??!1)&&x++}),x{let N=y[D];for(let L=D;L>0;L--)y[L]=y[L-1];y[0]=N};if(x>0){let D=x;for(let N=1;N0;N++)(this.outbound.get(y[N])??!1)&&(E(N),D--)}let B=e-x;for(let D=e;D0;D++)(this.outbound.get(y[D])??!1)&&(E(D),B--)}y.slice(e).forEach(E=>{w(E,ze.Excess)})}if(g.size>=t){let y=0;if(g.forEach(x=>{(this.outbound.get(x)??!1)&&y++}),ythis.outbound.get(B)===!0).forEach(B=>{A(B,Ae.Outbound)})}}if(this.heartbeatTicks%this.opts.opportunisticGraftTicks===0&&g.size>1){let y=Array.from(g).sort((B,D)=>c(B)-c(D)),x=Math.floor(g.size/2),E=c(y[x]);if(Ec(N)>E);for(let N of D)this.log("HEARTBEAT: Opportunistically graft peer %s on topic %s",N,d),A(N,Ae.Opportunistic)}}});let p=Date.now();this.fanoutLastpub.forEach((g,d)=>{g+o{let m=this.topics.get(d);g.forEach(A=>{(!(m?.has(A)??!1)||c(A)=this.opts.scoreThresholds.publishThreshold&&_.push(y),E>=this.opts.scoreThresholds.gossipThreshold&&w.add(y)}}}if(g.size{g.add(y),w?.delete(y)})}}),this.emitGossip(h),await this.sendGraftPrune(f,l,u),this.flush(),this.mcache.shift(),this.dispatchEvent(new CustomEvent("gossipsub:heartbeat"))}getRandomGossipPeers(e,t,r=()=>!0){let n=this.topics.get(e);if(n==null)return new Set;let i=[];return n.forEach(o=>{let a=this.streamsOutbound.get(o);a!=null&&this.multicodecs.includes(a.protocol)&&r(o)&&i.push(o)}),i=it(i),t>0&&i.length>t&&(i=i.slice(0,t)),new Set(i)}onScrapeMetrics(e){e.mcacheSize.set(this.mcache.size),e.mcacheNotValidatedCount.set(this.mcache.notValidatedCount),e.cacheSize.set({cache:"direct"},this.direct.size),e.cacheSize.set({cache:"seenCache"},this.seenCache.size),e.cacheSize.set({cache:"fastMsgIdCache"},this.fastMsgIdCache?.size??0),e.cacheSize.set({cache:"publishedMessageIds"},this.publishedMessageIds.size),e.cacheSize.set({cache:"mcache"},this.mcache.size),e.cacheSize.set({cache:"score"},this.score.size),e.cacheSize.set({cache:"gossipTracer.promises"},this.gossipTracer.size),e.cacheSize.set({cache:"gossipTracer.requests"},this.gossipTracer.requestMsByMsgSize),e.cacheSize.set({cache:"topics"},this.topics.size),e.cacheSize.set({cache:"subscriptions"},this.subscriptions.size),e.cacheSize.set({cache:"mesh"},this.mesh.size),e.cacheSize.set({cache:"fanout"},this.fanout.size),e.cacheSize.set({cache:"peers"},this.peers.size),e.cacheSize.set({cache:"streamsOutbound"},this.streamsOutbound.size),e.cacheSize.set({cache:"streamsInbound"},this.streamsInbound.size),e.cacheSize.set({cache:"acceptFromWhitelist"},this.acceptFromWhitelist.size),e.cacheSize.set({cache:"gossip"},this.gossip.size),e.cacheSize.set({cache:"control"},this.control.size),e.cacheSize.set({cache:"peerhave"},this.peerhave.size),e.cacheSize.set({cache:"outbound"},this.outbound.size);let t=0,r=Date.now();e.connectedPeersBackoffSec.reset();for(let a of this.backoff.values()){t+=a.size;for(let[c,f]of a.entries())this.peers.has(c)&&e.connectedPeersBackoffSec.observe(Math.max(0,f-r)/1e3)}e.cacheSize.set({cache:"backoff"},t);for(let[a,c]of this.topics)e.topicPeersCount.set({topicStr:a},c.size);for(let[a,c]of this.mesh)e.meshPeerCounts.set({topicStr:a},c.size);let n=[],i=new Map;e.behaviourPenalty.reset();for(let a of this.peers.keys()){let c=this.score.score(a);n.push(c),i.set(a,c),e.behaviourPenalty.observe(this.score.peerStats.get(a)?.behaviourPenalty??0)}e.registerScores(n,this.opts.scoreThresholds),e.registerScorePerMesh(this.mesh,i);let o=za(this.peers.keys(),this.score.peerStats,this.score.params,this.score.peerIPs,e.topicStrToLabel);e.registerScoreWeights(o)}tagMeshPeer=e=>{let{peerId:t,topic:r}=e.detail;this.components.peerStore.merge(ct(t),{tags:{[r]:{value:100}}}).catch(n=>{this.log.error("Error tagging peer %s with topic %s",t,r,n)})};untagMeshPeer=e=>{let{peerId:t,topic:r}=e.detail;this.components.peerStore.merge(ct(t),{tags:{[r]:void 0}}).catch(n=>{this.log.error("Error untagging peer %s with topic %s",t,r,n)})}};function Ep(s={}){return e=>new qn(e,s)}return tu(_p);})(); -+`)}`:`${t} :`}};Ga=Ct;M.Constructed=Ga;Ct.NAME="CONSTRUCTED";var Pr=class extends me{fromBER(e,t,r){return t}toBER(e){return We}};Pr.override="EndOfContentValueBlock";var qa,Dr=class extends he{constructor(e={}){super(e,Pr),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};qa=Dr;M.EndOfContent=qa;Dr.NAME=zs;var Ka,ps=class extends he{constructor(e={}){super(e,me),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){let r=new ArrayBuffer(2);if(!e){let n=new Uint8Array(r);n[0]=5,n[1]=0}return t&&t.write(r),r}onAsciiEncoding(){return`${this.constructor.NAME}`}};Ka=ps;M.Null=Ka;ps.NAME="NULL";var Cr=class extends gt(me){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=H.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,r){let n=H.BufferSourceConverter.toUint8Array(e);return pt(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Qi.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Cr.NAME="BooleanValueBlock";var Wa,Nr=class extends he{constructor(e={}){super(e,Cr),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Wa=Nr;M.Boolean=Wa;Nr.NAME="BOOLEAN";var Rr=class extends gt(Xe){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=Xe.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let i=0;i0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return n}let i=H.BufferSourceConverter.toUint8Array(e);if(!pt(this,i,t,r))return-1;let o=i.subarray(t,t+r);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=hn(a,0,a.byteLength);c.offset!==-1&&c.offset===r-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+r}toBER(e,t){if(this.isConstructed)return Xe.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return We;let r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};Ur.NAME="BitStringValueBlock";var ja,gs=class extends he{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},Ur),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ct.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let n of t)e.push(n.toString(2).padStart(8,"0"));let r=e.join("");return`${this.constructor.NAME} : ${r.substring(0,r.length-this.valueBlock.unusedBits)}`}}};ja=gs;M.BitString=ja;gs.NAME=Ha;var Za;function Ef(s,e){let t=new Uint8Array([0]),r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,f=0,u=c=0;l--,h++){switch(!0){case h=i.length:i=Br(new Uint8Array([f%10]),i);break;default:i[o-h]=f%10}}return t[0]>0&&(i=Br(t,i)),i}function Fa(s){if(s>=Hs.length)for(let e=Hs.length;e<=s;e++){let t=new Uint8Array([0]),r=Hs[e-1].slice(0);for(let n=r.length-1;n>=0;n--){let i=new Uint8Array([(r[n]<<1)+t[0]]);t[0]=i[0]/10,r[n]=i[0]%10}t[0]>0&&(r=Br(t,r)),Hs.push(r)}return Hs[s]}function Sf(s,e){let t=0,r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),o=i.length-1,a=n.slice(0),c=a.length-1,f,u=0;for(let h=c;h>=0;h--,u++)switch(f=i[o-u]-a[c-u]-t,!0){case f<0:t=1,i[o-u]=f+10;break;default:t=0,i[o-u]=f}if(t>0)for(let h=o-c+1;h>=0;h--,u++)if(f=i[o-u]-t,f<0)t=1,i[o-u]=f+10;else{t=0,i[o-u]=f;break}return i.slice()}var Gs=class extends gt(me){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Qi.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Ra(e))}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){let i=this.fromBER(e,t,r);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):n!==0&&o.length1&&(n=o.length+1),this.valueHexView=o.subarray(n-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let r=new Uint8Array(this.valueHexView.length+1);r[0]=0,r.set(t,1),this.valueHexView=r}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,r){let n=super.fromBER(e,t,r);return n===-1||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),r=0,n,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){n=i[c];for(let f=0;f<8;f++){if((n&1)===1)switch(r){case e:t=Sf(Fa(r),t),o="-";break;default:t=Ef(t,Fa(r))}r++,n>>=1}}for(let c=0;c0;){let i=new qs;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i)}return n}toBER(e){let t=[];for(let r=0;rNumber.MAX_SAFE_INTEGER){Ir();let a=BigInt(n);o.valueBigInt=a}else if(o.valueDec=parseInt(n,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(r!==-1)}toString(){let e="",t=!1;for(let r=0;r0;){let i=new Ks;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i)}return n}toBER(e,t){let r=[];for(let n=0;n4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)r[n*4+c+a]=o[c]}this.valueBlock.value=e}};jr.NAME="UniversalStringValueBlock";var nc,Zr=class extends jr{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};nc=Zr;M.UniversalString=nc;Zr.NAME="UniversalString";var ic,Jr=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};ic=Jr;M.NumericString=ic;Jr.NAME="NumericString";var oc,Xr=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};oc=Xr;M.PrintableString=oc;Xr.NAME="PrintableString";var ac,Yr=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};ac=Yr;M.TeletexString=ac;Yr.NAME="TeletexString";var cc,Qr=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};cc=Qr;M.VideotexString=cc;Qr.NAME="VideotexString";var lc,en=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};lc=en;M.IA5String=lc;en.NAME="IA5String";var uc,tn=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};uc=tn;M.GraphicString=uc;tn.NAME="GraphicString";var hc,Ws=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};hc=Ws;M.VisibleString=hc;Ws.NAME="VisibleString";var fc,sn=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};fc=sn;M.GeneralString=fc;sn.NAME="GeneralString";var dc,rn=class extends Se{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};dc=rn;M.CharacterString=dc;rn.NAME="CharacterString";var pc,$s=class extends Ws{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let n=0;n=50?this.year=1900+n:this.year=2e3+n,this.month=parseInt(r[2],10),this.day=parseInt(r[3],10),this.hour=parseInt(r[4],10),this.minute=parseInt(r[5],10),this.second=parseInt(r[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=Ne(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=Ne(this.month,2),t[2]=Ne(this.day,2),t[3]=Ne(this.hour,2),t[4]=Ne(this.minute,2),t[5]=Ne(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};pc=$s;M.UTCTime=pc;$s.NAME="UTCTime";var gc,nn=class extends $s{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,r="",n="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")r=e.substring(0,e.length-1),t=!0;else{let h=new Number(e[e.length-1]);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");r=e}if(t){if(r.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(r.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let h=1,l=r.indexOf("+"),d="";if(l===-1&&(l=r.indexOf("-"),h=-1),l!==-1){if(d=r.substring(l+1),r=r.substring(0,l),d.length!==2&&d.length!==4)throw new Error("Wrong input string for conversion");let m=parseInt(d.substring(0,2),10);if(isNaN(m.valueOf()))throw new Error("Wrong input string for conversion");if(a=h*m,d.length===4){if(m=parseInt(d.substring(2,4),10),isNaN(m.valueOf()))throw new Error("Wrong input string for conversion");c=h*m}}}let f=r.indexOf(".");if(f===-1&&(f=r.indexOf(",")),f!==-1){let h=new Number(`0${r.substring(f)}`);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");i=h.valueOf(),n=r.substring(0,f)}else n=r;switch(!0){case n.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case n.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let h=60*i;this.minute=Math.floor(h),h=60*(h-this.minute),this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h)}break;case n.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let h=60*i;this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h)}break;case n.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let h=1e3*i;this.millisecond=Math.floor(h)}break;default:throw new Error("Wrong input string for conversion")}let u=o.exec(n);if(u===null)throw new Error("Wrong input string for conversion");for(let h=1;h0&&(e=`0${e}`);let t=e.length/2,r=new Uint8Array(t),n=0,i=0;for(;n0&&(r=`0${r}`),e.push(r)}),BigInt("0x"+e.join(""))}function Ac(s){let e=Ic(s);return kc(e)}function oo(s){let e=_c(s);if(ro(e)>pn)throw new Yt("Key size is too large");let t=fs(Je.encode({Type:ie.RSA,Data:s})),r=He(no,t);return new ys(e,r)}function kc(s){if(ro(s)>pn)throw new ce("Key size is too large");let e=Mc(s),t=fs(Je.encode({Type:ie.RSA,Data:io(e.publicKey)})),r=He(no,t);return new Js(e.privateKey,new ys(e.publicKey,r))}async function Tc(s){if(s>pn)throw new ce("Key size is too large");let e=await Ec(s),t=fs(Je.encode({Type:ie.RSA,Data:io(e.publicKey)})),r=He(no,t);return new Js(e.privateKey,new ys(e.publicKey,r))}function Mc(s){if(s==null)throw new ce("Missing key parameter");return{privateKey:s,publicKey:{kty:s.kty,n:s.n,e:s.e}}}var gn=class extends os{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Qo(e);let r=Cs(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let o=0;onew gn(s,e).update(t).digest();ao.create=(s,e)=>new gn(s,e);function Pc(s){s.lowS!==void 0&&Ge("lowS",s.lowS),s.prehash!==void 0&&Ge("prehash",s.prehash)}function Af(s){let e=Ls(s);Ze(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:r,a:n}=e;if(t){if(!r.eql(n,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:kf,hexToBytes:Tf}=hr,mt={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(s,e)=>{let{Err:t}=mt;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let r=e.length/2,n=Ot(r);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let i=r>127?Ot(n.length/2|128):"";return`${Ot(s)}${i}${n}${e}`},decode(s,e){let{Err:t}=mt,r=0;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[r++]!==s)throw new t("tlv.decode: wrong tlv");let n=e[r++],i=!!(n&128),o=0;if(!i)o=n;else{let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let f=e.subarray(r,r+c);if(f.length!==c)throw new t("tlv.decode: length bytes not complete");if(f[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of f)o=o<<8|u;if(r+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(r,r+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(s){let{Err:e}=mt;if(s{let S=g.toAffine();return ct(Uint8Array.from([4]),t.toBytes(S.x),t.toBytes(S.y))}),i=e.fromBytes||(p=>{let g=p.subarray(1),b=t.fromBytes(g.subarray(0,t.BYTES)),S=t.fromBytes(g.subarray(t.BYTES,2*t.BYTES));return{x:b,y:S}});function o(p){let{a:g,b}=e,S=t.sqr(p),y=t.mul(S,p);return t.add(t.add(y,t.mul(p,g)),b)}if(!t.eql(t.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(p){return Ns(p,le,e.n)}function c(p){let{allowedPrivateKeyLengths:g,nByteLength:b,wrapPrivateKey:S,n:y}=e;if(g&&typeof p!="bigint"){if(St(p)&&(p=ot(p)),typeof p!="string"||!g.includes(p.length))throw new Error("Invalid key");p=p.padStart(b*2,"0")}let I;try{I=typeof p=="bigint"?p:at(ee("private key",p,b))}catch{throw new Error(`private key must be ${b} bytes, hex or bigint, not ${typeof p}`)}return S&&(I=W(I,y)),Te("private key",I,le,y),I}function f(p){if(!(p instanceof l))throw new Error("ProjectivePoint expected")}let u=qt((p,g)=>{let{px:b,py:S,pz:y}=p;if(t.eql(y,t.ONE))return{x:b,y:S};let I=p.is0();g==null&&(g=I?t.ONE:t.inv(y));let v=t.mul(b,g),B=t.mul(S,g),x=t.mul(y,g);if(I)return{x:t.ZERO,y:t.ZERO};if(!t.eql(x,t.ONE))throw new Error("invZ was invalid");return{x:v,y:B}}),h=qt(p=>{if(p.is0()){if(e.allowInfinityPoint&&!t.is0(p.py))return;throw new Error("bad point: ZERO")}let{x:g,y:b}=p.toAffine();if(!t.isValid(g)||!t.isValid(b))throw new Error("bad point: x or y not FE");let S=t.sqr(b),y=o(g);if(!t.eql(S,y))throw new Error("bad point: equation left != right");if(!p.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(g,b,S){if(this.px=g,this.py=b,this.pz=S,g==null||!t.isValid(g))throw new Error("x required");if(b==null||!t.isValid(b))throw new Error("y required");if(S==null||!t.isValid(S))throw new Error("z required");Object.freeze(this)}static fromAffine(g){let{x:b,y:S}=g||{};if(!g||!t.isValid(b)||!t.isValid(S))throw new Error("invalid affine point");if(g instanceof l)throw new Error("projective point not allowed");let y=I=>t.eql(I,t.ZERO);return y(b)&&y(S)?l.ZERO:new l(b,S,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let b=t.invertBatch(g.map(S=>S.pz));return g.map((S,y)=>S.toAffine(b[y])).map(l.fromAffine)}static fromHex(g){let b=l.fromAffine(i(ee("pointHex",g)));return b.assertValidity(),b}static fromPrivateKey(g){return l.BASE.multiply(c(g))}static msm(g,b){return pr(l,r,g,b)}_setWindowSize(g){m.setWindowSize(this,g)}assertValidity(){h(this)}hasEvenY(){let{y:g}=this.toAffine();if(t.isOdd)return!t.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){f(g);let{px:b,py:S,pz:y}=this,{px:I,py:v,pz:B}=g,x=t.eql(t.mul(b,B),t.mul(I,y)),_=t.eql(t.mul(S,B),t.mul(v,y));return x&&_}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:g,b}=e,S=t.mul(b,Dc),{px:y,py:I,pz:v}=this,B=t.ZERO,x=t.ZERO,_=t.ZERO,k=t.mul(y,y),z=t.mul(I,I),L=t.mul(v,v),U=t.mul(y,I);return U=t.add(U,U),_=t.mul(y,v),_=t.add(_,_),B=t.mul(g,_),x=t.mul(S,L),x=t.add(B,x),B=t.sub(z,x),x=t.add(z,x),x=t.mul(B,x),B=t.mul(U,B),_=t.mul(S,_),L=t.mul(g,L),U=t.sub(k,L),U=t.mul(g,U),U=t.add(U,_),_=t.add(k,k),k=t.add(_,k),k=t.add(k,L),k=t.mul(k,U),x=t.add(x,k),L=t.mul(I,v),L=t.add(L,L),k=t.mul(L,U),B=t.sub(B,k),_=t.mul(L,z),_=t.add(_,_),_=t.add(_,_),new l(B,x,_)}add(g){f(g);let{px:b,py:S,pz:y}=this,{px:I,py:v,pz:B}=g,x=t.ZERO,_=t.ZERO,k=t.ZERO,z=e.a,L=t.mul(e.b,Dc),U=t.mul(b,I),se=t.mul(S,v),T=t.mul(y,B),P=t.add(b,S),E=t.add(I,v);P=t.mul(P,E),E=t.add(U,se),P=t.sub(P,E),E=t.add(b,y);let w=t.add(I,B);return E=t.mul(E,w),w=t.add(U,T),E=t.sub(E,w),w=t.add(S,y),x=t.add(v,B),w=t.mul(w,x),x=t.add(se,T),w=t.sub(w,x),k=t.mul(z,E),x=t.mul(L,T),k=t.add(x,k),x=t.sub(se,k),k=t.add(se,k),_=t.mul(x,k),se=t.add(U,U),se=t.add(se,U),T=t.mul(z,T),E=t.mul(L,E),se=t.add(se,T),T=t.sub(U,T),T=t.mul(z,T),E=t.add(E,T),U=t.mul(se,E),_=t.add(_,U),U=t.mul(w,E),x=t.mul(P,x),x=t.sub(x,U),U=t.mul(P,se),k=t.mul(w,k),k=t.add(k,U),new l(x,_,k)}subtract(g){return this.add(g.negate())}is0(){return this.equals(l.ZERO)}wNAF(g){return m.wNAFCached(this,g,l.normalizeZ)}multiplyUnsafe(g){Te("scalar",g,bt,e.n);let b=l.ZERO;if(g===bt)return b;if(g===le)return this;let{endo:S}=e;if(!S)return m.unsafeLadder(this,g);let{k1neg:y,k1:I,k2neg:v,k2:B}=S.splitScalar(g),x=b,_=b,k=this;for(;I>bt||B>bt;)I&le&&(x=x.add(k)),B&le&&(_=_.add(k)),k=k.double(),I>>=le,B>>=le;return y&&(x=x.negate()),v&&(_=_.negate()),_=new l(t.mul(_.px,S.beta),_.py,_.pz),x.add(_)}multiply(g){let{endo:b,n:S}=e;Te("scalar",g,le,S);let y,I;if(b){let{k1neg:v,k1:B,k2neg:x,k2:_}=b.splitScalar(g),{p:k,f:z}=this.wNAF(B),{p:L,f:U}=this.wNAF(_);k=m.constTimeNegate(v,k),L=m.constTimeNegate(x,L),L=new l(t.mul(L.px,b.beta),L.py,L.pz),y=k.add(L),I=z.add(U)}else{let{p:v,f:B}=this.wNAF(g);y=v,I=B}return l.normalizeZ([y,I])[0]}multiplyAndAddUnsafe(g,b,S){let y=l.BASE,I=(B,x)=>x===bt||x===le||!B.equals(y)?B.multiplyUnsafe(x):B.multiply(x),v=I(this,b).add(I(g,S));return v.is0()?void 0:v}toAffine(g){return u(this,g)}isTorsionFree(){let{h:g,isTorsionFree:b}=e;if(g===le)return!0;if(b)return b(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:b}=e;return g===le?this:b?b(l,this):this.multiplyUnsafe(e.h)}toRawBytes(g=!0){return Ge("isCompressed",g),this.assertValidity(),n(l,this,g)}toHex(g=!0){return Ge("isCompressed",g),ot(this.toRawBytes(g))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let d=e.nBitLength,m=dr(l,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Pf(s){let e=Ls(s);return Ze(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Cc(s){let e=Pf(s),{Fp:t,n:r}=e,n=t.BYTES+1,i=2*t.BYTES+1;function o(T){return W(T,r)}function a(T){return fr(T,r)}let{ProjectivePoint:c,normPrivateKeyToScalar:f,weierstrassEquation:u,isWithinCurveOrder:h}=Mf({...e,toBytes(T,P,E){let w=P.toAffine(),A=t.toBytes(w.x),D=ct;return Ge("isCompressed",E),E?D(Uint8Array.from([P.hasEvenY()?2:3]),A):D(Uint8Array.from([4]),A,t.toBytes(w.y))},fromBytes(T){let P=T.length,E=T[0],w=T.subarray(1);if(P===n&&(E===2||E===3)){let A=at(w);if(!Ns(A,le,t.ORDER))throw new Error("Point is not on curve");let D=u(A),C;try{C=t.sqrt(D)}catch(O){let V=O instanceof Error?": "+O.message:"";throw new Error("Point is not on curve"+V)}let N=(C&le)===le;return(E&1)===1!==N&&(C=t.neg(C)),{x:A,y:C}}else if(P===i&&E===4){let A=t.fromBytes(w.subarray(0,t.BYTES)),D=t.fromBytes(w.subarray(t.BYTES,2*t.BYTES));return{x:A,y:D}}else throw new Error(`Point of length ${P} was invalid. Expected ${n} compressed bytes or ${i} uncompressed bytes`)}}),l=T=>ot(It(T,e.nByteLength));function d(T){let P=r>>le;return T>P}function m(T){return d(T)?o(-T):T}let p=(T,P,E)=>at(T.slice(P,E));class g{constructor(P,E,w){this.r=P,this.s=E,this.recovery=w,this.assertValidity()}static fromCompact(P){let E=e.nByteLength;return P=ee("compactSignature",P,E*2),new g(p(P,0,E),p(P,E,2*E))}static fromDER(P){let{r:E,s:w}=mt.toSig(ee("DER",P));return new g(E,w)}assertValidity(){Te("r",this.r,le,r),Te("s",this.s,le,r)}addRecoveryBit(P){return new g(this.r,this.s,P)}recoverPublicKey(P){let{r:E,s:w,recovery:A}=this,D=B(ee("msgHash",P));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let C=A===2||A===3?E+e.n:E;if(C>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let N=A&1?"03":"02",F=c.fromHex(N+l(C)),O=a(C),V=o(-D*O),K=o(w*O),j=c.BASE.multiplyAndAddUnsafe(F,V,K);if(!j)throw new Error("point at infinify");return j.assertValidity(),j}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return zt(this.toDERHex())}toDERHex(){return mt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return zt(this.toCompactHex())}toCompactHex(){return l(this.r)+l(this.s)}}let b={isValidPrivateKey(T){try{return f(T),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let T=hi(e.n);return fa(e.randomBytes(T),e.n)},precompute(T=8,P=c.BASE){return P._setWindowSize(T),P.multiply(BigInt(3)),P}};function S(T,P=!0){return c.fromPrivateKey(T).toRawBytes(P)}function y(T){let P=St(T),E=typeof T=="string",w=(P||E)&&T.length;return P?w===n||w===i:E?w===2*n||w===2*i:T instanceof c}function I(T,P,E=!0){if(y(T))throw new Error("first arg must be private key");if(!y(P))throw new Error("second arg must be public key");return c.fromHex(P).multiply(f(T)).toRawBytes(E)}let v=e.bits2int||function(T){let P=at(T),E=T.length*8-e.nBitLength;return E>0?P>>BigInt(E):P},B=e.bits2int_modN||function(T){return o(v(T))},x=Rs(e.nBitLength);function _(T){return Te(`num < 2^${e.nBitLength}`,T,bt,x),It(T,e.nByteLength)}function k(T,P,E=z){if(["recovered","canonical"].some(ae=>ae in E))throw new Error("sign() legacy options not supported");let{hash:w,randomBytes:A}=e,{lowS:D,prehash:C,extraEntropy:N}=E;D==null&&(D=!0),T=ee("msgHash",T),Pc(E),C&&(T=ee("prehashed msgHash",w(T)));let F=B(T),O=f(P),V=[_(O),_(F)];if(N!=null&&N!==!1){let ae=N===!0?A(t.BYTES):N;V.push(ee("extraEntropy",ae))}let K=ct(...V),j=F;function oe(ae){let ue=v(ae);if(!h(ue))return;let we=a(ue),re=c.BASE.multiply(ue).toAffine(),Ae=o(re.x);if(Ae===bt)return;let st=o(we*o(j+Ae*O));if(st===bt)return;let ks=(re.x===Ae?0:2)|Number(re.y&le),Ts=st;return D&&d(st)&&(Ts=m(st),ks^=1),new g(Ae,Ts,ks)}return{seed:K,k2sig:oe}}let z={lowS:e.lowS,prehash:!1},L={lowS:e.lowS,prehash:!1};function U(T,P,E=z){let{seed:w,k2sig:A}=k(T,P,E),D=e;return ai(D.hash.outputLen,D.nByteLength,D.hmac)(w,A)}c.BASE._setWindowSize(8);function se(T,P,E,w=L){let A=T;if(P=ee("msgHash",P),E=ee("publicKey",E),"strict"in w)throw new Error("options.strict was renamed to lowS");Pc(w);let{lowS:D,prehash:C}=w,N,F;try{if(typeof A=="string"||St(A))try{N=g.fromDER(A)}catch(re){if(!(re instanceof mt.Err))throw re;N=g.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:re,s:Ae}=A;N=new g(re,Ae)}else throw new Error("PARSE");F=c.fromHex(E)}catch(re){if(re.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(D&&N.hasHighS())return!1;C&&(P=e.hash(P));let{r:O,s:V}=N,K=B(P),j=a(V),oe=o(K*j),ae=o(O*j),ue=c.BASE.multiplyAndAddUnsafe(F,oe,ae)?.toAffine();return ue?o(ue.x)===O:!1}return{CURVE:e,getPublicKey:S,getSharedSecret:I,sign:U,verify:se,ProjectivePoint:c,Signature:g,utils:b}}function Df(s){return{hash:s,hmac:(e,...t)=>ao(s,e,Qn(...t)),randomBytes:as}}function Nc(s,e){let t=r=>Cc({...s,...Df(r)});return Object.freeze({...t(e),create:t})}var Uc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Rc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Cf=BigInt(1),co=BigInt(2),Lc=(s,e)=>(s+e/co)/e;function Nf(s){let e=Uc,t=BigInt(3),r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=s*s*s%e,u=f*f*s%e,h=J(u,t,e)*u%e,l=J(h,t,e)*u%e,d=J(l,co,e)*f%e,m=J(d,n,e)*d%e,p=J(m,i,e)*m%e,g=J(p,a,e)*p%e,b=J(g,c,e)*g%e,S=J(b,a,e)*p%e,y=J(S,t,e)*u%e,I=J(y,o,e)*m%e,v=J(I,r,e)*f%e,B=J(v,co,e);if(!lo.eql(lo.sqr(B),s))throw new Error("Cannot find square root");return B}var lo=_t(Uc,void 0,void 0,{sqrt:Nf}),Zt=Nc({a:BigInt(0),b:BigInt(7),Fp:lo,n:Rc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:s=>{let e=Rc,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Cf*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=Lc(i*s,e),c=Lc(-r*s,e),f=W(s-a*t-c*n,e),u=W(-a*r-c*i,e),h=f>o,l=u>o;if(h&&(f=e-f),l&&(u=e-u),f>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+s);return{k1neg:h,k1:f,k2neg:l,k2:u}}}},fs),M0=BigInt(0);var P0=Zt.ProjectivePoint;function Rt(s,e){e==null&&(e=s.reduce((n,i)=>n+i.length,0));let t=de(e),r=0;for(let n of s)t.set(n,r),r+=n.length;return t}function Fc(s){return s==null?!1:typeof s.then=="function"&&typeof s.catch=="function"&&typeof s.finally=="function"}function Vc(s,e,t){let r=Tt.digest(t instanceof Uint8Array?t:t.subarray());if(Fc(r))return r.then(({digest:n})=>Zt.verify(e,n,s)).catch(n=>{throw new js(String(n))});try{return Zt.verify(e,r.digest,s)}catch(n){throw new js(String(n))}}var mn=class{type="secp256k1";raw;_key;constructor(e){this._key=Oc(e),this.raw=Hc(this._key)}toMultihash(){return nt.digest(At(this))}toCID(){return ke.createV1(114,this.toMultihash())}toString(){return te.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ue(this.raw,e.raw)}verify(e,t){return Vc(this._key,t,e)}};function uo(s){return new mn(s)}function Hc(s){return Zt.ProjectivePoint.fromHex(s).toRawBytes(!0)}function Oc(s){try{return Zt.ProjectivePoint.fromHex(s),s}catch(e){throw new Yt(String(e))}}function Xs(s){let{Type:e,Data:t}=Je.decode(s),r=t??new Uint8Array;switch(e){case ie.RSA:return oo(r);case ie.Ed25519:return mi(r);case ie.secp256k1:return uo(r);default:throw new Qt}}function zc(s){let{Type:e,Data:t}=Je.decode(s.digest),r=t??new Uint8Array;switch(e){case ie.Ed25519:return mi(r);case ie.secp256k1:return uo(r);default:throw new Qt}}function At(s){return Je.encode({Type:ie[s.type],Data:s.raw})}var Gc=Symbol.for("nodejs.util.inspect.custom"),Rf=114,Ys=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Gn]=!0;toString(){return this.string==null&&(this.string=te.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return ke.createV1(Rf,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ue(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Ue(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Gc](){return`PeerId(${this.toString()})`}},bn=class extends Ys{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},yn=class extends Ys{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},wn=class extends Ys{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Lf=2336,vn=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=nt.digest(X(this.url))}[Gc](){return`PeerId(${this.url})`}[Gn]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return ke.createV1(Lf,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=$(e)),e.toString()===this.toString())}};function Lt(s,e){let t;if(s.charAt(0)==="1"||s.charAt(0)==="Q")t=Oe(te.decode(`z${s}`));else{if(e==null)throw new ce('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Oe(e.decode(s))}return Qs(t)}function Qs(s){if(Ff(s))return new bn({multihash:s});if(Uf(s))try{let e=zc(s);if(e.type==="Ed25519")return new yn({multihash:s,publicKey:e});if(e.type==="secp256k1")return new wn({multihash:s,publicKey:e})}catch{let t=$(s.digest);return new vn(new URL(t))}throw new nr("Supplied PeerID Multihash is invalid")}function Uf(s){return s.code===nt.code}function Ff(s){return s.code===Tt.code}var Kc=Symbol.for("@achingbrain/uint8arraylist");function qc(s,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let r of s){let n=t+r.byteLength;if(e0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let r of e)if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.push(r);else if(xn(r))t+=r.byteLength,this.bufs.push(...r.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let r of e.reverse())if(r instanceof Uint8Array)t+=r.byteLength,this.bufs.unshift(r);else if(xn(r))t+=r.byteLength,this.bufs.unshift(...r.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=qc(this.bufs,e);return t.buf[t.index]}set(e,t){let r=qc(this.bufs,e);r.buf[r.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let r=0;r0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:r,length:n}=this._subList(e,t);return Rt(r,n)}subarray(e,t){let{bufs:r,length:n}=this._subList(e,t);return r.length===1?r[0]:Rt(r,n)}sublist(e,t){let{bufs:r,length:n}=this._subList(e,t),i=new s;return i.length=n,i.bufs=[...r],i}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let r=[],n=0;for(let i=0;i=c)continue;let f=e>=a&&ea&&t<=c;if(f&&u){if(e===a&&t===c){r.push(o);break}let h=e-a;r.push(o.subarray(h,h+(t-e)));break}if(f){if(e===0){r.push(o);continue}r.push(o.subarray(e-a));continue}if(u){if(t===c){r.push(o);break}r.push(o.subarray(0,t-a));break}r.push(o)}return{bufs:r,length:t-e}}indexOf(e,t=0){if(!xn(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let r=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let n=r.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let h=0;h=0;l--){let d=this.get(h+l);if(r[l]!==d){u=Math.max(1,l-a[d]);break}}if(u===0)return h}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let r=de(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt8(0,t),this.write(r,e)}getInt16(e,t){let r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt16(0,t)}setInt16(e,t,r){let n=lt(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,t,r),this.write(n,e)}getInt32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt32(0,t)}setInt32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,t,r),this.write(n,e)}getBigInt64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigInt64(0,t)}setBigInt64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,t,r),this.write(n,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let r=de(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint8(0,t),this.write(r,e)}getUint16(e,t){let r=this.subarray(e,e+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,t)}setUint16(e,t,r){let n=lt(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,t,r),this.write(n,e)}getUint32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,t)}setUint32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,t,r),this.write(n,e)}getBigUint64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigUint64(0,t)}setBigUint64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,t,r),this.write(n,e)}getFloat32(e,t){let r=this.subarray(e,e+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat32(0,t)}setFloat32(e,t,r){let n=lt(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,t,r),this.write(n,e)}getFloat64(e,t){let r=this.subarray(e,e+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat64(0,t)}setFloat64(e,t,r){let n=lt(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,t,r),this.write(n,e)}equals(e){if(e==null||!(e instanceof s)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;tn+i.byteLength,0)),r.length=t,r}};function En(s){return s[Symbol.asyncIterator]!=null}var Sn=s=>{let e=Ee(s),t=de(e);return Si(s,t),Sn.bytes=e,t};Sn.bytes=0;function vs(s,e){e=e??{};let t=e.lengthEncoder??Sn;function*r(n){let i=t(n.byteLength);i instanceof Uint8Array?yield i:yield*i,n instanceof Uint8Array?yield n:yield*n}return En(s)?async function*(){for await(let n of s)yield*r(n)}():function*(){for(let n of s)yield*r(n)}()}vs.single=(s,e)=>{e=e??{};let t=e.lengthEncoder??Sn;return new ws(t(s.byteLength),s)};var Bn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},In=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},_n=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},er=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var Vf=8,Hf=1024*1024*4,Jt;(function(s){s[s.LENGTH=0]="LENGTH",s[s.DATA=1]="DATA"})(Jt||(Jt={}));var ho=s=>{let e=us(s);return ho.bytes=Ee(e),e};ho.bytes=0;function tr(s,e){let t=new ws,r=Jt.LENGTH,n=-1,i=e?.lengthDecoder??ho,o=e?.maxLengthLength??Vf,a=e?.maxDataLength??Hf;function*c(){for(;t.byteLength>0;){if(r===Jt.LENGTH)try{if(n=i(t),n<0)throw new Bn("Invalid message length");if(n>a)throw new In("Message length too long");let f=i.bytes;t.consume(f),e?.onLength!=null&&e.onLength(n),r=Jt.DATA}catch(f){if(f instanceof RangeError){if(t.byteLength>o)throw new _n("Message length length too long");break}throw f}if(r===Jt.DATA){if(t.byteLength0)throw new er("Unexpected end of input")}():function*(){for(let f of s)t.append(f),yield*c();if(t.byteLength>0)throw new er("Unexpected end of input")}()}tr.fromReader=(s,e)=>{let t=1,r=async function*(){for(;;)try{let{done:i,value:o}=await s.next(t);if(i===!0)return;o!=null&&(yield o)}catch(i){if(i.code==="ERR_UNDER_READ")return{done:!0,value:null};throw i}finally{t=1}}();return tr(r,{...e??{},onLength:i=>{t=i}})};function An(){let s={};return s.promise=new Promise((e,t)=>{s.resolve=e,s.reject=t}),s}var kn=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},xs=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new kn(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new kn(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var fo=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function yt(s={}){return Of(t=>{let r=t.shift();if(r==null)return{done:!0};if(r.error!=null)throw r.error;return{done:r.done===!0,value:r.value}},s)}function Of(s,e){e=e??{};let t=e.onEnd,r=new xs,n,i,o,a=An(),c=async()=>{try{return r.isEmpty()?o?{done:!0}:await new Promise((g,b)=>{i=S=>{i=null,r.push(S);try{g(s(r))}catch(y){b(y)}return n}}):s(r)}finally{r.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=An()})}},f=g=>i!=null?i(g):(r.push(g),n),u=g=>(r=new xs,i!=null?i({error:g}):(r.push({error:g}),n)),h=g=>{if(o)return n;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:g})},l=g=>o?n:(o=!0,g!=null?u(g):f({done:!0})),d=()=>(r=new xs,l(),{done:!0}),m=g=>(l(g),{done:!0});if(n={[Symbol.asyncIterator](){return this},next:c,return:d,throw:m,push:h,end:l,get readableLength(){return r.size},onEmpty:async g=>{let b=g?.signal;if(b?.throwIfAborted(),r.isEmpty())return;let S,y;b!=null&&(S=new Promise((I,v)=>{y=()=>{v(new fo)},b.addEventListener("abort",y)}));try{await Promise.race([a.promise,S])}finally{y!=null&&b!=null&&b?.removeEventListener("abort",y)}}},t==null)return n;let p=n;return n={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(g){return p.throw(g),t!=null&&(t(g),t=void 0),{done:!0}},return(){return p.return(),t!=null&&(t(),t=void 0),{done:!0}},push:h,end(g){return p.end(g),t!=null&&(t(g),t=void 0),n},get readableLength(){return p.readableLength},onEmpty:g=>p.onEmpty(g)},n}function zf(s){return s[Symbol.asyncIterator]!=null}function Gf(...s){let e=[];for(let t of s)zf(t)||e.push(t);return e.length===s.length?function*(){for(let t of e)yield*t}():async function*(){let t=yt({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(s.map(async r=>{for await(let n of r)t.push(n)})),t.end()}catch(r){t.end(r)}}),yield*t}()}var Wc=Gf;function Es(s,...e){if(s==null)throw new Error("Empty pipeline");if(po(s)){let r=s;s=()=>r.source}else if(jc(s)||$c(s)){let r=s;s=()=>r}let t=[s,...e];if(t.length>1&&po(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let r=1;r{let e;for(;s.length>0;)e=s.shift()(e);return e},$c=s=>s?.[Symbol.asyncIterator]!=null,jc=s=>s?.[Symbol.iterator]!=null,po=s=>s==null?!1:s.sink!=null&&s.source!=null,Kf=s=>e=>{let t=s.sink(e);if(t?.then!=null){let r=yt({objectMode:!0});t.then(()=>{r.end()},o=>{r.end(o)});let n,i=s.source;if($c(i))n=async function*(){yield*i,r.end()};else if(jc(i))n=function*(){yield*i,r.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Wc(r,n())}return s.source};var go="/floodsub/1.0.0",mo="/meshsub/1.0.0",Tn="/meshsub/1.1.0";var Zc="ERR_TOPIC_VALIDATOR_REJECT",Jc="ERR_TOPIC_VALIDATOR_IGNORE";var Xc={maxSubscriptions:1/0,maxMessages:1/0,maxIhaveMessageIDs:1/0,maxIwantMessageIDs:1/0,maxControlMessages:1/0,maxPeerInfos:1/0};var wt;(function(s){let e;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{m.lengthDelimited!==!1&&d.fork(),l.subscribe!=null&&(d.uint32(8),d.bool(l.subscribe)),l.topic!=null&&(d.uint32(18),d.string(l.topic)),m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.subscribe=l.bool();break}case 2:{p.topic=l.string();break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(e=s.SubOpts||(s.SubOpts={}));let t;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{m.lengthDelimited!==!1&&d.fork(),l.from!=null&&(d.uint32(10),d.bytes(l.from)),l.data!=null&&(d.uint32(18),d.bytes(l.data)),l.seqno!=null&&(d.uint32(26),d.bytes(l.seqno)),l.topic!=null&&l.topic!==""&&(d.uint32(34),d.string(l.topic)),l.signature!=null&&(d.uint32(42),d.bytes(l.signature)),l.key!=null&&(d.uint32(50),d.bytes(l.key)),m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={topic:""},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.from=l.bytes();break}case 2:{p.data=l.bytes();break}case 3:{p.seqno=l.bytes();break}case 4:{p.topic=l.string();break}case 5:{p.signature=l.bytes();break}case 6:{p.key=l.bytes();break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(t=s.Message||(s.Message={}));let r;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{if(m.lengthDelimited!==!1&&d.fork(),l.ihave!=null)for(let p of l.ihave)d.uint32(10),s.ControlIHave.codec().encode(p,d);if(l.iwant!=null)for(let p of l.iwant)d.uint32(18),s.ControlIWant.codec().encode(p,d);if(l.graft!=null)for(let p of l.graft)d.uint32(26),s.ControlGraft.codec().encode(p,d);if(l.prune!=null)for(let p of l.prune)d.uint32(34),s.ControlPrune.codec().encode(p,d);m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={ihave:[],iwant:[],graft:[],prune:[]},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{if(m.limits?.ihave!=null&&p.ihave.length===m.limits.ihave)throw new Fe('Decode error - map field "ihave" had too many elements');p.ihave.push(s.ControlIHave.codec().decode(l,l.uint32(),{limits:m.limits?.ihave$}));break}case 2:{if(m.limits?.iwant!=null&&p.iwant.length===m.limits.iwant)throw new Fe('Decode error - map field "iwant" had too many elements');p.iwant.push(s.ControlIWant.codec().decode(l,l.uint32(),{limits:m.limits?.iwant$}));break}case 3:{if(m.limits?.graft!=null&&p.graft.length===m.limits.graft)throw new Fe('Decode error - map field "graft" had too many elements');p.graft.push(s.ControlGraft.codec().decode(l,l.uint32(),{limits:m.limits?.graft$}));break}case 4:{if(m.limits?.prune!=null&&p.prune.length===m.limits.prune)throw new Fe('Decode error - map field "prune" had too many elements');p.prune.push(s.ControlPrune.codec().decode(l,l.uint32(),{limits:m.limits?.prune$}));break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(r=s.ControlMessage||(s.ControlMessage={}));let n;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{if(m.lengthDelimited!==!1&&d.fork(),l.topicID!=null&&(d.uint32(10),d.string(l.topicID)),l.messageIDs!=null)for(let p of l.messageIDs)d.uint32(18),d.bytes(p);m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={messageIDs:[]},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.topicID=l.string();break}case 2:{if(m.limits?.messageIDs!=null&&p.messageIDs.length===m.limits.messageIDs)throw new Fe('Decode error - map field "messageIDs" had too many elements');p.messageIDs.push(l.bytes());break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(n=s.ControlIHave||(s.ControlIHave={}));let i;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{if(m.lengthDelimited!==!1&&d.fork(),l.messageIDs!=null)for(let p of l.messageIDs)d.uint32(10),d.bytes(p);m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={messageIDs:[]},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{if(m.limits?.messageIDs!=null&&p.messageIDs.length===m.limits.messageIDs)throw new Fe('Decode error - map field "messageIDs" had too many elements');p.messageIDs.push(l.bytes());break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(i=s.ControlIWant||(s.ControlIWant={}));let o;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{m.lengthDelimited!==!1&&d.fork(),l.topicID!=null&&(d.uint32(10),d.string(l.topicID)),m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.topicID=l.string();break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(o=s.ControlGraft||(s.ControlGraft={}));let a;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{if(m.lengthDelimited!==!1&&d.fork(),l.topicID!=null&&(d.uint32(10),d.string(l.topicID)),l.peers!=null)for(let p of l.peers)d.uint32(18),s.PeerInfo.codec().encode(p,d);l.backoff!=null&&(d.uint32(24),d.uint64Number(l.backoff)),m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={peers:[]},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.topicID=l.string();break}case 2:{if(m.limits?.peers!=null&&p.peers.length===m.limits.peers)throw new Fe('Decode error - map field "peers" had too many elements');p.peers.push(s.PeerInfo.codec().decode(l,l.uint32(),{limits:m.limits?.peers$}));break}case 3:{p.backoff=l.uint64Number();break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(a=s.ControlPrune||(s.ControlPrune={}));let c;(function(u){let h;u.codec=()=>(h==null&&(h=Ce((l,d,m={})=>{m.lengthDelimited!==!1&&d.fork(),l.peerID!=null&&(d.uint32(10),d.bytes(l.peerID)),l.signedPeerRecord!=null&&(d.uint32(18),d.bytes(l.signedPeerRecord)),m.lengthDelimited!==!1&&d.ldelim()},(l,d,m={})=>{let p={},g=d==null?l.len:l.pos+d;for(;l.pos>>3){case 1:{p.peerID=l.bytes();break}case 2:{p.signedPeerRecord=l.bytes();break}default:{l.skipType(b&7);break}}}return p})),h),u.encode=l=>De(l,u.codec()),u.decode=(l,d)=>Pe(l,u.codec(),d)})(c=s.PeerInfo||(s.PeerInfo={}));let f;s.codec=()=>(f==null&&(f=Ce((u,h,l={})=>{if(l.lengthDelimited!==!1&&h.fork(),u.subscriptions!=null)for(let d of u.subscriptions)h.uint32(10),s.SubOpts.codec().encode(d,h);if(u.messages!=null)for(let d of u.messages)h.uint32(18),s.Message.codec().encode(d,h);u.control!=null&&(h.uint32(26),s.ControlMessage.codec().encode(u.control,h)),l.lengthDelimited!==!1&&h.ldelim()},(u,h,l={})=>{let d={subscriptions:[],messages:[]},m=h==null?u.len:u.pos+h;for(;u.pos>>3){case 1:{if(l.limits?.subscriptions!=null&&d.subscriptions.length===l.limits.subscriptions)throw new Fe('Decode error - map field "subscriptions" had too many elements');d.subscriptions.push(s.SubOpts.codec().decode(u,u.uint32(),{limits:l.limits?.subscriptions$}));break}case 2:{if(l.limits?.messages!=null&&d.messages.length===l.limits.messages)throw new Fe('Decode error - map field "messages" had too many elements');d.messages.push(s.Message.codec().decode(u,u.uint32(),{limits:l.limits?.messages$}));break}case 3:{d.control=s.ControlMessage.codec().decode(u,u.uint32(),{limits:l.limits?.control});break}default:{u.skipType(p&7);break}}}return d})),f),s.encode=u=>De(u,s.codec()),s.decode=(u,h)=>Pe(u,s.codec(),h)})(wt||(wt={}));var Mn=class{gossip;msgs=new Map;msgIdToStrFn;history=[];notValidatedCount=0;constructor(e,t,r){this.gossip=e,this.msgIdToStrFn=r;for(let n=0;n{if((this.msgs.get(n.msgIdStr)?.validated??!1)&&e.has(n.topic)){let o=t.get(n.topic);o==null&&(o=[],t.set(n.topic,o)),o.push(n.msgId)}});return t}validate(e){let t=this.msgs.get(e);if(t==null)return null;t.validated||this.notValidatedCount--;let{message:r,originatingPeers:n}=t;return t.validated=!0,t.originatingPeers=new Set,{message:r,originatingPeers:n}}shift(){this.history[this.history.length-1].forEach(t=>{let r=this.msgs.get(t.msgIdStr);r!=null&&(this.msgs.delete(t.msgIdStr),r.validated||this.notValidatedCount--)}),this.history.pop(),this.history.unshift([])}remove(e){let t=this.msgs.get(e);return t==null?null:(this.msgs.delete(e),t)}};var Yc;(function(s){s.StrictSign="StrictSign",s.StrictNoSign="StrictNoSign"})(Yc||(Yc={}));var Ut;(function(s){s[s.Signing=0]="Signing",s[s.Anonymous=1]="Anonymous"})(Ut||(Ut={}));var Be;(function(s){s.Error="error",s.Ignore="ignore",s.Reject="reject",s.Blacklisted="blacklisted"})(Be||(Be={}));var be;(function(s){s.InvalidSignature="invalid_signature",s.InvalidSeqno="invalid_seqno",s.InvalidPeerId="invalid_peerid",s.SignaturePresent="signature_present",s.SeqnoPresent="seqno_present",s.FromPresent="from_present",s.TransformFailed="transform_failed"})(be||(be={}));var ye;(function(s){s.duplicate="duplicate",s.invalid="invalid",s.valid="valid"})(ye||(ye={}));function bo(s){switch(s){case xe.Ignore:return Be.Ignore;case xe.Reject:return Be.Reject;default:throw new Error("Unreachable")}}var Qc;(function(s){s.forward="forward",s.publish="publish"})(Qc||(Qc={}));var Ie;(function(s){s.Fanout="fanout",s.Random="random",s.Subscribed="subscribed",s.Outbound="outbound",s.NotEnough="not_enough",s.Opportunistic="opportunistic"})(Ie||(Ie={}));var $e;(function(s){s.Dc="disconnected",s.BadScore="bad_score",s.Prune="prune",s.Excess="excess"})($e||($e={}));var Bs;(function(s){s.GraftBackoff="graft_backoff",s.BrokenPromise="broken_promise",s.MessageDeficit="message_deficit",s.IPColocation="IP_colocation"})(Bs||(Bs={}));var Is;(function(s){s.LowScore="low_score",s.MaxIhave="max_ihave",s.MaxIasked="max_iasked"})(Is||(Is={}));var Ss;(function(s){s.graylist="graylist",s.publish="publish",s.gossip="gossip",s.mesh="mesh"})(Ss||(Ss={}));function el(s,e,t){return{protocolsEnabled:s.gauge({name:"gossipsub_protocol",help:"Status of enabled protocols",labelNames:["protocol"]}),topicSubscriptionStatus:s.gauge({name:"gossipsub_topic_subscription_status",help:"Status of our subscription to this topic",labelNames:["topicStr"]}),topicPeersCount:s.gauge({name:"gossipsub_topic_peer_count",help:"Number of peers subscribed to each topic",labelNames:["topicStr"]}),meshPeerCounts:s.gauge({name:"gossipsub_mesh_peer_count",help:"Number of peers in our mesh",labelNames:["topicStr"]}),meshPeerInclusionEventsFanout:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_fanout_total",help:"Number of times we include peers in a topic mesh for fanout reasons",labelNames:["topic"]}),meshPeerInclusionEventsRandom:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_random_total",help:"Number of times we include peers in a topic mesh for random reasons",labelNames:["topic"]}),meshPeerInclusionEventsSubscribed:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_subscribed_total",help:"Number of times we include peers in a topic mesh for subscribed reasons",labelNames:["topic"]}),meshPeerInclusionEventsOutbound:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_outbound_total",help:"Number of times we include peers in a topic mesh for outbound reasons",labelNames:["topic"]}),meshPeerInclusionEventsNotEnough:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_not_enough_total",help:"Number of times we include peers in a topic mesh for not_enough reasons",labelNames:["topic"]}),meshPeerInclusionEventsOpportunistic:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_opportunistic_total",help:"Number of times we include peers in a topic mesh for opportunistic reasons",labelNames:["topic"]}),meshPeerInclusionEventsUnknown:s.gauge({name:"gossipsub_mesh_peer_inclusion_events_unknown_total",help:"Number of times we include peers in a topic mesh for unknown reasons",labelNames:["topic"]}),meshPeerChurnEventsDisconnected:s.gauge({name:"gossipsub_peer_churn_events_disconnected_total",help:"Number of times we remove peers in a topic mesh for disconnected reasons",labelNames:["topic"]}),meshPeerChurnEventsBadScore:s.gauge({name:"gossipsub_peer_churn_events_bad_score_total",help:"Number of times we remove peers in a topic mesh for bad_score reasons",labelNames:["topic"]}),meshPeerChurnEventsPrune:s.gauge({name:"gossipsub_peer_churn_events_prune_total",help:"Number of times we remove peers in a topic mesh for prune reasons",labelNames:["topic"]}),meshPeerChurnEventsExcess:s.gauge({name:"gossipsub_peer_churn_events_excess_total",help:"Number of times we remove peers in a topic mesh for excess reasons",labelNames:["topic"]}),meshPeerChurnEventsUnknown:s.gauge({name:"gossipsub_peer_churn_events_unknown_total",help:"Number of times we remove peers in a topic mesh for unknown reasons",labelNames:["topic"]}),peersPerProtocol:s.gauge({name:"gossipsub_peers_per_protocol_count",help:"Peers connected for each topic",labelNames:["protocol"]}),heartbeatDuration:s.histogram({name:"gossipsub_heartbeat_duration_seconds",help:"The time it takes to complete one iteration of the heartbeat",buckets:[.01,.1,1]}),heartbeatSkipped:s.gauge({name:"gossipsub_heartbeat_skipped",help:"Heartbeat run took longer than heartbeat interval so next is skipped"}),acceptedMessagesTotal:s.gauge({name:"gossipsub_accepted_messages_total",help:"Total accepted messages for each topic",labelNames:["topic"]}),ignoredMessagesTotal:s.gauge({name:"gossipsub_ignored_messages_total",help:"Total ignored messages for each topic",labelNames:["topic"]}),rejectedMessagesTotal:s.gauge({name:"gossipsub_rejected_messages_total",help:"Total rejected messages for each topic",labelNames:["topic"]}),unknownValidationResultsTotal:s.gauge({name:"gossipsub_unknown_validation_results_total",help:"Total unknown validation results for each topic",labelNames:["topic"]}),asyncValidationMcacheHit:s.gauge({name:"gossipsub_async_validation_mcache_hit_total",help:"Async validation result reported by the user layer",labelNames:["hit"]}),asyncValidationDelayFromFirstSeenSec:s.histogram({name:"gossipsub_async_validation_delay_from_first_seen",help:"Async validation report delay from first seen in second",buckets:[.01,.03,.1,.3,1,3,10]}),asyncValidationUnknownFirstSeen:s.gauge({name:"gossipsub_async_validation_unknown_first_seen_count_total",help:"Async validation report unknown first seen value for message"}),peerReadStreamError:s.gauge({name:"gossipsub_peer_read_stream_err_count_total",help:"Peer read stream error"}),rpcRecvBytes:s.gauge({name:"gossipsub_rpc_recv_bytes_total",help:"RPC recv"}),rpcRecvCount:s.gauge({name:"gossipsub_rpc_recv_count_total",help:"RPC recv"}),rpcRecvSubscription:s.gauge({name:"gossipsub_rpc_recv_subscription_total",help:"RPC recv"}),rpcRecvMessage:s.gauge({name:"gossipsub_rpc_recv_message_total",help:"RPC recv"}),rpcRecvControl:s.gauge({name:"gossipsub_rpc_recv_control_total",help:"RPC recv"}),rpcRecvIHave:s.gauge({name:"gossipsub_rpc_recv_ihave_total",help:"RPC recv"}),rpcRecvIWant:s.gauge({name:"gossipsub_rpc_recv_iwant_total",help:"RPC recv"}),rpcRecvGraft:s.gauge({name:"gossipsub_rpc_recv_graft_total",help:"RPC recv"}),rpcRecvPrune:s.gauge({name:"gossipsub_rpc_recv_prune_total",help:"RPC recv"}),rpcDataError:s.gauge({name:"gossipsub_rpc_data_err_count_total",help:"RPC data error"}),rpcRecvError:s.gauge({name:"gossipsub_rpc_recv_err_count_total",help:"RPC recv error"}),rpcRecvNotAccepted:s.gauge({name:"gossipsub_rpc_rcv_not_accepted_total",help:"Total count of RPC dropped because acceptFrom() == false"}),rpcSentBytes:s.gauge({name:"gossipsub_rpc_sent_bytes_total",help:"RPC sent"}),rpcSentCount:s.gauge({name:"gossipsub_rpc_sent_count_total",help:"RPC sent"}),rpcSentSubscription:s.gauge({name:"gossipsub_rpc_sent_subscription_total",help:"RPC sent"}),rpcSentMessage:s.gauge({name:"gossipsub_rpc_sent_message_total",help:"RPC sent"}),rpcSentControl:s.gauge({name:"gossipsub_rpc_sent_control_total",help:"RPC sent"}),rpcSentIHave:s.gauge({name:"gossipsub_rpc_sent_ihave_total",help:"RPC sent"}),rpcSentIWant:s.gauge({name:"gossipsub_rpc_sent_iwant_total",help:"RPC sent"}),rpcSentGraft:s.gauge({name:"gossipsub_rpc_sent_graft_total",help:"RPC sent"}),rpcSentPrune:s.gauge({name:"gossipsub_rpc_sent_prune_total",help:"RPC sent"}),msgPublishCount:s.gauge({name:"gossipsub_msg_publish_count_total",help:"Total count of msg published by topic",labelNames:["topic"]}),msgPublishPeersByTopic:s.gauge({name:"gossipsub_msg_publish_peers_total",help:"Total count of peers that we publish a msg to",labelNames:["topic"]}),directPeersPublishedTotal:s.gauge({name:"gossipsub_direct_peers_published_total",help:"Total direct peers that we publish a msg to",labelNames:["topic"]}),floodsubPeersPublishedTotal:s.gauge({name:"gossipsub_floodsub_peers_published_total",help:"Total floodsub peers that we publish a msg to",labelNames:["topic"]}),meshPeersPublishedTotal:s.gauge({name:"gossipsub_mesh_peers_published_total",help:"Total mesh peers that we publish a msg to",labelNames:["topic"]}),fanoutPeersPublishedTotal:s.gauge({name:"gossipsub_fanout_peers_published_total",help:"Total fanout peers that we publish a msg to",labelNames:["topic"]}),msgPublishBytes:s.gauge({name:"gossipsub_msg_publish_bytes_total",help:"Total count of msg publish data.length bytes",labelNames:["topic"]}),msgPublishTime:s.histogram({name:"gossipsub_msg_publish_seconds",help:"Total time in seconds to publish a message",buckets:[.001,.002,.005,.01,.1,.5,1],labelNames:["topic"]}),msgForwardCount:s.gauge({name:"gossipsub_msg_forward_count_total",help:"Total count of msg forwarded by topic",labelNames:["topic"]}),msgForwardPeers:s.gauge({name:"gossipsub_msg_forward_peers_total",help:"Total count of peers that we forward a msg to",labelNames:["topic"]}),msgReceivedPreValidation:s.gauge({name:"gossipsub_msg_received_prevalidation_total",help:"Total count of recv msgs before any validation",labelNames:["topic"]}),msgReceivedError:s.gauge({name:"gossipsub_msg_received_error_total",help:"Total count of recv msgs error",labelNames:["topic"]}),prevalidationInvalidTotal:s.gauge({name:"gossipsub_pre_validation_invalid_total",help:"Total count of invalid messages received",labelNames:["topic"]}),prevalidationValidTotal:s.gauge({name:"gossipsub_pre_validation_valid_total",help:"Total count of valid messages received",labelNames:["topic"]}),prevalidationDuplicateTotal:s.gauge({name:"gossipsub_pre_validation_duplicate_total",help:"Total count of duplicate messages received",labelNames:["topic"]}),prevalidationUnknownTotal:s.gauge({name:"gossipsub_pre_validation_unknown_status_total",help:"Total count of unknown_status messages received",labelNames:["topic"]}),msgReceivedInvalid:s.gauge({name:"gossipsub_msg_received_invalid_total",help:"Tracks specific reason of invalid",labelNames:["error"]}),msgReceivedInvalidByTopic:s.gauge({name:"gossipsub_msg_received_invalid_by_topic_total",help:"Tracks specific invalid message by topic",labelNames:["topic"]}),duplicateMsgDeliveryDelay:s.histogram({name:"gossisub_duplicate_msg_delivery_delay_seconds",help:"Time since the 1st duplicated message validated",labelNames:["topic"],buckets:[.25*t.maxMeshMessageDeliveriesWindowSec,.5*t.maxMeshMessageDeliveriesWindowSec,Number(t.maxMeshMessageDeliveriesWindowSec),2*t.maxMeshMessageDeliveriesWindowSec,4*t.maxMeshMessageDeliveriesWindowSec]}),duplicateMsgLateDelivery:s.gauge({name:"gossisub_duplicate_msg_late_delivery_total",help:"Total count of late duplicate message delivery by topic, which triggers P3 penalty",labelNames:["topic"]}),duplicateMsgIgnored:s.gauge({name:"gossisub_ignored_published_duplicate_msgs_total",help:"Total count of published duplicate message ignored by topic",labelNames:["topic"]}),scoreFnCalls:s.gauge({name:"gossipsub_score_fn_calls_total",help:"Total times score() is called"}),scoreFnRuns:s.gauge({name:"gossipsub_score_fn_runs_total",help:"Total times score() call actually computed computeScore(), no cache"}),scoreCachedDelta:s.histogram({name:"gossipsub_score_cache_delta",help:"Delta of score between cached values that expired",buckets:[10,100,1e3]}),peersByScoreThreshold:s.gauge({name:"gossipsub_peers_by_score_threshold_count",help:"Current count of peers by score threshold",labelNames:["threshold"]}),score:s.avgMinMax({name:"gossipsub_score",help:"Avg min max of gossip scores"}),scoreWeights:s.avgMinMax({name:"gossipsub_score_weights",help:"Separate score weights",labelNames:["topic","p"]}),scorePerMesh:s.avgMinMax({name:"gossipsub_score_per_mesh",help:"Histogram of the scores for each mesh topic",labelNames:["topic"]}),scoringPenalties:s.gauge({name:"gossipsub_scoring_penalties_total",help:"A counter of the kind of penalties being applied to peers",labelNames:["penalty"]}),behaviourPenalty:s.histogram({name:"gossipsub_peer_stat_behaviour_penalty",help:"Current peer stat behaviour_penalty at each scrape",buckets:[.25*t.behaviourPenaltyThreshold,.5*t.behaviourPenaltyThreshold,Number(t.behaviourPenaltyThreshold),2*t.behaviourPenaltyThreshold,4*t.behaviourPenaltyThreshold]}),ihaveRcvIgnored:s.gauge({name:"gossipsub_ihave_rcv_ignored_total",help:"Total received IHAVE messages that we ignore for some reason",labelNames:["reason"]}),ihaveRcvMsgids:s.gauge({name:"gossipsub_ihave_rcv_msgids_total",help:"Total received IHAVE messages by topic",labelNames:["topic"]}),ihaveRcvNotSeenMsgids:s.gauge({name:"gossipsub_ihave_rcv_not_seen_msgids_total",help:"Total messages per topic we do not have, not actual requests",labelNames:["topic"]}),iwantRcvMsgids:s.gauge({name:"gossipsub_iwant_rcv_msgids_total",help:"Total received IWANT messages by topic",labelNames:["topic"]}),iwantRcvDonthaveMsgids:s.gauge({name:"gossipsub_iwant_rcv_dont_have_msgids_total",help:"Total requested messageIDs that we do not have"}),iwantPromiseStarted:s.gauge({name:"gossipsub_iwant_promise_sent_total",help:"Total count of started IWANT promises"}),iwantPromiseResolved:s.gauge({name:"gossipsub_iwant_promise_resolved_total",help:"Total count of resolved IWANT promises"}),iwantPromiseResolvedFromDuplicate:s.gauge({name:"gossipsub_iwant_promise_resolved_from_duplicate_total",help:"Total count of resolved IWANT promises from duplicate messages"}),iwantPromiseResolvedPeers:s.gauge({name:"gossipsub_iwant_promise_resolved_peers",help:"Total count of peers we have asked IWANT promises that are resolved"}),iwantPromiseBroken:s.gauge({name:"gossipsub_iwant_promise_broken",help:"Total count of broken IWANT promises"}),iwantMessagePruned:s.gauge({name:"gossipsub_iwant_message_pruned",help:"Total count of pruned IWANT messages"}),iwantPromiseDeliveryTime:s.histogram({name:"gossipsub_iwant_promise_delivery_seconds",help:"Histogram of delivery time of resolved IWANT promises",buckets:[.5*t.gossipPromiseExpireSec,Number(t.gossipPromiseExpireSec),2*t.gossipPromiseExpireSec,4*t.gossipPromiseExpireSec]}),iwantPromiseUntracked:s.gauge({name:"gossip_iwant_promise_untracked",help:"Total count of untracked IWANT promise"}),connectedPeersBackoffSec:s.histogram({name:"gossipsub_connected_peers_backoff_seconds",help:"Backoff time in seconds",buckets:[1,2,4,10,20,60,120]}),cacheSize:s.gauge({name:"gossipsub_cache_size",help:"Unbounded cache sizes",labelNames:["cache"]}),mcacheSize:s.gauge({name:"gossipsub_mcache_size",help:"Current mcache msg count"}),mcacheNotValidatedCount:s.gauge({name:"gossipsub_mcache_not_validated_count",help:"Current mcache msg count not validated"}),fastMsgIdCacheCollision:s.gauge({name:"gossipsub_fastmsgid_cache_collision_total",help:"Total count of key collisions on fastmsgid cache put"}),newConnectionCount:s.gauge({name:"gossipsub_new_connection_total",help:"Total new connection by status",labelNames:["status"]}),topicStrToLabel:e,toTopic(r){return this.topicStrToLabel.get(r)??r},onJoin(r){this.topicSubscriptionStatus.set({topicStr:r},1),this.meshPeerCounts.set({topicStr:r},0)},onLeave(r){this.topicSubscriptionStatus.set({topicStr:r},0),this.meshPeerCounts.set({topicStr:r},0)},onAddToMesh(r,n,i){let o=this.toTopic(r);switch(n){case Ie.Fanout:this.meshPeerInclusionEventsFanout.inc({topic:o},i);break;case Ie.Random:this.meshPeerInclusionEventsRandom.inc({topic:o},i);break;case Ie.Subscribed:this.meshPeerInclusionEventsSubscribed.inc({topic:o},i);break;case Ie.Outbound:this.meshPeerInclusionEventsOutbound.inc({topic:o},i);break;case Ie.NotEnough:this.meshPeerInclusionEventsNotEnough.inc({topic:o},i);break;case Ie.Opportunistic:this.meshPeerInclusionEventsOpportunistic.inc({topic:o},i);break;default:this.meshPeerInclusionEventsUnknown.inc({topic:o},i);break}},onRemoveFromMesh(r,n,i){let o=this.toTopic(r);switch(n){case $e.Dc:this.meshPeerChurnEventsDisconnected.inc({topic:o},i);break;case $e.BadScore:this.meshPeerChurnEventsBadScore.inc({topic:o},i);break;case $e.Prune:this.meshPeerChurnEventsPrune.inc({topic:o},i);break;case $e.Excess:this.meshPeerChurnEventsExcess.inc({topic:o},i);break;default:this.meshPeerChurnEventsUnknown.inc({topic:o},i);break}},onReportValidation(r,n,i){if(this.asyncValidationMcacheHit.inc({hit:r!=null?"hit":"miss"}),r!=null){let o=this.toTopic(r.message.topic);switch(n){case xe.Accept:this.acceptedMessagesTotal.inc({topic:o});break;case xe.Ignore:this.ignoredMessagesTotal.inc({topic:o});break;case xe.Reject:this.rejectedMessagesTotal.inc({topic:o});break;default:this.unknownValidationResultsTotal.inc({topic:o});break}}i!=null?this.asyncValidationDelayFromFirstSeenSec.observe((Date.now()-i)/1e3):this.asyncValidationUnknownFirstSeen.inc()},onScorePenalty(r){this.scoringPenalties.inc({penalty:r},1)},onIhaveRcv(r,n,i){let o=this.toTopic(r);this.ihaveRcvMsgids.inc({topic:o},n),this.ihaveRcvNotSeenMsgids.inc({topic:o},i)},onIwantRcv(r,n){for(let[i,o]of r){let a=this.toTopic(i);this.iwantRcvMsgids.inc({topic:a},o)}this.iwantRcvDonthaveMsgids.inc(n)},onForwardMsg(r,n){let i=this.toTopic(r);this.msgForwardCount.inc({topic:i},1),this.msgForwardPeers.inc({topic:i},n)},onPublishMsg(r,n,i,o,a){let c=this.toTopic(r);this.msgPublishCount.inc({topic:c},1),this.msgPublishBytes.inc({topic:c},i*o),this.msgPublishPeersByTopic.inc({topic:c},i),this.directPeersPublishedTotal.inc({topic:c},n.direct),this.floodsubPeersPublishedTotal.inc({topic:c},n.floodsub),this.meshPeersPublishedTotal.inc({topic:c},n.mesh),this.fanoutPeersPublishedTotal.inc({topic:c},n.fanout),this.msgPublishTime.observe({topic:c},a/1e3)},onMsgRecvPreValidation(r){let n=this.toTopic(r);this.msgReceivedPreValidation.inc({topic:n},1)},onMsgRecvError(r){let n=this.toTopic(r);this.msgReceivedError.inc({topic:n},1)},onPrevalidationResult(r,n){let i=this.toTopic(r);switch(n){case ye.duplicate:this.prevalidationDuplicateTotal.inc({topic:i});break;case ye.invalid:this.prevalidationInvalidTotal.inc({topic:i});break;case ye.valid:this.prevalidationValidTotal.inc({topic:i});break;default:this.prevalidationUnknownTotal.inc({topic:i});break}},onMsgRecvInvalid(r,n){let i=this.toTopic(r),o=n.reason===Be.Error?n.error:n.reason;this.msgReceivedInvalid.inc({error:o},1),this.msgReceivedInvalidByTopic.inc({topic:i},1)},onDuplicateMsgDelivery(r,n,i){let o=this.toTopic(r);this.duplicateMsgDeliveryDelay.observe({topic:o},n/1e3),i&&this.duplicateMsgLateDelivery.inc({topic:o},1)},onPublishDuplicateMsg(r){let n=this.toTopic(r);this.duplicateMsgIgnored.inc({topic:n},1)},onPeerReadStreamError(){this.peerReadStreamError.inc(1)},onRpcRecvError(){this.rpcRecvError.inc(1)},onRpcDataError(){this.rpcDataError.inc(1)},onRpcRecv(r,n){this.rpcRecvBytes.inc(n),this.rpcRecvCount.inc(1),r.subscriptions!=null&&this.rpcRecvSubscription.inc(r.subscriptions.length),r.messages!=null&&this.rpcRecvMessage.inc(r.messages.length),r.control!=null&&(this.rpcRecvControl.inc(1),r.control.ihave!=null&&this.rpcRecvIHave.inc(r.control.ihave.length),r.control.iwant!=null&&this.rpcRecvIWant.inc(r.control.iwant.length),r.control.graft!=null&&this.rpcRecvGraft.inc(r.control.graft.length),r.control.prune!=null&&this.rpcRecvPrune.inc(r.control.prune.length))},onRpcSent(r,n){if(this.rpcSentBytes.inc(n),this.rpcSentCount.inc(1),r.subscriptions!=null&&this.rpcSentSubscription.inc(r.subscriptions.length),r.messages!=null&&this.rpcSentMessage.inc(r.messages.length),r.control!=null){let i=r.control.ihave?.length??0,o=r.control.iwant?.length??0,a=r.control.graft?.length??0,c=r.control.prune?.length??0;i>0&&this.rpcSentIHave.inc(i),o>0&&this.rpcSentIWant.inc(o),a>0&&this.rpcSentGraft.inc(a),c>0&&this.rpcSentPrune.inc(c),(i>0||o>0||a>0||c>0)&&this.rpcSentControl.inc(1)}},registerScores(r,n){let i=0,o=0,a=0,c=0;for(let f of r)f>=n.graylistThreshold&&i++,f>=n.publishThreshold&&o++,f>=n.gossipThreshold&&a++,f>=0&&c++;this.peersByScoreThreshold.set({threshold:Ss.graylist},i),this.peersByScoreThreshold.set({threshold:Ss.publish},o),this.peersByScoreThreshold.set({threshold:Ss.gossip},a),this.peersByScoreThreshold.set({threshold:Ss.mesh},c),this.score.set(r)},registerScoreWeights(r){for(let[n,i]of r.byTopic)this.scoreWeights.set({topic:n,p:"p1"},i.p1w),this.scoreWeights.set({topic:n,p:"p2"},i.p2w),this.scoreWeights.set({topic:n,p:"p3"},i.p3w),this.scoreWeights.set({topic:n,p:"p3b"},i.p3bw),this.scoreWeights.set({topic:n,p:"p4"},i.p4w);this.scoreWeights.set({p:"p5"},r.p5w),this.scoreWeights.set({p:"p6"},r.p6w),this.scoreWeights.set({p:"p7"},r.p7w)},registerScorePerMesh(r,n){let i=new Map;r.forEach((o,a)=>{let c=this.topicStrToLabel.get(a)??"unknown",f=i.get(c);f==null&&(f=new Set,i.set(c,f)),o.forEach(u=>f?.add(u))});for(let[o,a]of i){let c=[];a.forEach(f=>{c.push(n.get(f)??0)}),this.scorePerMesh.set({topic:o},c)}}}}var q=class extends Error{static name="InvalidPeerScoreParamsError";constructor(e="Invalid peer score params"){super(e),this.name="InvalidPeerScoreParamsError"}};var $f={topics:{},topicScoreCap:10,appSpecificScore:()=>0,appSpecificWeight:10,IPColocationFactorWeight:-5,IPColocationFactorThreshold:10,IPColocationFactorWhitelist:new Set,behaviourPenaltyWeight:-10,behaviourPenaltyThreshold:0,behaviourPenaltyDecay:.2,decayInterval:1e3,decayToZero:.1,retainScore:3600*1e3},jf={topicWeight:.5,timeInMeshWeight:1,timeInMeshQuantum:1,timeInMeshCap:3600,firstMessageDeliveriesWeight:1,firstMessageDeliveriesDecay:.5,firstMessageDeliveriesCap:2e3,meshMessageDeliveriesWeight:-1,meshMessageDeliveriesDecay:.5,meshMessageDeliveriesCap:100,meshMessageDeliveriesThreshold:20,meshMessageDeliveriesWindow:10,meshMessageDeliveriesActivation:5e3,meshFailurePenaltyWeight:-1,meshFailurePenaltyDecay:.5,invalidMessageDeliveriesWeight:-1,invalidMessageDeliveriesDecay:.3};function tl(s={}){return{...$f,...s,topics:s.topics!=null?Object.entries(s.topics).reduce((e,[t,r])=>(e[t]=Zf(r),e),{}):{}}}function Zf(s={}){return{...jf,...s}}function sl(s){for(let[e,t]of Object.entries(s.topics))try{Jf(t)}catch(r){throw new q(`invalid score parameters for topic ${e}: ${r.message}`)}if(s.topicScoreCap<0)throw new q("invalid topic score cap; must be positive (or 0 for no cap)");if(s.appSpecificScore===null||s.appSpecificScore===void 0)throw new q("missing application specific score function");if(s.IPColocationFactorWeight>0)throw new q("invalid IPColocationFactorWeight; must be negative (or 0 to disable)");if(s.IPColocationFactorWeight!==0&&s.IPColocationFactorThreshold<1)throw new q("invalid IPColocationFactorThreshold; must be at least 1");if(s.behaviourPenaltyWeight>0)throw new q("invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)");if(s.behaviourPenaltyWeight!==0&&(s.behaviourPenaltyDecay<=0||s.behaviourPenaltyDecay>=1))throw new q("invalid BehaviourPenaltyDecay; must be between 0 and 1");if(s.decayInterval<1e3)throw new q("invalid DecayInterval; must be at least 1s");if(s.decayToZero<=0||s.decayToZero>=1)throw new q("invalid DecayToZero; must be between 0 and 1")}function Jf(s){if(s.topicWeight<0)throw new q("invalid topic weight; must be >= 0");if(s.timeInMeshQuantum===0)throw new q("invalid TimeInMeshQuantum; must be non zero");if(s.timeInMeshWeight<0)throw new q("invalid TimeInMeshWeight; must be positive (or 0 to disable)");if(s.timeInMeshWeight!==0&&s.timeInMeshQuantum<=0)throw new q("invalid TimeInMeshQuantum; must be positive");if(s.timeInMeshWeight!==0&&s.timeInMeshCap<=0)throw new q("invalid TimeInMeshCap; must be positive");if(s.firstMessageDeliveriesWeight<0)throw new q("invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)");if(s.firstMessageDeliveriesWeight!==0&&(s.firstMessageDeliveriesDecay<=0||s.firstMessageDeliveriesDecay>=1))throw new q("invalid FirstMessageDeliveriesDecay; must be between 0 and 1");if(s.firstMessageDeliveriesWeight!==0&&s.firstMessageDeliveriesCap<=0)throw new q("invalid FirstMessageDeliveriesCap; must be positive");if(s.meshMessageDeliveriesWeight>0)throw new q("invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)");if(s.meshMessageDeliveriesWeight!==0&&(s.meshMessageDeliveriesDecay<=0||s.meshMessageDeliveriesDecay>=1))throw new q("invalid MeshMessageDeliveriesDecay; must be between 0 and 1");if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesCap<=0)throw new q("invalid MeshMessageDeliveriesCap; must be positive");if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesThreshold<=0)throw new q("invalid MeshMessageDeliveriesThreshold; must be positive");if(s.meshMessageDeliveriesWindow<0)throw new q("invalid MeshMessageDeliveriesWindow; must be non-negative");if(s.meshMessageDeliveriesWeight!==0&&s.meshMessageDeliveriesActivation<1e3)throw new q("invalid MeshMessageDeliveriesActivation; must be at least 1s");if(s.meshFailurePenaltyWeight>0)throw new q("invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)");if(s.meshFailurePenaltyWeight!==0&&(s.meshFailurePenaltyDecay<=0||s.meshFailurePenaltyDecay>=1))throw new q("invalid MeshFailurePenaltyDecay; must be between 0 and 1");if(s.invalidMessageDeliveriesWeight>0)throw new q("invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)");if(s.invalidMessageDeliveriesDecay<=0||s.invalidMessageDeliveriesDecay>=1)throw new q("invalid InvalidMessageDeliveriesDecay; must be between 0 and 1")}var Xf={gossipThreshold:-10,publishThreshold:-50,graylistThreshold:-80,acceptPXThreshold:10,opportunisticGraftThreshold:20};function rl(s={}){return{...Xf,...s}}function Dn(s,e,t=()=>!0){let r=new Set;if(e<=0)return r;for(let n of s){if(r.size>=e)break;t(n)&&(r.add(n),s.delete(n))}return r}function nl(s,e){return Dn(s,e,()=>!0)}var Pn=class extends Map{getDefault;constructor(e){super(),this.getDefault=e}getOrDefault(e){let t=super.get(e);return t===void 0&&(t=this.getDefault(),this.set(e,t)),t}};function il(s,e,t,r){let n=0;Object.entries(e.topics).forEach(([o,a])=>{let c=t.topics[o];if(c===void 0)return;let f=0;if(a.inMesh){let d=a.meshTime/c.timeInMeshQuantum;d>c.timeInMeshCap&&(d=c.timeInMeshCap),f+=d*c.timeInMeshWeight}let u=a.firstMessageDeliveries;if(u>c.firstMessageDeliveriesCap&&(u=c.firstMessageDeliveriesCap),f+=u*c.firstMessageDeliveriesWeight,a.meshMessageDeliveriesActive&&a.meshMessageDeliveries0&&n>t.topicScoreCap&&(n=t.topicScoreCap);let i=t.appSpecificScore(s);if(n+=i*t.appSpecificWeight,e.knownIPs.forEach(o=>{if(t.IPColocationFactorWhitelist.has(o))return;let a=r.get(o),c=a!=null?a.size:0;if(c>t.IPColocationFactorThreshold){let f=c-t.IPColocationFactorThreshold,u=f*f;n+=u*t.IPColocationFactorWeight}}),e.behaviourPenalty>t.behaviourPenaltyThreshold){let o=e.behaviourPenalty-t.behaviourPenaltyThreshold,a=o*o;n+=a*t.behaviourPenaltyWeight}return n}var cl=Co(al(),1);var _e;(function(s){s[s.unknown=0]="unknown",s[s.valid=1]="valid",s[s.invalid=2]="invalid",s[s.ignored=3]="ignored"})(_e||(_e={}));var Cn=class{records;queue;constructor(){this.records=new Map,this.queue=new cl.default}getRecord(e){return this.records.get(e)}ensureRecord(e){let t=this.records.get(e);if(t!=null)return t;t={status:_e.unknown,firstSeenTsMs:Date.now(),validated:0,peers:new Set},this.records.set(e,t);let r={msgId:e,expire:Date.now()+12e4};return this.queue.push(r),t}gc(){let e=Date.now(),t=this.queue.peekFront();for(;t!=null&&t.expirenew Set);scoreCache=new Map;deliveryRecords=new Cn;_backgroundInterval;scoreCacheValidityMs;computeScore;log;constructor(e,t,r,n){this.params=e,this.metrics=t,sl(e),this.scoreCacheValidityMs=n.scoreCacheValidityMs,this.computeScore=n.computeScore??il,this.log=r.forComponent("libp2p:gossipsub:score")}get size(){return this.peerStats.size}start(){if(this._backgroundInterval!=null){this.log("Peer score already running");return}this._backgroundInterval=setInterval(()=>{this.background()},this.params.decayInterval),this.log("started")}stop(){if(this._backgroundInterval==null){this.log("Peer score already stopped");return}clearInterval(this._backgroundInterval),delete this._backgroundInterval,this.peerIPs.clear(),this.peerStats.clear(),this.deliveryRecords.clear(),this.log("stopped")}background(){this.refreshScores(),this.deliveryRecords.gc()}dumpPeerScoreStats(){return Object.fromEntries(Array.from(this.peerStats.entries()).map(([e,t])=>[e,t]))}messageFirstSeenTimestampMs(e){let t=this.deliveryRecords.getRecord(e);return t!=null?t.firstSeenTsMs:null}refreshScores(){let e=Date.now(),t=this.params.decayToZero;this.peerStats.forEach((r,n)=>{if(!r.connected){e>r.expire&&(this.removeIPsForPeer(n,r.knownIPs),this.peerStats.delete(n),this.scoreCache.delete(n));return}Object.entries(r.topics).forEach(([i,o])=>{let a=this.params.topics[i];a!==void 0&&(o.firstMessageDeliveries*=a.firstMessageDeliveriesDecay,o.firstMessageDeliveriesa.meshMessageDeliveriesActivation&&(o.meshMessageDeliveriesActive=!0)))}),r.behaviourPenalty*=this.params.behaviourPenaltyDecay,r.behaviourPenaltyr)return n.score;this.metrics?.scoreFnRuns.inc();let i=this.computeScore(e,t,this.params,this.peerIPs),o=r+this.scoreCacheValidityMs;return n!=null?(this.metrics?.scoreCachedDelta.observe(Math.abs(i-n.score)),n.score=i,n.cacheUntil=o):this.scoreCache.set(e,{score:i,cacheUntil:o}),i}addPenalty(e,t,r){let n=this.peerStats.get(e);n!=null&&(n.behaviourPenalty+=t,this.metrics?.onScorePenalty(r))}addPeer(e){let t={connected:!0,expire:0,topics:{},knownIPs:new Set,behaviourPenalty:0};this.peerStats.set(e,t)}addIP(e,t){let r=this.peerStats.get(e);r?.knownIPs.add(t),this.peerIPs.getOrDefault(t).add(e)}removeIP(e,t){let r=this.peerStats.get(e);r?.knownIPs.delete(t);let n=this.peerIPs.get(t);n!=null&&(n.delete(e),n.size===0&&this.peerIPs.delete(t))}removePeer(e){let t=this.peerStats.get(e);if(t!=null){if(this.score(e)>0){this.removeIPsForPeer(e,t.knownIPs),this.peerStats.delete(e);return}Object.entries(t.topics).forEach(([r,n])=>{n.firstMessageDeliveries=0;let i=this.params.topics[r].meshMessageDeliveriesThreshold;if(n.inMesh&&n.meshMessageDeliveriesActive&&n.meshMessageDeliveries{o!==e.toString()&&this.markDuplicateMessageDelivery(o,r)})}rejectInvalidMessage(e,t){this.markInvalidMessageDelivery(e,t)}rejectMessage(e,t,r,n){switch(n){case Be.Error:this.markInvalidMessageDelivery(e,r);return;case Be.Blacklisted:return}let i=this.deliveryRecords.ensureRecord(t);if(i.status!==_e.unknown){this.log("unexpected rejection: message from %s was first seen %s ago and has delivery status %d",e,Date.now()-i.firstSeenTsMs,_e[i.status]);return}if(n===Be.Ignore){i.status=_e.ignored,i.peers.clear();return}i.status=_e.invalid,this.markInvalidMessageDelivery(e,r),i.peers.forEach(o=>{this.markInvalidMessageDelivery(o,r)}),i.peers.clear()}duplicateMessage(e,t,r){let n=this.deliveryRecords.ensureRecord(t);if(!n.peers.has(e))switch(n.status){case _e.unknown:n.peers.add(e);break;case _e.valid:n.peers.add(e),this.markDuplicateMessageDelivery(e,r,n.validated);break;case _e.invalid:this.markInvalidMessageDelivery(e,r);break;case _e.ignored:break}}markInvalidMessageDelivery(e,t){let r=this.peerStats.get(e);if(r!=null){let n=this.getPtopicStats(r,t);n!=null&&(n.invalidMessageDeliveries+=1)}}markFirstMessageDelivery(e,t){let r=this.peerStats.get(e);if(r!=null){let n=this.getPtopicStats(r,t);if(n!=null){let i=this.params.topics[t].firstMessageDeliveriesCap;n.firstMessageDeliveries=Math.min(i,n.firstMessageDeliveries+1),n.inMesh&&(i=this.params.topics[t].meshMessageDeliveriesCap,n.meshMessageDeliveries=Math.min(i,n.meshMessageDeliveries+1))}}}markDuplicateMessageDelivery(e,t,r){let n=this.peerStats.get(e);if(n!=null){let i=r!==void 0?Date.now():0,o=this.getPtopicStats(n,t);if(o!=null&&o.inMesh){let a=this.params.topics[t];if(r!==void 0){let f=i-r,u=f>a.meshMessageDeliveriesWindow;if(this.metrics?.onDuplicateMsgDelivery(t,f,u),u)return}let c=a.meshMessageDeliveriesCap;o.meshMessageDeliveries=Math.min(c,o.meshMessageDeliveries+1)}}}removeIPsForPeer(e,t){for(let r of t){let n=this.peerIPs.get(r);n!=null&&(n.delete(e),n.size===0&&this.peerIPs.delete(r))}}getPtopicStats(e,t){let r=e.topics[t];return r!==void 0?r:this.params.topics[t]!==void 0?(r={inMesh:!1,graftTime:0,meshTime:0,firstMessageDeliveries:0,meshMessageDeliveries:0,meshMessageDeliveriesActive:!1,meshFailurePenalty:0,invalidMessageDeliveries:0},e.topics[t]=r,r):null}};function Yf(s,e,t,r,n){let i=0,o=new Map;if(Object.entries(e.topics).forEach(([l,d])=>{let m=n.get(l)??"unknown",p=t.topics[l];if(p===void 0)return;let g=o.get(m);g==null&&(g={p1w:0,p2w:0,p3w:0,p3bw:0,p4w:0},o.set(m,g));let b=0,S=0,y=0,I=0,v=0;if(d.inMesh){let k=Math.max(d.meshTime/p.timeInMeshQuantum,p.timeInMeshCap);b+=k*p.timeInMeshWeight}let B=d.firstMessageDeliveries;if(B>p.firstMessageDeliveriesCap&&(B=p.firstMessageDeliveriesCap),S+=B*p.firstMessageDeliveriesWeight,d.meshMessageDeliveriesActive&&d.meshMessageDeliveries0&&i>t.topicScoreCap){i=t.topicScoreCap;let l=t.topicScoreCap/i;for(let d of o.values())d.p1w*=l,d.p2w*=l,d.p3w*=l,d.p3bw*=l,d.p4w*=l}let a=0,c=0,f=0,u=t.appSpecificScore(s);a+=u*t.appSpecificWeight,e.knownIPs.forEach(l=>{if(t.IPColocationFactorWhitelist.has(l))return;let d=r.get(l),m=d!=null?d.size:0;if(m>t.IPColocationFactorThreshold){let p=m-t.IPColocationFactorThreshold,g=p*p;c+=g*t.IPColocationFactorWeight}});let h=e.behaviourPenalty*e.behaviourPenalty;return f+=h*t.behaviourPenaltyWeight,i+=a+c+f,{byTopic:o,p5w:a,p6w:c,p7w:f,score:i}}function ll(s,e,t,r,n){let i={byTopic:new Map,p5w:[],p6w:[],p7w:[],score:[]};for(let o of s){let a=e.get(o);if(a!=null){let c=Yf(o,a,t,r,n);for(let[f,u]of c.byTopic){let h=i.byTopic.get(f);h==null&&(h={p1w:[],p2w:[],p3w:[],p3bw:[],p4w:[]},i.byTopic.set(f,h)),h.p1w.push(u.p1w),h.p2w.push(u.p2w),h.p3w.push(u.p3w),h.p3bw.push(u.p3bw),h.p4w.push(u.p4w)}i.p5w.push(c.p5w),i.p6w.push(c.p6w),i.p7w.push(c.p7w),i.score.push(c.score)}else i.p5w.push(0),i.p6w.push(0),i.p7w.push(0),i.score.push(0)}return i}var Rn=class{rawStream;pushable;closeController;maxBufferSize;constructor(e,t,r){this.rawStream=e,this.pushable=yt(),this.closeController=new AbortController,this.maxBufferSize=r.maxBufferSize??1/0,this.closeController.signal.addEventListener("abort",()=>{e.close().catch(n=>{e.abort(n)})}),Es(this.pushable,this.rawStream).catch(t)}get protocol(){return this.rawStream.protocol}push(e){if(this.pushable.readableLength>this.maxBufferSize)throw Error(`OutboundStream buffer full, size > ${this.maxBufferSize}`);this.pushable.push(vs.single(e))}pushPrefixed(e){if(this.pushable.readableLength>this.maxBufferSize)throw Error(`OutboundStream buffer full, size > ${this.maxBufferSize}`);this.pushable.push(e)}async close(){this.closeController.abort(),await this.pushable.return()}},Ln=class{source;rawStream;closeController;constructor(e,t={}){this.rawStream=e,this.closeController=new AbortController,this.closeController.signal.addEventListener("abort",()=>{e.close().catch(r=>{e.abort(r)})}),this.source=Es(this.rawStream,r=>tr(r,t))}async close(){this.closeController.abort()}};var Un=class{gossipsubIWantFollowupMs;msgIdToStrFn;metrics;promises=new Map;requestMsByMsg=new Map;requestMsByMsgExpire;constructor(e,t,r){this.gossipsubIWantFollowupMs=e,this.msgIdToStrFn=t,this.metrics=r,this.requestMsByMsgExpire=10*e}get size(){return this.promises.size}get requestMsByMsgSize(){return this.requestMsByMsg.size}addPromise(e,t){let r=Math.floor(Math.random()*t.length),n=t[r],i=this.msgIdToStrFn(n),o=this.promises.get(i);o==null&&(o=new Map,this.promises.set(i,o));let a=Date.now();o.has(e)||(o.set(e,a+this.gossipsubIWantFollowupMs),this.metrics!=null&&(this.metrics.iwantPromiseStarted.inc(1),this.requestMsByMsg.has(i)||this.requestMsByMsg.set(i,a)))}getBrokenPromises(){let e=Date.now(),t=new Map,r=0;return this.promises.forEach((n,i)=>{n.forEach((o,a)=>{oMath.floor(Math.random()*Math.floor(s.length));for(let t=0;t{let t=X(e.toString(16).padStart(16,"0"),"base16"),r=At(s),n=new Uint8Array(r.byteLength+t.length);return n.set(r,0),n.set(t,r.byteLength),n};function ml(s){if(s.type!=="signed")throw new Error("expected signed message type");if(s.sequenceNumber==null)throw Error("missing seqno field");return gl(s.from.publicKey??s.key,s.sequenceNumber)}async function bl(s){return Tt.encode(s.data)}var Fn=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,r=e();return r===void 0&&(this.index=t),r}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,r){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return r()})}readNumber(e,t,r,n){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*n)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let l=Number.parseInt(h,e);if(!Number.isNaN(l))return l});if(u===void 0)break;if(i*=e,i+=u,i>f||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!r&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;tthis.readNumber(10,3,!1,1));if(r===void 0)return;e[t]=r}return e})}readIPv6Addr(){let e=t=>{for(let r=0;rthis.readIPv4Addr());if(o!==void 0)return t[n]=o[0],t[n+1]=o[1],t[n+2]=o[2],t[n+3]=o[3],[n+4,!0]}let i=this.readSeparator(":",r,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[n,!1];t[n]=i>>8,t[n+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[r,n]=e(t);if(r===16)return t;if(n||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(r+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Qf=45;var yl=new Fn;function Vn(s){if(s.includes("%")&&(s=s.split("%")[0]),!(s.length>Qf))return yl.new(s).parseWith(()=>yl.readIPAddr())}var Iw=parseInt("0xFFFF",16),_w=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function wo(s){return!!Vn(s)}var xl=function(s,e=0,t){e=~~e,t=t??s.length-e;let r=new DataView(s.buffer);if(t===4){let n=[];for(let i=0;i{let e=cd(...s);xo[e.code]=e,vo[e.name]=e});function cd(s,e,t,r,n){return{code:s,size:e,name:t,resolvable:!!r,path:!!n}}function sr(s){if(typeof s=="number"){if(xo[s]!=null)return xo[s];throw new Error(`no protocol with code: ${s}`)}else if(typeof s=="string"){if(vo[s]!=null)return vo[s];throw new Error(`no protocol with name: ${s}`)}throw new Error(`invalid protocol id type: ${typeof s}`)}var fv=sr("ip4"),dv=sr("ip6"),pv=sr("ipcidr");function Sl(s,e){switch(sr(s).code){case 4:case 41:return ld(e);case 42:return So(e);case 6:case 273:case 33:case 132:return Bl(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return So(e);case 421:return hd(e);case 444:return El(e);case 445:return El(e);case 466:return ud(e);case 481:return globalThis.encodeURIComponent(So(e));default:return $(e,"base16")}}var Eo=Object.values(Us).map(s=>s.decoder),gv=function(){let s=Eo[0].or(Eo[1]);return Eo.slice(2).forEach(e=>s=s.or(e)),s}();function ld(s){let e=xl(s,0,s.length);if(e==null)throw new Error("ipBuff is required");if(!wo(e))throw new Error("invalid ip address");return e}function Bl(s){return new DataView(s.buffer).getUint16(s.byteOffset)}function So(s){let e=us(s);if(s=s.slice(Ee(e)),s.length!==e)throw new Error("inconsistent lengths");return $(s)}function ud(s){let e=us(s),t=s.slice(Ee(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+$(t,"base64url")}function hd(s){let e=us(s),t=s.slice(Ee(e));if(t.length!==e)throw new Error("inconsistent lengths");return $(t,"base58btc")}function El(s){let e=s.slice(0,s.length-2),t=s.slice(s.length-2),r=$(e,"base32"),n=Bl(t);return`${r}:${n}`}var Hn;(function(s){s[s.ip4=4]="ip4",s[s.ip6=41]="ip6"})(Hn||(Hn={}));function Il(s){for(let e of s.tuples())switch(e[0]){case Hn.ip4:case Hn.ip6:return Sl(e[0],e[1]);default:break}return null}var _s=class{entries=new Map;validityMs;constructor(e){this.validityMs=e.validityMs}get size(){return this.entries.size}put(e,t){return this.entries.has(e)?!0:(this.entries.set(e,{value:t,validUntilMs:Date.now()+this.validityMs}),!1)}prune(){let e=Date.now();for(let[t,r]of this.entries.entries())if(r.validUntilMs=Date.now()?t.value:void 0}clear(){this.entries.clear()}};var Ud=Tn,Le;(function(s){s[s.started=0]="started",s[s.stopped=1]="stopped"})(Le||(Le={}));var On=class extends ir{globalSignaturePolicy;multicodecs=[Tn,mo];publishConfig;dataTransform;peers=new Set;streamsInbound=new Map;streamsOutbound=new Map;outboundInflightQueue=yt({objectMode:!0});direct=new Set;floodsubPeers=new Set;seenCache;acceptFromWhitelist=new Map;topics=new Map;subscriptions=new Set;mesh=new Map;fanout=new Map;fanoutLastpub=new Map;gossip=new Map;control=new Map;peerhave=new Map;iasked=new Map;backoff=new Map;outbound=new Map;msgIdFn;fastMsgIdFn;msgIdToStrFn;fastMsgIdCache;publishedMessageIds;mcache;score;topicValidators=new Map;log;heartbeatTicks=0;gossipTracer;components;directPeerInitial=null;static multicodec=Tn;opts;decodeRpcLimits;metrics;status={code:Le.stopped};maxInboundStreams;maxOutboundStreams;runOnLimitedConnection;allowedTopics;heartbeatTimer=null;constructor(e,t={}){super();let r={fallbackToFloodsub:!0,floodPublish:!0,batchPublish:!1,tagMeshPeers:!0,doPX:!1,directPeers:[],D:6,Dlo:4,Dhi:12,Dscore:4,Dout:2,Dlazy:6,heartbeatInterval:1e3,fanoutTTL:6e4,mcacheLength:5,mcacheGossip:3,seenTTL:12e4,gossipsubIWantFollowupMs:3e3,prunePeers:16,pruneBackoff:6e4,unsubcribeBackoff:1e4,graftFloodThreshold:1e4,opportunisticGraftPeers:2,opportunisticGraftTicks:60,directConnectTicks:300,gossipFactor:.25,...t,scoreParams:tl(t.scoreParams),scoreThresholds:rl(t.scoreThresholds)};if(this.components=e,this.decodeRpcLimits=r.decodeRpcLimits??Xc,this.globalSignaturePolicy=r.globalSignaturePolicy??Ft,r.fallbackToFloodsub&&this.multicodecs.push(go),this.log=e.logger.forComponent(r.debugName??"libp2p:gossipsub"),this.opts=r,this.direct=new Set(r.directPeers.map(n=>n.id.toString())),this.seenCache=new _s({validityMs:r.seenTTL}),this.publishedMessageIds=new _s({validityMs:r.seenTTL}),t.msgIdFn!=null)this.msgIdFn=t.msgIdFn;else switch(this.globalSignaturePolicy){case Ft:this.msgIdFn=ml;break;case Xt:this.msgIdFn=bl;break;default:throw new Error(`Invalid globalSignaturePolicy: ${this.globalSignaturePolicy}`)}if(t.fastMsgIdFn!=null&&(this.fastMsgIdFn=t.fastMsgIdFn,this.fastMsgIdCache=new _s({validityMs:r.seenTTL})),this.msgIdToStrFn=t.msgIdToStrFn??dl,this.mcache=t.messageCache??new Mn(r.mcacheGossip,r.mcacheLength,this.msgIdToStrFn),t.dataTransform!=null&&(this.dataTransform=t.dataTransform),t.metricsRegister!=null){if(t.metricsTopicStrToLabel==null)throw Error("Must set metricsTopicStrToLabel with metrics");let n=Math.max(...Object.values(r.scoreParams.topics).map(o=>o.meshMessageDeliveriesWindow),1e3),i=el(t.metricsRegister,t.metricsTopicStrToLabel,{gossipPromiseExpireSec:this.opts.gossipsubIWantFollowupMs/1e3,behaviourPenaltyThreshold:r.scoreParams.behaviourPenaltyThreshold,maxMeshMessageDeliveriesWindowSec:n/1e3});i.mcacheSize.addCollect(()=>{this.onScrapeMetrics(i)});for(let o of this.multicodecs)i.protocolsEnabled.set({protocol:o},1);this.metrics=i}else this.metrics=null;this.gossipTracer=new Un(this.opts.gossipsubIWantFollowupMs,this.msgIdToStrFn,this.metrics),this.score=new Nn(this.opts.scoreParams,this.metrics,this.components.logger,{scoreCacheValidityMs:r.heartbeatInterval}),this.maxInboundStreams=t.maxInboundStreams,this.maxOutboundStreams=t.maxOutboundStreams,this.runOnLimitedConnection=t.runOnLimitedConnection,this.allowedTopics=r.allowedTopics!=null?new Set(r.allowedTopics):null}[Symbol.toStringTag]="@chainsafe/libp2p-gossipsub";[Ro]=["@libp2p/pubsub"];[Lo]=["@libp2p/identify"];getPeers(){return[...this.peers.keys()].map(e=>Lt(e))}isStarted(){return this.status.code===Le.started}async start(){if(this.isStarted())return;this.log("starting"),this.publishConfig=pl(this.globalSignaturePolicy,this.components.peerId,this.components.privateKey),this.outboundInflightQueue=yt({objectMode:!0}),Es(this.outboundInflightQueue,async i=>{for await(let{peerId:o,connection:a}of i)await this.createOutboundStream(o,a)}).catch(i=>{this.log.error("outbound inflight queue error",i)}),await Promise.all(this.opts.directPeers.map(async i=>{await this.components.peerStore.merge(i.id,{multiaddrs:i.addrs})}));let e=this.components.registrar;await Promise.all(this.multicodecs.map(async i=>e.handle(i,this.onIncomingStream.bind(this),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams,runOnLimitedConnection:this.runOnLimitedConnection})));let t={onConnect:this.onPeerConnected.bind(this),onDisconnect:this.onPeerDisconnected.bind(this),notifyOnLimitedConnection:this.runOnLimitedConnection},r=await Promise.all(this.multicodecs.map(async i=>e.register(i,t))),n=setTimeout(this.runHeartbeat,100);this.status={code:Le.started,registrarTopologyIds:r,heartbeatTimeout:n,hearbeatStartMs:Date.now()+100},this.score.start(),this.directPeerInitial=setTimeout(()=>{Promise.resolve().then(async()=>{await Promise.all(Array.from(this.direct).map(async i=>this.connect(i)))}).catch(i=>{this.log(i)})},1e3),this.opts.tagMeshPeers&&(this.addEventListener("gossipsub:graft",this.tagMeshPeer),this.addEventListener("gossipsub:prune",this.untagMeshPeer)),this.log("started")}async stop(){if(this.log("stopping"),this.status.code!==Le.started)return;let{registrarTopologyIds:e}=this.status;this.status={code:Le.stopped},this.opts.tagMeshPeers&&(this.removeEventListener("gossipsub:graft",this.tagMeshPeer),this.removeEventListener("gossipsub:prune",this.untagMeshPeer));let t=this.components.registrar;await Promise.all(this.multicodecs.map(async n=>t.unhandle(n))),e.forEach(n=>{t.unregister(n)}),this.outboundInflightQueue.end();let r=[];for(let n of this.streamsOutbound.values())r.push(n.close());this.streamsOutbound.clear();for(let n of this.streamsInbound.values())r.push(n.close());this.streamsInbound.clear(),await Promise.all(r),this.peers.clear(),this.subscriptions.clear(),this.heartbeatTimer!=null&&(this.heartbeatTimer.cancel(),this.heartbeatTimer=null),this.score.stop(),this.mesh.clear(),this.fanout.clear(),this.fanoutLastpub.clear(),this.gossip.clear(),this.control.clear(),this.peerhave.clear(),this.iasked.clear(),this.backoff.clear(),this.outbound.clear(),this.gossipTracer.clear(),this.seenCache.clear(),this.fastMsgIdCache!=null&&this.fastMsgIdCache.clear(),this.directPeerInitial!=null&&clearTimeout(this.directPeerInitial),this.log("stopped")}dumpPeerScoreStats(){return this.score.dumpPeerScoreStats()}onIncomingStream({stream:e,connection:t}){if(!this.isStarted())return;let r=t.remotePeer;this.addPeer(r,t.direction,t.remoteAddr),this.createInboundStream(r,e),this.outboundInflightQueue.push({peerId:r,connection:t})}onPeerConnected(e,t){this.metrics?.newConnectionCount.inc({status:t.status}),!(!this.isStarted()||t.status!=="open")&&(this.addPeer(e,t.direction,t.remoteAddr),this.outboundInflightQueue.push({peerId:e,connection:t}))}onPeerDisconnected(e){this.log("connection ended %p",e),this.removePeer(e)}async createOutboundStream(e,t){if(!this.isStarted())return;let r=e.toString();if(this.peers.has(r)&&!this.streamsOutbound.has(r))try{let n=new Rn(await t.newStream(this.multicodecs,{runOnLimitedConnection:this.runOnLimitedConnection}),o=>{this.log.error("outbound pipe error",o)},{maxBufferSize:this.opts.maxOutboundBufferSize});this.log("create outbound stream %p",e),this.streamsOutbound.set(r,n);let i=n.protocol;i===go&&this.floodsubPeers.add(r),this.metrics?.peersPerProtocol.inc({protocol:i},1),this.subscriptions.size>0&&(this.log("send subscriptions to",r),this.sendSubscriptions(r,Array.from(this.subscriptions),!0))}catch(n){this.log.error("createOutboundStream error",n)}}createInboundStream(e,t){if(!this.isStarted())return;let r=e.toString();if(!this.peers.has(r))return;let n=this.streamsInbound.get(r);n!==void 0&&(this.log("replacing existing inbound steam %s",r),n.close().catch(o=>{this.log.error(o)})),this.log("create inbound stream %s",r);let i=new Ln(t,{maxDataLength:this.opts.maxInboundDataLength});this.streamsInbound.set(r,i),this.pipePeerReadStream(e,i.source).catch(o=>{this.log(o)})}addPeer(e,t,r){let n=e.toString();if(!this.peers.has(n)){this.log("new peer %p",e),this.peers.add(n),this.score.addPeer(n);let i=Il(r);i!==null?this.score.addIP(n,i):this.log("Added peer has no IP in current address %s %s",n,r.toString()),this.outbound.has(n)||this.outbound.set(n,t==="outbound")}}removePeer(e){let t=e.toString();if(!this.peers.has(t))return;this.log("delete peer %p",e),this.peers.delete(t);let r=this.streamsOutbound.get(t),n=this.streamsInbound.get(t);r!=null&&this.metrics?.peersPerProtocol.inc({protocol:r.protocol},-1),r?.close().catch(i=>{this.log.error(i)}),n?.close().catch(i=>{this.log.error(i)}),this.streamsOutbound.delete(t),this.streamsInbound.delete(t);for(let i of this.topics.values())i.delete(t);for(let[i,o]of this.mesh)o.delete(t)&&this.metrics?.onRemoveFromMesh(i,$e.Dc,1);for(let i of this.fanout.values())i.delete(t);this.floodsubPeers.delete(t),this.gossip.delete(t),this.control.delete(t),this.outbound.delete(t),this.score.removePeer(t),this.acceptFromWhitelist.delete(t)}get started(){return this.status.code===Le.started}getMeshPeers(e){let t=this.mesh.get(e);return t!=null?Array.from(t):[]}getSubscribers(e){let t=this.topics.get(e);return(t!=null?Array.from(t):[]).map(r=>Lt(r))}getTopics(){return Array.from(this.subscriptions)}async pipePeerReadStream(e,t){try{await Es(t,async r=>{for await(let n of r)try{let i=n.subarray(),o=wt.decode(i,{limits:{subscriptions:this.decodeRpcLimits.maxSubscriptions,messages:this.decodeRpcLimits.maxMessages,control$:{ihave:this.decodeRpcLimits.maxIhaveMessageIDs,iwant:this.decodeRpcLimits.maxIwantMessageIDs,graft:this.decodeRpcLimits.maxControlMessages,prune:this.decodeRpcLimits.maxControlMessages,prune$:{peers:this.decodeRpcLimits.maxPeerInfos}}}});if(this.metrics?.onRpcRecv(o,i.length),this.opts.awaitRpcHandler)try{await this.handleReceivedRpc(e,o)}catch(a){this.metrics?.onRpcRecvError(),this.log(a)}else this.handleReceivedRpc(e,o).catch(a=>{this.metrics?.onRpcRecvError(),this.log(a)})}catch(i){this.metrics?.onRpcDataError(),this.log(i)}})}catch(r){this.metrics?.onPeerReadStreamError(),this.handlePeerReadStreamError(r,e)}}handlePeerReadStreamError(e,t){this.log.error(e),this.onPeerDisconnected(t)}async handleReceivedRpc(e,t){if(!this.acceptFrom(e.toString())){this.log("received message from unacceptable peer %p",e),this.metrics?.rpcRecvNotAccepted.inc();return}let r=t.subscriptions!=null?t.subscriptions.length:0,n=t.messages!=null?t.messages.length:0,i=0,o=0,a=0,c=0;if(t.control!=null&&(t.control.ihave!=null&&(i=t.control.ihave.length),t.control.iwant!=null&&(o=t.control.iwant.length),t.control.graft!=null&&(a=t.control.graft.length),t.control.prune!=null&&(c=t.control.prune.length)),this.log(`rpc.from ${e.toString()} subscriptions ${r} messages ${n} ihave ${i} iwant ${o} graft ${a} prune ${c}`),t.subscriptions!=null&&t.subscriptions.length>0){let f=[];t.subscriptions.forEach(u=>{let h=u.topic,l=u.subscribe===!0;if(h!=null){if(this.allowedTopics!=null&&!this.allowedTopics.has(h))return;this.handleReceivedSubscription(e,h,l),f.push({topic:h,subscribe:l})}}),this.safeDispatchEvent("subscription-change",{detail:{peerId:e,subscriptions:f}})}for(let f of t.messages){if(this.allowedTopics!=null&&!this.allowedTopics.has(f.topic))continue;let u=this.handleReceivedMessage(e,f).catch(h=>{this.metrics?.onMsgRecvError(f.topic),this.log(h)});this.opts.awaitRpcMessageHandler&&await u}t.control!=null&&await this.handleControlMessage(e.toString(),t.control)}handleReceivedSubscription(e,t,r){this.log("subscription update from %p topic %s",e,t);let n=this.topics.get(t);n==null&&(n=new Set,this.topics.set(t,n)),r?n.add(e.toString()):n.delete(e.toString())}async handleReceivedMessage(e,t){this.metrics?.onMsgRecvPreValidation(t.topic);let r=await this.validateReceivedMessage(e,t);this.metrics?.onPrevalidationResult(t.topic,r.code);let n=r.code;switch(n){case ye.duplicate:this.score.duplicateMessage(e.toString(),r.msgIdStr,t.topic),this.gossipTracer.deliverMessage(r.msgIdStr,!0),this.mcache.observeDuplicate(r.msgIdStr,e.toString());return;case ye.invalid:if(r.msgIdStr!=null){let i=r.msgIdStr;this.score.rejectMessage(e.toString(),i,t.topic,r.reason),this.gossipTracer.rejectMessage(i,r.reason)}else this.score.rejectInvalidMessage(e.toString(),t.topic);this.metrics?.onMsgRecvInvalid(t.topic,r);return;case ye.valid:this.score.validateMessage(r.messageId.msgIdStr),this.gossipTracer.deliverMessage(r.messageId.msgIdStr),this.mcache.put(r.messageId,t,!this.opts.asyncValidation),this.subscriptions.has(t.topic)&&(!this.components.peerId.equals(e)||this.opts.emitSelf)&&(super.dispatchEvent(new CustomEvent("gossipsub:message",{detail:{propagationSource:e,msgId:r.messageId.msgIdStr,msg:r.msg}})),super.dispatchEvent(new CustomEvent("message",{detail:r.msg}))),this.opts.asyncValidation||this.forwardMessage(r.messageId.msgIdStr,t,e.toString());break;default:throw new Error(`Invalid validation result: ${n}`)}}async validateReceivedMessage(e,t){let r=this.fastMsgIdFn?.(t),n=r!==void 0?this.fastMsgIdCache?.get(r):void 0;if(n!=null)return{code:ye.duplicate,msgIdStr:n};let i=await fl(this.globalSignaturePolicy,t);if(!i.valid)return{code:ye.invalid,reason:Be.Error,error:i.error};let o=i.message;try{this.dataTransform!=null&&(o.data=this.dataTransform.inboundTransform(t.topic,o.data))}catch(h){return this.log("Invalid message, transform failed",h),{code:ye.invalid,reason:Be.Error,error:be.TransformFailed}}let a=await this.msgIdFn(o),c=this.msgIdToStrFn(a),f={msgId:a,msgIdStr:c};if(r!==void 0&&this.fastMsgIdCache!=null&&this.fastMsgIdCache.put(r,c)&&this.metrics?.fastMsgIdCacheCollision.inc(),this.seenCache.has(c))return{code:ye.duplicate,msgIdStr:c};this.seenCache.put(c);let u=this.topicValidators.get(t.topic);if(u!=null){let h;try{h=await u(e,o)}catch(l){let d=l.code;d===Jc&&(h=xe.Ignore),d===Zc?h=xe.Reject:h=xe.Ignore}if(h!==xe.Accept)return{code:ye.invalid,reason:bo(h),msgIdStr:c}}return{code:ye.valid,messageId:f,msg:o}}getScore(e){return this.score.score(e)}sendSubscriptions(e,t,r){this.sendRpc(e,{subscriptions:t.map(n=>({topic:n,subscribe:r})),messages:[]})}async handleControlMessage(e,t){if(t===void 0)return;let r=t.ihave!=null?this.handleIHave(e,t.ihave):[],n=t.iwant!=null?this.handleIWant(e,t.iwant):[],i=t.graft!=null?await this.handleGraft(e,t.graft):[];if(t.prune!=null&&await this.handlePrune(e,t.prune),r.length===0&&n.length===0&&i.length===0)return;let o=this.sendRpc(e,et(n,{iwant:r,prune:i})),a=r[0]?.messageIDs;a!=null&&(o?this.gossipTracer.addPromise(e,a):this.metrics?.iwantPromiseUntracked.inc(1))}acceptFrom(e){if(this.direct.has(e))return!0;let t=Date.now(),r=this.acceptFromWhitelist.get(e);if(r!=null&&r.messagesAccepted<128&&r.acceptUntil>=t)return r.messagesAccepted+=1,!0;let n=this.score.score(e);return n>=0?this.acceptFromWhitelist.set(e,{messagesAccepted:0,acceptUntil:t+1e3}):this.acceptFromWhitelist.delete(e),n>=this.opts.scoreThresholds.graylistThreshold}handleIHave(e,t){if(t.length===0)return[];let r=this.score.score(e);if(r10)return this.log("IHAVE: peer %s has advertised too many times (%d) within this heartbeat interval; ignoring",e,n),this.metrics?.ihaveRcvIgnored.inc({reason:Is.MaxIhave}),[];let i=this.iasked.get(e)??0;if(i>=5e3)return this.log("IHAVE: peer %s has already advertised too many messages (%d); ignoring",e,i),this.metrics?.ihaveRcvIgnored.inc({reason:Is.MaxIasked}),[];let o=new Map;if(t.forEach(({topicID:f,messageIDs:u})=>{if(f==null||u==null||!this.mesh.has(f))return;let h=0;u.forEach(l=>{let d=this.msgIdToStrFn(l);this.seenCache.has(d)||(o.set(d,l),h++)}),this.metrics?.onIhaveRcv(f,u.length,h)}),o.size===0)return[];let a=o.size;a+i>5e3&&(a=5e3-i),this.log("IHAVE: Asking for %d out of %d messages from %s",a,o.size,e);let c=Array.from(o.values());return tt(c),c=c.slice(0,a),this.iasked.set(e,i+a),[{messageIDs:c}]}handleIWant(e,t){if(t.length===0)return[];let r=this.score.score(e);if(r{a?.forEach(c=>{let f=this.msgIdToStrFn(c),u=this.mcache.getWithIWantCount(f,e);if(u==null){o++;return}if(i.set(u.msg.topic,1+(i.get(u.msg.topic)??0)),u.count>3){this.log("IWANT: Peer %s has asked for message %s too many times: ignoring request",e,c);return}n.set(f,u.msg)})}),this.metrics?.onIwantRcv(i,o),n.size===0?(this.log("IWANT: Could not provide any wanted messages to %s",e),[]):(this.log("IWANT: Sending %d messages to %s",n.size,e),Array.from(n.values()))}async handleGraft(e,t){let r=[],n=this.score.score(e),i=Date.now(),o=this.opts.doPX;if(t.forEach(({topicID:c})=>{if(c==null)return;let f=this.mesh.get(c);if(f==null){o=!1;return}if(f.has(e))return;let u=this.backoff.get(c)?.get(e);if(this.direct.has(e))this.log("GRAFT: ignoring request from direct peer %s",e),r.push(c),o=!1;else if(typeof u=="number"&&i=this.opts.Dhi&&!(this.outbound.get(e)??!1)?(r.push(c),this.addBackoff(e,c)):(this.log("GRAFT: Add mesh link from %s in %s",e,c),this.score.graft(e,c),f.add(e),this.metrics?.onAddToMesh(c,Ie.Subscribed,1));this.safeDispatchEvent("gossipsub:graft",{detail:{peerId:e,topic:c,direction:"inbound"}})}),r.length===0)return[];let a=!1;return Promise.all(r.map(async c=>this.makePrune(e,c,o,a)))}async handlePrune(e,t){let r=this.score.score(e);for(let{topicID:n,backoff:i,peers:o}of t){if(n==null)continue;let a=this.mesh.get(n);if(a==null)return;this.log("PRUNE: Remove mesh link to %s in %s",e,n),this.score.prune(e,n),a.has(e)&&(a.delete(e),this.metrics?.onRemoveFromMesh(n,$e.Prune,1)),typeof i=="number"&&i>0?this.doAddBackoff(e,n,i*1e3):this.addBackoff(e,n),o!=null&&o.length>0&&(r{this.log("peer %s didn't follow up in %d IWANT requests; adding penalty",t,e),this.score.addPenalty(t,e,Bs.BrokenPromise)})}clearBackoff(){if(this.heartbeatTicks%15!==0)return;let e=Date.now();this.backoff.forEach((t,r)=>{t.forEach((n,i)=>{n+1*this.opts.heartbeatInterval{this.streamsOutbound.has(t)||e.push(t)}),await Promise.all(e.map(async t=>this.connect(t)))}async pxConnect(e){e.length>this.opts.prunePeers&&(tt(e),e=e.slice(0,this.opts.prunePeers));let t=[];await Promise.all(e.map(async r=>{if(r.peerID==null)return;let n=Qs(Oe(r.peerID)),i=n.toString();if(!this.peers.has(i)){if(r.signedPeerRecord==null){t.push(i);return}try{if(!await this.components.peerStore.consumePeerRecord(r.signedPeerRecord,n)){this.log("bogus peer record obtained through px: could not add peer record to address book");return}t.push(i)}catch{this.log("bogus peer record obtained through px: invalid signature or not a peer record")}}})),t.length!==0&&await Promise.all(t.map(async r=>this.connect(r)))}async connect(e){this.log("Initiating connection with %s",e);let t=Lt(e),r=await this.components.connectionManager.openConnection(t);for(let n of this.multicodecs)for(let i of this.components.registrar.getTopologies(n))i.onConnect?.(t,r)}subscribe(e){if(this.status.code!==Le.started)throw new Error("Pubsub has not started");if(!this.subscriptions.has(e)){this.subscriptions.add(e);for(let t of this.peers.keys())this.sendSubscriptions(t,[e],!0)}this.join(e)}unsubscribe(e){if(this.status.code!==Le.started)throw new Error("Pubsub is not started");let t=this.subscriptions.delete(e);if(this.log("unsubscribe from %s - am subscribed %s",e,t),t)for(let r of this.peers.keys())this.sendSubscriptions(r,[e],!1);this.leave(e)}join(e){if(this.status.code!==Le.started)throw new Error("Gossipsub has not started");if(this.mesh.has(e))return;this.log("JOIN %s",e),this.metrics?.onJoin(e);let t=new Set,r=this.backoff.get(e),n=this.fanout.get(e);if(n!=null&&(this.fanout.delete(e),this.fanoutLastpub.delete(e),n.forEach(i=>{!this.direct.has(i)&&this.score.score(i)>=0&&(r==null||!r.has(i))&&t.add(i)}),this.metrics?.onAddToMesh(e,Ie.Fanout,t.size)),t.size!t.has(a)&&!this.direct.has(a)&&this.score.score(a)>=0&&(r==null||!r.has(a))).forEach(a=>{t.add(a)}),this.metrics?.onAddToMesh(e,Ie.Random,t.size-i)}this.mesh.set(e,t),t.forEach(i=>{this.log("JOIN: Add mesh link to %s in %s",i,e),this.sendGraft(i,e)})}leave(e){if(this.status.code!==Le.started)throw new Error("Gossipsub has not started");this.log("LEAVE %s",e),this.metrics?.onLeave(e);let t=this.mesh.get(e);t!=null&&(Promise.all(Array.from(t).map(async r=>{this.log("LEAVE: Remove mesh link to %s in %s",r,e),await this.sendPrune(r,e)})).catch(r=>{this.log("Error sending prunes to mesh peers",r)}),this.mesh.delete(e))}selectPeersToForward(e,t,r){let n=new Set,i=this.topics.get(e);i!=null&&(this.direct.forEach(a=>{i.has(a)&&t!==a&&!(r?.has(a)??!1)&&n.add(a)}),this.floodsubPeers.forEach(a=>{i.has(a)&&t!==a&&!(r?.has(a)??!1)&&this.score.score(a)>=this.opts.scoreThresholds.publishThreshold&&n.add(a)}));let o=this.mesh.get(e);return o!=null&&o.size>0&&o.forEach(a=>{t!==a&&!(r?.has(a)??!1)&&n.add(a)}),n}selectPeersToPublish(e){let t=new Set,r={direct:0,floodsub:0,mesh:0,fanout:0},n=this.topics.get(e);if(n!=null)if(this.opts.floodPublish)n.forEach(i=>{this.direct.has(i)?(t.add(i),r.direct++):this.score.score(i)>=this.opts.scoreThresholds.publishThreshold&&(t.add(i),r.floodsub++)});else{this.direct.forEach(o=>{n.has(o)&&(t.add(o),r.direct++)}),this.floodsubPeers.forEach(o=>{n.has(o)&&this.score.score(o)>=this.opts.scoreThresholds.publishThreshold&&(t.add(o),r.floodsub++)});let i=this.mesh.get(e);if(i!=null&&i.size>0)i.forEach(o=>{t.add(o),r.mesh++}),i.size!i.has(a)&&!this.direct.has(a)&&!this.floodsubPeers.has(a)&&this.score.score(a)>=this.opts.scoreThresholds.publishThreshold).forEach(a=>{t.add(a),r.mesh++});else{let o=this.fanout.get(e);if(o!=null&&o.size>0)o.forEach(a=>{t.add(a),r.fanout++});else{let a=this.getRandomGossipPeers(e,this.opts.D,c=>this.score.score(c)>=this.opts.scoreThresholds.publishThreshold);a.size>0&&(this.fanout.set(e,a),a.forEach(c=>{t.add(c),r.fanout++}))}this.fanoutLastpub.set(e,Date.now())}}return{tosend:t,tosendCount:r}}forwardMessage(e,t,r,n){r!=null&&this.score.deliverMessage(r,e,t.topic);let i=this.selectPeersToForward(t.topic,r,n);i.forEach(o=>{this.sendRpc(o,et([t]))}),this.metrics?.onForwardMsg(t.topic,i.size)}async publish(e,t,r){let n=Date.now(),i=this.dataTransform!=null?this.dataTransform.outboundTransform(e,t):t;if(this.publishConfig==null)throw Error("PublishError.Uninitialized");let{raw:o,msg:a}=await hl(this.publishConfig,e,t,i),c=await this.msgIdFn(a),f=this.msgIdToStrFn(c),u=r?.ignoreDuplicatePublishError??this.opts.ignoreDuplicatePublishError;if(this.seenCache.has(f)){if(u)return this.metrics?.onPublishDuplicateMsg(e),{recipients:[]};throw Error("PublishError.Duplicate")}let{tosend:h,tosendCount:l}=this.selectPeersToPublish(e),d=this.opts.emitSelf&&this.subscriptions.has(e),m=r?.allowPublishToZeroTopicPeers??this.opts.allowPublishToZeroTopicPeers;if(h.size===0&&!m&&!d)throw Error("PublishError.NoPeersSubscribedToTopic");this.seenCache.put(f),this.mcache.put({msgId:c,msgIdStr:f},o,!0),this.publishedMessageIds.put(f);let p=r?.batchPublish??this.opts.batchPublish,g=et([o]);if(p)this.sendRpcInBatch(h,g);else for(let S of h)this.sendRpc(S,g)||h.delete(S);let b=Date.now()-n;return this.metrics?.onPublishMsg(e,l,h.size,o.data!=null?o.data.length:0,b),d&&(h.add(this.components.peerId.toString()),super.dispatchEvent(new CustomEvent("gossipsub:message",{detail:{propagationSource:this.components.peerId,msgId:f,msg:a}})),super.dispatchEvent(new CustomEvent("message",{detail:a}))),{recipients:Array.from(h.values()).map(S=>Lt(S))}}sendRpcInBatch(e,t){let r=wt.encode(t),n=vs.single(r);for(let i of e){let o=this.streamsOutbound.get(i);if(o==null){this.log(`Cannot send RPC to ${i} as there is no open stream to it available`),e.delete(i);continue}try{o.pushPrefixed(n)}catch(a){e.delete(i),this.log.error(`Cannot send rpc to ${i}`,a)}this.metrics?.onRpcSent(t,r.length)}}reportMessageValidationResult(e,t,r){let n;if(r===xe.Accept){if(n=this.mcache.validate(e),n!=null){let{message:o,originatingPeers:a}=n;this.score.deliverMessage(t,e,o.topic),this.forwardMessage(e,n.message,t,a)}}else if(n=this.mcache.remove(e),n!=null){let o=bo(r),{message:a,originatingPeers:c}=n;this.score.rejectMessage(t,e,a.topic,o);for(let f of c)this.score.rejectMessage(f,e,a.topic,o)}let i=this.score.messageFirstSeenTimestampMs(e);this.metrics?.onReportValidation(n,r,i)}sendGraft(e,t){let n=et([],{graft:[{topicID:t}]});this.sendRpc(e,n)}async sendPrune(e,t){let n=[await this.makePrune(e,t,this.opts.doPX,!0)],i=et([],{prune:n});this.sendRpc(e,i)}sendRpc(e,t){let r=this.streamsOutbound.get(e);if(r==null)return this.log(`Cannot send RPC to ${e} as there is no open stream to it available`),!1;let n=this.control.get(e);n!=null&&(this.piggybackControl(e,t,n),this.control.delete(e));let i=this.gossip.get(e);i!=null&&(this.piggybackGossip(e,t,i),this.gossip.delete(e));let o=wt.encode(t);try{r.push(o)}catch(a){return this.log.error(`Cannot send rpc to ${e}`,a),n!=null&&this.control.set(e,n),i!=null&&this.gossip.set(e,i),!1}if(this.metrics?.onRpcSent(t,o.length),t.control?.graft!=null)for(let a of t.control?.graft)a.topicID!=null&&this.safeDispatchEvent("gossipsub:graft",{detail:{peerId:e,topic:a.topicID,direction:"outbound"}});if(t.control?.prune!=null)for(let a of t.control?.prune)a.topicID!=null&&this.safeDispatchEvent("gossipsub:prune",{detail:{peerId:e,topic:a.topicID,direction:"outbound"}});return!0}piggybackControl(e,t,r){let n=yo(t);for(let i of r.graft)i.topicID!=null&&(this.mesh.get(i.topicID)?.has(e)??!1)&&n.control.graft.push(i);for(let i of r.prune)i.topicID!=null&&!(this.mesh.get(i.topicID)?.has(e)??!1)&&n.control.prune.push(i)}piggybackGossip(e,t,r){let n=yo(t);n.control.ihave=r}async sendGraftPrune(e,t,r){let n=this.opts.doPX,i=!1;for(let[o,a]of e){let c=a.map(h=>({topicID:h})),f=[],u=t.get(o);u!=null&&(f=await Promise.all(u.map(async h=>this.makePrune(o,h,n&&!(r.get(o)??!1),i))),t.delete(o)),this.sendRpc(o,et([],{graft:c,prune:f}))}for(let[o,a]of t){let c=await Promise.all(a.map(async f=>this.makePrune(o,f,n&&!(r.get(o)??!1),i)));this.sendRpc(o,et([],{prune:c}))}}emitGossip(e){let t=this.mcache.getGossipIDs(new Set(e.keys()));for(let[r,n]of e)this.doEmitGossip(r,n,t.get(r)??[])}doEmitGossip(e,t,r){if(r.length===0||(tt(r),r.length>5e3&&this.log("too many messages for gossip; will truncate IHAVE list (%d messages)",r.length),t.size===0))return;let n=this.opts.Dlazy,o=this.opts.gossipFactor*t.size,a=t;o>n&&(n=o),n>a.size?n=a.size:a=tt(Array.from(a)).slice(0,n),a.forEach(c=>{let f=r;r.length>5e3&&(f=tt(f.slice()).slice(0,5e3)),this.pushGossip(c,{topicID:e,messageIDs:f})})}flush(){for(let[e,t]of this.gossip.entries())this.gossip.delete(e),this.sendRpc(e,et([],{ihave:t}));for(let[e,t]of this.control.entries()){this.control.delete(e);let r=et([],{graft:t.graft,prune:t.prune});this.sendRpc(e,r)}}pushGossip(e,t){this.log("Add gossip to %s",e);let r=this.gossip.get(e)??[];this.gossip.set(e,r.concat(t))}async makePrune(e,t,r,n){if(this.score.prune(e,t),this.streamsOutbound.get(e)?.protocol===mo)return{topicID:t,peers:[]};let i=n?this.opts.unsubcribeBackoff:this.opts.pruneBackoff,o=i/1e3;if(this.doAddBackoff(e,t,i),!r)return{topicID:t,peers:[],backoff:o};let a=this.getRandomGossipPeers(t,this.opts.prunePeers,f=>f!==e&&this.score.score(f)>=0),c=await Promise.all(Array.from(a).map(async f=>{let u=Lt(f),h;try{h=await this.components.peerStore.get(u)}catch(l){if(l.name!=="NotFoundError")throw l}return{peerID:u.toMultihash().bytes,signedPeerRecord:h?.peerRecordEnvelope}}));return{topicID:t,peers:c,backoff:o}}runHeartbeat=()=>{let e=this.metrics?.heartbeatDuration.startTimer();this.heartbeat().catch(t=>{this.log("Error running heartbeat",t)}).finally(()=>{if(e?.(),this.status.code===Le.started){clearTimeout(this.status.heartbeatTimeout);let t=this.opts.heartbeatInterval-(Date.now()-this.status.hearbeatStartMs)%this.opts.heartbeatInterval;t{let p=a.get(m);return p===void 0&&(p=this.score.score(m),a.set(m,p)),p},f=new Map,u=new Map,h=new Map;this.clearBackoff(),this.peerhave.clear(),this.metrics?.cacheSize.set({cache:"iasked"},this.iasked.size),this.iasked.clear(),this.applyIwantPenalties(),this.heartbeatTicks%this.opts.directConnectTicks===0&&await this.directConnect(),this.fastMsgIdCache?.prune(),this.seenCache.prune(),this.gossipTracer.prune(),this.publishedMessageIds.prune();let l=new Map;this.mesh.forEach((m,p)=>{let g=this.topics.get(p),b=new Set,S=new Set;if(l.set(p,S),g!=null){let v=tt(Array.from(g)),B=this.backoff.get(p);for(let x of v){let _=this.streamsOutbound.get(x);if(_!=null&&this.multicodecs.includes(_.protocol)&&!m.has(x)&&!this.direct.has(x)){let k=c(x);(B==null||!B.has(x))&&k>=0&&b.add(x),k>=this.opts.scoreThresholds.gossipThreshold&&S.add(x)}}}let y=(v,B)=>{this.log("HEARTBEAT: Remove mesh link to %s in %s",v,p),this.addBackoff(v,p),m.delete(v),c(v)>=this.opts.scoreThresholds.gossipThreshold&&S.add(v),this.metrics?.onRemoveFromMesh(p,B,1);let x=u.get(v);x==null?u.set(v,[p]):x.push(p)},I=(v,B)=>{this.log("HEARTBEAT: Add mesh link to %s in %s",v,p),this.score.graft(v,p),m.add(v),S.delete(v),this.metrics?.onAddToMesh(p,B,1);let x=f.get(v);x==null?f.set(v,[p]):x.push(p)};if(m.forEach(v=>{let B=c(v);B<0&&(this.log("HEARTBEAT: Prune peer %s with negative score: score=%d, topic=%s",v,B,p),y(v,$e.BadScore),h.set(v,!0))}),m.size{I(x,Ie.NotEnough)})}if(m.size>r){let v=Array.from(m);v.sort((x,_)=>c(_)-c(x)),v=v.slice(0,n).concat(tt(v.slice(n)));let B=0;if(v.slice(0,e).forEach(x=>{(this.outbound.get(x)??!1)&&B++}),B{let z=v[k];for(let L=k;L>0;L--)v[L]=v[L-1];v[0]=z};if(B>0){let k=B;for(let z=1;z0;z++)(this.outbound.get(v[z])??!1)&&(x(z),k--)}let _=e-B;for(let k=e;k0;k++)(this.outbound.get(v[k])??!1)&&(x(k),_--)}v.slice(e).forEach(x=>{y(x,$e.Excess)})}if(m.size>=t){let v=0;if(m.forEach(B=>{(this.outbound.get(B)??!1)&&v++}),vthis.outbound.get(_)===!0).forEach(_=>{I(_,Ie.Outbound)})}}if(this.heartbeatTicks%this.opts.opportunisticGraftTicks===0&&m.size>1){let v=Array.from(m).sort((_,k)=>c(_)-c(k)),B=Math.floor(m.size/2),x=c(v[B]);if(xc(z)>x);for(let z of k)this.log("HEARTBEAT: Opportunistically graft peer %s on topic %s",z,p),I(z,Ie.Opportunistic)}}});let d=Date.now();this.fanoutLastpub.forEach((m,p)=>{m+o{let g=this.topics.get(p);m.forEach(I=>{(!(g?.has(I)??!1)||c(I)=this.opts.scoreThresholds.publishThreshold&&S.push(v),x>=this.opts.scoreThresholds.gossipThreshold&&y.add(v)}}}if(m.size{m.add(v),y?.delete(v)})}}),this.emitGossip(l),await this.sendGraftPrune(f,u,h),this.flush(),this.mcache.shift(),this.dispatchEvent(new CustomEvent("gossipsub:heartbeat"))}getRandomGossipPeers(e,t,r=()=>!0){let n=this.topics.get(e);if(n==null)return new Set;let i=[];return n.forEach(o=>{let a=this.streamsOutbound.get(o);a!=null&&this.multicodecs.includes(a.protocol)&&r(o)&&i.push(o)}),i=tt(i),t>0&&i.length>t&&(i=i.slice(0,t)),new Set(i)}onScrapeMetrics(e){e.mcacheSize.set(this.mcache.size),e.mcacheNotValidatedCount.set(this.mcache.notValidatedCount),e.cacheSize.set({cache:"direct"},this.direct.size),e.cacheSize.set({cache:"seenCache"},this.seenCache.size),e.cacheSize.set({cache:"fastMsgIdCache"},this.fastMsgIdCache?.size??0),e.cacheSize.set({cache:"publishedMessageIds"},this.publishedMessageIds.size),e.cacheSize.set({cache:"mcache"},this.mcache.size),e.cacheSize.set({cache:"score"},this.score.size),e.cacheSize.set({cache:"gossipTracer.promises"},this.gossipTracer.size),e.cacheSize.set({cache:"gossipTracer.requests"},this.gossipTracer.requestMsByMsgSize),e.cacheSize.set({cache:"topics"},this.topics.size),e.cacheSize.set({cache:"subscriptions"},this.subscriptions.size),e.cacheSize.set({cache:"mesh"},this.mesh.size),e.cacheSize.set({cache:"fanout"},this.fanout.size),e.cacheSize.set({cache:"peers"},this.peers.size),e.cacheSize.set({cache:"streamsOutbound"},this.streamsOutbound.size),e.cacheSize.set({cache:"streamsInbound"},this.streamsInbound.size),e.cacheSize.set({cache:"acceptFromWhitelist"},this.acceptFromWhitelist.size),e.cacheSize.set({cache:"gossip"},this.gossip.size),e.cacheSize.set({cache:"control"},this.control.size),e.cacheSize.set({cache:"peerhave"},this.peerhave.size),e.cacheSize.set({cache:"outbound"},this.outbound.size);let t=0,r=Date.now();e.connectedPeersBackoffSec.reset();for(let a of this.backoff.values()){t+=a.size;for(let[c,f]of a.entries())this.peers.has(c)&&e.connectedPeersBackoffSec.observe(Math.max(0,f-r)/1e3)}e.cacheSize.set({cache:"backoff"},t);for(let[a,c]of this.topics)e.topicPeersCount.set({topicStr:a},c.size);for(let[a,c]of this.mesh)e.meshPeerCounts.set({topicStr:a},c.size);let n=[],i=new Map;e.behaviourPenalty.reset();for(let a of this.peers.keys()){let c=this.score.score(a);n.push(c),i.set(a,c),e.behaviourPenalty.observe(this.score.peerStats.get(a)?.behaviourPenalty??0)}e.registerScores(n,this.opts.scoreThresholds),e.registerScorePerMesh(this.mesh,i);let o=ll(this.peers.keys(),this.score.peerStats,this.score.params,this.score.peerIPs,e.topicStrToLabel);e.registerScoreWeights(o)}tagMeshPeer=e=>{let{peerId:t,topic:r}=e.detail;this.components.peerStore.merge(Lt(t),{tags:{[r]:{value:100}}}).catch(n=>{this.log.error("Error tagging peer %s with topic %s",t,r,n)})};untagMeshPeer=e=>{let{peerId:t,topic:r}=e.detail;this.components.peerStore.merge(Lt(t),{tags:{[r]:void 0}}).catch(n=>{this.log.error("Error untagging peer %s with topic %s",t,r,n)})}};function Fd(s={}){return e=>new On(e,s)}return Hl(Vd);})(); - /*! Bundled license information: - - pvtsutils/build/index.js: -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts -new file mode 100644 -index 0000000..5aef11a ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts -@@ -0,0 +1,9 @@ -+export declare class InvalidPeerScoreParamsError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class InvalidPeerScoreThresholdsError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+//# sourceMappingURL=errors.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts.map -new file mode 100644 -index 0000000..4af32c8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,MAAM,CAAC,IAAI,SAAgC;gBAE9B,OAAO,SAA8B;CAInD;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,MAAM,CAAC,IAAI,SAAoC;gBAElC,OAAO,SAAkC;CAIvD"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js -new file mode 100644 -index 0000000..7e5472d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js -@@ -0,0 +1,15 @@ -+export class InvalidPeerScoreParamsError extends Error { -+ static name = 'InvalidPeerScoreParamsError'; -+ constructor(message = 'Invalid peer score params') { -+ super(message); -+ this.name = 'InvalidPeerScoreParamsError'; -+ } -+} -+export class InvalidPeerScoreThresholdsError extends Error { -+ static name = 'InvalidPeerScoreThresholdsError'; -+ constructor(message = 'Invalid peer score thresholds') { -+ super(message); -+ this.name = 'InvalidPeerScoreThresholdsError'; -+ } -+} -+//# sourceMappingURL=errors.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js.map -new file mode 100644 -index 0000000..83abbce ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/errors.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,MAAM,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAE3C,YAAa,OAAO,GAAG,2BAA2B;QAChD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;;AAGH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,MAAM,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAE/C,YAAa,OAAO,GAAG,+BAA+B;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC/C,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts -index 9f8230c..9601863 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts -@@ -8,7 +8,7 @@ import { InboundStream, OutboundStream } from './stream.js'; - import { IWantTracer } from './tracer.js'; - import { type MsgIdFn, type TopicStr, type MsgIdStr, type PeerIdStr, type FastMsgIdFn, type AddrInfo, type DataTransform, type MsgIdToStrFn, type PublishOpts } from './types.js'; - import type { GossipsubOptsSpec } from './config.js'; --import type { Direction, PeerId, PeerStore, Message, PublishResult, PubSub, PubSubEvents, PubSubInit, TopicValidatorFn, Logger, ComponentLogger } from '@libp2p/interface'; -+import type { Direction, PeerId, PeerStore, Message, PublishResult, PubSub, PubSubEvents, PubSubInit, TopicValidatorFn, Logger, ComponentLogger, PrivateKey } from '@libp2p/interface'; - import type { ConnectionManager, Registrar } from '@libp2p/interface-internal'; - export declare const multicodec: string; - export interface GossipsubOpts extends GossipsubOptsSpec, PubSubInit { -@@ -81,13 +81,13 @@ export interface GossipsubOpts extends GossipsubOptsSpec, PubSubInit { - */ - maxOutboundStreams?: number; - /** -- * Pass true to run on transient connections - data or time-limited -+ * Pass true to run on limited connections - data or time-limited - * connections that may be closed at any time such as circuit relay - * connections. - * - * @default false - */ -- runOnTransientConnection?: boolean; -+ runOnLimitedConnection?: boolean; - /** - * Specify max buffer size in bytes for OutboundStream. - * If full it will throw and reject sending any more data. -@@ -140,6 +140,7 @@ interface GossipOptions extends GossipsubOpts { - scoreThresholds: PeerScoreThresholds; - } - export interface GossipSubComponents { -+ privateKey: PrivateKey; - peerId: PeerId; - peerStore: PeerStore; - registrar: Registrar; -@@ -263,7 +264,7 @@ export declare class GossipSub extends TypedEventEmitter implem - private status; - private readonly maxInboundStreams?; - private readonly maxOutboundStreams?; -- private readonly runOnTransientConnection?; -+ private readonly runOnLimitedConnection?; - private readonly allowedTopics; - private heartbeatTimer; - constructor(components: GossipSubComponents, options?: Partial); -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts.map -index a280ef0..f32bc4a 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAY/I,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,YAAY,EAA2B,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAML,KAAK,eAAe,EAEpB,KAAK,eAAe,EAErB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAGxB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,SAAS,EAId,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,YAAY,EAEjB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAA;AASnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EACE,SAAS,EAAU,MAAM,EAAQ,SAAS,EACtD,OAAO,EACP,aAAa,EACb,MAAM,EACN,YAAY,EACZ,UAAU,EAEV,gBAAgB,EAChB,MAAM,EACN,eAAe,EAEhB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAsB,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAWlG,eAAO,MAAM,UAAU,EAAE,MAAiC,CAAA;AAE1D,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,UAAU;IAClE,0CAA0C;IAC1C,kBAAkB,EAAE,OAAO,CAAA;IAC3B,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAA;IACrB,4EAA4E;IAC5E,YAAY,EAAE,OAAO,CAAA;IACrB,6GAA6G;IAC7G,IAAI,EAAE,OAAO,CAAA;IACb,2DAA2D;IAC3D,WAAW,EAAE,QAAQ,EAAE,CAAA;IACvB;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,4BAA4B,EAAE,OAAO,CAAA;IACrC,6EAA6E;IAC7E,2BAA2B,EAAE,OAAO,CAAA;IACpC,gFAAgF;IAChF,eAAe,EAAE,OAAO,CAAA;IACxB,iFAAiF;IACjF,sBAAsB,EAAE,OAAO,CAAA;IAE/B,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,WAAW,EAAE,WAAW,CAAA;IACxB,+CAA+C;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,wCAAwC;IACxC,YAAY,EAAE,YAAY,CAAA;IAC1B,4BAA4B;IAC5B,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACrC,4BAA4B;IAC5B,eAAe,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC7C,iFAAiF;IACjF,wBAAwB,EAAE,MAAM,CAAA;IAEhC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,eAAe,CAAA;IAGxC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAElC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAEtC;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IAErB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,QAAQ,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,qBAAqB,EAAE,WAAW,CAAA;IAClC,mBAAmB,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAClD,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IACxC,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CACzC;AAkBD,UAAU,aAAc,SAAQ,aAAa;IAC3C,WAAW,EAAE,eAAe,CAAA;IAC5B,eAAe,EAAE,mBAAmB,CAAA;CACrC;AASD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,SAAU,SAAQ,iBAAiB,CAAC,eAAe,CAAE,YAAW,MAAM,CAAC,eAAe,CAAC;IAClG;;OAEG;IACH,SAAgB,qBAAqB,EAAE,OAAO,UAAU,GAAG,OAAO,YAAY,CAAA;IACvE,WAAW,EAAE,MAAM,EAAE,CAAuD;IAEnF,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAIzD,SAAgB,KAAK,cAAuB;IAC5C,SAAgB,cAAc,6BAAsC;IACpE,SAAgB,eAAe,8BAAuC;IAEtE,wDAAwD;IACxD,OAAO,CAAC,qBAAqB,CAA6E;IAE1G,mBAAmB;IACnB,SAAgB,MAAM,cAAuB;IAE7C,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAiD;IAErF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD;;;OAGG;IACH,SAAgB,IAAI,2BAAsC;IAE1D;;;OAGG;IACH,SAAgB,MAAM,2BAAsC;IAE5D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D;;;OAGG;IACH,SAAgB,MAAM,kCAA2C;IAEjE;;;OAGG;IACH,SAAgB,OAAO,kCAA2C;IAElE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEtD,wBAAwB;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAE3C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IAEtE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuB;IAE3D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,0BAA0B;IAC1B,SAAgB,KAAK,EAAE,SAAS,CAAA;IAEhC;;;;;OAKG;IACH,SAAgB,eAAe,gCAAwC;IAEvE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAI;IAE1B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAA;IAElC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,OAAO,CAAC,iBAAiB,CAA6C;IAEtE,OAAc,UAAU,EAAE,MAAM,CAA2B;IAG3D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,OAAO,CAAC,cAAc,CAIP;gBAEF,UAAU,EAAE,mBAAmB,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IAkIlF,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,iCAAgC;IAE7D,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,QAAQ,IAAK,MAAM,EAAE;IAIrB,SAAS,IAAK,OAAO;IAMrB;;;OAGG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAoG7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAiE5B,qFAAqF;IACrF,kBAAkB,IAAK,kBAAkB;IAIzC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAKZ,oBAAoB;IA+ClC,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,OAAO;IAwBf;;OAEG;IACH,OAAO,CAAC,UAAU;IA4DlB,IAAI,OAAO,IAAK,OAAO,CAEtB;IAED;;OAEG;IACH,YAAY,CAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE;IAK3C;;OAEG;IACH,cAAc,CAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE;IAK1C;;OAEG;IACH,SAAS,IAAK,QAAQ,EAAE;IAQxB;;OAEG;YACW,kBAAkB;IAwDhC;;;SAGK;IACL,OAAO,CAAC,yBAAyB;IAKjC;;OAEG;IACU,iBAAiB,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA+EtE;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;;OAGG;YACW,qBAAqB;IA6EnC;;;OAGG;YACW,uBAAuB;IAgFrC;;OAEG;IACH,QAAQ,CAAE,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;IACI,UAAU,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO;IA4B1C;;OAEG;IACH,OAAO,CAAC,WAAW;IAkFnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgDnB;;OAEG;YACW,WAAW;IA4FzB;;OAEG;YACW,WAAW;IA8CzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,SAAS;IA+CvB;;OAEG;YACW,OAAO;IAWrB;;OAEG;IACH,SAAS,CAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAgBjC;;OAEG;IACH,WAAW,CAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAkBnC;;OAEG;IACH,OAAO,CAAC,IAAI;IAiEZ;;OAEG;IACH,OAAO,CAAC,KAAK;IAuBb,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,oBAAoB;IA8G5B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;;OAKG;IACG,OAAO,CAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA+F7F;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,6BAA6B,CAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAuCrH;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;YACW,SAAS;IAQvB;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Df,+DAA+D;IACxD,gBAAgB,CAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,IAAI;IAepF,qDAAqD;IACrD,OAAO,CAAC,eAAe;IAKvB;;;;;OAKG;YACW,cAAc;IAiC5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IA6CpB;;OAEG;IACH,OAAO,CAAC,KAAK;IAcb;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;YACW,SAAS;IA+DvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CA+B5B;IAED;;OAEG;IACU,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IA+TxC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,eAAe;IAoFvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAS3B;IAED,OAAO,CAAC,QAAQ,CAAC,aAAa,CAO7B;CACF;AAED,wBAAgB,SAAS,CACvB,IAAI,GAAE,OAAO,CAAC,aAAa,CAAM,GAChC,CAAC,UAAU,EAAE,mBAAmB,KAAK,MAAM,CAAC,eAAe,CAAC,CAE9D"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js -index 31aeddd..ad2479e 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js -@@ -1,8 +1,9 @@ - import { TypedEventEmitter, StrictSign, StrictNoSign, TopicValidatorResult, serviceCapabilities, serviceDependencies } from '@libp2p/interface'; --import { peerIdFromBytes, peerIdFromString } from '@libp2p/peer-id'; -+import { peerIdFromMultihash, peerIdFromString } from '@libp2p/peer-id'; - import { encode } from 'it-length-prefixed'; - import { pipe } from 'it-pipe'; - import { pushable } from 'it-pushable'; -+import * as Digest from 'multiformats/hashes/digest'; - import * as constants from './constants.js'; - import { ACCEPT_FROM_WHITELIST_DURATION_MS, ACCEPT_FROM_WHITELIST_MAX_MESSAGES, ACCEPT_FROM_WHITELIST_THRESHOLD_SCORE, BACKOFF_SLACK } from './constants.js'; - import { defaultDecodeRpcLimits } from './message/decodeRpc.js'; -@@ -147,7 +148,7 @@ export class GossipSub extends TypedEventEmitter { - status = { code: GossipStatusCode.stopped }; - maxInboundStreams; - maxOutboundStreams; -- runOnTransientConnection; -+ runOnLimitedConnection; - allowedTopics; - heartbeatTimer = null; - constructor(components, options = {}) { -@@ -254,7 +255,7 @@ export class GossipSub extends TypedEventEmitter { - }); - this.maxInboundStreams = options.maxInboundStreams; - this.maxOutboundStreams = options.maxOutboundStreams; -- this.runOnTransientConnection = options.runOnTransientConnection; -+ this.runOnLimitedConnection = options.runOnLimitedConnection; - this.allowedTopics = (opts.allowedTopics != null) ? new Set(opts.allowedTopics) : null; - } - [Symbol.toStringTag] = '@chainsafe/libp2p-gossipsub'; -@@ -281,7 +282,7 @@ export class GossipSub extends TypedEventEmitter { - return; - } - this.log('starting'); -- this.publishConfig = await getPublishConfigFromPeerId(this.globalSignaturePolicy, this.components.peerId); -+ this.publishConfig = getPublishConfigFromPeerId(this.globalSignaturePolicy, this.components.peerId, this.components.privateKey); - // Create the outbound inflight queue - // This ensures that outbound stream creation happens sequentially - this.outboundInflightQueue = pushable({ objectMode: true }); -@@ -302,7 +303,7 @@ export class GossipSub extends TypedEventEmitter { - await Promise.all(this.multicodecs.map(async (multicodec) => registrar.handle(multicodec, this.onIncomingStream.bind(this), { - maxInboundStreams: this.maxInboundStreams, - maxOutboundStreams: this.maxOutboundStreams, -- runOnTransientConnection: this.runOnTransientConnection -+ runOnLimitedConnection: this.runOnLimitedConnection - }))); - // # How does Gossipsub interact with libp2p? Rough guide from Mar 2022 - // -@@ -325,7 +326,7 @@ export class GossipSub extends TypedEventEmitter { - const topology = { - onConnect: this.onPeerConnected.bind(this), - onDisconnect: this.onPeerDisconnected.bind(this), -- notifyOnTransient: this.runOnTransientConnection -+ notifyOnLimitedConnection: this.runOnLimitedConnection - }; - const registrarTopologyIds = await Promise.all(this.multicodecs.map(async (multicodec) => registrar.register(multicodec, topology))); - // Schedule to start heartbeat after `GossipsubHeartbeatInitialDelay` -@@ -464,7 +465,7 @@ export class GossipSub extends TypedEventEmitter { - } - try { - const stream = new OutboundStream(await connection.newStream(this.multicodecs, { -- runOnTransientConnection: this.runOnTransientConnection -+ runOnLimitedConnection: this.runOnLimitedConnection - }), (e) => { this.log.error('outbound pipe error', e); }, { maxBufferSize: this.opts.maxOutboundBufferSize }); - this.log('create outbound stream %p', peerId); - this.streamsOutbound.set(id, stream); -@@ -1280,7 +1281,7 @@ export class GossipSub extends TypedEventEmitter { - if (pi.peerID == null) { - return; - } -- const peer = peerIdFromBytes(pi.peerID); -+ const peer = peerIdFromMultihash(Digest.decode(pi.peerID)); - const p = peer.toString(); - if (this.peers.has(p)) { - return; -@@ -1969,12 +1970,12 @@ export class GossipSub extends TypedEventEmitter { - peerInfo = await this.components.peerStore.get(id); - } - catch (err) { -- if (err.code !== 'ERR_NOT_FOUND') { -+ if (err.name !== 'NotFoundError') { - throw err; - } - } - return { -- peerID: id.toBytes(), -+ peerID: id.toMultihash().bytes, - signedPeerRecord: peerInfo?.peerRecordEnvelope - }; - })); -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js.map -index 9aa9e8a..89e3c7e 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts.map -index 9a8634d..7b08f29 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/message/rpc.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/message/rpc.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js -index ea32a68..889aae0 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js -@@ -3,7 +3,7 @@ - /* eslint-disable @typescript-eslint/no-namespace */ - /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ - /* eslint-disable @typescript-eslint/no-empty-interface */ --import { CodeError, decodeMessage, encodeMessage, message } from 'protons-runtime'; -+import { decodeMessage, encodeMessage, MaxLengthError, message } from 'protons-runtime'; - export var RPC; - (function (RPC) { - let SubOpts; -@@ -193,30 +193,38 @@ export var RPC; - switch (tag >>> 3) { - case 1: { - if (opts.limits?.ihave != null && obj.ihave.length === opts.limits.ihave) { -- throw new CodeError('decode error - map field "ihave" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "ihave" had too many elements'); - } -- obj.ihave.push(RPC.ControlIHave.codec().decode(reader, reader.uint32())); -+ obj.ihave.push(RPC.ControlIHave.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.ihave$ -+ })); - break; - } - case 2: { - if (opts.limits?.iwant != null && obj.iwant.length === opts.limits.iwant) { -- throw new CodeError('decode error - map field "iwant" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "iwant" had too many elements'); - } -- obj.iwant.push(RPC.ControlIWant.codec().decode(reader, reader.uint32())); -+ obj.iwant.push(RPC.ControlIWant.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.iwant$ -+ })); - break; - } - case 3: { - if (opts.limits?.graft != null && obj.graft.length === opts.limits.graft) { -- throw new CodeError('decode error - map field "graft" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "graft" had too many elements'); - } -- obj.graft.push(RPC.ControlGraft.codec().decode(reader, reader.uint32())); -+ obj.graft.push(RPC.ControlGraft.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.graft$ -+ })); - break; - } - case 4: { - if (opts.limits?.prune != null && obj.prune.length === opts.limits.prune) { -- throw new CodeError('decode error - map field "prune" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "prune" had too many elements'); - } -- obj.prune.push(RPC.ControlPrune.codec().decode(reader, reader.uint32())); -+ obj.prune.push(RPC.ControlPrune.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.prune$ -+ })); - break; - } - default: { -@@ -273,7 +281,7 @@ export var RPC; - } - case 2: { - if (opts.limits?.messageIDs != null && obj.messageIDs.length === opts.limits.messageIDs) { -- throw new CodeError('decode error - map field "messageIDs" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "messageIDs" had too many elements'); - } - obj.messageIDs.push(reader.bytes()); - break; -@@ -324,7 +332,7 @@ export var RPC; - switch (tag >>> 3) { - case 1: { - if (opts.limits?.messageIDs != null && obj.messageIDs.length === opts.limits.messageIDs) { -- throw new CodeError('decode error - map field "messageIDs" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "messageIDs" had too many elements'); - } - obj.messageIDs.push(reader.bytes()); - break; -@@ -431,9 +439,11 @@ export var RPC; - } - case 2: { - if (opts.limits?.peers != null && obj.peers.length === opts.limits.peers) { -- throw new CodeError('decode error - map field "peers" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "peers" had too many elements'); - } -- obj.peers.push(RPC.PeerInfo.codec().decode(reader, reader.uint32())); -+ obj.peers.push(RPC.PeerInfo.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.peers$ -+ })); - break; - } - case 3: { -@@ -547,20 +557,26 @@ export var RPC; - switch (tag >>> 3) { - case 1: { - if (opts.limits?.subscriptions != null && obj.subscriptions.length === opts.limits.subscriptions) { -- throw new CodeError('decode error - map field "subscriptions" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "subscriptions" had too many elements'); - } -- obj.subscriptions.push(RPC.SubOpts.codec().decode(reader, reader.uint32())); -+ obj.subscriptions.push(RPC.SubOpts.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.subscriptions$ -+ })); - break; - } - case 2: { - if (opts.limits?.messages != null && obj.messages.length === opts.limits.messages) { -- throw new CodeError('decode error - map field "messages" had too many elements', 'ERR_MAX_LENGTH'); -+ throw new MaxLengthError('Decode error - map field "messages" had too many elements'); - } -- obj.messages.push(RPC.Message.codec().decode(reader, reader.uint32())); -+ obj.messages.push(RPC.Message.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.messages$ -+ })); - break; - } - case 3: { -- obj.control = RPC.ControlMessage.codec().decode(reader, reader.uint32()); -+ obj.control = RPC.ControlMessage.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.control -+ }); - break; - } - default: { -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js.map -index a7d65f5..7a72e5f 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.js.map -@@ -1 +1 @@ --{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/message/rpc.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/message/rpc.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts -deleted file mode 100644 -index 76c80cf..0000000 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts -+++ /dev/null -@@ -1,3 +0,0 @@ --export declare const ERR_INVALID_PEER_SCORE_PARAMS = "ERR_INVALID_PEER_SCORE_PARAMS"; --export declare const ERR_INVALID_PEER_SCORE_THRESHOLDS = "ERR_INVALID_PEER_SCORE_THRESHOLDS"; --//# sourceMappingURL=constants.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts.map -deleted file mode 100644 -index 275a4c1..0000000 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.d.ts.map -+++ /dev/null -@@ -1 +0,0 @@ --{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/score/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,kCAAkC,CAAA;AAC5E,eAAO,MAAM,iCAAiC,sCAAsC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js -deleted file mode 100644 -index 71cf943..0000000 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js -+++ /dev/null -@@ -1,3 +0,0 @@ --export const ERR_INVALID_PEER_SCORE_PARAMS = 'ERR_INVALID_PEER_SCORE_PARAMS'; --export const ERR_INVALID_PEER_SCORE_THRESHOLDS = 'ERR_INVALID_PEER_SCORE_THRESHOLDS'; --//# sourceMappingURL=constants.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js.map -deleted file mode 100644 -index 941de96..0000000 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/constants.js.map -+++ /dev/null -@@ -1 +0,0 @@ --{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/score/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG,+BAA+B,CAAA;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts.map -index 50dd811..61ec260 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"peer-score-params.d.ts","sourceRoot":"","sources":["../../../src/score/peer-score-params.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAExC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnC,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;OASG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC,2BAA2B,EAAE,MAAM,CAAA;IACnC,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAExC;;;;;;;;;OASG;IACH,sBAAsB,EAAE,MAAM,CAAA;IAC9B,yBAAyB,EAAE,MAAM,CAAA;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IAErB;;;;;;OAMG;IACH,4BAA4B,EAAE,MAAM,CAAA;IACpC,2BAA2B,EAAE,MAAM,CAAA;IACnC,yBAAyB,EAAE,MAAM,CAAA;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC,0BAA0B,EAAE,MAAM,CAAA;IAClC,wBAAwB,EAAE,MAAM,CAAA;IAChC,8BAA8B,EAAE,MAAM,CAAA;IACtC,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,MAAM,CAAA;IAEvC;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC,uBAAuB,EAAE,MAAM,CAAA;IAE/B;;;;;;OAMG;IACH,8BAA8B,EAAE,MAAM,CAAA;IACtC,6BAA6B,EAAE,MAAM,CAAA;CACtC;AAED,eAAO,MAAM,sBAAsB,EAAE,eAcpC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,gBAsBrC,CAAA;AAED,wBAAgB,qBAAqB,CAAE,CAAC,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAWxF;AAED,wBAAgB,sBAAsB,CAAE,CAAC,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,gBAAgB,CAK3F;AAGD,wBAAgB,uBAAuB,CAAE,CAAC,EAAE,eAAe,GAAG,IAAI,CAqDjE;AAGD,wBAAgB,wBAAwB,CAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAiFnE"} -\ No newline at end of file -+{"version":3,"file":"peer-score-params.d.ts","sourceRoot":"","sources":["../../../src/score/peer-score-params.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAExC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnC,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;OASG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC,2BAA2B,EAAE,MAAM,CAAA;IACnC,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAExC;;;;;;;;;OASG;IACH,sBAAsB,EAAE,MAAM,CAAA;IAC9B,yBAAyB,EAAE,MAAM,CAAA;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IAErB;;;;;;OAMG;IACH,4BAA4B,EAAE,MAAM,CAAA;IACpC,2BAA2B,EAAE,MAAM,CAAA;IACnC,yBAAyB,EAAE,MAAM,CAAA;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC,0BAA0B,EAAE,MAAM,CAAA;IAClC,wBAAwB,EAAE,MAAM,CAAA;IAChC,8BAA8B,EAAE,MAAM,CAAA;IACtC,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,MAAM,CAAA;IAEvC;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC,uBAAuB,EAAE,MAAM,CAAA;IAE/B;;;;;;OAMG;IACH,8BAA8B,EAAE,MAAM,CAAA;IACtC,6BAA6B,EAAE,MAAM,CAAA;CACtC;AAED,eAAO,MAAM,sBAAsB,EAAE,eAcpC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,gBAsBrC,CAAA;AAED,wBAAgB,qBAAqB,CAAE,CAAC,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAWxF;AAED,wBAAgB,sBAAsB,CAAE,CAAC,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,gBAAgB,CAK3F;AAGD,wBAAgB,uBAAuB,CAAE,CAAC,EAAE,eAAe,GAAG,IAAI,CA4CjE;AAGD,wBAAgB,wBAAwB,CAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAqEnE"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js -index 51e4b57..cdf392a 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js -@@ -1,5 +1,4 @@ --import { CodeError } from '@libp2p/interface'; --import { ERR_INVALID_PEER_SCORE_PARAMS } from './constants.js'; -+import { InvalidPeerScoreParamsError } from '../errors.js'; - export const defaultPeerScoreParams = { - topics: {}, - topicScoreCap: 10.0, -@@ -59,37 +58,37 @@ export function validatePeerScoreParams(p) { - validateTopicScoreParams(params); - } - catch (e) { -- throw new CodeError(`invalid score parameters for topic ${topic}: ${e.message}`, ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError(`invalid score parameters for topic ${topic}: ${e.message}`); - } - } - // check that the topic score is 0 or something positive - if (p.topicScoreCap < 0) { -- throw new CodeError('invalid topic score cap; must be positive (or 0 for no cap)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid topic score cap; must be positive (or 0 for no cap)'); - } - // check that we have an app specific score; the weight can be anything (but expected positive) - if (p.appSpecificScore === null || p.appSpecificScore === undefined) { -- throw new CodeError('missing application specific score function', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('missing application specific score function'); - } - // check the IP colocation factor - if (p.IPColocationFactorWeight > 0) { -- throw new CodeError('invalid IPColocationFactorWeight; must be negative (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid IPColocationFactorWeight; must be negative (or 0 to disable)'); - } - if (p.IPColocationFactorWeight !== 0 && p.IPColocationFactorThreshold < 1) { -- throw new CodeError('invalid IPColocationFactorThreshold; must be at least 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid IPColocationFactorThreshold; must be at least 1'); - } - // check the behaviour penalty - if (p.behaviourPenaltyWeight > 0) { -- throw new CodeError('invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)'); - } - if (p.behaviourPenaltyWeight !== 0 && (p.behaviourPenaltyDecay <= 0 || p.behaviourPenaltyDecay >= 1)) { -- throw new CodeError('invalid BehaviourPenaltyDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid BehaviourPenaltyDecay; must be between 0 and 1'); - } - // check the decay parameters - if (p.decayInterval < 1000) { -- throw new CodeError('invalid DecayInterval; must be at least 1s', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid DecayInterval; must be at least 1s'); - } - if (p.decayToZero <= 0 || p.decayToZero >= 1) { -- throw new CodeError('invalid DecayToZero; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid DecayToZero; must be between 0 and 1'); - } - // no need to check the score retention; a value of 0 means that we don't retain scores - } -@@ -97,64 +96,64 @@ export function validatePeerScoreParams(p) { - export function validateTopicScoreParams(p) { - // make sure we have a sane topic weight - if (p.topicWeight < 0) { -- throw new CodeError('invalid topic weight; must be >= 0', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid topic weight; must be >= 0'); - } - // check P1 - if (p.timeInMeshQuantum === 0) { -- throw new CodeError('invalid TimeInMeshQuantum; must be non zero', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshQuantum; must be non zero'); - } - if (p.timeInMeshWeight < 0) { -- throw new CodeError('invalid TimeInMeshWeight; must be positive (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshWeight; must be positive (or 0 to disable)'); - } - if (p.timeInMeshWeight !== 0 && p.timeInMeshQuantum <= 0) { -- throw new CodeError('invalid TimeInMeshQuantum; must be positive', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshQuantum; must be positive'); - } - if (p.timeInMeshWeight !== 0 && p.timeInMeshCap <= 0) { -- throw new CodeError('invalid TimeInMeshCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshCap; must be positive'); - } - // check P2 - if (p.firstMessageDeliveriesWeight < 0) { -- throw new CodeError('invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)'); - } - if (p.firstMessageDeliveriesWeight !== 0 && - (p.firstMessageDeliveriesDecay <= 0 || p.firstMessageDeliveriesDecay >= 1)) { -- throw new CodeError('invalid FirstMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid FirstMessageDeliveriesDecay; must be between 0 and 1'); - } - if (p.firstMessageDeliveriesWeight !== 0 && p.firstMessageDeliveriesCap <= 0) { -- throw new CodeError('invalid FirstMessageDeliveriesCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid FirstMessageDeliveriesCap; must be positive'); - } - // check P3 - if (p.meshMessageDeliveriesWeight > 0) { -- throw new CodeError('invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)'); - } - if (p.meshMessageDeliveriesWeight !== 0 && (p.meshMessageDeliveriesDecay <= 0 || p.meshMessageDeliveriesDecay >= 1)) { -- throw new CodeError('invalid MeshMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesDecay; must be between 0 and 1'); - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesCap <= 0) { -- throw new CodeError('invalid MeshMessageDeliveriesCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesCap; must be positive'); - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesThreshold <= 0) { -- throw new CodeError('invalid MeshMessageDeliveriesThreshold; must be positive', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesThreshold; must be positive'); - } - if (p.meshMessageDeliveriesWindow < 0) { -- throw new CodeError('invalid MeshMessageDeliveriesWindow; must be non-negative', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesWindow; must be non-negative'); - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesActivation < 1000) { -- throw new CodeError('invalid MeshMessageDeliveriesActivation; must be at least 1s', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesActivation; must be at least 1s'); - } - // check P3b - if (p.meshFailurePenaltyWeight > 0) { -- throw new CodeError('invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)'); - } - if (p.meshFailurePenaltyWeight !== 0 && (p.meshFailurePenaltyDecay <= 0 || p.meshFailurePenaltyDecay >= 1)) { -- throw new CodeError('invalid MeshFailurePenaltyDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid MeshFailurePenaltyDecay; must be between 0 and 1'); - } - // check P4 - if (p.invalidMessageDeliveriesWeight > 0) { -- throw new CodeError('invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)'); - } - if (p.invalidMessageDeliveriesDecay <= 0 || p.invalidMessageDeliveriesDecay >= 1) { -- throw new CodeError('invalid InvalidMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS); -+ throw new InvalidPeerScoreParamsError('invalid InvalidMessageDeliveriesDecay; must be between 0 and 1'); - } - } - //# sourceMappingURL=peer-score-params.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js.map -index 4c77cc9..05a44c8 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.js.map -@@ -1 +1 @@ --{"version":3,"file":"peer-score-params.js","sourceRoot":"","sources":["../../../src/score/peer-score-params.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"peer-score-params.js","sourceRoot":"","sources":["../../../src/score/peer-score-params.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts.map -index 8608948..5c5b1a8 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"peer-score-thresholds.d.ts","sourceRoot":"","sources":["../../../src/score/peer-score-thresholds.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,2BAA2B,EAAE,MAAM,CAAA;CACpC;AAED,eAAO,MAAM,0BAA0B,EAAE,mBAMxC,CAAA;AAED,wBAAgB,yBAAyB,CAAE,CAAC,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAAG,mBAAmB,CAKpG;AAED,wBAAgB,2BAA2B,CAAE,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAsBzE"} -\ No newline at end of file -+{"version":3,"file":"peer-score-thresholds.d.ts","sourceRoot":"","sources":["../../../src/score/peer-score-thresholds.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,2BAA2B,EAAE,MAAM,CAAA;CACpC;AAED,eAAO,MAAM,0BAA0B,EAAE,mBAMxC,CAAA;AAED,wBAAgB,yBAAyB,CAAE,CAAC,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAAG,mBAAmB,CAKpG;AAED,wBAAgB,2BAA2B,CAAE,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAgBzE"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js -index 08d0d9b..9ce752e 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js -@@ -1,5 +1,4 @@ --import { CodeError } from '@libp2p/interface'; --import { ERR_INVALID_PEER_SCORE_THRESHOLDS } from './constants.js'; -+import { InvalidPeerScoreThresholdsError } from '../errors.js'; - export const defaultPeerScoreThresholds = { - gossipThreshold: -10, - publishThreshold: -50, -@@ -15,19 +14,19 @@ export function createPeerScoreThresholds(p = {}) { - } - export function validatePeerScoreThresholds(p) { - if (p.gossipThreshold > 0) { -- throw new CodeError('invalid gossip threshold; it must be <= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS); -+ throw new InvalidPeerScoreThresholdsError('invalid gossip threshold; it must be <= 0'); - } - if (p.publishThreshold > 0 || p.publishThreshold > p.gossipThreshold) { -- throw new CodeError('invalid publish threshold; it must be <= 0 and <= gossip threshold', ERR_INVALID_PEER_SCORE_THRESHOLDS); -+ throw new InvalidPeerScoreThresholdsError('invalid publish threshold; it must be <= 0 and <= gossip threshold'); - } - if (p.graylistThreshold > 0 || p.graylistThreshold > p.publishThreshold) { -- throw new CodeError('invalid graylist threshold; it must be <= 0 and <= publish threshold', ERR_INVALID_PEER_SCORE_THRESHOLDS); -+ throw new InvalidPeerScoreThresholdsError('invalid graylist threshold; it must be <= 0 and <= publish threshold'); - } - if (p.acceptPXThreshold < 0) { -- throw new CodeError('invalid accept PX threshold; it must be >= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS); -+ throw new InvalidPeerScoreThresholdsError('invalid accept PX threshold; it must be >= 0'); - } - if (p.opportunisticGraftThreshold < 0) { -- throw new CodeError('invalid opportunistic grafting threshold; it must be >= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS); -+ throw new InvalidPeerScoreThresholdsError('invalid opportunistic grafting threshold; it must be >= 0'); - } - } - //# sourceMappingURL=peer-score-thresholds.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js.map -index 9b30020..ac578e5 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.js.map -@@ -1 +1 @@ --{"version":3,"file":"peer-score-thresholds.js","sourceRoot":"","sources":["../../../src/score/peer-score-thresholds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAA;AAsClE,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC7D,eAAe,EAAE,CAAC,EAAE;IACpB,gBAAgB,EAAE,CAAC,EAAE;IACrB,iBAAiB,EAAE,CAAC,EAAE;IACtB,iBAAiB,EAAE,EAAE;IACrB,2BAA2B,EAAE,EAAE;CAChC,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAE,IAAkC,EAAE;IAC7E,OAAO;QACL,GAAG,0BAA0B;QAC7B,GAAG,CAAC;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAE,CAAsB;IACjE,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,2CAA2C,EAAE,iCAAiC,CAAC,CAAA;IACrG,CAAC;IACD,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;QACrE,MAAM,IAAI,SAAS,CACjB,oEAAoE,EACpE,iCAAiC,CAClC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CACjB,sEAAsE,EACtE,iCAAiC,CAClC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,8CAA8C,EAAE,iCAAiC,CAAC,CAAA;IACxG,CAAC;IACD,IAAI,CAAC,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,2DAA2D,EAAE,iCAAiC,CAAC,CAAA;IACrH,CAAC;AACH,CAAC"} -\ No newline at end of file -+{"version":3,"file":"peer-score-thresholds.js","sourceRoot":"","sources":["../../../src/score/peer-score-thresholds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAsC9D,MAAM,CAAC,MAAM,0BAA0B,GAAwB;IAC7D,eAAe,EAAE,CAAC,EAAE;IACpB,gBAAgB,EAAE,CAAC,EAAE;IACrB,iBAAiB,EAAE,CAAC,EAAE;IACtB,iBAAiB,EAAE,EAAE;IACrB,2BAA2B,EAAE,EAAE;CAChC,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAE,IAAkC,EAAE;IAC7E,OAAO;QACL,GAAG,0BAA0B;QAC7B,GAAG,CAAC;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAE,CAAsB;IACjE,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,+BAA+B,CAAC,2CAA2C,CAAC,CAAA;IACxF,CAAC;IACD,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;QACrE,MAAM,IAAI,+BAA+B,CAAC,oEAAoE,CAAC,CAAA;IACjH,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACxE,MAAM,IAAI,+BAA+B,CAAC,sEAAsE,CAAC,CAAA;IACnH,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,+BAA+B,CAAC,8CAA8C,CAAC,CAAA;IAC3F,CAAC;IACD,IAAI,CAAC,CAAC,2BAA2B,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,+BAA+B,CAAC,2DAA2D,CAAC,CAAA;IACxG,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js -index 75b1723..602896c 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js -@@ -1,9 +1,9 @@ - import { randomBytes } from '@libp2p/crypto'; --import { marshalPublicKey, unmarshalPublicKey } from '@libp2p/crypto/keys'; -+import { publicKeyFromProtobuf } from '@libp2p/crypto/keys'; - import { StrictSign, StrictNoSign } from '@libp2p/interface'; --import { peerIdFromBytes } from '@libp2p/peer-id'; -+import { peerIdFromMultihash } from '@libp2p/peer-id'; -+import * as Digest from 'multiformats/hashes/digest'; - import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; --import { equals as uint8ArrayEquals } from 'uint8arrays/equals'; - import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; - import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; - import { RPC } from '../message/rpc.js'; -@@ -13,7 +13,7 @@ export async function buildRawMessage(publishConfig, topic, originalData, transf - switch (publishConfig.type) { - case PublishConfigType.Signing: { - const rpcMsg = { -- from: publishConfig.author.toBytes(), -+ from: publishConfig.author.toMultihash().bytes, - data: transformedData, - seqno: randomBytes(8), - topic, -@@ -32,7 +32,7 @@ export async function buildRawMessage(publishConfig, topic, originalData, transf - sequenceNumber: BigInt(`0x${uint8ArrayToString(rpcMsg.seqno, 'base16')}`), - topic, - signature: rpcMsg.signature, -- key: rpcMsg.key -+ key: publicKeyFromProtobuf(rpcMsg.key) - }; - return { - raw: rpcMsg, -@@ -86,7 +86,7 @@ export async function validateToRawMessage(signaturePolicy, msg) { - let fromPeerId; - try { - // TODO: Fix PeerId types -- fromPeerId = peerIdFromBytes(msg.from); -+ fromPeerId = peerIdFromMultihash(Digest.decode(msg.from)); - } - catch (e) { - return { valid: false, error: ValidateError.InvalidPeerId }; -@@ -99,9 +99,9 @@ export async function validateToRawMessage(signaturePolicy, msg) { - // - verify sig - let publicKey; - if (msg.key != null) { -- publicKey = unmarshalPublicKey(msg.key); -+ publicKey = publicKeyFromProtobuf(msg.key); - // TODO: Should `fromPeerId.pubKey` be optional? -- if (fromPeerId.publicKey !== undefined && !uint8ArrayEquals(publicKey.bytes, fromPeerId.publicKey)) { -+ if (fromPeerId.publicKey !== undefined && !publicKey.equals(fromPeerId.publicKey)) { - return { valid: false, error: ValidateError.InvalidPeerId }; - } - } -@@ -109,7 +109,7 @@ export async function validateToRawMessage(signaturePolicy, msg) { - if (fromPeerId.publicKey == null) { - return { valid: false, error: ValidateError.InvalidPeerId }; - } -- publicKey = unmarshalPublicKey(fromPeerId.publicKey); -+ publicKey = fromPeerId.publicKey; - } - const rpcMsgPreSign = { - from: msg.from, -@@ -134,7 +134,7 @@ export async function validateToRawMessage(signaturePolicy, msg) { - sequenceNumber: BigInt(`0x${uint8ArrayToString(msg.seqno, 'base16')}`), - topic: msg.topic, - signature: msg.signature, -- key: msg.key ?? marshalPublicKey(publicKey) -+ key: msg.key != null ? publicKeyFromProtobuf(msg.key) : publicKey - } - }; - } -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js.map -index d596983..df441d9 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/buildRawMessage.js.map -@@ -1 +1 @@ --{"version":3,"file":"buildRawMessage.js","sourceRoot":"","sources":["../../../src/utils/buildRawMessage.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"buildRawMessage.js","sourceRoot":"","sources":["../../../src/utils/buildRawMessage.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js -index b95a717..488cb10 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js -@@ -11,7 +11,7 @@ export function msgIdFnStrictSign(msg) { - if (msg.sequenceNumber == null) - throw Error('missing seqno field'); - // TODO: Should use .from here or key? -- return msgId(msg.from.toBytes(), msg.sequenceNumber); -+ return msgId(msg.from.publicKey ?? msg.key, msg.sequenceNumber); - } - /** - * Generate a message id, based on message `data` -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js.map -index a6bd556..0538bf5 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/msgIdFn.js.map -@@ -1 +1 @@ --{"version":3,"file":"msgIdFn.js","sourceRoot":"","sources":["../../../src/utils/msgIdFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGjD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAE,GAAY;IAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IACD,sBAAsB;IACtB,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI;QAAE,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAElE,sCAAsC;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,GAAY;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC"} -\ No newline at end of file -+{"version":3,"file":"msgIdFn.js","sourceRoot":"","sources":["../../../src/utils/msgIdFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGjD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAE,GAAY;IAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IACD,sBAAsB;IACtB,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI;QAAE,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAElE,sCAAsC;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,GAAY;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts -index e2eac64..cfba540 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts -@@ -1,8 +1,8 @@ - import { StrictSign, StrictNoSign } from '@libp2p/interface'; - import { type PublishConfig } from '../types.js'; --import type { PeerId } from '@libp2p/interface'; -+import type { PeerId, PrivateKey } from '@libp2p/interface'; - /** - * Prepare a PublishConfig object from a PeerId. - */ --export declare function getPublishConfigFromPeerId(signaturePolicy: typeof StrictSign | typeof StrictNoSign, peerId?: PeerId): Promise; -+export declare function getPublishConfigFromPeerId(signaturePolicy: typeof StrictSign | typeof StrictNoSign, peerId: PeerId, privateKey: PrivateKey): PublishConfig; - //# sourceMappingURL=publishConfig.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts.map -index e8c10a6..e291d9b 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"publishConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/publishConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,aAAa,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,eAAe,EAAE,OAAO,UAAU,GAAG,OAAO,YAAY,EACxD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAkCxB"} -\ No newline at end of file -+{"version":3,"file":"publishConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/publishConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,aAAa,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,OAAO,UAAU,GAAG,OAAO,YAAY,EACxD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACrB,aAAa,CAmBf"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js -index 21075bf..89ebede 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js -@@ -1,27 +1,16 @@ --import { unmarshalPrivateKey } from '@libp2p/crypto/keys'; -+import { publicKeyToProtobuf } from '@libp2p/crypto/keys'; - import { StrictSign, StrictNoSign } from '@libp2p/interface'; - import { PublishConfigType } from '../types.js'; - /** - * Prepare a PublishConfig object from a PeerId. - */ --export async function getPublishConfigFromPeerId(signaturePolicy, peerId) { -+export function getPublishConfigFromPeerId(signaturePolicy, peerId, privateKey) { - switch (signaturePolicy) { - case StrictSign: { -- if (peerId == null) { -- throw Error('Must provide PeerId'); -- } -- if (peerId.privateKey == null) { -- throw Error('Cannot sign message, no private key present'); -- } -- if (peerId.publicKey == null) { -- throw Error('Cannot sign message, no public key present'); -- } -- // Transform privateKey once at initialization time instead of once per message -- const privateKey = await unmarshalPrivateKey(peerId.privateKey); - return { - type: PublishConfigType.Signing, - author: peerId, -- key: peerId.publicKey, -+ key: publicKeyToProtobuf(privateKey.publicKey), - privateKey - }; - } -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js.map -index 6b28cb1..9949dfc 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js.map -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/publishConfig.js.map -@@ -1 +1 @@ --{"version":3,"file":"publishConfig.js","sourceRoot":"","sources":["../../../src/utils/publishConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,eAAwD,EACxD,MAAe;IAEf,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACpC,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC5D,CAAC;YAED,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAA;YAC3D,CAAC;YAED,+EAA+E;YAC/E,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAE/D,OAAO;gBACL,IAAI,EAAE,iBAAiB,CAAC,OAAO;gBAC/B,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,MAAM,CAAC,SAAS;gBACrB,UAAU;aACX,CAAA;QACH,CAAC;QAED,KAAK,YAAY;YACf,OAAO;gBACL,IAAI,EAAE,iBAAiB,CAAC,SAAS;aAClC,CAAA;QAEH;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,eAAe,GAAG,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"} -\ No newline at end of file -+{"version":3,"file":"publishConfig.js","sourceRoot":"","sources":["../../../src/utils/publishConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGnE;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,eAAwD,EACxD,MAAc,EACd,UAAsB;IAEtB,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,iBAAiB,CAAC,OAAO;gBAC/B,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC9C,UAAU;aACX,CAAA;QACH,CAAC;QAED,KAAK,YAAY;YACf,OAAO;gBACL,IAAI,EAAE,iBAAiB,CAAC,SAAS;aAClC,CAAA;QAEH;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,eAAe,GAAG,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts -new file mode 100644 -index 0000000..ea6a513 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=2-nodes.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts.map -new file mode 100644 -index 0000000..baff019 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"2-nodes.spec.d.ts","sourceRoot":"","sources":["../../test/2-nodes.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js -new file mode 100644 -index 0000000..139d5e4 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js -@@ -0,0 +1,293 @@ -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import defer from 'p-defer'; -+import { pEvent } from 'p-event'; -+import pWaitFor from 'p-wait-for'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; -+import { connectAllPubSubNodes, connectPubsubNodes, createComponentsArray } from './utils/create-pubsub.js'; -+const shouldNotHappen = () => expect.fail(); -+async function nodesArePubSubPeers(node0, node1, timeout = 60000) { -+ await pWaitFor(() => { -+ const node0SeesNode1 = node0.pubsub -+ .getPeers() -+ .map((p) => p.toString()) -+ .includes(node1.components.peerId.toString()); -+ const node1SeesNode0 = node1.pubsub -+ .getPeers() -+ .map((p) => p.toString()) -+ .includes(node0.components.peerId.toString()); -+ return node0SeesNode1 && node1SeesNode0; -+ }, { -+ timeout -+ }); -+} -+describe('2 nodes', () => { -+ describe('Pubsub dial', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ number: 2 }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Dial from nodeA to nodeB happened with FloodsubID', async () => { -+ await connectPubsubNodes(nodes[0], nodes[1]); -+ await nodesArePubSubPeers(nodes[0], nodes[1]); -+ }); -+ }); -+ describe('basics', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ number: 2 }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Dial from nodeA to nodeB happened with GossipsubIDv11', async () => { -+ await connectPubsubNodes(nodes[0], nodes[1]); -+ await nodesArePubSubPeers(nodes[0], nodes[1]); -+ }); -+ }); -+ describe('subscription functionality', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: 2, -+ connected: true -+ }); -+ await nodesArePubSubPeers(nodes[0], nodes[1]); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Subscribe to a topic', async () => { -+ const topic = 'test_topic'; -+ nodes[0].pubsub.subscribe(topic); -+ nodes[1].pubsub.subscribe(topic); -+ // await subscription change -+ const [evt0] = await Promise.all([ -+ pEvent(nodes[0].pubsub, 'subscription-change'), -+ pEvent(nodes[1].pubsub, 'subscription-change') -+ ]); -+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt0.detail; -+ expect(nodes[0].pubsub.getTopics()).to.include(topic); -+ expect(nodes[1].pubsub.getTopics()).to.include(topic); -+ expect(nodes[0].pubsub.getSubscribers(topic).map((p) => p.toString())).to.include(nodes[1].components.peerId.toString()); -+ expect(nodes[1].pubsub.getSubscribers(topic).map((p) => p.toString())).to.include(nodes[0].components.peerId.toString()); -+ expect(changedPeerId.toString()).to.equal(nodes[1].components.peerId.toString()); -+ expect(changedSubs).to.have.lengthOf(1); -+ expect(changedSubs[0].topic).to.equal(topic); -+ expect(changedSubs[0].subscribe).to.equal(true); -+ // await heartbeats -+ await Promise.all([ -+ pEvent(nodes[0].pubsub, 'gossipsub:heartbeat'), -+ pEvent(nodes[1].pubsub, 'gossipsub:heartbeat') -+ ]); -+ expect((nodes[0].pubsub).mesh.get(topic)?.has(nodes[1].components.peerId.toString())).to.be.true(); -+ expect((nodes[1].pubsub).mesh.get(topic)?.has(nodes[0].components.peerId.toString())).to.be.true(); -+ }); -+ }); -+ describe('publish functionality', () => { -+ const topic = 'Z'; -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: 2, -+ connected: true -+ }); -+ // Create subscriptions -+ nodes[0].pubsub.subscribe(topic); -+ nodes[1].pubsub.subscribe(topic); -+ // await subscription change and heartbeat -+ await Promise.all([ -+ pEvent(nodes[0].pubsub, 'subscription-change'), -+ pEvent(nodes[1].pubsub, 'subscription-change'), -+ pEvent(nodes[0].pubsub, 'gossipsub:heartbeat'), -+ pEvent(nodes[1].pubsub, 'gossipsub:heartbeat') -+ ]); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Publish to a topic - nodeA', async () => { -+ const promise = pEvent(nodes[1].pubsub, 'message'); -+ nodes[0].pubsub.addEventListener('message', shouldNotHappen); -+ const data = uint8ArrayFromString('hey'); -+ await nodes[0].pubsub.publish(topic, data); -+ const evt = await promise; -+ if (evt.detail.type !== 'signed') { -+ throw new Error('unexpected msg type'); -+ } -+ expect(evt.detail.data).to.equalBytes(data); -+ expect(evt.detail.from.toString()).to.equal(nodes[0].components.peerId.toString()); -+ nodes[0].pubsub.removeEventListener('message', shouldNotHappen); -+ }); -+ it('Publish to a topic - nodeB', async () => { -+ const promise = pEvent(nodes[0].pubsub, 'message'); -+ nodes[1].pubsub.addEventListener('message', shouldNotHappen); -+ const data = uint8ArrayFromString('banana'); -+ await nodes[1].pubsub.publish(topic, data); -+ const evt = await promise; -+ if (evt.detail.type !== 'signed') { -+ throw new Error('unexpected msg type'); -+ } -+ expect(evt.detail.data).to.equalBytes(data); -+ expect(evt.detail.from.toString()).to.equal(nodes[1].components.peerId.toString()); -+ nodes[1].pubsub.removeEventListener('message', shouldNotHappen); -+ }); -+ it('Publish 10 msg to a topic', async () => { -+ let counter = 0; -+ nodes[1].pubsub.addEventListener('message', shouldNotHappen); -+ nodes[0].pubsub.addEventListener('message', receivedMsg); -+ const done = defer(); -+ function receivedMsg(evt) { -+ const msg = evt.detail; -+ expect(uint8ArrayToString(msg.data)).to.startWith('banana'); -+ if (msg.type !== 'signed') { -+ throw new Error('unexpected msg type'); -+ } -+ expect(msg.from.toString()).to.equal(nodes[1].components.peerId.toString()); -+ expect(msg.sequenceNumber).to.be.a('BigInt'); -+ expect(msg.topic).to.equal(topic); -+ if (++counter === 10) { -+ nodes[0].pubsub.removeEventListener('message', receivedMsg); -+ nodes[1].pubsub.removeEventListener('message', shouldNotHappen); -+ done.resolve(); -+ } -+ } -+ await Promise.all(Array.from({ length: 10 }).map(async (_, i) => { -+ await nodes[1].pubsub.publish(topic, uint8ArrayFromString(`banana${i}`)); -+ })); -+ await done.promise; -+ }); -+ }); -+ describe('publish after unsubscribe', () => { -+ const topic = 'Z'; -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ number: 2, init: { allowPublishToZeroTopicPeers: true } }); -+ await connectAllPubSubNodes(nodes); -+ // Create subscriptions -+ nodes[0].pubsub.subscribe(topic); -+ nodes[1].pubsub.subscribe(topic); -+ // await subscription change and heartbeat -+ await Promise.all([ -+ pEvent(nodes[0].pubsub, 'subscription-change'), -+ pEvent(nodes[1].pubsub, 'subscription-change') -+ ]); -+ await Promise.all([ -+ pEvent(nodes[0].pubsub, 'gossipsub:heartbeat'), -+ pEvent(nodes[1].pubsub, 'gossipsub:heartbeat') -+ ]); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Unsubscribe from a topic', async () => { -+ nodes[0].pubsub.unsubscribe(topic); -+ expect(nodes[0].pubsub.getTopics()).to.be.empty(); -+ const evt = await pEvent(nodes[1].pubsub, 'subscription-change'); -+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail; -+ await pEvent(nodes[1].pubsub, 'gossipsub:heartbeat'); -+ expect(nodes[1].pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodes[1].pubsub.getSubscribers(topic)).to.be.empty(); -+ expect(changedPeerId.toString()).to.equal(nodes[0].components.peerId.toString()); -+ expect(changedSubs).to.have.lengthOf(1); -+ expect(changedSubs[0].topic).to.equal(topic); -+ expect(changedSubs[0].subscribe).to.equal(false); -+ }); -+ it('Publish to a topic after unsubscribe', async () => { -+ const promises = [pEvent(nodes[1].pubsub, 'subscription-change'), pEvent(nodes[1].pubsub, 'gossipsub:heartbeat')]; -+ nodes[0].pubsub.unsubscribe(topic); -+ await Promise.all(promises); -+ const promise = new Promise((resolve, reject) => { -+ nodes[0].pubsub.addEventListener('message', reject); -+ setTimeout(() => { -+ nodes[0].pubsub.removeEventListener('message', reject); -+ resolve(); -+ }, 100); -+ }); -+ await nodes[1].pubsub.publish('Z', uint8ArrayFromString('banana')); -+ await nodes[0].pubsub.publish('Z', uint8ArrayFromString('banana')); -+ try { -+ await promise; -+ } -+ catch (e) { -+ expect.fail('message should not be received'); -+ } -+ }); -+ }); -+ describe('nodes send state on connection', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: 2 -+ }); -+ // Make subscriptions prior to new nodes -+ nodes[0].pubsub.subscribe('Za'); -+ nodes[1].pubsub.subscribe('Zb'); -+ expect(nodes[0].pubsub.getPeers()).to.be.empty(); -+ expect(nodes[0].pubsub.getTopics()).to.include('Za'); -+ expect(nodes[1].pubsub.getPeers()).to.be.empty(); -+ expect(nodes[1].pubsub.getTopics()).to.include('Zb'); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('existing subscriptions are sent upon peer connection', async function () { -+ this.timeout(5000); -+ await Promise.all([ -+ connectPubsubNodes(nodes[0], nodes[1]), -+ pEvent(nodes[0].pubsub, 'subscription-change'), -+ pEvent(nodes[1].pubsub, 'subscription-change') -+ ]); -+ expect(nodes[0].pubsub.getTopics()).to.include('Za'); -+ expect(nodes[1].pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodes[1].pubsub.getSubscribers('Za').map((p) => p.toString())).to.include(nodes[0].components.peerId.toString()); -+ expect(nodes[1].pubsub.getTopics()).to.include('Zb'); -+ expect(nodes[0].pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodes[0].pubsub.getSubscribers('Zb').map((p) => p.toString())).to.include(nodes[1].components.peerId.toString()); -+ }); -+ }); -+ describe('nodes handle stopping', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: 2, -+ connected: true -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it("nodes don't have peers after stopped", async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ expect(nodes[0].pubsub.getPeers()).to.be.empty(); -+ expect(nodes[1].pubsub.getPeers()).to.be.empty(); -+ }); -+ }); -+}); -+//# sourceMappingURL=2-nodes.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js.map -new file mode 100644 -index 0000000..2ae1bb6 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/2-nodes.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"2-nodes.spec.js","sourceRoot":"","sources":["../../test/2-nodes.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts -new file mode 100644 -index 0000000..fc7a6c0 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=accept-from.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts.map -new file mode 100644 -index 0000000..0e3c1a5 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"accept-from.spec.d.ts","sourceRoot":"","sources":["../../test/accept-from.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js -new file mode 100644 -index 0000000..3d86544 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js -@@ -0,0 +1,92 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import {} from '@libp2p/interface'; -+import { defaultLogger } from '@libp2p/logger'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { expect } from 'aegir/chai'; -+import sinon from 'sinon'; -+import { stubInterface } from 'ts-sinon'; -+import { GossipSub } from '../src/index.js'; -+import { fastMsgIdFn } from './utils/msgId.js'; -+const peerA = '16Uiu2HAmMkH6ZLen2tbhiuNCTZLLvrZaDgufNdT5MPjtC9Hr9YNA'; -+describe('Gossipsub acceptFrom', () => { -+ let gossipsub; -+ let sandbox; -+ let scoreSpy; -+ beforeEach(async () => { -+ sandbox = sinon.createSandbox(); -+ // not able to use fake timers or tests in browser are suspended -+ // sandbox.useFakeTimers(Date.now()) -+ const privateKey = await generateKeyPair('Ed25519'); -+ const peerId = peerIdFromPrivateKey(privateKey); -+ gossipsub = new GossipSub({ -+ privateKey, -+ peerId, -+ registrar: stubInterface(), -+ peerStore: stubInterface(), -+ connectionManager: stubInterface(), -+ logger: defaultLogger() -+ }, { emitSelf: false, fastMsgIdFn }); -+ // stubbing PeerScore causes some pending issue in firefox browser environment -+ // we can only spy it -+ // using scoreSpy.withArgs("peerA").calledOnce causes the pending issue in firefox -+ // while spy.getCall() is fine -+ scoreSpy = sandbox.spy(gossipsub.score, 'score'); -+ }); -+ afterEach(() => { -+ sandbox.restore(); -+ }); -+ it('should only white list peer with positive score', () => { -+ // by default the score is 0 -+ gossipsub.acceptFrom(peerA); -+ // 1st time, we have to compute score -+ expect(scoreSpy.getCall(0).args[0]).to.be.equal(peerA); -+ expect(scoreSpy.getCall(0).returnValue).to.be.equal(0); -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ // 2nd time, use a cached score since it's white listed -+ gossipsub.acceptFrom(peerA); -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ }); -+ it('should recompute score after 1s', async () => { -+ // by default the score is 0 -+ gossipsub.acceptFrom(peerA); -+ // 1st time, we have to compute score -+ expect(scoreSpy.getCall(0).args[0]).to.be.equal(peerA); -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ gossipsub.acceptFrom(peerA); -+ // score is cached -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ // after 1s -+ await new Promise((resolve) => setTimeout(resolve, 1001)); -+ gossipsub.acceptFrom(peerA); -+ expect(scoreSpy.getCall(1).args[0]).to.be.equal(peerA); -+ expect(scoreSpy.getCall(2)).to.not.be.ok(); -+ }); -+ it('should recompute score after max messages accepted', () => { -+ // by default the score is 0 -+ gossipsub.acceptFrom(peerA); -+ // 1st time, we have to compute score -+ expect(scoreSpy.getCall(0).args[0]).to.be.equal(peerA); -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ for (let i = 0; i < 128; i++) { -+ gossipsub.acceptFrom(peerA); -+ } -+ expect(scoreSpy.getCall(1)).to.not.be.ok(); -+ // max messages reached -+ gossipsub.acceptFrom(peerA); -+ expect(scoreSpy.getCall(1).args[0]).to.be.equal(peerA); -+ expect(scoreSpy.getCall(2)).to.not.be.ok(); -+ }); -+ // TODO: run this in a unit test setup -+ // this causes the test to not finish in firefox environment -+ // it.skip('should NOT white list peer with negative score', () => { -+ // // peerB is not white listed since score is negative -+ // scoreStub.score.withArgs('peerB').returns(-1) -+ // gossipsub["acceptFrom"]('peerB') -+ // // 1st time, we have to compute score -+ // expect(scoreStub.score.withArgs('peerB').calledOnce).to.be.true() -+ // // 2nd time, still have to compute score since it's NOT white listed -+ // gossipsub["acceptFrom"]('peerB') -+ // expect(scoreStub.score.withArgs('peerB').calledTwice).to.be.true() -+ // }) -+}); -+//# sourceMappingURL=accept-from.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js.map -new file mode 100644 -index 0000000..1302849 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/accept-from.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"accept-from.spec.js","sourceRoot":"","sources":["../../test/accept-from.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts -new file mode 100644 -index 0000000..8ba8e83 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=allowedTopics.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts.map -new file mode 100644 -index 0000000..efec67b ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"allowedTopics.spec.d.ts","sourceRoot":"","sources":["../../test/allowedTopics.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js -new file mode 100644 -index 0000000..6ed6d08 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js -@@ -0,0 +1,49 @@ -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import { pEvent } from 'p-event'; -+import { connectAllPubSubNodes, createComponentsArray } from './utils/create-pubsub.js'; -+/* eslint-disable dot-notation */ -+describe('gossip / allowedTopics', () => { -+ let nodes; -+ const allowedTopic = 'topic_allowed'; -+ const notAllowedTopic = 'topic_not_allowed'; -+ const allowedTopics = [allowedTopic]; -+ const allTopics = [allowedTopic, notAllowedTopic]; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: 2, -+ connected: false, -+ init: { -+ allowedTopics -+ } -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('should send gossip to non-mesh peers in topic', async function () { -+ this.timeout(10 * 1000); -+ const [nodeA, nodeB] = nodes; -+ // add subscriptions to each node -+ for (const topic of allTopics) { -+ nodeA.pubsub.subscribe(topic); -+ } -+ // every node connected to every other -+ await Promise.all([ -+ connectAllPubSubNodes(nodes), -+ // nodeA should send nodeB all its subscriptions on connection -+ pEvent(nodeB.pubsub, 'subscription-change') -+ ]); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ const nodeASubscriptions = Array.from((nodeA.pubsub)['subscriptions'].keys()); -+ expect(nodeASubscriptions).deep.equals(allTopics, 'nodeA.subscriptions should be subcribed to all'); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ const nodeBTopics = Array.from((nodeB.pubsub)['topics'].keys()); -+ expect(nodeBTopics).deep.equals(allowedTopics, 'nodeB.topics should only contain allowedTopics'); -+ }); -+}); -+//# sourceMappingURL=allowedTopics.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js.map -new file mode 100644 -index 0000000..1da0eb7 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/allowedTopics.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"allowedTopics.spec.js","sourceRoot":"","sources":["../../test/allowedTopics.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAA+B,MAAM,0BAA0B,CAAA;AAEpH,iCAAiC;AACjC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,KAA+B,CAAA;IAEnC,MAAM,YAAY,GAAG,eAAe,CAAA;IACpC,MAAM,eAAe,GAAG,mBAAmB,CAAA;IAC3C,MAAM,aAAa,GAAG,CAAC,YAAY,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAEjD,sBAAsB;IACtB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,WAAW,CAAC,KAAK,EAAE,CAAA;QACnB,KAAK,GAAG,MAAM,qBAAqB,CAAC;YAClC,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE;gBACJ,aAAa;aACd;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAClH,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK;QACvD,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QACvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAA;QAE5B,iCAAiC;QACjC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QAED,sCAAsC;QACtC,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,CAAC,KAAK,CAAC;YAC5B,8DAA8D;YAC9D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC;SAC5C,CAAC,CAAA;QAEF,2DAA2D;QAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7E,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC,CAAA;QAEnG,2DAA2D;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/D,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts -new file mode 100644 -index 0000000..20d9496 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=asyncIterable.test.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts.map -new file mode 100644 -index 0000000..e99e026 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"asyncIterable.test.d.ts","sourceRoot":"","sources":["../../../test/benchmark/asyncIterable.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js -new file mode 100644 -index 0000000..c8e5ce2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js -@@ -0,0 +1,79 @@ -+import { itBench } from '@dapplion/benchmark'; -+import { abortableSource } from 'abortable-iterator'; -+import all from 'it-all'; -+import { pipe } from 'it-pipe'; -+/* eslint-disable generator-star-spacing */ -+describe('abortableSource cost', function () { -+ const n = 10000; -+ const bytes = new Uint8Array(200); -+ const controller = new AbortController(); -+ async function* bytesSource() { -+ let i = 0; -+ while (i++ < n) { -+ yield bytes; -+ } -+ } -+ for (let k = 0; k < 5; k++) { -+ itBench({ -+ id: `async iterate abortable x${k} bytesSource ${n}`, -+ beforeEach: () => { -+ let source = bytesSource(); -+ for (let i = 0; i < k; i++) { -+ source = abortableSource(source, controller.signal); -+ } -+ return source; -+ }, -+ fn: async (source) => { -+ for await (const chunk of source) { -+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions -+ chunk; -+ } -+ } -+ }); -+ } -+}); -+describe('pipe extra iterables cost', function () { -+ const n = 10000; -+ async function* numberSource() { -+ let i = 0; -+ while (i < n) { -+ yield i++; -+ } -+ } -+ async function* numberTransform(source) { -+ for await (const num of source) { -+ yield num + 1; -+ } -+ } -+ itBench({ -+ id: `async iterate pipe x0 transforms ${n}`, -+ fn: async () => { -+ await pipe(numberSource, all); -+ } -+ }); -+ itBench({ -+ id: `async iterate pipe x1 transforms ${n}`, -+ fn: async () => { -+ await pipe(numberSource, numberTransform, all); -+ } -+ }); -+ itBench({ -+ id: `async iterate pipe x2 transforms ${n}`, -+ fn: async () => { -+ await pipe(numberSource, numberTransform, numberTransform, all); -+ } -+ }); -+ itBench({ -+ id: `async iterate pipe x4 transforms ${n}`, -+ fn: async () => { -+ await pipe(numberSource, numberTransform, numberTransform, numberTransform, numberTransform, all); -+ } -+ }); -+ itBench({ -+ id: `async iterate pipe x8 transforms ${n}`, -+ fn: async () => { -+ await pipe(numberSource, numberTransform, numberTransform, numberTransform, numberTransform, numberTransform, numberTransform, numberTransform, numberTransform, all); -+ } -+ }); -+}); -+//# sourceMappingURL=asyncIterable.test.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js.map -new file mode 100644 -index 0000000..efdb4ba ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/asyncIterable.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"asyncIterable.test.js","sourceRoot":"","sources":["../../../test/benchmark/asyncIterable.test.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts -new file mode 100644 -index 0000000..121d59b ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=index.test.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts.map -new file mode 100644 -index 0000000..dbcc819 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../test/benchmark/index.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js -new file mode 100644 -index 0000000..e4e2454 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js -@@ -0,0 +1,110 @@ -+import { itBench } from '@dapplion/benchmark'; -+import { expect } from 'aegir/chai'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { connectPubsubNodes, createComponentsArray, denseConnect } from '../utils/create-pubsub.js'; -+import { awaitEvents, checkReceivedSubscriptions, checkReceivedSubscription } from '../utils/events.js'; -+describe('heartbeat', function () { -+ const topic = 'foobar'; -+ const numTopic = 70; -+ const numPeers = 50; -+ const numPeersPerTopic = 30; -+ let numLoop = 0; -+ const getTopic = (i) => { -+ return topic + String(i); -+ }; -+ const getTopicPeerIndices = (topic) => { -+ // peer 0 join all topics -+ const peers = [0]; -+ // topic 0 starts from index 1 -+ // topic 1 starts from index 2... -+ for (let i = 0; i < numPeersPerTopic - 1; i++) { -+ const peerIndex = (i + topic + 1) % numPeers; -+ if (peerIndex !== 0) -+ peers.push(peerIndex); -+ } -+ return peers; -+ }; -+ /** -+ * Star topology -+ * * peer 1 -+ * * / -+ * peer 0 - peer 2 -+ * * \ -+ * * peer 3 -+ * -+ * A topic contains peer 0 and some other peers, with numPeersPerTopic = 4 -+ * -+ * |Topic| Peers | -+ * |-----|-----------| -+ * | 0 | 0, 1, 2, 3| -+ * | 1 | 0, 2, 3, 4| -+ */ -+ itBench({ -+ id: 'heartbeat', -+ before: async () => { -+ const psubs = await createComponentsArray({ -+ number: numPeers, -+ init: { -+ scoreParams: { -+ IPColocationFactorWeight: 0 -+ }, -+ floodPublish: true, -+ // TODO: why we need to configure this low score -+ // probably we should tweak topic score params -+ // is that why we don't have mesh peers? -+ scoreThresholds: { -+ gossipThreshold: -10, -+ publishThreshold: -100, -+ graylistThreshold: -1000 -+ } -+ } -+ }); -+ // build the star -+ await Promise.all(psubs.slice(1).map(async (ps) => connectPubsubNodes(psubs[0], ps))); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ await denseConnect(psubs); -+ // make sure psub 0 has `numPeers - 1` peers -+ expect(psubs[0].pubsub.getPeers().length).to.be.gte(numPeers - 1, `peer 0 should have at least ${numPeers - 1} peers`); -+ const peerIds = psubs.map((psub) => psub.components.peerId.toString()); -+ for (let topicIndex = 0; topicIndex < numTopic; topicIndex++) { -+ const topic = getTopic(topicIndex); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ const peerIndices = getTopicPeerIndices(topicIndex); -+ const peerIdsOnTopic = peerIndices.map((peerIndex) => peerIds[peerIndex]); -+ // peer 0 see all subscriptions from other -+ const subscription = checkReceivedSubscriptions(psubs[0], peerIdsOnTopic, topic); -+ // other peers should see the subsription from peer 0 to prevent PublishError.InsufficientPeers error -+ const otherSubscriptions = peerIndices -+ .slice(1) -+ .map((peerIndex) => psubs[peerIndex]) -+ .map(async (psub) => checkReceivedSubscription(psub, peerIds[0], topic, 0)); -+ peerIndices.forEach((peerIndex) => { psubs[peerIndex].pubsub.subscribe(topic); }); -+ await Promise.all([subscription, ...otherSubscriptions]); -+ } -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 3))); -+ // make sure psubs 0 have at least 10 topic peers and 4 mesh peers for each topic -+ for (let i = 0; i < numTopic; i++) { -+ expect((psubs[0].pubsub).getSubscribers(getTopic(i)).length).to.be.gte(10, `psub 0: topic ${i} does not have enough topic peers`); -+ expect((psubs[0].pubsub).getMeshPeers(getTopic(i)).length).to.be.gte(4, `psub 0: topic ${i} does not have enough mesh peers`); -+ } -+ return psubs; -+ }, -+ beforeEach: async (psubs) => { -+ numLoop++; -+ const msg = `its not a flooooood ${numLoop}`; -+ const promises = []; -+ for (let topicIndex = 0; topicIndex < numTopic; topicIndex++) { -+ for (const peerIndex of getTopicPeerIndices(topicIndex)) { -+ promises.push(psubs[peerIndex].pubsub.publish(getTopic(topicIndex), uint8ArrayFromString(psubs[peerIndex].components.peerId.toString() + msg))); -+ } -+ } -+ await Promise.all(promises); -+ return psubs[0]; -+ }, -+ fn: async (firstPsub) => { -+ return (firstPsub.pubsub).heartbeat(); -+ } -+ }); -+}); -+//# sourceMappingURL=index.test.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js.map -new file mode 100644 -index 0000000..1cd94a0 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/index.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../test/benchmark/index.test.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts -new file mode 100644 -index 0000000..05311f5 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=protobuf.test.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts.map -new file mode 100644 -index 0000000..a7e2596 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"protobuf.test.d.ts","sourceRoot":"","sources":["../../../test/benchmark/protobuf.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js -new file mode 100644 -index 0000000..9e50b47 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js -@@ -0,0 +1,48 @@ -+import crypto from 'node:crypto'; -+import { itBench } from '@dapplion/benchmark'; -+import { RPC } from '../../src/message/rpc.js'; -+describe('protobuf', function () { -+ const testCases = [ -+ // As of Oct 2023, Attestation length = 281 -+ { name: 'Attestation', length: 300 }, -+ // A SignedBeaconBlock could be from 70_000 to 300_000 -+ { name: 'SignedBeaconBlock', length: 70_000 }, -+ { name: 'SignedBeaconBlock', length: 140_000 }, -+ { name: 'SignedBeaconBlock', length: 210_000 }, -+ { name: 'SignedBeaconBlock', length: 280_000 } -+ ]; -+ for (const { name, length } of testCases) { -+ const rpc = { -+ subscriptions: [], -+ messages: [ -+ { -+ topic: 'topic1', -+ data: crypto.randomBytes(length), -+ signature: Uint8Array.from(Array.from({ length: 96 }, () => 100)) -+ } -+ ], -+ control: undefined -+ }; -+ const bytes = RPC.encode(rpc); -+ const runsFactor = 1000; -+ itBench({ -+ id: `decode ${name} message ${length} bytes`, -+ fn: () => { -+ for (let i = 0; i < runsFactor; i++) { -+ RPC.decode(bytes); -+ } -+ }, -+ runsFactor -+ }); -+ itBench({ -+ id: `encode ${name} message ${length} bytes`, -+ fn: () => { -+ for (let i = 0; i < runsFactor; i++) { -+ RPC.encode(rpc); -+ } -+ }, -+ runsFactor -+ }); -+ } -+}); -+//# sourceMappingURL=protobuf.test.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js.map -new file mode 100644 -index 0000000..0741329 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/protobuf.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"protobuf.test.js","sourceRoot":"","sources":["../../../test/benchmark/protobuf.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAE9C,QAAQ,CAAC,UAAU,EAAE;IACnB,MAAM,SAAS,GAA4C;QACzD,2CAA2C;QAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE;QACpC,sDAAsD;QACtD,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE;QAC7C,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE;QAC9C,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE;QAC9C,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE;KAC/C,CAAA;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QACzC,MAAM,GAAG,GAAQ;YACf,aAAa,EAAE,EAAE;YACjB,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;oBAChC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;iBAClE;aACF;YACD,OAAO,EAAE,SAAS;SACnB,CAAA;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAA;QAEvB,OAAO,CAAC;YACN,EAAE,EAAE,UAAU,IAAI,YAAY,MAAM,QAAQ;YAC5C,EAAE,EAAE,GAAG,EAAE;gBACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,UAAU;SACX,CAAC,CAAA;QAEF,OAAO,CAAC;YACN,EAAE,EAAE,UAAU,IAAI,YAAY,MAAM,QAAQ;YAC5C,EAAE,EAAE,GAAG,EAAE;gBACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC;YACD,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts -new file mode 100644 -index 0000000..8b84d29 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=time-cache.test.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts.map -new file mode 100644 -index 0000000..fae2ec2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"time-cache.test.d.ts","sourceRoot":"","sources":["../../../test/benchmark/time-cache.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js -new file mode 100644 -index 0000000..1d2dec6 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js -@@ -0,0 +1,22 @@ -+import { itBench } from '@dapplion/benchmark'; -+// eslint-disable-next-line @typescript-eslint/ban-ts-comment -+// @ts-expect-error no types -+import TimeCache from 'time-cache'; -+import { SimpleTimeCache } from '../../src/utils/time-cache.js'; -+// TODO: errors with "Error: root suite not found" -+describe('npm TimeCache vs SimpleTimeCache', () => { -+ const iterations = [1_000_000, 4_000_000, 8_000_000, 16_000_000]; -+ const timeCache = new TimeCache({ validity: 1 }); -+ const simpleTimeCache = new SimpleTimeCache({ validityMs: 1000 }); -+ for (const iteration of iterations) { -+ itBench(`npm TimeCache.put x${iteration}`, () => { -+ for (let j = 0; j < iteration; j++) -+ timeCache.put(String(j)); -+ }); -+ itBench(`SimpleTimeCache.put x${iteration}`, () => { -+ for (let j = 0; j < iteration; j++) -+ simpleTimeCache.put(String(j), true); -+ }); -+ } -+}); -+//# sourceMappingURL=time-cache.test.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js.map -new file mode 100644 -index 0000000..0f77d79 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/benchmark/time-cache.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"time-cache.test.js","sourceRoot":"","sources":["../../../test/benchmark/time-cache.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,6DAA6D;AAC7D,4BAA4B;AAC5B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,kDAAkD;AAClD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAChE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;IAChD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,sBAAsB,SAAS,EAAE,EAAE,GAAG,EAAE;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,wBAAwB,SAAS,EAAE,EAAE,GAAG,EAAE;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts -new file mode 100644 -index 0000000..dac08d9 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=compliance.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts.map -new file mode 100644 -index 0000000..dc9e719 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"compliance.spec.d.ts","sourceRoot":"","sources":["../../test/compliance.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js -new file mode 100644 -index 0000000..71c5311 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js -@@ -0,0 +1,35 @@ -+import { TypedEventEmitter } from '@libp2p/interface'; -+import tests from '@libp2p/interface-compliance-tests/pubsub'; -+import { defaultLogger } from '@libp2p/logger'; -+import { PersistentPeerStore } from '@libp2p/peer-store'; -+import { MemoryDatastore } from 'datastore-core'; -+import { GossipSub } from '../src/index.js'; -+describe.skip('interface compliance', function () { -+ this.timeout(3000); -+ tests({ -+ async setup(args) { -+ if (args == null) { -+ throw new Error('PubSubOptions is required'); -+ } -+ const pubsub = new GossipSub({ -+ ...args.components, -+ peerStore: new PersistentPeerStore({ -+ peerId: args.components.peerId, -+ datastore: new MemoryDatastore(), -+ events: new TypedEventEmitter(), -+ logger: defaultLogger() -+ }) -+ }, { -+ ...args.init, -+ // libp2p-interfaces-compliance-tests in test 'can subscribe and unsubscribe correctly' publishes to no peers -+ // Disable check to allow passing tests -+ allowPublishToZeroTopicPeers: true -+ }); -+ return pubsub; -+ }, -+ async teardown() { -+ // -+ } -+ }); -+}); -+//# sourceMappingURL=compliance.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js.map -new file mode 100644 -index 0000000..d05a95d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/compliance.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"compliance.spec.js","sourceRoot":"","sources":["../../test/compliance.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,MAAM,2CAA2C,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE;IACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB,KAAK,CAAC;QACJ,KAAK,CAAC,KAAK,CAAE,IAAI;YACf,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAC9C,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;gBACE,GAAG,IAAI,CAAC,UAAU;gBAClB,SAAS,EAAE,IAAI,mBAAmB,CAAC;oBACjC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAC9B,SAAS,EAAE,IAAI,eAAe,EAAE;oBAChC,MAAM,EAAE,IAAI,iBAAiB,EAAgB;oBAC7C,MAAM,EAAE,aAAa,EAAE;iBACxB,CAAC;aACH,EACD;gBACE,GAAG,IAAI,CAAC,IAAI;gBACZ,6GAA6G;gBAC7G,uCAAuC;gBACvC,4BAA4B,EAAE,IAAI;aACnC,CACF,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,EAAE;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts -new file mode 100644 -index 0000000..86c3450 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=go-gossipsub.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts.map -new file mode 100644 -index 0000000..35560e4 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"go-gossipsub.spec.d.ts","sourceRoot":"","sources":["../../../test/e2e/go-gossipsub.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js -new file mode 100644 -index 0000000..fc27489 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js -@@ -0,0 +1,1113 @@ -+import { FloodSub } from '@libp2p/floodsub'; -+import { TopicValidatorResult } from '@libp2p/interface'; -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import delay from 'delay'; -+import pRetry from 'p-retry'; -+import pWaitFor from 'p-wait-for'; -+import { equals as uint8ArrayEquals } from 'uint8arrays/equals'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { GossipsubD } from '../../src/constants.js'; -+import { sparseConnect, denseConnect, connectSome, createComponentsArray, createComponents, connectPubsubNodes } from '../utils/create-pubsub.js'; -+import { awaitEvents, checkReceivedSubscription, checkReceivedSubscriptions } from '../utils/events.js'; -+import { fastMsgIdFn } from '../utils/index.js'; -+/** -+ * These tests were translated from: -+ * https://github.com/libp2p/go-libp2p-pubsub/blob/master/gossipsub_test.go -+ */ -+/** -+ * Given a topic and data (and debug metadata -- sender index and msg index) -+ * Return a function (takes a gossipsub (and receiver index)) -+ * that returns a Promise that awaits the message being received -+ * and checks that the received message equals the given message -+ */ -+const checkReceivedMessage = (topic, data, senderIx, msgIx) => async (node, receiverIx) => new Promise((resolve, reject) => { -+ const t = setTimeout(() => { -+ node.pubsub.removeEventListener('message', cb); -+ reject(new Error(`Message never received, sender ${senderIx}, receiver ${receiverIx}, index ${msgIx}`)); -+ }, 60000); -+ const cb = (evt) => { -+ const msg = evt.detail; -+ if (msg.topic !== topic) { -+ return; -+ } -+ if (uint8ArrayEquals(data, msg.data)) { -+ clearTimeout(t); -+ node.pubsub.removeEventListener('message', cb); -+ resolve(); -+ } -+ }; -+ node.pubsub.addEventListener('message', cb); -+}); -+describe('go-libp2p-pubsub gossipsub tests', function () { -+ // In Github runners it takes ~10sec the longest test -+ this.timeout(120 * 1000); -+ this.retries(3); -+ let psubs; -+ beforeEach(() => { -+ mockNetwork.reset(); -+ }); -+ afterEach(async () => { -+ await stop(...psubs.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('test sparse gossipsub', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes -+ // Sparsely connect the nodes -+ // Publish 100 messages, each from a random node -+ // Assert that subscribed nodes receive the message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ floodPublish: false, -+ batchPublish: true, -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await sparseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ const batchOpts = [true, false]; -+ for (const batchPublish of batchOpts) { -+ // eslint-disable-next-line no-loop-func -+ it(`test dense gossipsub batchPublish=${batchPublish}`, async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes -+ // Densely connect the nodes -+ // Publish 100 messages, each from a random node -+ // Assert that subscribed nodes receive the message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ floodPublish: false, -+ batchPublish, -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ } -+ it('test gossipsub fanout', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes except the first -+ // Densely connect the nodes -+ // Publish 100 messages, each from the first node -+ // Assert that subscribed nodes receive the message -+ // Subscribe to the topic, first node -+ // Publish 100 messages, each from the first node -+ // Assert that subscribed nodes receive the message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ floodPublish: false, -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ const promises = psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2)); -+ psubs.slice(1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(promises); -+ let sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = 0; -+ const results = Promise.all(psubs.slice(1).map(checkReceivedMessage(topic, msg, owner, i))); -+ await psubs[owner].pubsub.publish(topic, msg); -+ await results; -+ } -+ // await Promise.all(sendRecv) -+ psubs[0].pubsub.subscribe(topic); -+ // wait for a heartbeat -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 1))); -+ sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`2nd - ${i} its not a flooooood ${i}`); -+ const owner = 0; -+ const results = Promise.all(psubs -+ .slice(1) -+ .filter((psub, j) => j !== owner) -+ .map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub fanout maintenance', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes except the first -+ // Densely connect the nodes -+ // Publish 100 messages, each from the first node -+ // Assert that subscribed nodes receive the message -+ // Unsubscribe to the topic, all nodes except the first -+ // Resubscribe to the topic, all nodes except the first -+ // Publish 100 messages, each from the first node -+ // Assert that the subscribed nodes receive the message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ floodPublish: false, -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const promises = psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2)); -+ const topic = 'foobar'; -+ psubs.slice(1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(promises); -+ let sendRecv = []; -+ const sendMessages = async (time) => { -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${time} ${i} its not a flooooood ${i}`); -+ const owner = 0; -+ const results = Promise.all(psubs -+ .slice(1) -+ .filter((psub, j) => j !== owner) -+ .map(checkReceivedMessage(topic, msg, owner, i))); -+ await psubs[owner].pubsub.publish(topic, msg); -+ sendRecv.push(results); -+ } -+ }; -+ await sendMessages(1); -+ await Promise.all(sendRecv); -+ psubs.slice(1).forEach((ps) => { ps.pubsub.unsubscribe(topic); }); -+ // wait for heartbeats -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ psubs.slice(1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait for heartbeats -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ sendRecv = []; -+ await sendMessages(2); -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub fanout expiry', async function () { -+ // Create 10 gossipsub nodes -+ // Subscribe to the topic, all nodes except the first -+ // Densely connect the nodes -+ // Publish 5 messages, each from the first node -+ // Assert that the subscribed nodes receive every message -+ // Assert that the first node has fanout peers -+ // Wait until fanout expiry -+ // Assert that the first node has no fanout -+ psubs = await createComponentsArray({ -+ number: 10, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ }, -+ floodPublish: false, -+ fanoutTTL: 1000 -+ } -+ }); -+ const promises = psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2)); -+ const topic = 'foobar'; -+ psubs.slice(1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(promises); -+ const sendRecv = []; -+ for (let i = 0; i < 5; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = 0; -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ await psubs[owner].pubsub.publish(topic, msg); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ expect((psubs[0].pubsub).fanout).to.not.be.empty(); -+ await pWaitFor(async () => { -+ return (psubs[0].pubsub).fanout.size === 0; -+ }); -+ }); -+ it('test gossipsub gossip', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes -+ // Densely connect the nodes -+ // Publish 100 messages, each from a random node -+ // Assert that the subscribed nodes receive the message -+ // Wait a bit between each message so gossip can be interleaved -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const promises = psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2)); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(promises); -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ await psubs[owner].pubsub.publish(topic, msg); -+ await results; -+ // wait a bit to have some gossip interleaved -+ await delay(100); -+ } -+ // and wait for some gossip flushing -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ }); -+ it('test gossipsub gossip propagation', async function () { -+ // Create 20 gossipsub nodes -+ // Split into two groups, just a single node shared between -+ // Densely connect each group to itself -+ // Subscribe to the topic, first group minus the shared node -+ // Publish 10 messages, each from the shared node -+ // Assert that the first group receives the messages -+ // Subscribe to the topic, second group minus the shared node -+ // Assert that the second group receives the messages (via gossip) -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ floodPublish: false, -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ const group1 = psubs.slice(0, GossipsubD + 1); -+ const group2 = psubs.slice(GossipsubD + 1); -+ group2.unshift(psubs[0]); -+ await denseConnect(group1); -+ await denseConnect(group2); -+ group1.slice(1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 3))); -+ const sendRecv = []; -+ for (let i = 0; i < 10; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = 0; -+ const results = Promise.all(group1.slice(1).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ await delay(100); -+ psubs.slice(GossipsubD + 1).forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ const received = Array.from({ length: psubs.length - (GossipsubD + 1) }, () => []); -+ const results = Promise.all(group2.slice(1).map(async (ps, ix) => new Promise((resolve, reject) => { -+ const t = setTimeout(() => { reject(new Error('Timed out')); }, 10000); -+ ps.pubsub.addEventListener('message', (e) => { -+ if (e.detail.topic !== topic) { -+ return; -+ } -+ received[ix].push(e.detail); -+ if (received[ix].length >= 10) { -+ clearTimeout(t); -+ resolve(); -+ } -+ }); -+ }))); -+ await results; -+ }); -+ it('test gossipsub prune', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes -+ // Densely connect nodes -+ // Unsubscribe to the topic, first 5 nodes -+ // Publish 100 messages, each from a random node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await denseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ // disconnect some peers from the mesh to get some PRUNEs -+ psubs.slice(0, 5).forEach((ps) => { ps.pubsub.unsubscribe(topic); }); -+ // wait a bit to take effect -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs -+ .slice(5) -+ .filter((psub, j) => j + 5 !== owner) -+ .map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub graft', async function () { -+ // Create 20 gossipsub nodes -+ // Sparsely connect nodes -+ // Subscribe to the topic, all nodes, waiting for each subscription to propagate first -+ // Publish 100 messages, each from a random node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ await sparseConnect(psubs); -+ for (const ps of psubs) { -+ ps.pubsub.subscribe(topic); -+ // wait for announce to propagate -+ await delay(100); -+ } -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub remove peer', async function () { -+ // Create 20 gossipsub nodes -+ // Subscribe to the topic, all nodes -+ // Densely connect nodes -+ // Stop 5 nodes -+ // Publish 100 messages, each from a random still-started node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ await denseConnect(psubs); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ // disconnect some peers to exercise _removePeer paths -+ afterEach(async () => { -+ await stop(...psubs -+ .slice(0, 5) -+ .reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ }); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * (psubs.length - 5)); -+ const results = Promise.all(psubs -+ .slice(5) -+ .filter((psub, j) => j !== owner) -+ .map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs.slice(5)[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub graft prune retry', async function () { -+ // Create 10 gossipsub nodes -+ // Densely connect nodes -+ // Subscribe to 35 topics, all nodes -+ // Publish a message from each topic, each from a random node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 10, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ await denseConnect(psubs); -+ for (let i = 0; i < 35; i++) { -+ psubs.forEach((ps) => { ps.pubsub.subscribe(`${topic}${i}`); }); -+ } -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 9))); -+ for (let i = 0; i < 35; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(`${topic}${i}`, msg, owner, i))); -+ await psubs[owner].pubsub.publish(`${topic}${i}`, msg); -+ await delay(20); -+ await results; -+ } -+ }); -+ it.skip('test gossipsub control piggyback', async function () { -+ // Create 10 gossipsub nodes -+ // Densely connect nodes -+ // Subscribe to a 'flood' topic, all nodes -+ // Publish 10k messages on the flood topic, each from a random node, in the background -+ // Subscribe to 5 topics, all nodes -+ // Wait for the flood to stop -+ // Publish a message to each topic, each from a random node -+ // Assert that subscribed nodes receive each message -+ // Publish a message from each topic, each from a random node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 10, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ await denseConnect(psubs); -+ const floodTopic = 'flood'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(floodTopic); }); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 1))); -+ // create a background flood of messages that overloads the queues -+ const floodOwner = Math.floor(Math.random() * psubs.length); -+ const floodMsg = uint8ArrayFromString('background flooooood'); -+ const backgroundFlood = Promise.resolve().then(async () => { -+ for (let i = 0; i < 10000; i++) { -+ await psubs[floodOwner].pubsub.publish(floodTopic, floodMsg); -+ } -+ }); -+ await delay(20); -+ // and subscribe to a bunch of topics in the meantime -- this should -+ // result in some dropped control messages, with subsequent piggybacking -+ // in the background flood -+ for (let i = 0; i < 5; i++) { -+ psubs.forEach((ps) => { ps.pubsub.subscribe(`${topic}${i}`); }); -+ } -+ // wait for the flood to stop -+ await backgroundFlood; -+ // and test that we have functional overlays -+ const sendRecv = []; -+ for (let i = 0; i < 5; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(`${topic}${i}`, msg, owner, i))); -+ await psubs[owner].pubsub.publish(`${topic}${i}`, msg); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test mixed gossipsub', async function () { -+ // Create 20 gossipsub nodes -+ // Create 10 floodsub nodes -+ // Subscribe to the topic, all nodes -+ // Sparsely connect nodes -+ // Publish 100 messages, each from a random node -+ // Assert that the subscribed nodes receive every message -+ const gsubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ }, -+ fastMsgIdFn -+ } -+ }); -+ const fsubs = await createComponentsArray({ -+ number: 10, -+ pubsub: FloodSub -+ }); -+ psubs = gsubs.concat(fsubs); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await sparseConnect(psubs); -+ // wait for heartbeats to build mesh -+ await Promise.all(gsubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ const sendRecv = []; -+ for (let i = 0; i < 100; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = Math.floor(Math.random() * psubs.length); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub multihops', async function () { -+ // Create 6 gossipsub nodes -+ // Connect nodes in a line (eg: 0 -> 1 -> 2 -> 3 ...) -+ // Subscribe to the topic, all nodes -+ // Publish a message from node 0 -+ // Assert that the last node receives the message -+ const numPeers = 6; -+ psubs = await createComponentsArray({ -+ number: numPeers, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20, -+ behaviourPenaltyWeight: 0 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ for (let i = 0; i < numPeers - 1; i++) { -+ await connectPubsubNodes(psubs[i], psubs[i + 1]); -+ } -+ const peerIdStrsByIdx = []; -+ for (let i = 0; i < numPeers; i++) { -+ if (i === 0) { -+ // first -+ peerIdStrsByIdx[i] = [psubs[i + 1].components.peerId.toString()]; -+ } -+ else if (i > 0 && i < numPeers - 1) { -+ // middle -+ peerIdStrsByIdx[i] = [psubs[i + 1].components.peerId.toString(), psubs[i - 1].components.peerId.toString()]; -+ } -+ else if (i === numPeers - 1) { -+ // last -+ peerIdStrsByIdx[i] = [psubs[i - 1].components.peerId.toString()]; -+ } -+ } -+ const subscriptionPromises = psubs.map(async (psub, i) => checkReceivedSubscriptions(psub, peerIdStrsByIdx[i], topic)); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ await Promise.all(subscriptionPromises); -+ const msg = uint8ArrayFromString(`${0} its not a flooooood ${0}`); -+ const owner = 0; -+ const results = checkReceivedMessage(topic, msg, owner, 0)(psubs[5], 5); -+ await psubs[owner].pubsub.publish(topic, msg); -+ await results; -+ }); -+ it('test gossipsub tree topology', async function () { -+ // Create 10 gossipsub nodes -+ // Connect nodes in a tree, diagram below -+ // Subscribe to the topic, all nodes -+ // Assert that the nodes are peered appropriately -+ // Publish two messages, one from either end of the tree -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 10, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ } -+ } -+ }); -+ const topic = 'foobar'; -+ /* -+ [0] -> [1] -> [2] -> [3] -+ | L->[4] -+ v -+ [5] -> [6] -> [7] -+ | -+ v -+ [8] -> [9] -+ */ -+ const treeTopology = [ -+ [1, 5], // 0 -+ [2, 4], // 1 -+ [3], // 2 -+ [], // 3 leaf -+ [], // 4 leaf -+ [6, 8], // 5 -+ [7], // 6 -+ [], // 7 leaf -+ [9], // 8 -+ [] // 9 leaf -+ ]; -+ for (let from = 0; from < treeTopology.length; from++) { -+ for (const to of treeTopology[from]) { -+ await connectPubsubNodes(psubs[from], psubs[to]); -+ } -+ } -+ const getPeerIdStrs = (idx) => { -+ const outbounds = treeTopology[idx]; -+ const inbounds = []; -+ for (let i = 0; i < treeTopology.length; i++) { -+ if (treeTopology[i].includes(idx)) -+ inbounds.push(i); -+ } -+ return Array.from(new Set([...inbounds, ...outbounds])).map((i) => psubs[i].components.peerId.toString()); -+ }; -+ const subscriptionPromises = psubs.map(async (psub, i) => checkReceivedSubscriptions(psub, getPeerIdStrs(i), topic)); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait for heartbeats to build mesh -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ await Promise.all(subscriptionPromises); -+ expect(psubs[0].pubsub.getPeers().map((s) => s.toString())).to.have.members([ -+ psubs[1].components.peerId.toString(), -+ psubs[5].components.peerId.toString() -+ ]); -+ expect(psubs[1].pubsub.getPeers().map((s) => s.toString())).to.have.members([ -+ psubs[0].components.peerId.toString(), -+ psubs[2].components.peerId.toString(), -+ psubs[4].components.peerId.toString() -+ ]); -+ expect(psubs[2].pubsub.getPeers().map((s) => s.toString())).to.have.members([ -+ psubs[1].components.peerId.toString(), -+ psubs[3].components.peerId.toString() -+ ]); -+ const sendRecv = []; -+ for (const owner of [9, 3]) { -+ const msg = uint8ArrayFromString(`${owner} its not a flooooood ${owner}`); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, owner))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub star topology with signed peer records', async function () { -+ // Create 20 gossipsub nodes with lower degrees -+ // Connect nodes to a center node, with the center having very low degree -+ // Subscribe to the topic, all nodes -+ // Assert that all nodes have > 1 connection -+ // Publish one message per node -+ // Assert that the subscribed nodes receive every message -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreThresholds: { -+ acceptPXThreshold: 0 -+ }, -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ }, -+ doPX: true, -+ D: 4, -+ Dhi: 5, -+ Dlo: 3, -+ Dscore: 3, -+ prunePeers: 5 -+ } -+ }); -+ (psubs[0].pubsub).opts.D = 0; -+ (psubs[0].pubsub).opts.Dhi = 0; -+ (psubs[0].pubsub).opts.Dlo = 0; -+ (psubs[0].pubsub).opts.Dscore = 0; -+ // build the star -+ await Promise.all(psubs.slice(1).map(async (ps) => connectPubsubNodes(psubs[0], ps))); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ // build the mesh -+ const topic = 'foobar'; -+ const peerIdStrs = psubs.map((psub) => psub.components.peerId.toString()); -+ const subscriptionPromise = checkReceivedSubscriptions(psubs[0], peerIdStrs, topic); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ // wait a bit for the mesh to build -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 15, 25000))); -+ await subscriptionPromise; -+ // check that all peers have > 1 connection -+ psubs.forEach((ps) => { -+ expect(ps.components.connectionManager.getConnections().length).to.be.gt(1); -+ }); -+ // send a message from each peer and assert it was propagated -+ const sendRecv = []; -+ for (let i = 0; i < psubs.length; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = i; -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub direct peers', async function () { -+ // Create 3 gossipsub nodes -+ // 2 and 3 with direct peer connections with each other -+ // Connect nodes: 2 <- 1 -> 3 -+ // Assert that the nodes are connected -+ // Subscribe to the topic, all nodes -+ // Publish a message from each node -+ // Assert that all nodes receive the messages -+ // Disconnect peers -+ // Assert peers reconnect -+ // Publish a message from each node -+ // Assert that all nodes receive the messages -+ psubs = await Promise.all([ -+ createComponents({ -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ }, -+ fastMsgIdFn, -+ directConnectTicks: 2 -+ } -+ }), -+ createComponents({ -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ }, -+ fastMsgIdFn, -+ directConnectTicks: 2 -+ } -+ }), -+ createComponents({ -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 20 -+ }, -+ fastMsgIdFn -+ } -+ }) -+ ]); -+ (psubs[1].pubsub).direct.add(psubs[2].components.peerId.toString()); -+ await connectPubsubNodes(psubs[1], psubs[2]); -+ (psubs[2].pubsub).direct.add(psubs[1].components.peerId.toString()); -+ await connectPubsubNodes(psubs[2], psubs[1]); -+ // each peer connects to 2 other peers -+ await connectPubsubNodes(psubs[0], psubs[1]); -+ await connectPubsubNodes(psubs[0], psubs[2]); -+ const topic = 'foobar'; -+ const peerIdStrs = psubs.map((libp2p) => libp2p.components.peerId.toString()); -+ let subscriptionPromises = psubs.map(async (libp2ps) => checkReceivedSubscriptions(libp2ps, peerIdStrs, topic)); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 1))); -+ await Promise.all(subscriptionPromises); -+ let sendRecv = []; -+ for (let i = 0; i < 3; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = i; -+ const results = Promise.all(psubs.filter((_, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ const connectPromises = [1, 2].map(async (i) => awaitEvents(psubs[i].components.events, 'peer:connect', 1)); -+ // disconnect the direct peers to test reconnection -+ // need more time to disconnect/connect/send subscriptions again -+ subscriptionPromises = [ -+ checkReceivedSubscription(psubs[1], peerIdStrs[2], topic, 2, 10000), -+ checkReceivedSubscription(psubs[2], peerIdStrs[1], topic, 1, 10000) -+ ]; -+ await psubs[1].components.connectionManager.closeConnections(psubs[2].components.peerId); -+ // TODO remove when https://github.com/libp2p/js-libp2p-interfaces/pull/268 is merged -+ await psubs[2].components.connectionManager.closeConnections(psubs[1].components.peerId); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 5))); -+ await Promise.all(connectPromises); -+ await Promise.all(subscriptionPromises); -+ expect(psubs[1].components.connectionManager.getConnections(psubs[2].components.peerId)).to.not.be.empty(); -+ sendRecv = []; -+ for (let i = 0; i < 3; i++) { -+ const msg = uint8ArrayFromString(`2nd - ${i} its not a flooooood ${i}`); -+ const owner = i; -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub flood publish', async function () { -+ // Create 30 gossipsub nodes -+ // Connect in star topology -+ // Subscribe to the topic, all nodes -+ // Publish 20 messages, each from the center node -+ // Assert that the other nodes receive the message -+ const numPeers = 30; -+ psubs = await createComponentsArray({ -+ number: numPeers, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 30 -+ } -+ } -+ }); -+ await Promise.all(psubs.slice(1).map(async (ps) => { -+ await connectPubsubNodes(psubs[0], ps); -+ })); -+ const owner = 0; -+ const psub0 = psubs[owner]; -+ const peerIdStrs = psubs.filter((_, j) => j !== owner).map((psub) => psub.components.peerId.toString()); -+ // build the (partial, unstable) mesh -+ const topic = 'foobar'; -+ const subscriptionPromise = checkReceivedSubscriptions(psub0, peerIdStrs, topic); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 1))); -+ await subscriptionPromise; -+ // send messages from the star and assert they were received -+ const sendRecv = []; -+ for (let i = 0; i < 20; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const results = Promise.all(psubs.filter((psub, j) => j !== owner).map(checkReceivedMessage(topic, msg, owner, i))); -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ sendRecv.push(results); -+ } -+ await Promise.all(sendRecv); -+ }); -+ it('test gossipsub negative score', async function () { -+ // Create 20 gossipsub nodes, with scoring params to quickly lower node 0's score -+ // Connect densely -+ // Subscribe to the topic, all nodes -+ // Publish 20 messages, each from a different node, collecting all received messages -+ // Assert that nodes other than 0 should not receive any messages from node 0 -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 30, -+ appSpecificScore: (p) => (p === psubs[0].components.peerId.toString() ? -1000 : 0), -+ decayInterval: 1000, -+ decayToZero: 0.01 -+ }, -+ scoreThresholds: { -+ gossipThreshold: -10, -+ publishThreshold: -100, -+ graylistThreshold: -1000 -+ }, -+ fastMsgIdFn -+ } -+ }); -+ await denseConnect(psubs); -+ const topic = 'foobar'; -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 3))); -+ psubs.slice(1).forEach((ps) => { -+ ps.pubsub.addEventListener('message', (evt) => { -+ if (evt.detail.type !== 'signed') { -+ throw new Error('unexpected message type'); -+ } -+ expect(evt.detail.from.equals(psubs[0].components.peerId)).to.be.false(); -+ }); -+ }); -+ const sendRecv = []; -+ for (let i = 0; i < 20; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = i; -+ sendRecv.push(psubs[owner].pubsub.publish(topic, msg)); -+ } -+ await Promise.all(sendRecv); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ }); -+ it('test gossipsub score validator ex', async function () { -+ // Create 3 gossipsub nodes -+ // Connect fully -+ // Register a topic validator on node 0: ignore 1, reject 2 -+ // Subscribe to the topic, node 0 -+ // Publish 2 messages, from 1 and 2 -+ // Assert that 0 received neither message -+ // Assert that 1's score is 0, 2's score is negative -+ const topic = 'foobar'; -+ psubs = await createComponentsArray({ -+ number: 3, -+ init: { -+ scoreParams: { -+ topics: { -+ [topic]: { -+ topicWeight: 1, -+ timeInMeshQuantum: 1000, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.9999, -+ timeInMeshWeight: 0, -+ timeInMeshCap: 0, -+ firstMessageDeliveriesWeight: 0, -+ firstMessageDeliveriesDecay: 0, -+ firstMessageDeliveriesCap: 0, -+ meshMessageDeliveriesWeight: 0, -+ meshMessageDeliveriesDecay: 0, -+ meshMessageDeliveriesCap: 0, -+ meshMessageDeliveriesThreshold: 0, -+ meshMessageDeliveriesWindow: 0, -+ meshMessageDeliveriesActivation: 0, -+ meshFailurePenaltyWeight: 0, -+ meshFailurePenaltyDecay: 0 -+ } -+ } -+ } -+ } -+ }); -+ await connectPubsubNodes(psubs[0], psubs[1]); -+ await connectPubsubNodes(psubs[1], psubs[2]); -+ await connectPubsubNodes(psubs[0], psubs[2]); -+ (psubs[0].pubsub).topicValidators.set(topic, async (propagationSource, m) => { -+ if (propagationSource.equals(psubs[1].components.peerId)) -+ return TopicValidatorResult.Ignore; -+ if (propagationSource.equals(psubs[2].components.peerId)) -+ return TopicValidatorResult.Reject; -+ throw Error('Unknown PeerId'); -+ }); -+ psubs[0].pubsub.subscribe(topic); -+ await delay(200); -+ psubs[0].pubsub.addEventListener('message', () => expect.fail('node 0 should not receive any messages')); -+ const msg = uint8ArrayFromString('its not a flooooood'); -+ await psubs[1].pubsub.publish(topic, msg); -+ const msg2 = uint8ArrayFromString('2nd - its not a flooooood'); -+ await psubs[2].pubsub.publish(topic, msg2); -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 2))); -+ expect((psubs[0].pubsub).score.score(psubs[1].components.peerId.toString())).to.be.eql(0); -+ expect((psubs[0].pubsub).score.score(psubs[2].components.peerId.toString())).to.be.lt(0); -+ }); -+ it('test gossipsub piggyback control', async function () { -+ psubs = await createComponentsArray({ number: 2 }); -+ const otherId = psubs[1].components.peerId.toString(); -+ const psub = psubs[0].pubsub; -+ const topic1 = 'topic_1'; -+ const topic2 = 'topic_2'; -+ const topic3 = 'topic_3'; -+ psub.mesh.set(topic1, new Set([otherId])); -+ psub.mesh.set(topic2, new Set()); -+ const rpc = { -+ subscriptions: [], -+ messages: [] -+ }; -+ const toGraft = (topicID) => ({ topicID }); -+ const toPrune = (topicID) => ({ topicID, peers: [] }); -+ psub.piggybackControl(otherId, rpc, { -+ graft: [toGraft(topic1), toGraft(topic2), toGraft(topic3)], -+ prune: [toPrune(topic1), toPrune(topic2), toPrune(topic3)], -+ ihave: [], -+ iwant: [] -+ }); -+ const expectedRpc = { -+ subscriptions: [], -+ messages: [], -+ control: { -+ graft: [toGraft(topic1)], -+ prune: [toPrune(topic2), toPrune(topic3)], -+ ihave: [], -+ iwant: [] -+ } -+ }; -+ expect(rpc).deep.equals(expectedRpc); -+ await psub.stop(); -+ }); -+ it('test gossipsub opportunistic grafting', async function () { -+ // Create 20 nodes -+ // 6 real gossip nodes, 14 'sybil' nodes, unresponsive nodes -+ // Connect some of the real nodes -+ // Connect every sybil to every real node -+ // Subscribe to the topic, all real nodes -+ // Publish 300 messages from the real nodes -+ // Wait for opgraft -+ // Assert the real peer meshes have at least 2 honest peers -+ const topic = 'test'; -+ psubs = await createComponentsArray({ -+ number: 20, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 50, -+ decayToZero: 0.01, -+ topics: { -+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -+ [topic]: { -+ topicWeight: 1, -+ timeInMeshWeight: 0.00002777, -+ timeInMeshQuantum: 1000, -+ timeInMeshCap: 3600, -+ firstMessageDeliveriesWeight: 100, -+ firstMessageDeliveriesDecay: 0.99997, -+ firstMessageDeliveriesCap: 1000, -+ meshMessageDeliveriesWeight: 0, -+ invalidMessageDeliveriesDecay: 0.99997 -+ } -+ } -+ }, -+ scoreThresholds: { -+ gossipThreshold: -10, -+ publishThreshold: -100, -+ graylistThreshold: -10000, -+ opportunisticGraftThreshold: 1 -+ } -+ } -+ }); -+ const promises = psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 1)); -+ const real = psubs.slice(0, 6); -+ const sybils = psubs.slice(6); -+ const connectPromises = real.map(async (psub) => awaitEvents(psub.components.events, 'peer:connect', 3)); -+ await connectSome(real, 5); -+ await Promise.all(connectPromises); -+ sybils.forEach((s) => { -+ (s.pubsub).handleReceivedRpc = async function () { -+ // -+ }; -+ }); -+ for (let i = 0; i < sybils.length; i++) { -+ for (let j = 0; j < real.length; j++) { -+ await connectPubsubNodes(sybils[i], real[j]); -+ } -+ } -+ await Promise.all(promises); -+ const realPeerIdStrs = real.map((psub) => psub.components.peerId.toString()); -+ const subscriptionPromises = real.map(async (psub) => { -+ const waitingPeerIdStrs = Array.from(psub.pubsub.getPeers().values()) -+ .map((p) => p.toString()) -+ .filter((peerId) => realPeerIdStrs.includes(peerId.toString())); -+ return checkReceivedSubscriptions(psub, waitingPeerIdStrs, topic); -+ }); -+ psubs.forEach((ps) => { ps.pubsub.subscribe(topic); }); -+ await Promise.all(subscriptionPromises); -+ for (let i = 0; i < 300; i++) { -+ const msg = uint8ArrayFromString(`${i} its not a flooooood ${i}`); -+ const owner = i % real.length; -+ await psubs[owner].pubsub.publish(topic, msg); -+ } -+ // now wait for opgraft cycles -+ await Promise.all(psubs.map(async (ps) => awaitEvents(ps.pubsub, 'gossipsub:heartbeat', 7))); -+ // check the honest node meshes, they should have at least 3 honest peers each -+ const realPeerIds = real.map((r) => r.components.peerId.toString()); -+ await pRetry(async () => { -+ for (const r of real) { -+ const meshPeers = (r.pubsub).mesh.get(topic); -+ if (meshPeers == null) { -+ throw new Error('meshPeers was null'); -+ } -+ let count = 0; -+ realPeerIds.forEach((p) => { -+ if (meshPeers.has(p)) { -+ count++; -+ } -+ }); -+ if (count < 2) { -+ await delay(100); -+ throw new Error('Count was less than 3'); -+ } -+ } -+ }, { retries: 10 }); -+ }); -+}); -+//# sourceMappingURL=go-gossipsub.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js.map -new file mode 100644 -index 0000000..1cba745 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/e2e/go-gossipsub.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"go-gossipsub.spec.js","sourceRoot":"","sources":["../../../test/e2e/go-gossipsub.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts -new file mode 100644 -index 0000000..f880385 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=floodsub.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts.map -new file mode 100644 -index 0000000..7060884 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"floodsub.spec.d.ts","sourceRoot":"","sources":["../../test/floodsub.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js -new file mode 100644 -index 0000000..8bf55e2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js -@@ -0,0 +1,226 @@ -+import { FloodSub } from '@libp2p/floodsub'; -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import delay from 'delay'; -+import { pEvent } from 'p-event'; -+import pRetry from 'p-retry'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { connectPubsubNodes, createComponents } from './utils/create-pubsub.js'; -+describe('gossipsub fallbacks to floodsub', () => { -+ describe('basics', () => { -+ let nodeGs; -+ let nodeFs; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodeGs = await createComponents({ -+ init: { -+ fallbackToFloodsub: true -+ } -+ }); -+ nodeFs = await createComponents({ -+ pubsub: FloodSub -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...[nodeGs, nodeFs].reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Dial event happened from nodeGs to nodeFs', async () => { -+ await connectPubsubNodes(nodeGs, nodeFs); -+ await pRetry(() => { -+ // eslint-disable-next-line max-nested-callbacks -+ expect(nodeGs.pubsub.getPeers().map((s) => s.toString())).to.include(nodeFs.components.peerId.toString()); -+ // eslint-disable-next-line max-nested-callbacks -+ expect(nodeFs.pubsub.getPeers().map((s) => s.toString())).to.include(nodeGs.components.peerId.toString()); -+ }); -+ }); -+ }); -+ describe.skip('should not be added if fallback disabled', () => { -+ let nodeGs; -+ let nodeFs; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodeGs = await createComponents({ -+ init: { -+ fallbackToFloodsub: false -+ } -+ }); -+ nodeFs = await createComponents({ -+ pubsub: FloodSub -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...[nodeGs, nodeFs].reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Dial event happened from nodeGs to nodeFs, but nodeGs does not support floodsub', async () => { -+ try { -+ await connectPubsubNodes(nodeGs, nodeFs); -+ expect.fail('Dial should not have succeed'); -+ } -+ catch (err) { -+ expect(err).to.have.property('name', 'UnsupportedProtocolError'); -+ } -+ }); -+ }); -+ describe('subscription functionality', () => { -+ let nodeGs; -+ let nodeFs; -+ before(async () => { -+ mockNetwork.reset(); -+ nodeGs = await createComponents({ -+ init: { -+ fallbackToFloodsub: true -+ } -+ }); -+ nodeFs = await createComponents({ -+ pubsub: FloodSub -+ }); -+ await connectPubsubNodes(nodeGs, nodeFs); -+ }); -+ afterEach(async () => { -+ await stop(...[nodeGs, nodeFs].reduce((acc, curr) => { -+ acc.push(curr.pubsub, ...Object.entries(curr.components)); -+ return acc; -+ }, [])); -+ mockNetwork.reset(); -+ }); -+ it('Subscribe to a topic', async function () { -+ this.timeout(10000); -+ const topic = 'Z'; -+ nodeGs.pubsub.subscribe(topic); -+ nodeFs.pubsub.subscribe(topic); -+ // await subscription change -+ const [evt] = await Promise.all([ -+ pEvent(nodeGs.pubsub, 'subscription-change'), -+ pEvent(nodeFs.pubsub, 'subscription-change') -+ ]); -+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail; -+ expect(nodeGs.pubsub.getTopics()).to.include(topic); -+ expect(nodeFs.pubsub.getTopics()).to.include(topic); -+ expect(nodeGs.pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodeFs.pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodeGs.pubsub.getSubscribers(topic).map((p) => p.toString())).to.include(nodeFs.components.peerId.toString()); -+ expect(nodeFs.pubsub.getSubscribers(topic).map((p) => p.toString())).to.include(nodeGs.components.peerId.toString()); -+ expect(nodeGs.pubsub.getPeers().map((p) => p.toString())).to.include(changedPeerId.toString()); -+ expect(changedSubs).to.have.lengthOf(1); -+ expect(changedSubs[0].topic).to.equal(topic); -+ expect(changedSubs[0].subscribe).to.equal(true); -+ }); -+ }); -+ describe('publish functionality', () => { -+ let nodeGs; -+ let nodeFs; -+ const topic = 'Z'; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodeGs = await createComponents({ -+ init: { -+ fallbackToFloodsub: true -+ } -+ }); -+ nodeFs = await createComponents({ -+ pubsub: FloodSub -+ }); -+ await connectPubsubNodes(nodeGs, nodeFs); -+ nodeGs.pubsub.subscribe(topic); -+ nodeFs.pubsub.subscribe(topic); -+ // await subscription change -+ await Promise.all([pEvent(nodeGs.pubsub, 'subscription-change'), pEvent(nodeFs.pubsub, 'subscription-change')]); -+ }); -+ afterEach(async () => { -+ await stop(...[nodeGs, nodeFs].reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ const batchPublishOpts = [true, false]; -+ for (const batchPublish of batchPublishOpts) { -+ // eslint-disable-next-line no-loop-func -+ it(`Publish to a topic - nodeGs - batchPublish: ${batchPublish}`, async () => { -+ const promise = pEvent(nodeFs.pubsub, 'message'); -+ const data = uint8ArrayFromString('hey'); -+ await nodeGs.pubsub.publish(topic, data, { batchPublish }); -+ const evt = await promise; -+ if (evt.detail.type !== 'signed') { -+ throw new Error('unexpected message type'); -+ } -+ expect(evt.detail.data).to.equalBytes(data); -+ expect(evt.detail.from.toString()).to.be.eql(nodeGs.components.peerId.toString()); -+ }); -+ // eslint-disable-next-line no-loop-func -+ it(`Publish to a topic - nodeFs - batchPublish: ${batchPublish}`, async () => { -+ const promise = pEvent(nodeGs.pubsub, 'message'); -+ const data = uint8ArrayFromString('banana'); -+ await nodeFs.pubsub.publish(topic, data, { batchPublish }); -+ const evt = await promise; -+ if (evt.detail.type !== 'signed') { -+ throw new Error('unexpected message type'); -+ } -+ expect(evt.detail.data).to.equalBytes(data); -+ expect(evt.detail.from.toString()).to.be.eql(nodeFs.components.peerId.toString()); -+ }); -+ } -+ }); -+ describe('publish after unsubscribe', () => { -+ let nodeGs; -+ let nodeFs; -+ const topic = 'Z'; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodeGs = await createComponents({ -+ init: { -+ fallbackToFloodsub: true -+ } -+ }); -+ nodeFs = await createComponents({ -+ pubsub: FloodSub -+ }); -+ await connectPubsubNodes(nodeGs, nodeFs); -+ nodeGs.pubsub.subscribe(topic); -+ nodeFs.pubsub.subscribe(topic); -+ // await subscription change -+ await Promise.all([pEvent(nodeGs.pubsub, 'subscription-change'), pEvent(nodeFs.pubsub, 'subscription-change')]); -+ // allow subscriptions to propagate to the other peer -+ await delay(10); -+ }); -+ afterEach(async () => { -+ await stop(...[nodeGs, nodeFs].reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('Unsubscribe from a topic', async () => { -+ const promise = pEvent(nodeFs.pubsub, 'subscription-change'); -+ nodeGs.pubsub.unsubscribe(topic); -+ expect(nodeGs.pubsub.getTopics()).to.be.empty(); -+ const evt = await promise; -+ const { peerId: changedPeerId, subscriptions: changedSubs } = evt.detail; -+ expect(nodeFs.pubsub.getPeers()).to.have.lengthOf(1); -+ expect(nodeFs.pubsub.getSubscribers(topic)).to.be.empty(); -+ expect(nodeFs.pubsub.getPeers().map((p) => p.toString())).to.include(changedPeerId.toString()); -+ expect(changedSubs).to.have.lengthOf(1); -+ expect(changedSubs[0].topic).to.equal(topic); -+ expect(changedSubs[0].subscribe).to.equal(false); -+ }); -+ it('Publish to a topic after unsubscribe', async () => { -+ nodeGs.pubsub.unsubscribe(topic); -+ await pEvent(nodeFs.pubsub, 'subscription-change'); -+ const promise = new Promise((resolve, reject) => { -+ nodeGs.pubsub.addEventListener('message', reject, { -+ once: true -+ }); -+ setTimeout(() => { -+ nodeGs.pubsub.removeEventListener('message', reject); -+ resolve(); -+ }, 100); -+ }); -+ await nodeFs.pubsub.publish(topic, uint8ArrayFromString('banana')); -+ await nodeGs.pubsub.publish(topic, uint8ArrayFromString('banana')); -+ try { -+ await promise; -+ } -+ catch (e) { -+ expect.fail('message should not be received'); -+ } -+ }); -+ }); -+}); -+//# sourceMappingURL=floodsub.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js.map -new file mode 100644 -index 0000000..ba3c78f ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/floodsub.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"floodsub.spec.js","sourceRoot":"","sources":["../../test/floodsub.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts -new file mode 100644 -index 0000000..e16b30d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=gossip.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts.map -new file mode 100644 -index 0000000..bd3eae1 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"gossip.spec.d.ts","sourceRoot":"","sources":["../../test/gossip.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js -new file mode 100644 -index 0000000..ba911ff ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js -@@ -0,0 +1,223 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { defaultLogger } from '@libp2p/logger'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { expect } from 'aegir/chai'; -+import { pEvent } from 'p-event'; -+import sinon, {} from 'sinon'; -+import { stubInterface } from 'ts-sinon'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { GossipsubDhi } from '../src/constants.js'; -+import { GossipSub } from '../src/index.js'; -+import { connectAllPubSubNodes, createComponentsArray } from './utils/create-pubsub.js'; -+describe('gossip', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: GossipsubDhi + 2, -+ connected: false, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: GossipsubDhi + 3 -+ }, -+ maxInboundDataLength: 4000000, -+ allowPublishToZeroTopicPeers: false -+ } -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('should send gossip to non-mesh peers in topic', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const topic = 'Z'; -+ const subscriptionPromises = nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change')); -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // every node connected to every other -+ await connectAllPubSubNodes(nodes); -+ // wait for subscriptions to be transmitted -+ await Promise.all(subscriptionPromises); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // set spy. NOTE: Forcing private property to be public -+ const nodeASpy = nodeA.pubsub; -+ sinon.spy(nodeASpy, 'pushGossip'); -+ await nodeA.pubsub.publish(topic, uint8ArrayFromString('hey')); -+ // gossip happens during the heartbeat -+ await pEvent(nodeA.pubsub, 'gossipsub:heartbeat'); -+ const mesh = (nodeA.pubsub).mesh.get(topic); -+ if (mesh == null) { -+ throw new Error('No mesh for topic'); -+ } -+ nodeASpy.pushGossip -+ .getCalls() -+ .map((call) => call.args[0]) -+ .forEach((peerId) => { -+ expect(mesh).to.not.include(peerId); -+ }); -+ // unset spy -+ nodeASpy.pushGossip.restore(); -+ }); -+ it('Should allow publishing to zero peers if flag is passed', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const topic = 'Z'; -+ const publishResult = await nodeA.pubsub.publish(topic, uint8ArrayFromString('hey'), { -+ allowPublishToZeroTopicPeers: true -+ }); -+ // gossip happens during the heartbeat -+ await pEvent(nodeA.pubsub, 'gossipsub:heartbeat'); -+ // should have sent message to peerB -+ expect(publishResult.recipients).to.deep.equal([]); -+ }); -+ it('should tag peers', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const nodeB = nodes[1]; -+ const topic = 'Z'; -+ const twoNodes = [nodeA, nodeB]; -+ const graftPromises = twoNodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:graft')); -+ // add subscriptions to each node -+ twoNodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // every node connected to every other -+ await connectAllPubSubNodes(twoNodes); -+ // await grafts -+ await Promise.all(graftPromises); -+ // await mesh rebalancing -+ await Promise.all(twoNodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ const peerInfoA = await nodeA.components.peerStore.get(nodeB.components.peerId).catch((e) => undefined); -+ const peerInfoB = await nodeB.components.peerStore.get(nodeA.components.peerId).catch((e) => undefined); -+ expect(peerInfoA?.tags.get(topic)?.value).to.equal(100); -+ expect(peerInfoB?.tags.get(topic)?.value).to.equal(100); -+ }); -+ it('should remove the tags upon pruning', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const nodeB = nodes[1]; -+ const topic = 'Z'; -+ const twoNodes = [nodeA, nodeB]; -+ const subscriptionPromises = nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change')); -+ // add subscriptions to each node -+ twoNodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // every node connected to every other -+ await connectAllPubSubNodes(nodes); -+ // await for subscriptions to be transmitted -+ await Promise.all(subscriptionPromises); -+ // await mesh rebalancing -+ await Promise.all(twoNodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ twoNodes.forEach((n) => { n.pubsub.unsubscribe(topic); }); -+ // await for unsubscriptions to be transmitted -+ // await mesh rebalancing -+ await Promise.all(twoNodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ const peerInfoA = await nodeA.components.peerStore.get(nodeB.components.peerId).catch((e) => undefined); -+ const peerInfoB = await nodeB.components.peerStore.get(nodeA.components.peerId).catch((e) => undefined); -+ expect(peerInfoA?.tags.get(topic)).to.be.undefined(); -+ expect(peerInfoB?.tags.get(topic)).to.be.undefined(); -+ }); -+ it('should reject incoming messages bigger than maxInboundDataLength limit', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const nodeB = nodes[1]; -+ const twoNodes = [nodeA, nodeB]; -+ const topic = 'Z'; -+ const subscriptionPromises = twoNodes.map(async (n) => pEvent(n.pubsub, 'subscription-change')); -+ // add subscriptions to each node -+ twoNodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // every node connected to every other -+ await connectAllPubSubNodes(twoNodes); -+ // wait for subscriptions to be transmitted -+ await Promise.all(subscriptionPromises); -+ // await mesh rebalancing -+ await Promise.all(twoNodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // set spy. NOTE: Forcing private property to be public -+ const nodeBSpy = nodeB.pubsub; -+ sinon.spy(nodeBSpy, 'handlePeerReadStreamError'); -+ // This should lead to handlePeerReadStreamError at nodeB -+ await nodeA.pubsub.publish(topic, new Uint8Array(5000000)); -+ await pEvent(nodeA.pubsub, 'gossipsub:heartbeat'); -+ const expectedError = nodeBSpy.handlePeerReadStreamError.getCalls()[0]?.args[0]; -+ expect(expectedError).to.have.property('name', 'InvalidDataLengthError'); -+ // unset spy -+ nodeBSpy.handlePeerReadStreamError.restore(); -+ }); -+ it('should send piggyback control into other sent messages', async function () { -+ this.timeout(10e4); -+ const nodeA = nodes[0]; -+ const topic = 'Z'; -+ const promises = nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change')); -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // every node connected to every other -+ await connectAllPubSubNodes(nodes); -+ // wait for subscriptions to be transmitted -+ await Promise.all(promises); -+ // await nodeA mesh rebalancing -+ await pEvent(nodeA.pubsub, 'gossipsub:heartbeat'); -+ const mesh = (nodeA.pubsub).mesh.get(topic); -+ if (mesh == null) { -+ throw new Error('No mesh for topic'); -+ } -+ if (mesh.size === 0) { -+ throw new Error('Topic mesh was empty'); -+ } -+ const peerB = Array.from(mesh)[0]; -+ if (peerB == null) { -+ throw new Error('Could not get peer from mesh'); -+ } -+ // should have peerB as a subscriber to the topic -+ expect(nodeA.pubsub.getSubscribers(topic).map((p) => p.toString())).to.include(peerB, "did not know about peerB's subscription to topic"); -+ // should be able to send them messages -+ expect((nodeA.pubsub).streamsOutbound.has(peerB)).to.be.true('nodeA did not have connection open to peerB'); -+ // set spy. NOTE: Forcing private property to be public -+ const nodeASpy = sinon.spy(nodeA.pubsub, 'piggybackControl'); -+ // manually add control message to be sent to peerB -+ const graft = { ihave: [], iwant: [], graft: [{ topicID: topic }], prune: [] }; -+ (nodeA.pubsub).control.set(peerB, graft); -+ (nodeA.pubsub).gossip.set(peerB, []); -+ const publishResult = await nodeA.pubsub.publish(topic, uint8ArrayFromString('hey')); -+ // should have sent message to peerB -+ expect(publishResult.recipients.map((p) => p.toString())).to.include(peerB, 'did not send pubsub message to peerB'); -+ // wait until spy is called -+ const startTime = Date.now(); -+ while (Date.now() - startTime < 5000) { -+ if (nodeASpy.callCount > 0) -+ break; -+ } -+ expect(nodeASpy.callCount).to.be.equal(1); -+ // expect control message to be sent alongside published message -+ const call = nodeASpy.getCalls()[0]; -+ expect(call).to.have.deep.nested.property('args[1].control.graft', graft.graft); -+ // unset spy -+ nodeASpy.restore(); -+ }); -+ it('should allow configuring stream limits', async () => { -+ const maxInboundStreams = 7; -+ const maxOutboundStreams = 5; -+ const registrar = stubInterface(); -+ const privateKey = await generateKeyPair('Ed25519'); -+ const peerId = peerIdFromPrivateKey(privateKey); -+ const pubsub = new GossipSub({ -+ privateKey, -+ peerId, -+ registrar, -+ peerStore: stubInterface(), -+ connectionManager: stubInterface(), -+ logger: defaultLogger() -+ }, { -+ maxInboundStreams, -+ maxOutboundStreams -+ }); -+ await pubsub.start(); -+ expect(registrar.register.called).to.be.true(); -+ expect(registrar.handle.getCall(0)).to.have.nested.property('args[2].maxInboundStreams', maxInboundStreams); -+ expect(registrar.handle.getCall(0)).to.have.nested.property('args[2].maxOutboundStreams', maxOutboundStreams); -+ await pubsub.stop(); -+ }); -+}); -+//# sourceMappingURL=gossip.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js.map -new file mode 100644 -index 0000000..f95cd15 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/gossip.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"gossip.spec.js","sourceRoot":"","sources":["../../test/gossip.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts -new file mode 100644 -index 0000000..023ae00 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=heartbeat.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts.map -new file mode 100644 -index 0000000..c13564c ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"heartbeat.spec.d.ts","sourceRoot":"","sources":["../../test/heartbeat.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js -new file mode 100644 -index 0000000..bcbeada ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js -@@ -0,0 +1,31 @@ -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import { pEvent } from 'p-event'; -+import { GossipsubHeartbeatInterval } from '../src/constants.js'; -+import { createComponents } from './utils/create-pubsub.js'; -+describe('heartbeat', () => { -+ let node; -+ before(async () => { -+ mockNetwork.reset(); -+ node = await createComponents({ -+ init: { -+ emitSelf: true -+ } -+ }); -+ }); -+ after(async () => { -+ await stop(node.pubsub, ...Object.entries(node.components)); -+ mockNetwork.reset(); -+ }); -+ it('should occur with regularity defined by a constant', async function () { -+ this.timeout(GossipsubHeartbeatInterval * 5); -+ await pEvent(node.pubsub, 'gossipsub:heartbeat'); -+ const t1 = Date.now(); -+ await pEvent(node.pubsub, 'gossipsub:heartbeat'); -+ const t2 = Date.now(); -+ const safeFactor = 1.5; -+ expect(t2 - t1).to.be.lt(GossipsubHeartbeatInterval * safeFactor); -+ }); -+}); -+//# sourceMappingURL=heartbeat.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js.map -new file mode 100644 -index 0000000..ed99f50 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/heartbeat.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"heartbeat.spec.js","sourceRoot":"","sources":["../../test/heartbeat.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAA;AAExF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,IAA4B,CAAA;IAEhC,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,WAAW,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAC5B,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAC3D,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK;QAC5D,IAAI,CAAC,OAAO,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAErB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAErB,MAAM,UAAU,GAAG,GAAG,CAAA;QACtB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,0BAA0B,GAAG,UAAU,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts -new file mode 100644 -index 0000000..739752a ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=mesh.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts.map -new file mode 100644 -index 0000000..0ca3f98 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"mesh.spec.d.ts","sourceRoot":"","sources":["../../test/mesh.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js -new file mode 100644 -index 0000000..924b948 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js -@@ -0,0 +1,61 @@ -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import delay from 'delay'; -+import { pEvent } from 'p-event'; -+import { GossipsubDhi } from '../src/constants.js'; -+import { connectAllPubSubNodes, createComponentsArray } from './utils/create-pubsub.js'; -+describe('mesh overlay', () => { -+ let nodes; -+ // Create pubsub nodes -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: GossipsubDhi + 2, -+ connected: false, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: GossipsubDhi + 3 -+ } -+ } -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('should add mesh peers below threshold', async function () { -+ this.timeout(10e3); -+ // test against node0 -+ const node0 = nodes[0]; -+ const topic = 'Z'; -+ // add subscriptions to each node -+ nodes.forEach((node) => { node.pubsub.subscribe(topic); }); -+ // connect N (< GossipsubD) nodes to node0 -+ const N = 4; -+ await connectAllPubSubNodes(nodes.slice(0, N + 1)); -+ await delay(50); -+ // await mesh rebalancing -+ await new Promise((resolve) => { -+ (node0.pubsub).addEventListener('gossipsub:heartbeat', resolve, { -+ once: true -+ }); -+ }); -+ const mesh = (node0.pubsub).mesh.get(topic); -+ expect(mesh).to.have.property('size', N); -+ }); -+ it('should remove mesh peers once above threshold', async function () { -+ this.timeout(10e4); -+ // test against node0 -+ const node0 = nodes[0]; -+ const topic = 'Z'; -+ // add subscriptions to each node -+ nodes.forEach((node) => { node.pubsub.subscribe(topic); }); -+ await connectAllPubSubNodes(nodes); -+ // await mesh rebalancing -+ await pEvent(node0.pubsub, 'gossipsub:heartbeat'); -+ const mesh = (node0.pubsub).mesh.get(topic); -+ expect(mesh).to.have.property('size').that.is.lte(GossipsubDhi); -+ }); -+}); -+//# sourceMappingURL=mesh.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js.map -new file mode 100644 -index 0000000..90ba2a0 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/mesh.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"mesh.spec.js","sourceRoot":"","sources":["../../test/mesh.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts -new file mode 100644 -index 0000000..291d274 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=message-cache.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts.map -new file mode 100644 -index 0000000..af9ebd3 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"message-cache.spec.d.ts","sourceRoot":"","sources":["../../test/message-cache.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js -new file mode 100644 -index 0000000..02969ca ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js -@@ -0,0 +1,134 @@ -+import * as utils from '@libp2p/pubsub/utils'; -+import { expect } from 'aegir/chai'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { MessageCache } from '../src/message-cache.js'; -+import { messageIdToString } from '../src/utils/messageIdToString.js'; -+import { getMsgId } from './utils/index.js'; -+const toMessageId = (msgId) => { -+ return { -+ msgId, -+ msgIdStr: messageIdToString(msgId) -+ }; -+}; -+describe('Testing Message Cache Operations', () => { -+ const messageCache = new MessageCache(3, 5, messageIdToString); -+ const testMessages = []; -+ const topic = 'test'; -+ const getGossipIDs = (mcache, topic) => { -+ const gossipIDsByTopic = mcache.getGossipIDs(new Set([topic])); -+ return gossipIDsByTopic.get(topic) ?? []; -+ }; -+ before(async () => { -+ const makeTestMessage = (n) => { -+ return { -+ from: new Uint8Array(0), -+ data: uint8ArrayFromString(n.toString()), -+ seqno: uint8ArrayFromString(utils.randomSeqno().toString(16).padStart(16, '0'), 'base16'), -+ topic -+ }; -+ }; -+ for (let i = 0; i < 60; i++) { -+ testMessages.push(makeTestMessage(i)); -+ } -+ for (let i = 0; i < 10; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ }); -+ it('Should retrieve correct messages for each test message', () => { -+ for (let i = 0; i < 10; i++) { -+ const messageId = getMsgId(testMessages[i]); -+ const message = messageCache.get(messageId); -+ expect(message).to.equal(testMessages[i]); -+ } -+ }); -+ it('Get GossipIDs', () => { -+ const gossipIDs = getGossipIDs(messageCache, topic); -+ expect(gossipIDs.length).to.equal(10); -+ for (let i = 0; i < 10; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ expect(messageID).to.deep.equal(gossipIDs[i]); -+ } -+ }); -+ it('Shift message cache', async () => { -+ messageCache.shift(); -+ for (let i = 10; i < 20; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ for (let i = 0; i < 20; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ const message = messageCache.get(messageID); -+ expect(message).to.equal(testMessages[i]); -+ } -+ let gossipIDs = getGossipIDs(messageCache, topic); -+ expect(gossipIDs.length).to.equal(20); -+ for (let i = 0; i < 10; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ expect(messageID).to.deep.equal(gossipIDs[10 + i]); -+ } -+ for (let i = 10; i < 20; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ expect(messageID).to.deep.equal(gossipIDs[i - 10]); -+ } -+ messageCache.shift(); -+ for (let i = 20; i < 30; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ messageCache.shift(); -+ for (let i = 30; i < 40; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ messageCache.shift(); -+ for (let i = 40; i < 50; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ messageCache.shift(); -+ for (let i = 50; i < 60; i++) { -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], true); -+ } -+ expect(messageCache.msgs.size).to.equal(50); -+ for (let i = 0; i < 10; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ const message = messageCache.get(messageID); -+ expect(message).to.be.an('undefined'); -+ } -+ for (let i = 10; i < 60; i++) { -+ const messageID = getMsgId(testMessages[i]); -+ const message = messageCache.get(messageID); -+ expect(message).to.equal(testMessages[i]); -+ } -+ gossipIDs = getGossipIDs(messageCache, topic); -+ expect(gossipIDs.length).to.equal(30); -+ for (let i = 0; i < 10; i++) { -+ const messageID = getMsgId(testMessages[50 + i]); -+ expect(messageID).to.deep.equal(gossipIDs[i]); -+ } -+ for (let i = 10; i < 20; i++) { -+ const messageID = getMsgId(testMessages[30 + i]); -+ expect(messageID).to.deep.equal(gossipIDs[i]); -+ } -+ for (let i = 20; i < 30; i++) { -+ const messageID = getMsgId(testMessages[10 + i]); -+ expect(messageID).to.deep.equal(gossipIDs[i]); -+ } -+ }); -+ it('should not gossip not-validated message ids', () => { -+ let gossipIDs = getGossipIDs(messageCache, topic); -+ while (gossipIDs.length > 0) { -+ messageCache.shift(); -+ gossipIDs = getGossipIDs(messageCache, topic); -+ } -+ expect(gossipIDs.length).to.be.equal(0); -+ for (let i = 10; i < 20; i++) { -+ // 5 last messages are not validated -+ const validated = i < 15; -+ messageCache.put(toMessageId(getMsgId(testMessages[i])), testMessages[i], validated); -+ } -+ gossipIDs = getGossipIDs(messageCache, topic); -+ expect(gossipIDs.length).to.be.equal(5); -+ // only validate the new gossip ids -+ for (let i = 0; i < 5; i++) { -+ expect(gossipIDs[i]).to.deep.equal(getMsgId(testMessages[i + 10]), 'incorrect gossip message id ' + String(i)); -+ } -+ }); -+}); -+//# sourceMappingURL=message-cache.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js.map -new file mode 100644 -index 0000000..9eb3cf6 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/message-cache.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"message-cache.spec.js","sourceRoot":"","sources":["../../test/message-cache.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts -new file mode 100644 -index 0000000..91d19ba ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=peer-score-params.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts.map -new file mode 100644 -index 0000000..c913b75 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score-params.spec.d.ts","sourceRoot":"","sources":["../../test/peer-score-params.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js -new file mode 100644 -index 0000000..42d1af5 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js -@@ -0,0 +1,372 @@ -+import { expect } from 'aegir/chai'; -+import * as constants from '../src/constants.js'; -+import { createTopicScoreParams, validateTopicScoreParams, createPeerScoreParams, validatePeerScoreParams } from '../src/score/index.js'; -+describe('TopicScoreParams validation', () => { -+ it('should not throw on default TopicScoreParams', () => { -+ expect(() => { validateTopicScoreParams(createTopicScoreParams({})); }).to.not.throw(); -+ }); -+ it('should throw on invalid TopicScoreParams', () => { -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ topicWeight: -1 -+ })); -+ }, 'topicWeight must be >= 0').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshWeight: -1, -+ timeInMeshQuantum: 1000 -+ })); -+ }, 'timeInMeshWeight must be positive (or 0 to disable)').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshWeight: 1, -+ timeInMeshQuantum: -1 -+ })); -+ }, 'timeInMeshQuantum must be positive').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshWeight: 1, -+ timeInMeshQuantum: 1000, -+ timeInMeshCap: -1 -+ })); -+ }, 'timeInMeshCap must be positive').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ firstMessageDeliveriesWeight: -1 -+ })); -+ }, 'firstMessageDeliveriesWeight must be positive (or 0 to disable)').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: -1 -+ })); -+ }, 'firstMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 2 -+ })); -+ }, 'firstMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.5, -+ firstMessageDeliveriesCap: -1 -+ })); -+ }, 'firstMessageDeliveriesCap must be positive').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: 1 -+ })); -+ }, 'meshMessageDeliveriesWeight must be negative (or 0 to disable)').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: -1 -+ })); -+ }, 'meshMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 2 -+ })); -+ }, 'meshMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesCap: -1 -+ })); -+ }, 'meshMessageDeliveriesCap must be positive').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 5, -+ meshMessageDeliveriesThreshold: -3 -+ })); -+ }, 'meshMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesThreshold: -3, -+ meshMessageDeliveriesWindow: -1 -+ })); -+ }, 'meshMessageDeliveriesThreshold must be positive').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesThreshold: 3, -+ meshMessageDeliveriesWindow: -1, -+ meshMessageDeliveriesActivation: 1 -+ })); -+ }, 'meshMessageDeliveriesWindow must be non-negative').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshFailurePenaltyWeight: 1 -+ })); -+ }, 'meshFailurePenaltyWeight must be negative').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: -1 -+ })); -+ }, 'meshFailurePenaltyDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: 2 -+ })); -+ }, 'meshFailurePenaltyDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ invalidMessageDeliveriesWeight: 1 -+ })); -+ }, 'invalidMessageDeliveriesWeight must be negative').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: -1 -+ })); -+ }, 'invalidMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ timeInMeshQuantum: 1000, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 2 -+ })); -+ }, 'invalidMessageDeliveriesDecay must be between 0 and 1').to.throw(); -+ }); -+ it('should not throw on valid TopicScoreParams', () => { -+ expect(() => { -+ validateTopicScoreParams(createTopicScoreParams({ -+ topicWeight: 2, -+ timeInMeshWeight: 0.01, -+ timeInMeshQuantum: 1000, -+ timeInMeshCap: 10, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.5, -+ firstMessageDeliveriesCap: 10, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesCap: 10, -+ meshMessageDeliveriesThreshold: 5, -+ meshMessageDeliveriesWindow: 1, -+ meshMessageDeliveriesActivation: 1000, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: 0.5, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.5 -+ })); -+ }).to.not.throw(); -+ }); -+}); -+describe('PeerScoreParams validation', () => { -+ const appScore = () => 0; -+ it('should throw on invalid PeerScoreParams', () => { -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: -1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01 -+ })); -+ }, 'topicScoreCap must be positive').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ decayInterval: 999, -+ decayToZero: 0.01 -+ })); -+ }, 'decayInterval must be at least 1s').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: 1 -+ })); -+ }, 'IPColocationFactorWeight should be negative').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: -1 -+ })); -+ }, 'IPColocationFactorThreshold should be at least 1').to.throw(); -+ /* -+ TODO: appears to be valid config? -+ expect(() => -+ validatePeerScoreParams( -+ createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 0.99 -+ }) -+ ), "IPColocationFactorThreshold should be at least 1" -+ ).to.throw() -+ */ -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: -1, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1 -+ })); -+ }, 'decayToZero must be between 0 and 1').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 2, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1 -+ })); -+ }, 'decayToZero must be between 0 and 1').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ behaviourPenaltyWeight: 1 -+ })); -+ }).to.throw(); -+ /* -+ TODO: appears to be valid config? -+ expect(() => -+ validatePeerScoreParams( -+ createPeerScoreParams({ -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ behaviourPenaltyWeight: -1 -+ }) -+ ), "behaviourPenaltyWeight MUST be negative (or zero to disable)" -+ ).to.throw() -+ */ -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ behaviourPenaltyWeight: -1, -+ behaviourPenaltyDecay: 2 -+ })); -+ }, 'behaviourPenaltyDecay must be between 0 and 1').to.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1, -+ topics: { -+ test: { -+ topicWeight: -1, -+ timeInMeshWeight: 0.01, -+ timeInMeshQuantum: Number(constants.second), -+ timeInMeshCap: 10, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.5, -+ firstMessageDeliveriesCap: 10, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesCap: 10, -+ meshMessageDeliveriesThreshold: 5, -+ meshMessageDeliveriesWindow: 1, -+ meshMessageDeliveriesActivation: 1000, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: 0.5, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.5 -+ } -+ } -+ })); -+ }).to.throw(); -+ }); -+ it('should not throw on valid PeerScoreParams', () => { -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1, -+ behaviourPenaltyWeight: -1, -+ behaviourPenaltyDecay: 0.999 -+ })); -+ }).to.not.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: 1000, -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1, -+ behaviourPenaltyWeight: -1, -+ behaviourPenaltyDecay: 0.999 -+ })); -+ }).to.not.throw(); -+ expect(() => { -+ validatePeerScoreParams(createPeerScoreParams({ -+ topicScoreCap: 1, -+ appSpecificScore: appScore, -+ decayInterval: Number(constants.second), -+ decayToZero: 0.01, -+ IPColocationFactorWeight: -1, -+ IPColocationFactorThreshold: 1, -+ topics: { -+ test: { -+ topicWeight: 1, -+ timeInMeshWeight: 0.01, -+ timeInMeshQuantum: 1000, -+ timeInMeshCap: 10, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.5, -+ firstMessageDeliveriesCap: 10, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesDecay: 0.5, -+ meshMessageDeliveriesCap: 10, -+ meshMessageDeliveriesThreshold: 5, -+ meshMessageDeliveriesWindow: 1, -+ meshMessageDeliveriesActivation: 1000, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: 0.5, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.5 -+ } -+ } -+ })); -+ }).to.not.throw(); -+ }); -+}); -+//# sourceMappingURL=peer-score-params.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js.map -new file mode 100644 -index 0000000..d860ff5 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-params.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score-params.spec.js","sourceRoot":"","sources":["../../test/peer-score-params.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts -new file mode 100644 -index 0000000..69d5ae7 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=peer-score-thresholds.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts.map -new file mode 100644 -index 0000000..0777360 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score-thresholds.spec.d.ts","sourceRoot":"","sources":["../../test/peer-score-thresholds.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js -new file mode 100644 -index 0000000..65e98c2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js -@@ -0,0 +1,55 @@ -+import { expect } from 'aegir/chai'; -+import { createPeerScoreThresholds, validatePeerScoreThresholds } from '../src/score/index.js'; -+describe('PeerScoreThresholds validation', () => { -+ it('should throw on invalid PeerScoreThresholds', () => { -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ gossipThreshold: 1 -+ })); -+ }, 'gossipThreshold must be <= 0').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ publishThreshold: 1 -+ })); -+ }, 'publishThreshold must be <= 0 and <= gossip threshold').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ gossipThreshold: -1, -+ publishThreshold: 0 -+ })); -+ }, 'publishThreshold must be <= 0 and <= gossip threshold').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ graylistThreshold: 1 -+ })); -+ }, 'graylistThreshold must be <= 0 and <= publish threshold').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ publishThreshold: -1, -+ graylistThreshold: -2 -+ })); -+ }, 'graylistThreshold must be <= 0 and <= publish threshold').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ acceptPXThreshold: -1 -+ })); -+ }, 'acceptPXThreshold must be >= 0').to.throw(); -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ opportunisticGraftThreshold: -1 -+ })); -+ }, 'opportunisticGraftThreshold must be >= 0').to.throw(); -+ }); -+ it('should not throw on valid PeerScoreThresholds', () => { -+ expect(() => { -+ validatePeerScoreThresholds(createPeerScoreThresholds({ -+ gossipThreshold: -1, -+ publishThreshold: -2, -+ graylistThreshold: -3, -+ acceptPXThreshold: 1, -+ opportunisticGraftThreshold: 2 -+ })); -+ }).to.not.throw(); -+ }); -+}); -+//# sourceMappingURL=peer-score-thresholds.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js.map -new file mode 100644 -index 0000000..0aba0d7 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score-thresholds.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score-thresholds.spec.js","sourceRoot":"","sources":["../../test/peer-score-thresholds.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAE9F,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,eAAe,EAAE,CAAC;aACnB,CAAC,CACH,CAAA;QACH,CAAC,EACD,8BAA8B,CAC/B,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,gBAAgB,EAAE,CAAC;aACpB,CAAC,CACH,CAAA;QACH,CAAC,EACD,uDAAuD,CACxD,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,eAAe,EAAE,CAAC,CAAC;gBACnB,gBAAgB,EAAE,CAAC;aACpB,CAAC,CACH,CAAA;QACH,CAAC,EACD,uDAAuD,CACxD,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,iBAAiB,EAAE,CAAC;aACrB,CAAC,CACH,CAAA;QACH,CAAC,EACD,yDAAyD,CAC1D,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,gBAAgB,EAAE,CAAC,CAAC;gBACpB,iBAAiB,EAAE,CAAC,CAAC;aACtB,CAAC,CACH,CAAA;QACH,CAAC,EACD,yDAAyD,CAC1D,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,iBAAiB,EAAE,CAAC,CAAC;aACtB,CAAC,CACH,CAAA;QACH,CAAC,EACD,gCAAgC,CACjC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,CACJ,GAAG,EAAE;YACH,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,2BAA2B,EAAE,CAAC,CAAC;aAChC,CAAC,CACH,CAAA;QACH,CAAC,EACD,0CAA0C,CAC3C,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE;YACV,2BAA2B,CACzB,yBAAyB,CAAC;gBACxB,eAAe,EAAE,CAAC,CAAC;gBACnB,gBAAgB,EAAE,CAAC,CAAC;gBACpB,iBAAiB,EAAE,CAAC,CAAC;gBACrB,iBAAiB,EAAE,CAAC;gBACpB,2BAA2B,EAAE,CAAC;aAC/B,CAAC,CACH,CAAA;QACH,CAAC,CACA,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts -new file mode 100644 -index 0000000..6e333bb ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=peer-score.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts.map -new file mode 100644 -index 0000000..ebbb846 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score.spec.d.ts","sourceRoot":"","sources":["../../test/peer-score.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js -new file mode 100644 -index 0000000..4dddf04 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js -@@ -0,0 +1,652 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { defaultLogger } from '@libp2p/logger'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { expect } from 'aegir/chai'; -+import delay from 'delay'; -+import sinon from 'sinon'; -+import { ScorePenalty } from '../src/metrics.js'; -+import { PeerScore, createPeerScoreParams, createTopicScoreParams } from '../src/score/index.js'; -+import { RejectReason } from '../src/types.js'; -+import { getMsgIdStr, makeTestMessage } from './utils/index.js'; -+/** Placeholder for some ScorePenalty value, only used for metrics */ -+const scorePenaltyAny = ScorePenalty.BrokenPromise; -+describe('PeerScore', () => { -+ const logger = defaultLogger(); -+ it('should score based on time in mesh', async () => { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ topicScoreCap: 1000 -+ }); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 0.5, -+ timeInMeshWeight: 1, -+ timeInMeshQuantum: 1, -+ timeInMeshCap: 3600 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ let aScore = ps.score(peerA); -+ expect(aScore, 'expected score to start at zero').to.equal(0); -+ // The time in mesh depends on how long the peer has been grafted -+ ps.graft(peerA, mytopic); -+ const elapsed = tparams.timeInMeshQuantum * 100; -+ await delay(elapsed + 10); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.be.gte(((tparams.topicWeight * tparams.timeInMeshWeight) / tparams.timeInMeshQuantum) * elapsed); -+ }); -+ it('should cap time in mesh score', async () => { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 0.5, -+ timeInMeshWeight: 1, -+ timeInMeshQuantum: 1, -+ timeInMeshCap: 10, -+ invalidMessageDeliveriesDecay: 0.1 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ let aScore = ps.score(peerA); -+ expect(aScore, 'expected score to start at zero').to.equal(0); -+ // The time in mesh depends on how long the peer has been grafted -+ ps.graft(peerA, mytopic); -+ const elapsed = tparams.timeInMeshQuantum * 40; -+ await delay(elapsed); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.be.gt(tparams.topicWeight * tparams.timeInMeshWeight * tparams.timeInMeshCap * 0.5); -+ expect(aScore).to.be.lt(tparams.topicWeight * tparams.timeInMeshWeight * tparams.timeInMeshCap * 1.5); -+ }); -+ it('should score first message deliveries', async () => { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ topicScoreCap: 1000 -+ }); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesCap: 50000, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ // deliver a bunch of messages from peer A -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ } -+ ps.refreshScores(); -+ const aScore = ps.score(peerA); -+ expect(aScore).to.be.equal(tparams.topicWeight * tparams.firstMessageDeliveriesWeight * nMessages * tparams.firstMessageDeliveriesDecay); -+ }); -+ it('should cap first message deliveries score', async () => { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ topicScoreCap: 1000 -+ }); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.9, -+ invalidMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesCap: 50, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ let aScore = ps.score(peerA); -+ expect(aScore, 'expected score to start at zero').to.equal(0); -+ // The time in mesh depends on how long the peer has been grafted -+ ps.graft(peerA, mytopic); -+ // deliver a bunch of messages from peer A -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ } -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.be.equal(tparams.topicWeight * -+ tparams.firstMessageDeliveriesWeight * -+ tparams.firstMessageDeliveriesCap * -+ tparams.firstMessageDeliveriesDecay); -+ }); -+ it('should decay first message deliveries score', async () => { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ topicScoreCap: 1000 -+ }); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ firstMessageDeliveriesWeight: 1, -+ firstMessageDeliveriesDecay: 0.9, // decay 10% per decay interval -+ invalidMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesCap: 50, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ let aScore = ps.score(peerA); -+ expect(aScore, 'expected score to start at zero').to.equal(0); -+ // The time in mesh depends on how long the peer has been grafted -+ ps.graft(peerA, mytopic); -+ // deliver a bunch of messages from peer A -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ } -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ let expected = tparams.topicWeight * -+ tparams.firstMessageDeliveriesWeight * -+ tparams.firstMessageDeliveriesCap * -+ tparams.firstMessageDeliveriesDecay; -+ expect(aScore).to.be.equal(expected); -+ // refreshing the scores applies the decay param -+ const decayInterals = 10; -+ for (let i = 0; i < decayInterals; i++) { -+ ps.refreshScores(); -+ expected *= tparams.firstMessageDeliveriesDecay; -+ } -+ aScore = ps.score(peerA); -+ expect(aScore).to.be.equal(expected); -+ }); -+ it('should score mesh message deliveries', async function () { -+ this.timeout(10000); -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesActivation: 1000, -+ meshMessageDeliveriesWindow: 10, -+ meshMessageDeliveriesThreshold: 20, -+ meshMessageDeliveriesCap: 100, -+ meshMessageDeliveriesDecay: 0.9, -+ invalidMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesWeight: 0, -+ timeInMeshWeight: 0 -+ })); -+ // peer A always delivers the message first -+ // peer B delivers next (within the delivery window) -+ // peer C delivers outside the delivery window -+ // we expect peers A and B to have a score of zero, since all other param weights are zero -+ // peer C should have a negative score -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerC = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peers = [peerA, peerB, peerC]; -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ peers.forEach((p) => { -+ ps.addPeer(p); -+ ps.graft(p, mytopic); -+ }); -+ // assert that nobody has been penalized yet for not delivering messages before activation time -+ ps.refreshScores(); -+ peers.forEach((p) => { -+ const score = ps.score(p); -+ expect(score, 'expected no mesh delivery penalty before activation time').to.equal(0); -+ }); -+ // wait for the activation time to kick in -+ await delay(tparams.meshMessageDeliveriesActivation); -+ // deliver a bunch of messages from peers -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ ps.duplicateMessage(peerB, getMsgIdStr(msg), msg.topic); -+ // deliver duplicate from peer C after the window -+ await delay(tparams.meshMessageDeliveriesWindow + 5); -+ ps.duplicateMessage(peerC, getMsgIdStr(msg), msg.topic); -+ } -+ ps.refreshScores(); -+ const aScore = ps.score(peerA); -+ const bScore = ps.score(peerB); -+ const cScore = ps.score(peerC); -+ expect(aScore).to.be.gte(0); -+ expect(bScore).to.be.gte(0); -+ // the penalty is the difference between the threshold and the actual mesh deliveries, squared. -+ // since we didn't deliver anything, this is just the value of the threshold -+ const penalty = tparams.meshMessageDeliveriesThreshold * tparams.meshMessageDeliveriesThreshold; -+ const expected = tparams.topicWeight * tparams.meshMessageDeliveriesWeight * penalty; -+ expect(cScore).to.be.equal(expected); -+ }); -+ it('should decay mesh message deliveries score', async function () { -+ this.timeout(10000); -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ meshMessageDeliveriesWeight: -1, -+ meshMessageDeliveriesActivation: 1000, -+ meshMessageDeliveriesWindow: 10, -+ meshMessageDeliveriesThreshold: 20, -+ meshMessageDeliveriesCap: 100, -+ meshMessageDeliveriesDecay: 0.9, -+ invalidMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesWeight: 0, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ // wait for the activation time to kick in -+ await delay(tparams.meshMessageDeliveriesActivation + 10); -+ // deliver a bunch of messages from peer A -+ const nMessages = 40; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ } -+ ps.refreshScores(); -+ let aScore = ps.score(peerA); -+ expect(aScore).to.be.gte(0); -+ // we need to refresh enough times for the decay to bring us below the threshold -+ let decayedDeliveryCount = nMessages * tparams.meshMessageDeliveriesDecay; -+ for (let i = 0; i < 20; i++) { -+ ps.refreshScores(); -+ decayedDeliveryCount *= tparams.meshMessageDeliveriesDecay; -+ } -+ aScore = ps.score(peerA); -+ // the penalty is the difference between the threshold and the (decayed) mesh deliveries, squared. -+ const deficit = tparams.meshMessageDeliveriesThreshold - decayedDeliveryCount; -+ const penalty = deficit * deficit; -+ const expected = tparams.topicWeight * tparams.meshMessageDeliveriesWeight * penalty; -+ expect(aScore).to.be.equal(expected); -+ }); -+ it('should score mesh message failures', async function () { -+ this.timeout(10000); -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ // the mesh failure penalty is applied when a peer is pruned while their -+ // mesh deliveries are under the threshold. -+ // for this test, we set the mesh delivery threshold, but set -+ // meshMessageDeliveriesWeight to zero, so the only affect on the score -+ // is from the mesh failure penalty -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ meshFailurePenaltyWeight: -1, -+ meshFailurePenaltyDecay: 0.9, -+ meshMessageDeliveriesWeight: 0, -+ meshMessageDeliveriesActivation: 1000, -+ meshMessageDeliveriesWindow: 10, -+ meshMessageDeliveriesThreshold: 20, -+ meshMessageDeliveriesCap: 100, -+ meshMessageDeliveriesDecay: 0.9, -+ firstMessageDeliveriesWeight: 0, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peers = [peerA, peerB]; -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ peers.forEach((p) => { -+ ps.addPeer(p); -+ ps.graft(p, mytopic); -+ }); -+ // wait for the activation time to kick in -+ await delay(tparams.meshMessageDeliveriesActivation + 10); -+ // deliver a bunch of messages from peer A. peer B does nothing -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.validateMessage(getMsgIdStr(msg)); -+ ps.deliverMessage(peerA, getMsgIdStr(msg), msg.topic); -+ } -+ // peers A and B should both have zero scores, since the failure penalty hasn't been applied yet -+ ps.refreshScores(); -+ let aScore = ps.score(peerA); -+ let bScore = ps.score(peerB); -+ expect(aScore).to.be.equal(0); -+ expect(bScore).to.be.equal(0); -+ // prune peer B to apply the penalty -+ ps.prune(peerB, mytopic); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ bScore = ps.score(peerB); -+ expect(aScore).to.be.equal(0); -+ // penalty calculation is the same as for meshMessageDeliveries, but multiplied by meshFailurePenaltyWeight -+ // instead of meshMessageDeliveriesWeight -+ const penalty = tparams.meshMessageDeliveriesThreshold * tparams.meshMessageDeliveriesThreshold; -+ const expected = tparams.topicWeight * tparams.meshFailurePenaltyWeight * penalty * tparams.meshFailurePenaltyDecay; -+ expect(bScore).to.be.equal(expected); -+ }); -+ it('should score invalid message deliveries', async function () { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.9, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ // deliver a bunch of messages from peer A -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.rejectMessage(peerA, getMsgIdStr(msg), msg.topic, RejectReason.Reject); -+ } -+ ps.refreshScores(); -+ const aScore = ps.score(peerA); -+ const expected = tparams.topicWeight * -+ tparams.invalidMessageDeliveriesWeight * -+ (nMessages * tparams.invalidMessageDeliveriesDecay) ** 2; -+ expect(aScore).to.be.equal(expected); -+ }); -+ it('should decay invalid message deliveries score', async function () { -+ // Create parameters with reasonable default values -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ const tparams = (params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.9, -+ timeInMeshWeight: 0 -+ })); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ // deliver a bunch of messages from peer A -+ const nMessages = 100; -+ for (let i = 0; i < nMessages; i++) { -+ const msg = makeTestMessage(i, mytopic); -+ ps.rejectMessage(peerA, getMsgIdStr(msg), msg.topic, RejectReason.Reject); -+ } -+ ps.refreshScores(); -+ let aScore = ps.score(peerA); -+ let expected = tparams.topicWeight * -+ tparams.invalidMessageDeliveriesWeight * -+ (nMessages * tparams.invalidMessageDeliveriesDecay) ** 2; -+ expect(aScore).to.be.equal(expected); -+ // refresh scores a few times to apply decay -+ for (let i = 0; i < 10; i++) { -+ ps.refreshScores(); -+ expected *= tparams.invalidMessageDeliveriesDecay ** 2; -+ } -+ aScore = ps.score(peerA); -+ expect(aScore).to.be.equal(expected); -+ }); -+ it('should score invalid/ignored messages', async function () { -+ // this test adds coverage for the dark corners of message rejection -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({}); -+ params.topics[mytopic] = createTopicScoreParams({ -+ topicWeight: 1, -+ invalidMessageDeliveriesWeight: -1, -+ invalidMessageDeliveriesDecay: 0.9, -+ timeInMeshQuantum: 1000 -+ }); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.addPeer(peerB); -+ const msg = makeTestMessage(0, mytopic); -+ // insert a record -+ ps.validateMessage(getMsgIdStr(msg)); -+ // this should have no effect in the score, and subsequent duplicate messages should have no effect either -+ ps.rejectMessage(peerA, getMsgIdStr(msg), msg.topic, RejectReason.Ignore); -+ ps.duplicateMessage(peerB, getMsgIdStr(msg), msg.topic); -+ let aScore = ps.score(peerA); -+ let bScore = ps.score(peerB); -+ let expected = 0; -+ expect(aScore).to.equal(expected); -+ expect(bScore).to.equal(expected); -+ // now clear the delivery record -+ let record = ps.deliveryRecords.queue.peekFront(); -+ if (record == null) { -+ throw new Error('No record found'); -+ } -+ record.expire = Date.now(); -+ await delay(5); -+ ps.deliveryRecords.gc(); -+ // insert a new record in the message deliveries -+ ps.validateMessage(getMsgIdStr(msg)); -+ // and reject the message to make sure duplicates are also penalized -+ ps.rejectMessage(peerA, getMsgIdStr(msg), msg.topic, RejectReason.Reject); -+ ps.duplicateMessage(peerB, getMsgIdStr(msg), msg.topic); -+ aScore = ps.score(peerA); -+ bScore = ps.score(peerB); -+ expected = -1; -+ expect(aScore).to.equal(expected); -+ expect(bScore).to.equal(expected); -+ // now clear the delivery record again -+ record = ps.deliveryRecords.queue.peekFront(); -+ if (record == null) { -+ throw new Error('No record found'); -+ } -+ record.expire = Date.now(); -+ await delay(5); -+ ps.deliveryRecords.gc(); -+ // insert a new record in the message deliveries -+ ps.validateMessage(getMsgIdStr(msg)); -+ // and reject the message after a duplicate has arrived -+ ps.duplicateMessage(peerB, getMsgIdStr(msg), msg.topic); -+ ps.rejectMessage(peerA, getMsgIdStr(msg), msg.topic, RejectReason.Reject); -+ aScore = ps.score(peerA); -+ bScore = ps.score(peerB); -+ expected = -4; -+ expect(aScore).to.equal(expected); -+ expect(bScore).to.equal(expected); -+ }); -+ it('should score w/ application score', async function () { -+ const mytopic = 'mytopic'; -+ let appScoreValue = 0; -+ const params = createPeerScoreParams({ -+ appSpecificScore: () => appScoreValue, -+ appSpecificWeight: 0.5 -+ }); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ for (let i = -100; i < 100; i++) { -+ appScoreValue = i; -+ ps.refreshScores(); -+ const aScore = ps.score(peerA); -+ const expected = i * params.appSpecificWeight; -+ expect(aScore).to.equal(expected); -+ } -+ }); -+ it('should score w/ IP colocation', async function () { -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ IPColocationFactorThreshold: 1, -+ IPColocationFactorWeight: -1 -+ }); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerC = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerD = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peers = [peerA, peerB, peerC, peerD]; -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ peers.forEach((p) => { -+ ps.addPeer(p); -+ ps.graft(p, mytopic); -+ }); -+ const setIPsForPeer = (p, ips) => { -+ for (const ip of ips) { -+ ps.addIP(p, ip); -+ } -+ }; -+ // peerA should have no penalty, but B, C, and D should be penalized for sharing an IP -+ setIPsForPeer(peerA, ['1.2.3.4']); -+ setIPsForPeer(peerB, ['2.3.4.5']); -+ setIPsForPeer(peerC, ['2.3.4.5', '3.4.5.6']); -+ setIPsForPeer(peerD, ['2.3.4.5']); -+ ps.refreshScores(); -+ const aScore = ps.score(peerA); -+ const bScore = ps.score(peerB); -+ const cScore = ps.score(peerC); -+ const dScore = ps.score(peerD); -+ expect(aScore).to.equal(0); -+ const nShared = 3; -+ const ipSurplus = nShared - params.IPColocationFactorThreshold; -+ const penalty = ipSurplus ** 2; -+ const expected = params.IPColocationFactorWeight * penalty; -+ expect(bScore).to.equal(expected); -+ expect(cScore).to.equal(expected); -+ expect(dScore).to.equal(expected); -+ }); -+ it('should score w/ behavior penalty', async function () { -+ const params = createPeerScoreParams({ -+ behaviourPenaltyWeight: -1, -+ behaviourPenaltyDecay: 0.99 -+ }); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ // add penalty on a non-existent peer -+ ps.addPenalty(peerA, 1, ScorePenalty.MessageDeficit); -+ let aScore = ps.score(peerA); -+ expect(aScore).to.equal(0); -+ // add the peer and test penalties -+ ps.addPeer(peerA); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(0); -+ ps.addPenalty(peerA, 1, scorePenaltyAny); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(-1); -+ ps.addPenalty(peerA, 1, scorePenaltyAny); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(-4); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(-3.9204); -+ }); -+ it('should handle score retention', async function () { -+ const mytopic = 'mytopic'; -+ const params = createPeerScoreParams({ -+ appSpecificScore: () => -1000, -+ appSpecificWeight: 1, -+ retainScore: 800 -+ }); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ ps.graft(peerA, mytopic); -+ // score should equal -1000 (app-specific score) -+ const expected = -1000; -+ ps.refreshScores(); -+ let aScore = ps.score(peerA); -+ expect(aScore).to.equal(expected); -+ // disconnect & wait half of the retainScoreTime -+ // should still have negative score -+ ps.removePeer(peerA); -+ const _delay = params.retainScore / 2; -+ await delay(_delay); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(expected); -+ // wait remaining time (plus a little slop) and the score should reset to 0 -+ await delay(_delay + 5); -+ ps.refreshScores(); -+ aScore = ps.score(peerA); -+ expect(aScore).to.equal(0); -+ }); -+}); -+// TODO: https://github.com/ChainSafe/js-libp2p-gossipsub/issues/238 -+describe.skip('PeerScore score cache', function () { -+ const peerA = '16Uiu2HAmMkH6ZLen2tbhiuNCTZLLvrZaDgufNdT5MPjtC9Hr9YNG'; -+ const logger = defaultLogger(); -+ let sandbox; -+ let computeStoreStub; -+ const params = createPeerScoreParams({ -+ appSpecificScore: () => -1000, -+ appSpecificWeight: 1, -+ retainScore: 800, -+ decayInterval: 1000, -+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -+ topics: { a: { topicWeight: 10 } } -+ }); -+ let ps2; -+ beforeEach(() => { -+ sandbox = sinon.createSandbox(); -+ const now = Date.now(); -+ sandbox.useFakeTimers(now); -+ computeStoreStub = sinon.stub(); -+ ps2 = new PeerScore(params, null, logger, { -+ scoreCacheValidityMs: 10, -+ computeScore: computeStoreStub -+ }); -+ }); -+ afterEach(() => { -+ sandbox.restore(); -+ }); -+ it('should compute first time', function () { -+ computeStoreStub.returns(10); -+ ps2.addPeer(peerA); -+ expect(computeStoreStub.calledOnce).to.be.false(); -+ ps2.score(peerA); -+ expect(computeStoreStub.calledOnce).to.be.true(); -+ // this time peerA score is cached -+ ps2.score(peerA); -+ expect(computeStoreStub.calledOnce).to.be.true(); -+ }); -+ const testCases = [ -+ { name: 'decayInterval timeout', fun: () => sandbox.clock.tick(params.decayInterval) }, -+ { name: 'refreshScores', fun: () => { ps2.refreshScores(); } }, -+ { name: 'addPenalty', fun: () => { ps2.addPenalty(peerA, 10, scorePenaltyAny); } }, -+ { name: 'graft', fun: () => { ps2.graft(peerA, 'a'); } }, -+ { name: 'prune', fun: () => { ps2.prune(peerA, 'a'); } }, -+ { name: 'markInvalidMessageDelivery', fun: () => { ps2.markInvalidMessageDelivery(peerA, 'a'); } }, -+ { name: 'markFirstMessageDelivery', fun: () => { ps2.markFirstMessageDelivery(peerA, 'a'); } }, -+ { name: 'markDuplicateMessageDelivery', fun: () => { ps2.markDuplicateMessageDelivery(peerA, 'a'); } }, -+ { name: 'removeIPs', fun: () => { ps2.removeIP(peerA, '127.0.0.1'); } } -+ ]; -+ for (const { name, fun } of testCases) { -+ // eslint-disable-next-line no-loop-func -+ it(`should invalidate the cache after ${name}`, function () { -+ // eslint-disable-line no-loop-func -+ computeStoreStub.returns(10); -+ ps2.addPeer(peerA); -+ ps2.score(peerA); -+ expect(computeStoreStub.calledOnce).to.be.true(); -+ // the score is cached -+ ps2.score(peerA); -+ expect(computeStoreStub.calledOnce).to.be.true(); -+ // invalidate the cache -+ fun(); -+ // should not use the cache -+ ps2.score(peerA); -+ expect(computeStoreStub.calledTwice).to.be.true(); -+ }); -+ } -+}); -+//# sourceMappingURL=peer-score.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js.map -new file mode 100644 -index 0000000..cb47e20 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/peer-score.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"peer-score.spec.js","sourceRoot":"","sources":["../../test/peer-score.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts -new file mode 100644 -index 0000000..6fe5864 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=scoreMetrics.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts.map -new file mode 100644 -index 0000000..2ff42f2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"scoreMetrics.spec.d.ts","sourceRoot":"","sources":["../../test/scoreMetrics.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js -new file mode 100644 -index 0000000..a308ac3 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js -@@ -0,0 +1,40 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { defaultLogger } from '@libp2p/logger'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { expect } from 'aegir/chai'; -+import { ScorePenalty } from '../src/metrics.js'; -+import { createPeerScoreParams, createTopicScoreParams, PeerScore } from '../src/score/index.js'; -+import { computeAllPeersScoreWeights } from '../src/score/scoreMetrics.js'; -+describe('score / scoreMetrics', () => { -+ const logger = defaultLogger(); -+ it('computeScoreWeights', async () => { -+ // Create parameters with reasonable default values -+ const topic = 'test_topic'; -+ const params = createPeerScoreParams({ -+ topicScoreCap: 1000 -+ }); -+ params.topics[topic] = createTopicScoreParams({ -+ topicWeight: 0.5, -+ timeInMeshWeight: 1, -+ timeInMeshQuantum: 1, -+ timeInMeshCap: 3600 -+ }); -+ // Add Map for metrics -+ const topicStrToLabel = new Map(); -+ topicStrToLabel.set(topic, topic); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ // Peer score should start at 0 -+ const ps = new PeerScore(params, null, logger, { scoreCacheValidityMs: 0 }); -+ ps.addPeer(peerA); -+ // Do some actions that penalize the peer -+ const msgId = 'aaaaaaaaaaaaaaaa'; -+ ps.addPenalty(peerA, 1, ScorePenalty.BrokenPromise); -+ ps.validateMessage(msgId); -+ ps.deliverMessage(peerA, msgId, topic); -+ const sw = computeAllPeersScoreWeights([peerA], ps.peerStats, ps.params, ps.peerIPs, topicStrToLabel); -+ // Ensure score is the same -+ expect(sw.score).to.deep.equal([ps.score(peerA)], 'Score from metrics and actual score not equal'); -+ expect(sw.byTopic.get(topic)).to.deep.equal({ p1w: [0], p2w: [1], p3w: [0], p3bw: [0], p4w: [0] }, 'Wrong score weights by topic'); -+ }); -+}); -+//# sourceMappingURL=scoreMetrics.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js.map -new file mode 100644 -index 0000000..17c0f97 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/scoreMetrics.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"scoreMetrics.spec.js","sourceRoot":"","sources":["../../test/scoreMetrics.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAE1E,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAE9B,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,mDAAmD;QACnD,MAAM,KAAK,GAAG,YAAY,CAAA;QAE1B,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC;YAC5C,WAAW,EAAE,GAAG;YAChB,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;QACjD,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAEjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC/E,+BAA+B;QAC/B,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3E,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAEjB,yCAAyC;QACzC,MAAM,KAAK,GAAG,kBAAkB,CAAA;QAChC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QACnD,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACzB,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAEtC,MAAM,EAAE,GAAG,2BAA2B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAErG,2BAA2B;QAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,+CAA+C,CAAC,CAAA;QAClG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CACzC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EACrD,8BAA8B,CAC/B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts -new file mode 100644 -index 0000000..94b8dbe ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=signature-policy.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts.map -new file mode 100644 -index 0000000..046b484 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"signature-policy.spec.d.ts","sourceRoot":"","sources":["../../test/signature-policy.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js -new file mode 100644 -index 0000000..dcb1a8b ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js -@@ -0,0 +1,160 @@ -+import { stop } from '@libp2p/interface'; -+import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { expect } from 'aegir/chai'; -+import { pEvent } from 'p-event'; -+import { connectAllPubSubNodes, connectPubsubNodes, createComponents, createComponentsArray } from './utils/create-pubsub.js'; -+describe('signature policy', () => { -+ describe('strict-sign', () => { -+ const numNodes = 3; -+ let nodes; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: numNodes, -+ connected: false, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 3 -+ }, -+ // crucial line -+ globalSignaturePolicy: 'StrictSign' -+ } -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('should publish a message', async () => { -+ const topic = 'foo'; -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect all nodes -+ await connectAllPubSubNodes(nodes); -+ // wait for subscriptions to be transmitted -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change'))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(numNodes - 1); -+ }); -+ it('should forward a valid message', async () => { -+ const topic = 'foo'; -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect in a line -+ await Promise.all(Array.from({ length: numNodes - 1 }, async (_, i) => connectPubsubNodes(nodes[i], nodes[i + 1]))); -+ // wait for subscriptions to be transmitted -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change'))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(1); -+ // the last node should get the message -+ await pEvent(nodes[nodes.length - 1].pubsub, 'gossipsub:message'); -+ }); -+ it('should not forward an strict-no-sign message', async () => { -+ const topic = 'foo'; -+ // add a no-sign peer to nodes -+ nodes.unshift(await createComponents({ -+ init: { -+ globalSignaturePolicy: 'StrictNoSign' -+ } -+ })); -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect in a line -+ await Promise.all(Array.from({ length: numNodes - 1 }, async (_, i) => connectPubsubNodes(nodes[i], nodes[i + 1]))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(1); -+ // the last node should NOT get the message -+ try { -+ await pEvent(nodes[nodes.length - 1].pubsub, 'gossipsub:message', { timeout: 200 }); -+ expect.fail('no-sign message should not be emitted from strict-sign peer'); -+ } -+ catch (e) { } -+ }); -+ }); -+ describe('strict-no-sign', () => { -+ const numNodes = 3; -+ let nodes; -+ beforeEach(async () => { -+ mockNetwork.reset(); -+ nodes = await createComponentsArray({ -+ number: numNodes, -+ connected: false, -+ init: { -+ scoreParams: { -+ IPColocationFactorThreshold: 3 -+ }, -+ // crucial line -+ globalSignaturePolicy: 'StrictNoSign' -+ } -+ }); -+ }); -+ afterEach(async () => { -+ await stop(...nodes.reduce((acc, curr) => acc.concat(curr.pubsub, ...Object.entries(curr.components)), [])); -+ mockNetwork.reset(); -+ }); -+ it('should publish a message', async () => { -+ const topic = 'foo'; -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect all nodes -+ await connectAllPubSubNodes(nodes); -+ // wait for subscriptions to be transmitted -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change'))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(numNodes - 1); -+ }); -+ it('should forward a valid message', async () => { -+ const topic = 'foo'; -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect in a line -+ await Promise.all(Array.from({ length: numNodes - 1 }, async (_, i) => connectPubsubNodes(nodes[i], nodes[i + 1]))); -+ // wait for subscriptions to be transmitted -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'subscription-change'))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(1); -+ // the last node should get the message -+ await pEvent(nodes[nodes.length - 1].pubsub, 'gossipsub:message'); -+ }); -+ it('should not forward an strict-sign message', async () => { -+ const topic = 'foo'; -+ // add a no-sign peer to nodes -+ nodes.unshift(await createComponents({ -+ init: { -+ globalSignaturePolicy: 'StrictSign' -+ } -+ })); -+ // add subscriptions to each node -+ nodes.forEach((n) => { n.pubsub.subscribe(topic); }); -+ // connect in a line -+ await Promise.all(Array.from({ length: numNodes - 1 }, async (_, i) => connectPubsubNodes(nodes[i], nodes[i + 1]))); -+ // await mesh rebalancing -+ await Promise.all(nodes.map(async (n) => pEvent(n.pubsub, 'gossipsub:heartbeat'))); -+ // publish a message on the topic -+ const result = await nodes[0].pubsub.publish(topic, new Uint8Array()); -+ expect(result.recipients).to.length(1); -+ // the last node should NOT get the message -+ try { -+ await pEvent(nodes[nodes.length - 1].pubsub, 'gossipsub:message', { timeout: 200 }); -+ expect.fail('no-sign message should not be emitted from strict-sign peer'); -+ } -+ catch (e) { } -+ }); -+ }); -+}); -+//# sourceMappingURL=signature-policy.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js.map -new file mode 100644 -index 0000000..3f42977 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/signature-policy.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"signature-policy.spec.js","sourceRoot":"","sources":["../../test/signature-policy.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts -new file mode 100644 -index 0000000..ca5a5fc ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=time-cache.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts.map -new file mode 100644 -index 0000000..1c82004 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"time-cache.spec.d.ts","sourceRoot":"","sources":["../../test/time-cache.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js -new file mode 100644 -index 0000000..423d535 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js -@@ -0,0 +1,52 @@ -+import { expect } from 'aegir/chai'; -+import sinon from 'sinon'; -+import { SimpleTimeCache } from '../src/utils/time-cache.js'; -+describe('SimpleTimeCache', () => { -+ const validityMs = 1000; -+ const timeCache = new SimpleTimeCache({ validityMs }); -+ const sandbox = sinon.createSandbox(); -+ beforeEach(() => { -+ sandbox.useFakeTimers(); -+ }); -+ afterEach(() => { -+ sandbox.restore(); -+ }); -+ it('should delete items after 1sec', () => { -+ timeCache.put('aFirst'); -+ timeCache.put('bFirst'); -+ timeCache.put('cFirst'); -+ expect(timeCache.has('aFirst')).to.be.true(); -+ expect(timeCache.has('bFirst')).to.be.true(); -+ expect(timeCache.has('cFirst')).to.be.true(); -+ sandbox.clock.tick(validityMs + 1); -+ // https://github.com/ChainSafe/js-libp2p-gossipsub/issues/232#issuecomment-1109589919 -+ timeCache.prune(); -+ timeCache.put('aSecond'); -+ timeCache.put('bSecond'); -+ timeCache.put('cSecond'); -+ expect(timeCache.has('aSecond')).to.be.true(); -+ expect(timeCache.has('bSecond')).to.be.true(); -+ expect(timeCache.has('cSecond')).to.be.true(); -+ expect(timeCache.has('aFirst')).to.be.false(); -+ expect(timeCache.has('bFirst')).to.be.false(); -+ expect(timeCache.has('cFirst')).to.be.false(); -+ }); -+ it('Map insertion order', () => { -+ const key1 = 'key1'; -+ const key2 = 'key2'; -+ const key3 = 'key3'; -+ const map = new Map(); -+ map.set(key1, Date.now()); -+ map.set(key2, Date.now()); -+ map.set(key3, Date.now()); -+ expect(Array.from(map.keys())).deep.equals([key1, key2, key3], 'Map iterator order'); -+ // Does not change key position -+ map.set(key2, Date.now()); -+ expect(Array.from(map.keys())).deep.equals([key1, key2, key3], 'Map iterator order after re-set'); -+ // Changes key position -+ map.delete(key2); -+ map.set(key2, Date.now()); -+ expect(Array.from(map.keys())).deep.equals([key1, key3, key2], 'Map iterator order after delete set'); -+ }); -+}); -+//# sourceMappingURL=time-cache.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js.map -new file mode 100644 -index 0000000..b2549a8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/time-cache.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"time-cache.spec.js","sourceRoot":"","sources":["../../test/time-cache.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts -new file mode 100644 -index 0000000..99d44dd ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=tracer.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts.map -new file mode 100644 -index 0000000..55036e0 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"tracer.spec.d.ts","sourceRoot":"","sources":["../../test/tracer.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js -new file mode 100644 -index 0000000..fb26af0 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js -@@ -0,0 +1,55 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { expect } from 'aegir/chai'; -+import delay from 'delay'; -+import * as constants from '../src/constants.js'; -+import { IWantTracer } from '../src/tracer.js'; -+import { messageIdToString } from '../src/utils/messageIdToString.js'; -+import { makeTestMessage, getMsgId, getMsgIdStr } from './utils/index.js'; -+describe('IWantTracer', () => { -+ it('should track broken promises', async function () { -+ // tests that unfulfilled promises are tracked correctly -+ this.timeout(6000); -+ const t = new IWantTracer(constants.GossipsubIWantFollowupTime, messageIdToString, null); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const msgIds = []; -+ for (let i = 0; i < 100; i++) { -+ const m = makeTestMessage(i, 'test_topic'); -+ msgIds.push(getMsgId(m)); -+ } -+ t.addPromise(peerA, msgIds); -+ t.addPromise(peerB, msgIds); -+ // no broken promises yet -+ let brokenPromises = t.getBrokenPromises(); -+ expect(brokenPromises.size).to.be.equal(0); -+ // make promises break -+ await delay(constants.GossipsubIWantFollowupTime + 10); -+ brokenPromises = t.getBrokenPromises(); -+ expect(brokenPromises.size).to.be.equal(2); -+ expect(brokenPromises.get(peerA)).to.be.equal(1); -+ expect(brokenPromises.get(peerB)).to.be.equal(1); -+ }); -+ it('should track unbroken promises', async function () { -+ // like above, but this time we deliver messages to fullfil the promises -+ this.timeout(6000); -+ const t = new IWantTracer(constants.GossipsubIWantFollowupTime, messageIdToString, null); -+ const peerA = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const peerB = peerIdFromPrivateKey(await generateKeyPair('Ed25519')).toString(); -+ const msgs = []; -+ const msgIds = []; -+ for (let i = 0; i < 100; i++) { -+ const m = makeTestMessage(i, 'test_topic'); -+ msgs.push(m); -+ msgIds.push(getMsgId(m)); -+ } -+ t.addPromise(peerA, msgIds); -+ t.addPromise(peerB, msgIds); -+ msgs.forEach((msg) => { t.deliverMessage(getMsgIdStr(msg)); }); -+ await delay(constants.GossipsubIWantFollowupTime + 10); -+ // there should be no broken promises -+ const brokenPromises = t.getBrokenPromises(); -+ expect(brokenPromises.size).to.be.equal(0); -+ }); -+}); -+//# sourceMappingURL=tracer.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js.map -new file mode 100644 -index 0000000..d860887 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/tracer.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"tracer.spec.js","sourceRoot":"","sources":["../../test/tracer.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts -new file mode 100644 -index 0000000..76be891 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=set.test.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts.map -new file mode 100644 -index 0000000..4810f51 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"set.test.d.ts","sourceRoot":"","sources":["../../../test/unit/set.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js -new file mode 100644 -index 0000000..4f676c1 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js -@@ -0,0 +1,41 @@ -+import { expect } from 'aegir/chai'; -+import { removeFirstNItemsFromSet, removeItemsFromSet } from '../../src/utils/set.js'; -+describe('Set util', function () { -+ describe('removeItemsFromSet', function () { -+ let s; -+ this.beforeEach(() => { -+ s = new Set([1, 2, 3, 4, 5]); -+ }); -+ const testCases = [ -+ { id: 'remove even numbers - need 0', ineed: 0, fn: (item) => item % 2 === 0, result: new Set([]) }, -+ { id: 'remove even numbers - need 1', ineed: 1, fn: (item) => item % 2 === 0, result: new Set([2]) }, -+ { id: 'remove even numbers - need 2', ineed: 2, fn: (item) => item % 2 === 0, result: new Set([2, 4]) }, -+ { id: 'remove even numbers - need 10', ineed: 2, fn: (item) => item % 2 === 0, result: new Set([2, 4]) } -+ ]; -+ for (const { id, ineed, fn, result } of testCases) { -+ // eslint-disable-next-line no-loop-func -+ it(id, () => { -+ expect(removeItemsFromSet(s, ineed, fn)).to.deep.equal(result); -+ }); -+ } -+ }); -+ describe('removeFirstNItemsFromSet', function () { -+ let s; -+ this.beforeEach(() => { -+ s = new Set([1, 2, 3, 4, 5]); -+ }); -+ const testCases = [ -+ { id: 'remove first 0 item', ineed: 0, result: new Set([]) }, -+ { id: 'remove first 1 item', ineed: 1, result: new Set([1]) }, -+ { id: 'remove first 2 item', ineed: 2, result: new Set([1, 2]) }, -+ { id: 'remove first 10 item', ineed: 10, result: new Set([1, 2, 3, 4, 5]) } -+ ]; -+ for (const { id, ineed, result } of testCases) { -+ // eslint-disable-next-line no-loop-func -+ it(id, () => { -+ expect(removeFirstNItemsFromSet(s, ineed)).to.deep.equal(result); -+ }); -+ } -+ }); -+}); -+//# sourceMappingURL=set.test.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js.map -new file mode 100644 -index 0000000..dff2ad3 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/unit/set.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"set.test.js","sourceRoot":"","sources":["../../../test/unit/set.test.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts -new file mode 100644 -index 0000000..2a71f79 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts -@@ -0,0 +1,32 @@ -+import { GossipSub, type GossipSubComponents, type GossipsubOpts } from '../../src/index.js'; -+import type { TypedEventTarget, Libp2pEvents, PubSub } from '@libp2p/interface'; -+export interface CreateComponentsOpts { -+ init?: Partial; -+ pubsub?: { -+ new (opts?: any): PubSub; -+ }; -+} -+export interface GossipSubTestComponents extends GossipSubComponents { -+ events: TypedEventTarget; -+} -+export interface GossipSubAndComponents { -+ pubsub: GossipSub; -+ components: GossipSubTestComponents; -+} -+export declare const createComponents: (opts: CreateComponentsOpts) => Promise; -+export declare const createComponentsArray: (opts?: CreateComponentsOpts & { -+ number: number; -+ connected?: boolean; -+}) => Promise; -+export declare const connectPubsubNodes: (a: GossipSubAndComponents, b: GossipSubAndComponents) => Promise; -+export declare const connectAllPubSubNodes: (components: GossipSubAndComponents[]) => Promise; -+/** -+ * Connect some gossipsub nodes to others, ensure each has num peers -+ * -+ * @param {GossipSubAndComponents[]} gss -+ * @param {number} num - number of peers to connect -+ */ -+export declare function connectSome(gss: GossipSubAndComponents[], num: number): Promise; -+export declare function sparseConnect(gss: GossipSubAndComponents[]): Promise; -+export declare function denseConnect(gss: GossipSubAndComponents[]): Promise; -+//# sourceMappingURL=create-pubsub.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts.map -new file mode 100644 -index 0000000..c45d061 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"create-pubsub.d.ts","sourceRoot":"","sources":["../../../test/utils/create-pubsub.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/E,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE;QAAE,KAAK,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAA;KAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,uBAAuB,CAAA;CACpC;AAED,eAAO,MAAM,gBAAgB,SAAgB,oBAAoB,KAAG,QAAQ,sBAAsB,CAoCjG,CAAA;AAED,eAAO,MAAM,qBAAqB,UAC1B,oBAAoB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KACnE,QAAQ,sBAAsB,EAAE,CAYlC,CAAA;AAED,eAAO,MAAM,kBAAkB,MAAa,sBAAsB,KAAK,sBAAsB,KAAG,QAAQ,IAAI,CAU3G,CAAA;AAED,eAAO,MAAM,qBAAqB,eAAsB,sBAAsB,EAAE,KAAG,QAAQ,IAAI,CAM9F,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAE,GAAG,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5F;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;AAED,wBAAsB,YAAY,CAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js -new file mode 100644 -index 0000000..7296d09 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js -@@ -0,0 +1,98 @@ -+import { setMaxListeners } from 'events'; -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { TypedEventEmitter, start } from '@libp2p/interface'; -+import { mockRegistrar, mockConnectionManager, mockNetwork } from '@libp2p/interface-compliance-tests/mocks'; -+import { defaultLogger } from '@libp2p/logger'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { PersistentPeerStore } from '@libp2p/peer-store'; -+import { MemoryDatastore } from 'datastore-core'; -+import { stubInterface } from 'ts-sinon'; -+import { GossipSub } from '../../src/index.js'; -+export const createComponents = async (opts) => { -+ const Ctor = opts.pubsub ?? GossipSub; -+ const privateKey = await generateKeyPair('Ed25519'); -+ const peerId = peerIdFromPrivateKey(privateKey); -+ const events = new TypedEventEmitter(); -+ const logger = defaultLogger(); -+ const components = { -+ privateKey, -+ peerId, -+ registrar: mockRegistrar(), -+ connectionManager: stubInterface(), -+ peerStore: new PersistentPeerStore({ -+ peerId, -+ datastore: new MemoryDatastore(), -+ events, -+ logger -+ }), -+ events, -+ logger -+ }; -+ components.connectionManager = mockConnectionManager(components); -+ const pubsub = new Ctor(components, opts.init); -+ await start(...Object.entries(components), pubsub); -+ mockNetwork.addNode(components); -+ try { -+ // not available everywhere -+ setMaxListeners(Infinity, pubsub); -+ } -+ catch { } -+ return { pubsub, components }; -+}; -+export const createComponentsArray = async (opts = { number: 1, connected: true }) => { -+ const output = await Promise.all(Array.from({ length: opts.number }).map(async (_, i) => createComponents({ ...opts, init: { ...opts.init, debugName: `libp2p:gossipsub:${i}` } }))); -+ if (opts.connected ?? false) { -+ await connectAllPubSubNodes(output); -+ } -+ return output; -+}; -+export const connectPubsubNodes = async (a, b) => { -+ const multicodecs = new Set([...a.pubsub.multicodecs, ...b.pubsub.multicodecs]); -+ const connection = await a.components.connectionManager.openConnection(b.components.peerId); -+ for (const multicodec of multicodecs) { -+ for (const topology of a.components.registrar.getTopologies(multicodec)) { -+ topology.onConnect?.(b.components.peerId, connection); -+ } -+ } -+}; -+export const connectAllPubSubNodes = async (components) => { -+ for (let i = 0; i < components.length; i++) { -+ for (let j = i + 1; j < components.length; j++) { -+ await connectPubsubNodes(components[i], components[j]); -+ } -+ } -+}; -+/** -+ * Connect some gossipsub nodes to others, ensure each has num peers -+ * -+ * @param {GossipSubAndComponents[]} gss -+ * @param {number} num - number of peers to connect -+ */ -+export async function connectSome(gss, num) { -+ for (let i = 0; i < gss.length; i++) { -+ let count = 0; -+ // merely do a Math.random() and check for duplicate may take a lot of time to run a test -+ // so we make an array of candidate peers -+ // initially, don't populate i as a candidate to connect: candidatePeers[i] = i + 1 -+ const candidatePeers = Array.from({ length: gss.length - 1 }, (_, j) => (j >= i ? j + 1 : j)); -+ while (count < num) { -+ const n = Math.floor(Math.random() * candidatePeers.length); -+ const peer = candidatePeers[n]; -+ await connectPubsubNodes(gss[i], gss[peer]); -+ // after connecting to a peer, update candidatePeers so that we don't connect to it again -+ for (let j = n; j < candidatePeers.length - 1; j++) { -+ candidatePeers[j] = candidatePeers[j + 1]; -+ } -+ // remove the last item -+ candidatePeers.splice(candidatePeers.length - 1, 1); -+ count++; -+ } -+ } -+} -+export async function sparseConnect(gss) { -+ await connectSome(gss, 3); -+} -+export async function denseConnect(gss) { -+ await connectSome(gss, Math.min(gss.length - 1, 10)); -+} -+//# sourceMappingURL=create-pubsub.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js.map -new file mode 100644 -index 0000000..8692d38 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/create-pubsub.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"create-pubsub.js","sourceRoot":"","sources":["../../../test/utils/create-pubsub.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts -new file mode 100644 -index 0000000..3c7aab7 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts -@@ -0,0 +1,7 @@ -+import type { GossipSubAndComponents } from './create-pubsub.js'; -+import type { GossipsubEvents } from '../../src/index.js'; -+import type { TypedEventTarget } from '@libp2p/interface'; -+export declare const checkReceivedSubscription: (node: GossipSubAndComponents, peerIdStr: string, topic: string, peerIdx: number, timeout?: number) => Promise; -+export declare const checkReceivedSubscriptions: (node: GossipSubAndComponents, peerIdStrs: string[], topic: string, timeout?: number) => Promise; -+export declare const awaitEvents: = GossipsubEvents>(emitter: TypedEventTarget, event: keyof Events, number: number, timeout?: number) => Promise; -+//# sourceMappingURL=events.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts.map -new file mode 100644 -index 0000000..a5ecee9 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../test/utils/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAA;AAEjF,eAAO,MAAM,yBAAyB,SAC9B,sBAAsB,aACjB,MAAM,SACV,MAAM,WACJ,MAAM,uBAEd,QAAQ,IAAI,CA0BX,CAAA;AAEJ,eAAO,MAAM,0BAA0B,SAC/B,sBAAsB,cAChB,MAAM,EAAE,SACb,MAAM,uBAEZ,QAAQ,IAAI,CAcd,CAAA;AAED,eAAO,MAAM,WAAW,kEACb,iBAAiB,MAAM,CAAC,SAC1B,MAAM,MAAM,UACX,MAAM,uBAEb,QAAQ,IAAI,CAiBd,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js -new file mode 100644 -index 0000000..85f468e ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js -@@ -0,0 +1,55 @@ -+import { expect } from 'aegir/chai'; -+import pWaitFor from 'p-wait-for'; -+export const checkReceivedSubscription = async (node, peerIdStr, topic, peerIdx, timeout = 1000) => new Promise((resolve, reject) => { -+ const event = 'subscription-change'; -+ const t = setTimeout(() => { reject(new Error(`Not received subscriptions of psub ${peerIdx}, topic ${topic}`)); }, timeout); -+ const cb = (evt) => { -+ const { peerId, subscriptions } = evt.detail; -+ // console.log('@@@ in test received subscriptions from peer id', peerId.toString()) -+ if (peerId.toString() === peerIdStr && subscriptions[0].topic === topic && subscriptions[0].subscribe) { -+ clearTimeout(t); -+ node.pubsub.removeEventListener(event, cb); -+ if (Array.from(node.pubsub.getSubscribers(topic)) -+ .map((p) => p.toString()) -+ .includes(peerIdStr)) { -+ resolve(); -+ } -+ else { -+ reject(Error('topics should include the peerId')); -+ } -+ } -+ }; -+ node.pubsub.addEventListener(event, cb); -+}); -+export const checkReceivedSubscriptions = async (node, peerIdStrs, topic, timeout = 5000) => { -+ const recvPeerIdStrs = peerIdStrs.filter((peerIdStr) => peerIdStr !== node.components.peerId.toString()); -+ const promises = recvPeerIdStrs.map(async (peerIdStr, idx) => checkReceivedSubscription(node, peerIdStr, topic, idx, timeout)); -+ await Promise.all(promises); -+ for (const str of recvPeerIdStrs) { -+ expect(Array.from(node.pubsub.getSubscribers(topic)).map((p) => p.toString())).to.include(str); -+ } -+ await pWaitFor(() => { -+ return recvPeerIdStrs.every((peerIdStr) => { -+ return (node.pubsub).streamsOutbound.has(peerIdStr); -+ }); -+ }); -+}; -+export const awaitEvents = async (emitter, event, number, timeout = 30000) => { -+ return new Promise((resolve, reject) => { -+ let counter = 0; -+ const t = setTimeout(() => { -+ emitter.removeEventListener(event, cb); -+ reject(new Error(`${counter} of ${number} '${String(event)}' events received after ${timeout}ms`)); -+ }, timeout); -+ const cb = () => { -+ counter++; -+ if (counter >= number) { -+ clearTimeout(t); -+ emitter.removeEventListener(event, cb); -+ resolve(); -+ } -+ }; -+ emitter.addEventListener(event, cb); -+ }); -+}; -+//# sourceMappingURL=events.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js.map -new file mode 100644 -index 0000000..8e6c4af ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/events.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../test/utils/events.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts -new file mode 100644 -index 0000000..1060a53 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts -@@ -0,0 +1,7 @@ -+import type { RPC } from '../../src/message/rpc.js'; -+import type { TopicStr } from '../../src/types.js'; -+import type { PeerId } from '@libp2p/interface'; -+export * from './msgId.js'; -+export declare const createPeerId: () => Promise; -+export declare function makeTestMessage(i: number, topic: TopicStr, from?: PeerId): RPC.Message; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts.map -new file mode 100644 -index 0000000..89a9a0e ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/utils/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,YAAY,CAAA;AAE1B,eAAO,MAAM,YAAY,QAAa,QAAQ,MAAM,CAInD,CAAA;AAKD,wBAAgB,eAAe,CAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAOvF"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js -new file mode 100644 -index 0000000..d948edf ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js -@@ -0,0 +1,19 @@ -+import { generateKeyPair } from '@libp2p/crypto/keys'; -+import { peerIdFromPrivateKey } from '@libp2p/peer-id'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+export * from './msgId.js'; -+export const createPeerId = async () => { -+ const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519')); -+ return peerId; -+}; -+let seq = 0n; -+const defaultPeer = uint8ArrayFromString('12D3KooWBsYhazxNL7aeisdwttzc6DejNaM48889t5ifiS6tTrBf', 'base58btc'); -+export function makeTestMessage(i, topic, from) { -+ return { -+ seqno: uint8ArrayFromString((seq++).toString(16).padStart(16, '0'), 'base16'), -+ data: Uint8Array.from([i]), -+ from: from?.toMultihash().bytes ?? defaultPeer, -+ topic -+ }; -+} -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js.map -new file mode 100644 -index 0000000..e1d182b ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../test/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAK5E,cAAc,YAAY,CAAA;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAqB,EAAE;IACtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;IAErE,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,IAAI,GAAG,GAAG,EAAE,CAAA;AACZ,MAAM,WAAW,GAAG,oBAAoB,CAAC,sDAAsD,EAAE,WAAW,CAAC,CAAA;AAE7G,MAAM,UAAU,eAAe,CAAE,CAAS,EAAE,KAAe,EAAE,IAAa;IACxE,OAAO;QACL,KAAK,EAAE,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;QAC7E,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,WAAW;QAC9C,KAAK;KACN,CAAA;AACH,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts -new file mode 100644 -index 0000000..4f1d17c ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts -@@ -0,0 +1,5 @@ -+import type { RPC } from '../../src/message/rpc.js'; -+export declare const getMsgId: (msg: RPC.Message) => Uint8Array; -+export declare const getMsgIdStr: (msg: RPC.Message) => string; -+export declare const fastMsgIdFn: (msg: RPC.Message) => string; -+//# sourceMappingURL=msgId.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts.map -new file mode 100644 -index 0000000..08d2530 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"msgId.d.ts","sourceRoot":"","sources":["../../../test/utils/msgId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAEnD,eAAO,MAAM,QAAQ,QAAS,IAAI,OAAO,KAAG,UAO3C,CAAA;AAED,eAAO,MAAM,WAAW,QAAS,IAAI,OAAO,KAAG,MAA0C,CAAA;AAEzF,eAAO,MAAM,WAAW,QAAS,IAAI,OAAO,KAAG,MAEe,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js -new file mode 100644 -index 0000000..9b2dac8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js -@@ -0,0 +1,16 @@ -+import { digest } from '@chainsafe/as-sha256'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { messageIdToString } from '../../src/utils/messageIdToString.js'; -+export const getMsgId = (msg) => { -+ const from = msg.from != null ? msg.from : new Uint8Array(0); -+ const seqno = msg.seqno instanceof Uint8Array ? msg.seqno : uint8ArrayFromString(msg.seqno ?? ''); -+ const result = new Uint8Array(from.length + seqno.length); -+ result.set(from, 0); -+ result.set(seqno, from.length); -+ return result; -+}; -+export const getMsgIdStr = (msg) => messageIdToString(getMsgId(msg)); -+export const fastMsgIdFn = (msg) => -+// eslint-disable-next-line @typescript-eslint/ban-ts-comment -+msg.data != null ? messageIdToString(digest(msg.data)) : '0'; -+//# sourceMappingURL=msgId.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js.map b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js.map -new file mode 100644 -index 0000000..e59402f ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/test/utils/msgId.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"msgId.js","sourceRoot":"","sources":["../../../test/utils/msgId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAGxE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAgB,EAAc,EAAE;IACvD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAU,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAU,EAAE;AACtD,6DAA6D;AAC7D,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/dist/tsconfig.tsbuildinfo b/node_modules/@chainsafe/libp2p-gossipsub/dist/tsconfig.tsbuildinfo -new file mode 100644 -index 0000000..147c94d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/dist/tsconfig.tsbuildinfo -@@ -0,0 +1 @@ -+{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/config.ts","../src/constants.ts","../src/errors.ts","../node_modules/multiformats/dist/src/bases/interface.d.ts","../node_modules/multiformats/dist/src/block/interface.d.ts","../node_modules/multiformats/dist/src/hashes/interface.d.ts","../node_modules/multiformats/dist/src/link/interface.d.ts","../node_modules/multiformats/dist/src/cid.d.ts","../node_modules/uint8arraylist/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/keys/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-id/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/dns-over-https.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/dns-json-over-https.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/index.d.ts","../node_modules/progress-events/dist/src/index.d.ts","../node_modules/@multiformats/dns/dist/src/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/resolvers/dnsaddr.d.ts","../node_modules/@multiformats/multiaddr/dist/src/resolvers/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../node_modules/it-stream-types/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-info/index.d.ts","../node_modules/@libp2p/interface/dist/src/content-routing/index.d.ts","../node_modules/@libp2p/interface/dist/src/event-target.d.ts","../node_modules/@libp2p/interface/dist/src/metrics/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-routing/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-store/index.d.ts","../node_modules/@libp2p/interface/dist/src/startable.d.ts","../node_modules/@libp2p/interface/dist/src/stream-handler/index.d.ts","../node_modules/@libp2p/interface/dist/src/topology/index.d.ts","../node_modules/@libp2p/interface/dist/src/stream-muxer/index.d.ts","../node_modules/@libp2p/interface/dist/src/transport/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection-encrypter/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection-gater/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-discovery/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-store/tags.d.ts","../node_modules/it-pushable/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/pubsub/index.d.ts","../node_modules/@libp2p/interface/dist/src/record/index.d.ts","../node_modules/@libp2p/interface/dist/src/errors.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@libp2p/interface/dist/src/events.d.ts","../node_modules/@libp2p/interface/dist/src/index.d.ts","../node_modules/@libp2p/peer-id/dist/src/index.d.ts","../node_modules/it-length-prefixed/dist/src/encode.d.ts","../node_modules/it-reader/dist/src/index.d.ts","../node_modules/it-length-prefixed/dist/src/decode.d.ts","../node_modules/it-length-prefixed/dist/src/index.d.ts","../node_modules/it-pipe/dist/src/index.d.ts","../node_modules/multiformats/dist/src/hashes/digest.d.ts","../src/message/decoderpc.ts","../node_modules/protons-runtime/dist/src/codec.d.ts","../node_modules/protons-runtime/dist/src/decode.d.ts","../node_modules/protons-runtime/dist/src/encode.d.ts","../node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../node_modules/protons-runtime/dist/src/codecs/message.d.ts","../node_modules/protons-runtime/dist/src/utils/reader.d.ts","../node_modules/protons-runtime/dist/src/utils/writer.d.ts","../node_modules/protons-runtime/dist/src/index.d.ts","../src/message/rpc.ts","../src/types.ts","../src/message-cache.ts","../src/score/peer-score-thresholds.ts","../src/metrics.ts","../src/score/peer-score-params.ts","../src/utils/set.ts","../src/score/peer-stats.ts","../src/score/compute-score.ts","../node_modules/denque/index.d.ts","../src/score/message-deliveries.ts","../src/score/peer-score.ts","../src/score/index.ts","../src/score/scoremetrics.ts","../src/stream.ts","../src/tracer.ts","../node_modules/@libp2p/crypto/dist/src/hmac/index.d.ts","../node_modules/multiformats/dist/src/bytes.d.ts","../node_modules/multiformats/dist/src/hashes/hasher.d.ts","../node_modules/multiformats/dist/src/varint.d.ts","../node_modules/multiformats/dist/src/codecs/interface.d.ts","../node_modules/multiformats/dist/src/interface.d.ts","../node_modules/multiformats/dist/src/index.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/interface.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/ecdh/index.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.d.ts","../node_modules/@libp2p/crypto/dist/src/keys/index.d.ts","../node_modules/@libp2p/crypto/dist/src/pbkdf2.d.ts","../node_modules/@libp2p/crypto/dist/src/random-bytes.d.ts","../node_modules/@libp2p/crypto/dist/src/index.d.ts","../node_modules/uint8arrays/dist/src/concat.d.ts","../node_modules/multiformats/dist/src/codecs/json.d.ts","../node_modules/multiformats/dist/src/codecs/raw.d.ts","../node_modules/multiformats/dist/src/bases/base.d.ts","../node_modules/multiformats/dist/src/basics.d.ts","../node_modules/uint8arrays/dist/src/util/bases.d.ts","../node_modules/uint8arrays/dist/src/from-string.d.ts","../node_modules/uint8arrays/dist/src/to-string.d.ts","../src/utils/buildrawmessage.ts","../src/utils/create-gossip-rpc.ts","../src/utils/shuffle.ts","../src/utils/messageidtostring.ts","../src/utils/publishconfig.ts","../src/utils/index.ts","../node_modules/@libp2p/pubsub/dist/src/utils.d.ts","../node_modules/multiformats/dist/src/hashes/sha2.d.ts","../src/utils/msgidfn.ts","../node_modules/@chainsafe/netmask/dist/src/util.d.ts","../node_modules/@chainsafe/netmask/dist/src/ip.d.ts","../node_modules/@chainsafe/netmask/dist/src/ipnet.d.ts","../node_modules/@chainsafe/netmask/dist/src/cidr.d.ts","../node_modules/@chainsafe/netmask/dist/src/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/convert.d.ts","../src/utils/multiaddr.ts","../src/utils/time-cache.ts","../node_modules/@libp2p/interface-internal/dist/src/address-manager/index.d.ts","../node_modules/@libp2p/peer-collections/dist/src/map.d.ts","../node_modules/@libp2p/peer-collections/dist/src/set.d.ts","../node_modules/@libp2p/peer-collections/dist/src/list.d.ts","../node_modules/@libp2p/peer-collections/dist/src/filter.d.ts","../node_modules/@libp2p/peer-collections/dist/src/tracked-map.d.ts","../node_modules/@libp2p/peer-collections/dist/src/tracked-set.d.ts","../node_modules/@libp2p/peer-collections/dist/src/tracked-list.d.ts","../node_modules/@libp2p/peer-collections/dist/src/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/connection-manager/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/random-walk/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/record/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/registrar/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/transport-manager/index.d.ts","../node_modules/@libp2p/interface-internal/dist/src/index.d.ts","../src/index.ts","../src/message/index.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection-gater.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection-manager.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/multiaddr-connection.d.ts","../node_modules/@libp2p/logger/dist/src/index.d.ts","../node_modules/@libp2p/utils/dist/src/abstract-stream.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/muxer.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/registrar.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/upgrader.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/duplex.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/metrics.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-as-promised/index.d.ts","../node_modules/chai-parentheses/index.d.ts","../node_modules/@types/chai-subset/index.d.ts","../node_modules/chai-bites/index.d.ts","../node_modules/@types/chai-string/index.d.ts","../node_modules/aegir/dist/utils/chai.d.ts","../node_modules/p-defer/index.d.ts","../node_modules/p-timeout/index.d.ts","../node_modules/p-event/index.d.ts","../node_modules/p-wait-for/index.d.ts","../node_modules/interface-datastore/dist/src/key.d.ts","../node_modules/interface-datastore/node_modules/interface-store/dist/src/errors.d.ts","../node_modules/interface-datastore/node_modules/interface-store/dist/src/index.d.ts","../node_modules/interface-datastore/dist/src/index.d.ts","../node_modules/@libp2p/peer-store/dist/src/index.d.ts","../node_modules/datastore-core/dist/src/errors.d.ts","../node_modules/datastore-core/dist/src/shard.d.ts","../node_modules/interface-store/dist/src/index.d.ts","../node_modules/datastore-core/dist/src/base.d.ts","../node_modules/datastore-core/dist/src/memory.d.ts","../node_modules/datastore-core/dist/src/keytransform.d.ts","../node_modules/datastore-core/dist/src/sharding.d.ts","../node_modules/datastore-core/dist/src/mount.d.ts","../node_modules/datastore-core/dist/src/tiered.d.ts","../node_modules/datastore-core/dist/src/namespace.d.ts","../node_modules/datastore-core/dist/src/index.d.ts","../node_modules/@types/sinonjs__fake-timers/index.d.ts","../node_modules/@types/sinon/index.d.ts","../node_modules/ts-sinon/dist/index.d.ts","../test/utils/create-pubsub.ts","../test/2-nodes.spec.ts","../node_modules/@chainsafe/as-sha256/lib/hashobject.d.ts","../node_modules/@chainsafe/as-sha256/lib/wasm.d.ts","../node_modules/@chainsafe/as-sha256/lib/sha256.d.ts","../node_modules/@chainsafe/as-sha256/lib/index.d.ts","../test/utils/msgid.ts","../test/accept-from.spec.ts","../test/allowedtopics.spec.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/index.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/pubsub/index.d.ts","../test/compliance.spec.ts","../node_modules/eventemitter3/index.d.ts","../node_modules/p-queue/dist/queue.d.ts","../node_modules/p-queue/dist/options.d.ts","../node_modules/p-queue/dist/priority-queue.d.ts","../node_modules/p-queue/dist/index.d.ts","../node_modules/@libp2p/pubsub/dist/src/index.d.ts","../node_modules/@libp2p/floodsub/dist/src/cache.d.ts","../node_modules/@libp2p/floodsub/dist/src/config.d.ts","../node_modules/@libp2p/floodsub/dist/src/index.d.ts","../node_modules/delay/index.d.ts","../node_modules/@types/retry/index.d.ts","../node_modules/p-retry/index.d.ts","../test/floodsub.spec.ts","../test/gossip.spec.ts","../test/heartbeat.spec.ts","../test/mesh.spec.ts","../test/utils/index.ts","../test/message-cache.spec.ts","../test/peer-score-params.spec.ts","../test/peer-score-thresholds.spec.ts","../test/peer-score.spec.ts","../test/scoremetrics.spec.ts","../test/signature-policy.spec.ts","../test/time-cache.spec.ts","../test/tracer.spec.ts","../node_modules/@dapplion/benchmark/lib/utils/mochacliexports.d.ts","../node_modules/@dapplion/benchmark/lib/types.d.ts","../node_modules/@dapplion/benchmark/lib/mochaplugin/runbenchfn.d.ts","../node_modules/@dapplion/benchmark/lib/mochaplugin/index.d.ts","../node_modules/@dapplion/benchmark/lib/index.d.ts","../node_modules/abortable-iterator/dist/src/abort-error.d.ts","../node_modules/abortable-iterator/dist/src/index.d.ts","../node_modules/it-all/dist/src/index.d.ts","../test/benchmark/asynciterable.test.ts","../test/utils/events.ts","../test/benchmark/index.test.ts","../test/benchmark/protobuf.test.ts","../test/benchmark/time-cache.test.ts","../node_modules/uint8arrays/dist/src/equals.d.ts","../test/e2e/go-gossipsub.spec.ts","../test/unit/set.test.ts","../node_modules/keyv/src/index.d.ts","../node_modules/@types/http-cache-semantics/index.d.ts","../node_modules/@types/responselike/index.d.ts","../node_modules/@types/cacheable-request/index.d.ts","../node_modules/@types/ms/index.d.ts","../node_modules/@types/debug/index.d.ts","../node_modules/@types/dns-packet/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/keyv/index.d.ts","../node_modules/@types/linkify-it/build/index.cjs.d.ts","../node_modules/@types/linkify-it/index.d.ts","../node_modules/@types/mdurl/build/index.cjs.d.ts","../node_modules/@types/mdurl/index.d.ts","../node_modules/@types/markdown-it/dist/index.cjs.d.ts","../node_modules/@types/markdown-it/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/mocha/index.d.ts","../node_modules/@types/murmurhash3js-revisited/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/sinon-chai/index.d.ts","../node_modules/@types/strip-bom/index.d.ts","../node_modules/@types/strip-json-comments/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"db88e2781075c7bca86634724f38a132de718ddf3a470a3a2cdb182f4364af9e","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"8dd05b63a186702e76716cb824a892741fe274c82ec741669f6704e336b31bec","signature":"87c73268165bf20f01c101ac785e8a9d1d95ff203d05d3548a6c49952597e321"},{"version":"11f59b2fe369086ae532118462306d4d8622d2ceada716e834adfa26b456f914","signature":"ea438e982614f14ddf033f957aec98c89f09d9979734eee158f1d74c1a555f70"},{"version":"05dd3e847e286f95abb3a15d150acd3d54d5641baa75bf3dc042209f7cd6d2fe","signature":"0cb9fd85715d6d6e8a6cb449e73262f9b96654a8d7dc7ff6d42b7f6c3d0a7664"},"4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","370079895f1acdd4bb5194a403c85bf60cfbb2654bced9430a6c7210e7246be8","90240231e730deed31569f6c686766a538e4a024bbc33ea1738fe924f477ba61","552223520e823223ee13c5764e9b69b1819c985818a8bcda435d8d1dbd909bee","49b7c3ddd683c09aa437dd92681699387441f522524b14d2331ce494a9bf2f27","d35b5db21a04a45ae6323c4d4b25acc983dfe2870fc670fd05249eb19d839a5e","637b97f727f21c07a73f09130dc7bf5ac94d04511b179b5eb3e9a4d85a16147a","51720c0374406647b50f84f24c7b623f1d01e1955f7e929da7c5c0629b4390ad","5212dd78d1d63ab33332c8846a0ea5ce248159e74033cde16de48373036b4704","954b3c04ee9f94ca1e262f3e5a6e833b0da0066514b3d4b97b92b7f0c85f8700","a2fc9ce1ae5bed7068d701d8aeebf13321de0f42c217dc2e10f1622dcaa53a7f","8e81f220cb935d551e88cff11541d5e89d3a3494a52fe6247e98016a9dbd4c2d","6b2576a04253626ba41b7dc7ec5977bec07f3b6952b16249d9fa8a3a0d79901c","9de17491f2bfbccea92500e174079d53bdedae34dbebe5d4a12a06ab09814710","e88481085a8576fa52efc913e631c1a833d16179486469b8538d8c4fab2f7381","aec68502c8f4ffaecb4440b37363473582fec0bfee4fb8668a87daa7f700f708","d71577e78c7a4257074aaf82f595724175210c89e8b467ef82f949a6cbd891bc","cf548af8b03cbbc79fdc4f357b5560f618c6d2f68c8688e6eb759c3c11d962c3","c84146dbc9d2e5f43d2cbf15485a4eabf90219dbb66c0d481f20f12d3851bffc","9dc5a1d8f09f9faf21207253a92b461190d59c81ee12c9ac612630e699749990","99c24f331c9f4e75a779b9a988e942442db3cf29923ceb820d3bdd4ed1edfef2","25b1f20d5868ef9ef18132f7dd76b40b7038688ff7c56c58930537a8dff9f231","4105fa0ecfaffb578c8051c3de22e8c984191aac8de14641ee99beed9c5e5bd9","af080582e94b991e099383c1da15f189ca240c12ff5e2338344b7263ab10e305","8c92080253bac0506d82b83d555a029582595f0944abb349954ea732322baa5c","45d4c8d63a67224af62bebff18da32bb2817e306c9fd9e5d1dac6ef8d2da7ead","230eb449f719119cab1728252f20ecdd36d7a20cef659e4a51ada1a232a8aaad","5f264ca312dfcbf23917febc8d7a73ef5be9c248af605939de1c7c4129aa65f2","c1c7b50665ce0b8aa4b95f3843167ac7ac25d1f724d77c2a07b597abb9cf394c","1bf687d978bdd6d5aff10b9eb0ff0695179f8594d4446946fd0182d6d25fa433","ec26029e3a4eccf8ee79d5c76093fbe928cedc83d813fca9be4f055d61530013","e0ff6a627dfbfb9d32e49f34879a763680e37758c509ddd809cb316b96f34390","2113d72680c7ddad6d3b6f70a29432a35c074c94ec6823a7c16ccd69847d965c","c8ffd61bf2db2e7bccb996dd70c9499805cb338f1b1c781987e38ba99dd5b296","55e5a976b594dc02f054860fb59a5299872a5b3c8c90e96733a5c9c9d4ed1fb8","fac83d4c6898d5bf90c508cc84409ded40fdc14611cf42d7fb750fb2c7847979","1668310e691181966c371fce881c88cb1c2e65ac832ef5470434ad926998da2f","4f1eb6b9c2b666278e09019281953fc4ecadad3b2ba2781b2602445743eaaeca","b0c64c942cb2e55bf49e513dfe46ae15b85754829d6639d1ab69a56c388cc2eb","2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"c75ac0682b74face8d051331544f633445f5d203dc773d579fa109a7cbee9f06","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"e8dbde089a4b9d5b2124764ebbcfe577ffcb3a1df5cfb512a504c708ddfc7262","affectsGlobalScope":true},"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"f85c06e750743acf31f0cfd3be284a364d469761649e29547d0dd6be48875150","affectsGlobalScope":true},"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true},"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"452e8a437aa57fe832dece2a5d3ea8dd0ab1de03ca778d09798c56ece0a29e80","affectsGlobalScope":true},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633",{"version":"73aa178e8fb1449ef3666093d8dca25f96302a80ee45f8ff027df8e4792bf9fd","affectsGlobalScope":true},"2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"f61ec7355ade6c4cffc2b121bab7bd6882a262c44b498f4fedbbbc8c8830a8cd","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"21fcdcb618236f0feaca7e511e2da10c19970f86e09c934cef2d45b340ad92b5","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true},"b33379077284c9e55d2410d814b71b15522c5f71f9e93e15a8c3c41d463b00f6",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","c663a7e4ee2cb54d99cf095479a5bcf1dd18d762ffdfa038aa1b2d79b070b0d7","5463c98206a890ea7a759fbcc97b0c042ab1a740b3e24037f7fbf40bae70a3c5","5bccd6ffc11fed820a432ac819200e6af38f8c3625e6eae0cf0f07ca85856392","f30cfcfff28ee8f87563225b47239bb07b9b11edd09dda0ea6499b18cca1a30e","0edb8a97ead1fefd337458449050857e80740e31a3f76cffa656262f4e651a50","6d2d14bb016a70a5ee1afb1cc7718d4369fb645979c725454c688f791ac7218f","8d7622e53b676dfd20828ba435649c217a5d9dee9cdc3713ee808fa2140513da","56558ae167446acf230ea2cc072a835309a37ae63d286b484308afd8c504c2d6","8510595d2ca2660e6407be65d8bf95f0c53877dbb812e269cdd980fc34de5f78",{"version":"d9411d8047fa05102fa6a7ac24678d912d7fa8cf5f977543cc1c68b6879db77d","signature":"7ad3e0aaeb840047fa4711306188cac803514091f251b6baecb9b2aacf15b976"},"6d268309f0e15dd820b2df9806234166554cb4e2fe00d11737adcb4e5489f700","58cf96187feb10cc8ad3bb080871cd30888ef63bc5db131f11458850ef8f6245","9102986ff52326a2016e8cddc1cf3092f0808ac916dcc8dc2d2c7195cd181987","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","01f20dac9dc14f0d306e5d1215c5c1c3b4d1805905e60ae92fabac4031eae7da","9ceec2a882368c0160a8a3879aa0efce0fb985751fc23ff6191006030969cfa4","cad5d6451789234434c28dd2d6a8267b0d64c479b1ad267321faa31ba90d570b","6516fc98fa10b0cb22c7e332bacea4a7ea80257e113f6cdddd924d03bfde218e",{"version":"bfa4bb83799e6951616f1c9ddcdf8667fb2fcf10d916e511b483a7629d826b90","signature":"3cd33c37432c2de7bdd9f1d48b3ea4fd03afad4969cfc5ba88d81e6ed03f432c"},{"version":"bb3c6e08fd9ba9ecdff61464835611a6f4e3cfc481a93dbcca54955f1520b497","signature":"6db29cf7af1d68c8194d98f1c444cea3b30a2c65deda3428452efaa05717b81d"},{"version":"b372f7c0506cdd643db284d1236961d64af030b3620d5d24a37bd2838432294e","signature":"561ef05d7e369040c28800d878d7e6461af62e459460263e911d508f319c8d5d"},{"version":"a33d38497edafe33166b68a9a66b66b940370aa86d34e2a404a031af6abc2e0a","signature":"a1b60bd2328318dcbec30bdf529dad31a13315ff2df60c8bd71630c58a575b06"},{"version":"13cfe6635f9c03a7e6cf8a2292bcb958a5472b61f8571b13d344223fa3b55341","signature":"a399dd9b73e4bbfbed2ad1c1259d707f5f147f40dc5e3eeb541bf0bf2da42b25"},{"version":"ba761e7d79bacd46b8492fa7853c2f8f5f689cec8292f41ab6fa15beeb166a39","signature":"8cc6a35806cd10d448b0f2ab01fe0b6194ca57fdaced2d71781b68e83c55bd88"},{"version":"8bcf62f57052931576536b09b50c9f1e777b0cbb87ccdc6afb1a53ec8517cca1","signature":"8f364fec0ef20506aa9cf00b5cd8b620c1c0389687b11a3a32b0b5d4716ad894"},{"version":"438a50f997e321d98f7f6b46407e2a46acc5de9550569ed2d82ad3245bf83548","signature":"5d11703e2c5d4dbe00bbe79f3bc864d178cf8d6ebccc2d1448ea29e93654f029"},{"version":"0b188566ea6bb7f4251794faba6d0534505f75e08af589c5ce2497a34435c56e","signature":"f4e82c91aac3b61f3ad04f11a44c5b79f724ff8a09281d0afa24a6624633ff25"},"ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202",{"version":"f27753c06cdb9072f8ff706d23c24bfabb0224e575debf10ea01b7c1efe1cf1c","signature":"7b8b9017156ef8bf3bbe42785fac8956e5c9869f4a494536d7f548a7c1c7d98a"},{"version":"1c8dbedbe10722901b2da628b22a26921b8d1b11bfaaa220117850263cabba6f","signature":"07c34d1f83dfc5746de4229e01f0cb4d388a9f128eab6beadb4ae1621ebb87c6"},{"version":"a8985c08f974af3ba240ad89d4a2e483678fdfa3ed0d2741a6e9ed67d57d12d4","signature":"763bb8df872cbb8783e29e19bd7a1dea0f88f7fd7398343af38be8509a65df82"},{"version":"a031e8f05e3d040582f30fdf02a2b92dcee98ec44adb1a974a27ea47b7f46561","signature":"1950f058bfb5c505c748f9282d279455393e01b4c8670e7cc550d4f05613f981"},{"version":"4aab28c4bd16b397705467cce237518b886147480bedf08416294ea503e2728e","signature":"372b3681eb9618821c0e0e10bcc775b838e45b51912b8998bc5ba035100dc9e5"},{"version":"2ea09bfb3c0bc2a8f2dde6bd453b616d03a4a0372e8de6ba41a163a5015cc97e","signature":"c286b410193495d067668bcdbd13ea3f3a39001edff02edee248babf2652e563"},"18e2ed308bb90cde2d3d2b4ed6de12abe41b6f73e321616176b7f258de3c2774","929fc31f7523aaa1d19735b77e637af06e58d76007648ec088ecfbec1521cbfe","a6eb23f2a83113ce0ab7203bfda2be0888720f8d694a20abaef83b9f62832061","363dca5004ac5a3d9c2bba12812b97a64461911762f0b8f9320a8856ec53bcad","1447d46bff9e7c5c77da14515a7456ea5e919ce6e28f5e6746edf99818e4be47","557b8c7481296f4b7ed362320f3bbb40bb87404edf880c81224f365a8d1e17f3","283ed3d075bf7d3e8793f63b2a52f475ed84d95b7b6351c5d5bcc6c49d4b845b","7a6f74294b8fb90f5e3832be21e25898dd81b2a1adc36dda6929813ba4135311","3f1370424c252aed11747282fc619f04497e426f63917bf2182fd46d51adc58a","5d40e6a7071d0d1e6e558e17214ff786ecb3ea73e31b25a88c2cbe2435fa1252","9e1d4141a748616ed5138f4c01853738a6e06b24c92520aff77a6b0deadcf431","60cbc38a9b402c14c388a7254781752b279017b3adeb94b840dcbf4872a6a410","3d2ec84143e6462a786b5d9ecf06f4f6f67a59a1f16c5a3a5e41721ba8478b7f","96b8f393e636547f0477e387138cd7ca9a7c556343b89f446cfc5672dee5e643","2e34b7e7c07624978db18b34c8a528928a7c24bc4b047add3e9d90bdc49e267f","ba3f6f0ee47f46cdce55620aec5726de80e92a930982634afe9918c114c38f0b","6f38045547cdfd54ec19abcd943cace72c775fde739c5e0e1d917cf3030c16b5","6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","bd4c741820ec3574b7ed3b782c8d78034d6e4631d11997e701e6b955b86a87c1","e2dd36a524ea5b13de1ed104ede9cea79696588175c1df1940d6a29113a4aee0","ac63a01fcac70315fc9b416e9a57e568b18032c7cfcaa314e1751f03ef71286f","a878d4c7237a7af50e96534295fcf723134d70cbb1e9bfd8365266b912aee6ec",{"version":"74d37a17c3cdb67e03ede296c123bb0a4590f64614b6a303c857a50c76fd1f48","signature":"d5dc186100e52b4b8f97c9d09c6462cf6fa359a7d62d2403ebd596e843f68271"},{"version":"d26ee30a8f7c1bfe0b9954618224c24412832c8a91add7aa80d6fdf2a0a7745a","signature":"387e1f9577d2a83aca689b6abf6e3e86abae87f578e8788635baeb675f13e1df"},{"version":"51cb9f385c5ae02d228005eaabded3a1e9b51ee78cbae0a4f172f6ff9c3c8fc0","signature":"2ad4a77b1a4c9215f0391871d4da4afc3f23b1a813147a13ca9b3ad8ff85bd85"},{"version":"579945f69bb73bdbc126af5b84d68012733084dfb2e81bf178338e4567c46838","signature":"f88e179eb581dd7c9e8da094cd3505e7708ec9f973854b5d3c60ecaf3ebaa6b9"},{"version":"a6219ab754d1c77302f2fc9fe3437aa0dff7ba7dc614e38691f9d47e838536cc","signature":"85d9b79d06f74b9da7c0572065e3e71f5184e88523049dc61f2f31e1570fbb5f"},{"version":"0d2671b56be9f27055595b2f52a2b5ea130dbab296e0963a63aadc8f7416a5b3","signature":"27d091afaec0fb41ee0186f689a2f4be48f898600ee063a296b04a8cfea8429e"},"cc9ac6b245413dc56348b6c588ef2371e5d2f2179c62f272880ac41d36fba11f","130e4655e30a6d7a8004566642e24bf3016b5e5a2e5dcd72c0a61b663f7df711",{"version":"612f4324198c98cc596d05dbd8e02c93e64c19bf81d74ed44e2e3bc26c7a3dc3","signature":"62aba97d8d0ff6caa48694bc249de47bb92ad690ea5357ce3d8e44c44d186607"},"603177107b8f7d1e5b993470f4cdec86b61d48a052c5c12e51e340b93531334e","3fff2e6159326d7dbb59c163736a0c522f1cbba6730dc01823a973452666fccd","6a445cf1acf23219aac91c5909f5c338b9408fb7ae6467a434f0e15eff913814","6aa9a466f775ad6d8d48a4d69eac063e4ed47365dfa7aec82a8b554b70938bb4","c1dba063181dfe84123cc9e8afdb0e5a20a0ec72300def7786447499b67a61ff","fba062292ee802cb4f5de98f6f7fe10727fa0f3b8b5dfc5bc0ccb8f77a33ca4d",{"version":"35aed20164f7e1e9c8fa0e0dbe6c4baaf2042459251caba0d532af216af8cd7e","signature":"d67e678d1a4372e83c689185fe828ca49262a16ecdc9f53f9d0b190b26fb0ecc"},{"version":"65be30c9d1273048c3a137fcd7f88bcc584a3ce4b09a11f2c88e470057fe5cc8","signature":"ec9395ba50d412a16586a6951264ce0fad2e77d5be49f9b0b7d8c500d3fb8078"},"af89ab13b40dd28cd91818fc6329914d2b9663591831f032ff0f0cb4a028d4a5","63007f1618ada5041fb3b47630b64a9987d268bf740dd72334c38b5d23f5239b","3395f90467d2bb9db039a5c22ed6659ca2ff6f0b4f7ee5f223b0f77288f54ea7","20df2907d398e369d49e8906d6e0f096c465501e9ceff9d61293bf0f4e9020f1","302aa8248dab7c689c103162e542224aa7f3b0db46e29d0fb468fac721cf1c41","ea0a3bb69845621165c21e80ebb0d2b28dad22cd9920564516ce8e927a828f79","6a81475a67505af60be3242841c65ce4bf6d0b624d8b3fada646ba459a3eaad8","6834dd6cc060648604278cdb920a9316fa916e9116134b17dfad90e42800ca47","19fba62f1aab90f0110738261ed8bc1da82c89433fc43265f14870d4380d10b8","fbb2df54f4778b4d691bbc7c0a6e1e241dfffaca19f443cc9f230f450458bf89","da98d8109f379be48d459a6821ebd7cc728af62557e1c44f864e04360686af93","ef6e6d838cc600162626a53167046484f38e9a4bab9454e72350bed76c497228","cfe60041768a999abb3287444372ffedc9589ba9ba449548226b17a6da46ce35","c8b50ecedc9ff1b0e83c96f0a334d022874199f7c2d00d182ca6672176b0ea9d","b66ede73039e8751e06e3cab843e5a4265c1124a3285c3d854092c37a966b1f5",{"version":"1b33f32780e4d3da2bd1ba84fd71994e87a2bd37d2561b8d8e3b32637b2cd4b6","signature":"5456ba18b24c4a9a77f123c3a794df7a9023f0e8f9a6666b5ed31a939734a7a6"},{"version":"bce6042b814db95d7da4bdf53cc3010ac7f09330d20509523450e33387d9132e","signature":"d324925dc9b0f2349ea9c38e8cd0fc151f5520a02a7a44b50d4becac60d827ea"},"1f63ac6272e4d2d43cb25552b4ed8a89ffc86244ea655f685e8e3685433c7b23","91351db4fac763d38a774a29f00ffcaf186a88ef7a8d487acb9e03577d5fc8bc","094be99dc9410d3cb517ba523ae031864c5e258a3904ed8058773672768c2c6c","fafe1e5b2114bc57a6da341cad2bb44298543caa3fd7680e6bb0f29215048aa2","841f7ca2af7f4d9cca1f9fa2288a4849fc9d49ca15b47336892efd06a14dd1d8","796eea44840b57d4c6741d119d767c5ea294fdf610151158fd0a2f236cf21367","309ab701fcc8aa7f3c9b53fe84cb5ef7cbd579888de19423c8fc54402be9e8d9","5ad6d882be6f8e602795bc0bd0fac7806b16ba7715be494fe0279e2c5e3e23c0","596ab45ef67fa8dae4996a2a61dc5055ae2b3dc5102cf3b43ee7965a7088943b","a3f9f52ce73700565c8d9ba2aa75823ab8fc8e7258a27ecb828cd4257b8f918d","5f4884638ab10b753ec0c7406916fc746bb99cc0044b9a4a67b2006b7e57e8af","4b5603a1ccca455500cfb39517d41ec011f31ba84bb6de44473344a237d89168",{"version":"6a9eb9c5d3f7474937973fe4b0a9e53025634c2e39118eda436d89f3e9df976f","affectsGlobalScope":true},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true},{"version":"c1f79c6d85cd84518fd7349588b3c61bdc189f58e3866f925cbf4631c81e31f9","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},{"version":"42f28f4cfca4a70bd89c1d55d76c7978275030b894f6793f36890265c11a83a4","affectsGlobalScope":true},{"version":"7cf1027da9599f056355b46bbea31dbf7f715f797dffb9cbb3402d4490c503e5","affectsGlobalScope":true},"96dbd0787b57ae02981d26d5f2441f0f8444fb46d7578c56527eab89cff13a7d","68f02ba57c531227ef5804dd57f2e940b10c544c96dadd3c0ef958ba4b6fdbc1","91764b36fe5e1c5d688f5f90eeea47703a059ab9a81bf80f7bbc9b04507b7bd3","115327b8e1f68c03004d841b83e332ed16b8f48af59ac00f38313887d7ec2920","adb5ad16c19ff8dbfa9daa3a7dc8e1b039c381a2b94383144a53368681ad8ca0","a1f708ddf34053065f8f53682123421af299cee37ae110a86ba07851adf940da","395e6fa1fc8f46f827a5f7d3b7dabc836627ae57e41338f93c221b88d4978f15","749effab6d7e72df8d126868c82b8166cdde84d48453e44f65cbad42ad900b06","11705a4aad6e2e724b82ffee6c4fa271d798f0fb68806ace4b1c425c266f8d98","d68afd5ea85e35c4c4e8995e55f10d6861439ea9dc2666293c0cf4124bf56f32","d626f2c25d5d6daddb082576771a8e7b591233a7893a1739513c44f35a3f7489","7c59943d77166c1aecd731af8683a7b5a0984e1bc0427fa35be504d77c41fdcd","89dd83418d3c93418929123f21a02434537b5c79ede3c0c6ab5a495d602db155","8b1b666fe96fd9e713f1279a3e446f16ee824f46ca0c2c075e4e89f0b1258e6c","6aecbb60c2216da24acb86490f7c6270a820fd85424c8a509e3d284aa47f7a56","d357e56d630bcd0f63cfc678e306702555b4f791c2d8e07f037de39171be4cd3","238f87de951ed064c7ec3e30a987f386d4821bacfc8c7548cdccf848b8b6035c","a93ae01c9ed49ba423599144ffa3cd520db83e53b32471865905a65113bb3e59","6088973936033e869d3616b63d25c15363862b491f46af77d40a5215ee8cc1a8","9a4b7c467be504c4500cf6e54b0a3b8afdfbe0ed2c1da640202f44a7cef721b2","6de78fade656d64b03de50a84597d74c76e3ff5436a7ad082d01ce1d74099bf8","7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","9d92b037978bb9525bc4b673ebddd443277542e010c0aef019c03a170ccdaa73","54384a11c0f6ca8d5d8bab90d4bdab2c722aa8676a716340eb08082a02ca9ad6",{"version":"9253f5aa9552bf74e567cf957c0d019e3175cfaf39806d1e237bb6ac1030de37","signature":"c690e95d11aff99412d1ca20b622b02cb1603b032162a09621d7b0279a42b68e"},{"version":"f9c64057681304a919f6f6e8c5c102682d5f83cdd88c3227b6848e6dc59b7b90","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"a62a02c433e6fee26404825310ad462433320ef2e9f80fa7b9156135fd975f8f","22f15ae5c80b3e795da92636aa03d8f981811d067d82bff01ca54093c0535ec0","b56d4bc83ec01834829979ad57de59b4947cd62f71b102ab0040b6960d5bdc81","a10213415bf98670b026b77a90c7933594f0b5c34bde5b74e80134fdf0331bba",{"version":"ebeb47324e6f4c9ce1e1aae7bee0383907e554b45dc5efd6cc02570e2f04dec4","signature":"b6d8db2aba9da17434e5b89238a83f61c4351117eb983386099cb2da471e3fc0"},{"version":"0229ccedabd55ed02687fb1c7f0754a4b3e492dd962abe84c693734a25d383d6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f57a831a821c73281c1a1ff6aea7a77979a935c38dd054b6bb0d17d5a88de16f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"5bca2169d85cde638dc45542bb3674c42e5a0eea70ac2737cb48848a0c9e10b4","3319e44b7252ab86cf9e519b9bdf95ac5a2cacfb859fecf2fee171ce1c0a35b5",{"version":"bdb020c4b9eafeed0f0dab872b2dc231d048a024638f5ab8643427b04aca8a60","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"27679e96d1bd38c5938178aaf4abe8627493090b63d6bae2ce8436e6a87ebe4d","136f00f14878a614113b221f2797dd7f5a7fb2220f95cbbbc390a85675f991c0","b04de4c5a5e9e0cc6b6b3d99b0e046705d9226fc384cb89c73014b2be4a84417","af4eea486904e256eb4e3a79c21355b9b065298952e9f2a0a921e8d75168f4a7","1841e57d29c33dd1798d82ceca05b7a95430b7976f14dabd4bcf81f6d114f235","cd4ee8e901877e80dcb0d073d489cb18a512993164a531332b88279c0874664e","db4d7c9c5038c75e1df338d780a6c06c79589b5105f138dd29b62310aab749fe","b056f955c85dd0eb196ff290138eb4a83787c3f413505b9ae2676a602be7d40d","02f124f948535d4bbf50970ed38a8adb34c8c4289148fb0e6287eef4d86a0be5","27573b15894c6311146838fa3b45786bacc013a4bca6c84adc1b11a4e7c8a4c0","510616459e6edd01acbce333fb256e06bdffdad43ca233a9090164bf8bb83912","3725da27619321470183eb7dd61190b139e5bcc4cf9366d6d828906a76e31742",{"version":"972db20765d00e12aeac350389e9232348f910d12eb7f9c73024c41201977a02","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d4c318be1af78176bc87a945dbf5ffee8c3aa4430071b0b9a9040b348332c526","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e37a60516fbd37a8e1b5754e0c4d83dcdebf8caa69af9e2f85128d2ad3a14671","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"badc99c99a2a4937bbc9c0b45d1fe87fdb76de541ecc4df06190c6b176576a26","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"57cc9477892b65bc1ac29fe692bf94b09e99a4aef71de4ad43deba65d517fd4e","signature":"e8e1588ea2f394850673db82c023d00334ee1adc8020f878dec1397f29599310"},{"version":"be6841ef527743e78855852946f910a72c13a7c958e3b23291623c3b473039e4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e9de90ec37c779c529f4ed850b6061e7614f656a3e9b28d58da922d25abc001f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"28edc4982430b64f209794844087f5211a7a10e69b923f08b26496032901425a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fcc9bfbc389ea5ba817d368038a8d11f8c30f3e92ec89722503fbe088602ed17","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b38fb980b2970ce5ee0961f36fc1caf8b021a9d93bdef7375936cbcc701f2afe","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dc00f4ea8deeeeda44f2ada171bdb3e225a35d47d2995133bd6b0692d15fd965","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2e5bc0aaa314127b7a9eb69781d884e83778aa1ab188c39fa44ca915848862d5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"37abf966f15aea02fef48da8fb22a179f24cd0bbe365d44e1925d6496d722adb","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"4ef576c5a52f34423f6328a6834c6fc874c6683a0626c0f21d6b2209f460dffd","7b195dbf43d2194d18627fe3e190979b5bd2f0752001193260c89b01c36460e2","7350c835566c20d980134ad870a072daa93754c6b65d602a46f2bc2e2ae12165","ee9b614565fe2e96c3202c092ea4e4bc902f51d1508bf8015d8f2275686ab040","f6f278c43d4e70fe1abb2c826a0b1c1ea7c4f6ff50b272aacdda3b39c51f4d61","c4e851542f10b993f5eff6dc91f4ca474e570b7c4c4098ebc4bb3ec84528504e","e86f647e06504800fe4b635e5f4a208d9518a47d317e55735764d4261957f1a0","5ccc3c7f73ef48c223635cd4506f21133560de7abc4c09c623327bb1b54386dc",{"version":"68e64f59387b867ac2095c6703ae2b29cf9238182c0d2f6c819c137c7b7e477c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"21af2545d0971da878ee5759ecfabcd607bb4c2c7e37f6e8bdf1e9afa7c2cb09","signature":"cef616486b509f32ffa4cfc089081383e016ce41b2be7c3feabcb93a0de727d6"},{"version":"13181ae8f64d6d1c1845f8e57a4e1e52dc72993bd3a439360ae135f45992377d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a47dab43c145ad4ac232acd1d87313adbf913f0457947fa82759f97318df54f5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b9369fb6d4997b2aa16b9e736c7816cc35a8d1f60dc9a09592bb5e9654597ca6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"66336b5a5d5e897e932cbf1e306ff8ac8a9929971409a8049c8c8a249cd8b57c",{"version":"92cea114cd7f8323105dfed55e06ea98770ceae98facf77e1815c70cef032e50","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5b31a8edcc52ba5af5085fa8477f51fb723d0c2f71edb5e648ec24c1ba0a1f72","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","8718fa41d7cf4aa91de4e8f164c90f88e0bf343aa92a1b9b725a9c675c64e16b","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","bc222163edcb8df6ba9b506d053d6c5afcae50e85695151cf4636a3107deaba9","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","8a7219b41d3c1c93f3f3b779146f313efade2404eeece88dcd366df7e2364977","a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318",{"version":"90ebf5865e27d8966ef44b073e6e83b0ddd45058bab1d58b1e4b5a47d36396c4","affectsGlobalScope":true},"cb482592bfcbdfcefa8d155590399e8bff66277e60e17bfada7c2f31322e7b87","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4",{"version":"525b52b38b44420fb1758c0917e7b67cf379f7f9477d2ba7343f3d5f50a44258","affectsGlobalScope":true},"4006c872e38a2c4e09c593bc0cdd32b7b4f5c4843910bea0def631c483fff6c5","ab6aa3a65d473871ee093e3b7b71ed0f9c69e07d1d4295f45c9efd91a771241d","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185"],"root":[[65,67],209,[218,226],[228,233],[256,261],264,271,272,288,289,332,333,[338,340],343,[356,368],[377,381],383,384],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"importsNotUsedAsValues":0,"module":7,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":9,"useUnknownInCatchVariables":true},"fileIdsList":[[334,336],[335],[265,266,267,268],[372],[370,371],[370],[369],[234,244,245,246],[241],[201,240,242,243],[73,201,349,350,351],[201],[85,201,287],[73,86,201,287],[73,86],[290,291,292,293,296,297,298,299,300],[73,85,86,201],[103,201,295],[201,287],[201,287,341],[85],[80,85,201,281],[273,282,283,284,285,286],[73,201],[80,85,201],[73,75,86,87,201],[75,85,87],[73,75,85,86,201],[72,88,201],[161,199],[74,75,80,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,104,105,106,200],[70,72,73],[87],[88,90],[70,72,74],[75,85],[75,88,201],[74,75,85],[73,74,75,87,90,103],[73,74],[73,86,87,201],[75,87],[80,85,87,90,97,201],[274,275,276,277,278,279,280],[201,276],[201,274],[201,275],[70,72,201],[85,201,316],[73,201,281,287,348],[73,86,201,294],[79,80],[79],[77,78,81],[85,269],[76,81,83,84],[81,83,85],[82,85],[161,164,191,199,385,386,387],[302],[389],[199],[396],[397,399],[400],[402],[398],[107],[148],[149,154,183],[150,155,161,162,169,180,191],[150,151,161,169],[152,192],[153,154,162,170],[154,180,188],[155,157,161,169],[148,156],[157,158],[161],[159,161],[148,161],[161,162,163,180,191],[161,162,163,176,180,183],[146,196],[157,161,164,169,180,191],[161,162,164,165,169,180,188,191],[164,166,180,188,191],[107,108,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[161,167],[168,191,196],[157,161,169,180],[170],[171],[148,172],[107,108,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197],[174],[175],[161,176,177],[176,178,192,194],[149,161,180,181,182,183],[149,180,182],[180,181],[183],[184],[107,180],[161,186,187],[186,187],[154,169,180,188],[189],[169,190],[149,164,175,191],[154,192],[180,193],[168,194],[195],[149,154,161,163,172,180,191,194,196],[180,197],[164,180,199],[410,449],[410,434,449],[449],[410],[410,435,449],[410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448],[435,449],[302,330],[329],[453],[161,180,199],[86,374],[302,303,304,305,306,307],[302,303],[316,320],[316,318,319,321,322,323,324,325,326,327],[316,320,321,328],[313,316,320,321],[316,320,321],[316,320,323],[316,328],[313,315],[255],[314],[73,86,204,206],[73,86,206],[73,203,205],[86],[68],[240,249,250,251],[71,72],[71],[69],[238],[70],[70,208],[236],[72,208,235,236,237,239],[68,69,70,71,238],[68,69,70],[310],[344,345,346,347],[345],[345,346],[354],[217],[210],[73,210],[210,211,212,213,214,215,216],[73,217],[330],[253],[240,252],[118,122,191],[118,180,191],[113],[115,118,188,191],[169,188],[113,199],[115,118,169,191],[110,111,114,117,149,161,180,191],[118,125],[110,116],[118,139,140],[114,118,149,183,191,199],[149,199],[139,149,199],[112,113,199],[118],[112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,140,141,142,143,144,145],[118,133],[118,125,126],[116,118,126,127],[117],[110,113,118],[118,122,126,127],[122],[116,118,121,191],[110,115,118,125],[149,180],[113,118,139,149,196,199],[65,66,73,85,103,201,202,206,207,208,209,218,219,220,222,224,230,231,232,233,256,257,260,261,264,271,272,287],[218,219],[218],[201,218,219,221],[223,225],[221,223,229],[66,227],[67],[201,219,222,223,224,225,226,228],[219],[73,103,201,206,207],[219,222],[85,201,218],[201,202,208,218,219,244,247,248,254,255],[258,259,260],[201,262,263],[85,270],[201,219,244],[201,254,255,301,308,309,311,312,332],[201,202,244,287,288,294,308,330,331,338],[201,301,308,311,332],[207,373,375,376],[254,308,332,373,378],[154,218,373],[272,373],[201,288,294,317,328,342],[66,201,218,223,254,301,308,312,332,352,353,355,360,378,382],[201,254,301,308,311,332,352,353,355],[66,201,202,244,254,287,288,294,301,308,311,330,331,332],[66,201,301,308,311,332],[66,201,301,308,311,332,353],[218,219,220,254,259,262,308,360],[66,230,308],[230,308],[202,219,222,223,225,230,244,294,308,330,353,360],[202,222,230,231,244,294,308],[272,308,330],[66,202,233,244,259,308,353,360],[224,308],[161,201,202,244,287,288,294,301,317,328,331],[201,288,308,312,332],[201,202,218,219,244,254,338],[218,254,259,337],[65,201,209,218,219,220,222,230,232,233,287],[227],[201,218,219],[201,219],[201,288],[201,288,332],[201,218,219,338]],"referencedMap":[[337,1],[336,2],[269,3],[373,4],[372,5],[371,6],[370,7],[247,8],[242,9],[244,10],[243,9],[352,11],[290,12],[291,13],[292,14],[299,15],[301,16],[300,12],[293,17],[296,18],[297,19],[298,19],[342,20],[273,21],[282,22],[287,23],[283,12],[284,24],[285,12],[286,25],[99,26],[100,27],[87,28],[89,29],[200,30],[201,31],[74,32],[91,33],[101,34],[75,35],[88,36],[92,37],[93,38],[104,39],[105,40],[95,33],[97,41],[96,42],[98,43],[294,12],[277,12],[281,44],[276,12],[274,12],[275,12],[280,45],[278,46],[279,47],[202,48],[317,49],[349,50],[262,12],[295,51],[81,52],[78,53],[77,53],[79,54],[270,55],[84,21],[85,56],[76,21],[82,57],[83,58],[388,59],[303,60],[307,60],[305,60],[390,61],[391,62],[395,30],[397,63],[400,64],[401,65],[403,66],[399,67],[107,68],[108,68],[148,69],[149,70],[150,71],[151,72],[152,73],[153,74],[154,75],[155,76],[156,77],[157,78],[158,78],[160,79],[159,80],[161,81],[162,82],[163,83],[147,84],[164,85],[165,86],[166,87],[199,88],[167,89],[168,90],[169,91],[170,92],[171,93],[172,94],[173,95],[174,96],[175,97],[176,98],[177,98],[178,99],[180,100],[182,101],[181,102],[183,103],[184,104],[185,105],[186,106],[187,107],[188,108],[189,109],[190,110],[191,111],[192,112],[193,113],[194,114],[195,115],[196,116],[197,117],[387,118],[434,119],[435,120],[410,121],[413,121],[432,119],[433,119],[423,119],[422,122],[420,119],[415,119],[428,119],[426,119],[430,119],[414,119],[427,119],[431,119],[416,119],[417,119],[429,119],[411,119],[418,119],[419,119],[421,119],[425,119],[436,123],[424,119],[412,119],[449,124],[443,123],[445,125],[444,123],[437,123],[438,123],[440,123],[442,123],[446,125],[447,125],[439,125],[441,125],[450,126],[330,127],[454,128],[455,129],[375,130],[308,131],[306,60],[304,132],[321,133],[328,134],[323,135],[322,136],[325,137],[327,138],[319,139],[324,135],[326,137],[316,140],[313,141],[315,142],[205,143],[203,144],[206,145],[207,146],[204,15],[385,79],[251,147],[252,148],[69,149],[72,150],[238,151],[249,152],[250,152],[208,153],[236,154],[263,155],[240,156],[239,157],[71,158],[311,159],[348,160],[346,161],[347,162],[355,163],[312,159],[210,164],[213,165],[214,165],[211,166],[212,165],[217,167],[215,168],[216,164],[331,169],[254,170],[255,170],[253,171],[125,172],[135,173],[124,172],[145,174],[116,175],[115,176],[144,62],[138,177],[143,178],[118,179],[132,180],[117,181],[141,182],[113,183],[112,184],[142,185],[114,186],[119,187],[123,187],[146,188],[136,189],[127,190],[128,191],[130,192],[126,193],[129,194],[139,62],[121,195],[122,196],[131,197],[111,198],[134,189],[133,187],[140,199],[288,200],[220,201],[289,202],[218,168],[222,203],[226,204],[230,205],[228,206],[223,207],[221,207],[229,208],[225,209],[231,204],[232,210],[233,211],[219,212],[256,213],[257,202],[261,214],[259,141],[264,215],[271,216],[260,217],[333,218],[339,219],[340,220],[377,221],[379,222],[380,223],[381,224],[343,225],[383,226],[356,227],[357,228],[358,229],[359,230],[361,231],[362,232],[363,233],[364,234],[365,235],[366,220],[367,236],[368,237],[384,238],[332,239],[378,240],[360,241],[338,242]],"exportedModulesMap":[[337,1],[336,2],[269,3],[373,4],[372,5],[371,6],[370,7],[247,8],[242,9],[244,10],[243,9],[352,11],[290,12],[291,13],[292,14],[299,15],[301,16],[300,12],[293,17],[296,18],[297,19],[298,19],[342,20],[273,21],[282,22],[287,23],[283,12],[284,24],[285,12],[286,25],[99,26],[100,27],[87,28],[89,29],[200,30],[201,31],[74,32],[91,33],[101,34],[75,35],[88,36],[92,37],[93,38],[104,39],[105,40],[95,33],[97,41],[96,42],[98,43],[294,12],[277,12],[281,44],[276,12],[274,12],[275,12],[280,45],[278,46],[279,47],[202,48],[317,49],[349,50],[262,12],[295,51],[81,52],[78,53],[77,53],[79,54],[270,55],[84,21],[85,56],[76,21],[82,57],[83,58],[388,59],[303,60],[307,60],[305,60],[390,61],[391,62],[395,30],[397,63],[400,64],[401,65],[403,66],[399,67],[107,68],[108,68],[148,69],[149,70],[150,71],[151,72],[152,73],[153,74],[154,75],[155,76],[156,77],[157,78],[158,78],[160,79],[159,80],[161,81],[162,82],[163,83],[147,84],[164,85],[165,86],[166,87],[199,88],[167,89],[168,90],[169,91],[170,92],[171,93],[172,94],[173,95],[174,96],[175,97],[176,98],[177,98],[178,99],[180,100],[182,101],[181,102],[183,103],[184,104],[185,105],[186,106],[187,107],[188,108],[189,109],[190,110],[191,111],[192,112],[193,113],[194,114],[195,115],[196,116],[197,117],[387,118],[434,119],[435,120],[410,121],[413,121],[432,119],[433,119],[423,119],[422,122],[420,119],[415,119],[428,119],[426,119],[430,119],[414,119],[427,119],[431,119],[416,119],[417,119],[429,119],[411,119],[418,119],[419,119],[421,119],[425,119],[436,123],[424,119],[412,119],[449,124],[443,123],[445,125],[444,123],[437,123],[438,123],[440,123],[442,123],[446,125],[447,125],[439,125],[441,125],[450,126],[330,127],[454,128],[455,129],[375,130],[308,131],[306,60],[304,132],[321,133],[328,134],[323,135],[322,136],[325,137],[327,138],[319,139],[324,135],[326,137],[316,140],[313,141],[315,142],[205,143],[203,144],[206,145],[207,146],[204,15],[385,79],[251,147],[252,148],[69,149],[72,150],[238,151],[249,152],[250,152],[208,153],[236,154],[263,155],[240,156],[239,157],[71,158],[311,159],[348,160],[346,161],[347,162],[355,163],[312,159],[210,164],[213,165],[214,165],[211,166],[212,165],[217,167],[215,168],[216,164],[331,169],[254,170],[255,170],[253,171],[125,172],[135,173],[124,172],[145,174],[116,175],[115,176],[144,62],[138,177],[143,178],[118,179],[132,180],[117,181],[141,182],[113,183],[112,184],[142,185],[114,186],[119,187],[123,187],[146,188],[136,189],[127,190],[128,191],[130,192],[126,193],[129,194],[139,62],[121,195],[122,196],[131,197],[111,198],[134,189],[133,187],[140,199],[288,243],[220,201],[289,202],[218,168],[222,203],[226,204],[230,205],[228,244],[229,208],[225,209],[231,204],[232,24],[233,211],[219,212],[256,245],[257,202],[261,214],[264,12],[271,21],[260,246],[332,247],[378,248],[360,249],[338,202]],"semanticDiagnosticsPerFile":[334,337,336,335,268,269,266,267,265,373,372,371,370,369,234,247,242,244,241,243,245,246,350,351,352,341,290,291,292,299,301,300,293,296,297,298,342,273,282,287,283,284,285,286,99,100,87,89,106,90,200,201,74,91,101,75,88,92,93,102,104,105,94,95,97,96,98,294,277,281,276,274,275,280,278,279,202,317,349,262,295,81,78,77,79,270,84,85,76,82,83,388,303,307,305,302,390,391,386,392,393,394,395,396,397,400,401,403,398,399,404,405,406,389,407,107,108,148,149,150,151,152,153,154,155,156,157,158,160,159,161,162,163,147,198,164,165,166,199,167,168,169,170,171,172,173,174,175,176,177,178,179,180,182,181,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,408,409,387,354,434,435,410,413,432,433,423,422,420,415,428,426,430,414,427,431,416,417,429,411,418,419,421,425,436,424,412,449,448,443,445,444,437,438,440,442,446,447,439,441,450,330,329,451,452,402,453,454,455,374,375,308,109,306,304,321,318,328,323,322,325,327,319,324,326,353,227,344,316,313,314,315,320,376,205,203,206,207,103,204,86,385,251,68,252,69,235,72,238,249,250,208,236,70,263,240,239,71,237,309,311,348,346,347,345,355,310,312,80,210,213,214,211,212,217,215,216,331,63,64,11,12,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,13,73,248,382,254,255,253,125,135,124,145,116,115,144,138,143,118,132,117,141,113,112,142,114,119,120,123,110,146,136,127,128,130,126,129,139,121,122,131,111,134,133,137,140,65,66,67,288,220,209,289,218,222,226,230,228,223,221,229,225,231,232,233,219,256,257,261,259,264,271,260,224,258,272,333,339,340,377,379,380,381,343,383,356,357,358,359,361,362,363,364,365,366,367,368,384,332,378,360,338],"latestChangedDtsFile":"./test/unit/set.test.d.ts"},"version":"5.4.5"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/errors.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/errors.ts -new file mode 100644 -index 0000000..19723cf ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/errors.ts -@@ -0,0 +1,17 @@ -+export class InvalidPeerScoreParamsError extends Error { -+ static name = 'InvalidPeerScoreParamsError' -+ -+ constructor (message = 'Invalid peer score params') { -+ super(message) -+ this.name = 'InvalidPeerScoreParamsError' -+ } -+} -+ -+export class InvalidPeerScoreThresholdsError extends Error { -+ static name = 'InvalidPeerScoreThresholdsError' -+ -+ constructor (message = 'Invalid peer score thresholds') { -+ super(message) -+ this.name = 'InvalidPeerScoreThresholdsError' -+ } -+} -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts -index 1f821e2..782c053 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/index.ts -@@ -1,8 +1,9 @@ - import { TypedEventEmitter, StrictSign, StrictNoSign, TopicValidatorResult, serviceCapabilities, serviceDependencies } from '@libp2p/interface' --import { peerIdFromBytes, peerIdFromString } from '@libp2p/peer-id' -+import { peerIdFromMultihash, peerIdFromString } from '@libp2p/peer-id' - import { encode } from 'it-length-prefixed' - import { pipe } from 'it-pipe' - import { pushable } from 'it-pushable' -+import * as Digest from 'multiformats/hashes/digest' - import * as constants from './constants.js' - import { - ACCEPT_FROM_WHITELIST_DURATION_MS, -@@ -73,7 +74,8 @@ import type { - TopicValidatorFn, - Logger, - ComponentLogger, -- Topology -+ Topology, -+ PrivateKey - } from '@libp2p/interface' - import type { ConnectionManager, IncomingStreamData, Registrar } from '@libp2p/interface-internal' - import type { Multiaddr } from '@multiformats/multiaddr' -@@ -166,13 +168,13 @@ export interface GossipsubOpts extends GossipsubOptsSpec, PubSubInit { - maxOutboundStreams?: number - - /** -- * Pass true to run on transient connections - data or time-limited -+ * Pass true to run on limited connections - data or time-limited - * connections that may be closed at any time such as circuit relay - * connections. - * - * @default false - */ -- runOnTransientConnection?: boolean -+ runOnLimitedConnection?: boolean - - /** - * Specify max buffer size in bytes for OutboundStream. -@@ -259,6 +261,7 @@ interface AcceptFromWhitelistEntry { - } - - export interface GossipSubComponents { -+ privateKey: PrivateKey - peerId: PeerId - peerStore: PeerStore - registrar: Registrar -@@ -420,7 +423,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - private status: GossipStatus = { code: GossipStatusCode.stopped } - private readonly maxInboundStreams?: number - private readonly maxOutboundStreams?: number -- private readonly runOnTransientConnection?: boolean -+ private readonly runOnLimitedConnection?: boolean - private readonly allowedTopics: Set | null - - private heartbeatTimer: { -@@ -554,7 +557,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - - this.maxInboundStreams = options.maxInboundStreams - this.maxOutboundStreams = options.maxOutboundStreams -- this.runOnTransientConnection = options.runOnTransientConnection -+ this.runOnLimitedConnection = options.runOnLimitedConnection - - this.allowedTopics = (opts.allowedTopics != null) ? new Set(opts.allowedTopics) : null - } -@@ -591,7 +594,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - - this.log('starting') - -- this.publishConfig = await getPublishConfigFromPeerId(this.globalSignaturePolicy, this.components.peerId) -+ this.publishConfig = getPublishConfigFromPeerId(this.globalSignaturePolicy, this.components.peerId, this.components.privateKey) - - // Create the outbound inflight queue - // This ensures that outbound stream creation happens sequentially -@@ -619,7 +622,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - registrar.handle(multicodec, this.onIncomingStream.bind(this), { - maxInboundStreams: this.maxInboundStreams, - maxOutboundStreams: this.maxOutboundStreams, -- runOnTransientConnection: this.runOnTransientConnection -+ runOnLimitedConnection: this.runOnLimitedConnection - }) - ) - ) -@@ -646,7 +649,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - const topology: Topology = { - onConnect: this.onPeerConnected.bind(this), - onDisconnect: this.onPeerDisconnected.bind(this), -- notifyOnTransient: this.runOnTransientConnection -+ notifyOnLimitedConnection: this.runOnLimitedConnection - } - const registrarTopologyIds = await Promise.all( - this.multicodecs.map(async (multicodec) => registrar.register(multicodec, topology)) -@@ -817,7 +820,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - try { - const stream = new OutboundStream( - await connection.newStream(this.multicodecs, { -- runOnTransientConnection: this.runOnTransientConnection -+ runOnLimitedConnection: this.runOnLimitedConnection - }), - (e) => { this.log.error('outbound pipe error', e) }, - { maxBufferSize: this.opts.maxOutboundBufferSize } -@@ -1778,7 +1781,7 @@ export class GossipSub extends TypedEventEmitter implements Pub - return - } - -- const peer = peerIdFromBytes(pi.peerID) -+ const peer = peerIdFromMultihash(Digest.decode(pi.peerID)) - const p = peer.toString() - - if (this.peers.has(p)) { -@@ -2610,13 +2613,13 @@ export class GossipSub extends TypedEventEmitter implements Pub - try { - peerInfo = await this.components.peerStore.get(id) - } catch (err: any) { -- if (err.code !== 'ERR_NOT_FOUND') { -+ if (err.name !== 'NotFoundError') { - throw err - } - } - - return { -- peerID: id.toBytes(), -+ peerID: id.toMultihash().bytes, - signedPeerRecord: peerInfo?.peerRecordEnvelope - } - }) -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/message/rpc.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/message/rpc.ts -index a31ab91..32990a7 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/message/rpc.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/message/rpc.ts -@@ -4,7 +4,7 @@ - /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ - /* eslint-disable @typescript-eslint/no-empty-interface */ - --import { type Codec, CodeError, decodeMessage, type DecodeOptions, encodeMessage, message } from 'protons-runtime' -+import { type Codec, decodeMessage, type DecodeOptions, encodeMessage, MaxLengthError, message } from 'protons-runtime' - import type { Uint8ArrayList } from 'uint8arraylist' - - export interface RPC { -@@ -256,34 +256,42 @@ export namespace RPC { - switch (tag >>> 3) { - case 1: { - if (opts.limits?.ihave != null && obj.ihave.length === opts.limits.ihave) { -- throw new CodeError('decode error - map field "ihave" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "ihave" had too many elements') - } - -- obj.ihave.push(RPC.ControlIHave.codec().decode(reader, reader.uint32())) -+ obj.ihave.push(RPC.ControlIHave.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.ihave$ -+ })) - break - } - case 2: { - if (opts.limits?.iwant != null && obj.iwant.length === opts.limits.iwant) { -- throw new CodeError('decode error - map field "iwant" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "iwant" had too many elements') - } - -- obj.iwant.push(RPC.ControlIWant.codec().decode(reader, reader.uint32())) -+ obj.iwant.push(RPC.ControlIWant.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.iwant$ -+ })) - break - } - case 3: { - if (opts.limits?.graft != null && obj.graft.length === opts.limits.graft) { -- throw new CodeError('decode error - map field "graft" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "graft" had too many elements') - } - -- obj.graft.push(RPC.ControlGraft.codec().decode(reader, reader.uint32())) -+ obj.graft.push(RPC.ControlGraft.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.graft$ -+ })) - break - } - case 4: { - if (opts.limits?.prune != null && obj.prune.length === opts.limits.prune) { -- throw new CodeError('decode error - map field "prune" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "prune" had too many elements') - } - -- obj.prune.push(RPC.ControlPrune.codec().decode(reader, reader.uint32())) -+ obj.prune.push(RPC.ControlPrune.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.prune$ -+ })) - break - } - default: { -@@ -356,7 +364,7 @@ export namespace RPC { - } - case 2: { - if (opts.limits?.messageIDs != null && obj.messageIDs.length === opts.limits.messageIDs) { -- throw new CodeError('decode error - map field "messageIDs" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "messageIDs" had too many elements') - } - - obj.messageIDs.push(reader.bytes()) -@@ -422,7 +430,7 @@ export namespace RPC { - switch (tag >>> 3) { - case 1: { - if (opts.limits?.messageIDs != null && obj.messageIDs.length === opts.limits.messageIDs) { -- throw new CodeError('decode error - map field "messageIDs" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "messageIDs" had too many elements') - } - - obj.messageIDs.push(reader.bytes()) -@@ -562,10 +570,12 @@ export namespace RPC { - } - case 2: { - if (opts.limits?.peers != null && obj.peers.length === opts.limits.peers) { -- throw new CodeError('decode error - map field "peers" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "peers" had too many elements') - } - -- obj.peers.push(RPC.PeerInfo.codec().decode(reader, reader.uint32())) -+ obj.peers.push(RPC.PeerInfo.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.peers$ -+ })) - break - } - case 3: { -@@ -708,22 +718,28 @@ export namespace RPC { - switch (tag >>> 3) { - case 1: { - if (opts.limits?.subscriptions != null && obj.subscriptions.length === opts.limits.subscriptions) { -- throw new CodeError('decode error - map field "subscriptions" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "subscriptions" had too many elements') - } - -- obj.subscriptions.push(RPC.SubOpts.codec().decode(reader, reader.uint32())) -+ obj.subscriptions.push(RPC.SubOpts.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.subscriptions$ -+ })) - break - } - case 2: { - if (opts.limits?.messages != null && obj.messages.length === opts.limits.messages) { -- throw new CodeError('decode error - map field "messages" had too many elements', 'ERR_MAX_LENGTH') -+ throw new MaxLengthError('Decode error - map field "messages" had too many elements') - } - -- obj.messages.push(RPC.Message.codec().decode(reader, reader.uint32())) -+ obj.messages.push(RPC.Message.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.messages$ -+ })) - break - } - case 3: { -- obj.control = RPC.ControlMessage.codec().decode(reader, reader.uint32()) -+ obj.control = RPC.ControlMessage.codec().decode(reader, reader.uint32(), { -+ limits: opts.limits?.control -+ }) - break - } - default: { -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/score/constants.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/score/constants.ts -deleted file mode 100644 -index 6647428..0000000 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/score/constants.ts -+++ /dev/null -@@ -1,2 +0,0 @@ --export const ERR_INVALID_PEER_SCORE_PARAMS = 'ERR_INVALID_PEER_SCORE_PARAMS' --export const ERR_INVALID_PEER_SCORE_THRESHOLDS = 'ERR_INVALID_PEER_SCORE_THRESHOLDS' -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-params.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-params.ts -index cf2761c..8048d28 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-params.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-params.ts -@@ -1,5 +1,4 @@ --import { CodeError } from '@libp2p/interface' --import { ERR_INVALID_PEER_SCORE_PARAMS } from './constants.js' -+import { InvalidPeerScoreParamsError } from '../errors.js' - - // This file defines PeerScoreParams and TopicScoreParams interfaces - // as well as constructors, default constructors, and validation functions -@@ -203,51 +202,42 @@ export function validatePeerScoreParams (p: PeerScoreParams): void { - try { - validateTopicScoreParams(params) - } catch (e) { -- throw new CodeError( -- `invalid score parameters for topic ${topic}: ${(e as Error).message}`, -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError(`invalid score parameters for topic ${topic}: ${(e as Error).message}`) - } - } - - // check that the topic score is 0 or something positive - if (p.topicScoreCap < 0) { -- throw new CodeError('invalid topic score cap; must be positive (or 0 for no cap)', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid topic score cap; must be positive (or 0 for no cap)') - } - - // check that we have an app specific score; the weight can be anything (but expected positive) - if (p.appSpecificScore === null || p.appSpecificScore === undefined) { -- throw new CodeError('missing application specific score function', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('missing application specific score function') - } - - // check the IP colocation factor - if (p.IPColocationFactorWeight > 0) { -- throw new CodeError( -- 'invalid IPColocationFactorWeight; must be negative (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invalid IPColocationFactorWeight; must be negative (or 0 to disable)') - } - if (p.IPColocationFactorWeight !== 0 && p.IPColocationFactorThreshold < 1) { -- throw new CodeError('invalid IPColocationFactorThreshold; must be at least 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid IPColocationFactorThreshold; must be at least 1') - } - - // check the behaviour penalty - if (p.behaviourPenaltyWeight > 0) { -- throw new CodeError( -- 'invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invalid BehaviourPenaltyWeight; must be negative (or 0 to disable)') - } - if (p.behaviourPenaltyWeight !== 0 && (p.behaviourPenaltyDecay <= 0 || p.behaviourPenaltyDecay >= 1)) { -- throw new CodeError('invalid BehaviourPenaltyDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid BehaviourPenaltyDecay; must be between 0 and 1') - } - - // check the decay parameters - if (p.decayInterval < 1000) { -- throw new CodeError('invalid DecayInterval; must be at least 1s', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid DecayInterval; must be at least 1s') - } - if (p.decayToZero <= 0 || p.decayToZero >= 1) { -- throw new CodeError('invalid DecayToZero; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid DecayToZero; must be between 0 and 1') - } - - // no need to check the score retention; a value of 0 means that we don't retain scores -@@ -257,82 +247,70 @@ export function validatePeerScoreParams (p: PeerScoreParams): void { - export function validateTopicScoreParams (p: TopicScoreParams): void { - // make sure we have a sane topic weight - if (p.topicWeight < 0) { -- throw new CodeError('invalid topic weight; must be >= 0', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid topic weight; must be >= 0') - } - - // check P1 - if (p.timeInMeshQuantum === 0) { -- throw new CodeError('invalid TimeInMeshQuantum; must be non zero', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshQuantum; must be non zero') - } - if (p.timeInMeshWeight < 0) { -- throw new CodeError('invalid TimeInMeshWeight; must be positive (or 0 to disable)', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshWeight; must be positive (or 0 to disable)') - } - if (p.timeInMeshWeight !== 0 && p.timeInMeshQuantum <= 0) { -- throw new CodeError('invalid TimeInMeshQuantum; must be positive', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshQuantum; must be positive') - } - if (p.timeInMeshWeight !== 0 && p.timeInMeshCap <= 0) { -- throw new CodeError('invalid TimeInMeshCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid TimeInMeshCap; must be positive') - } - - // check P2 - if (p.firstMessageDeliveriesWeight < 0) { -- throw new CodeError( -- 'invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invallid FirstMessageDeliveriesWeight; must be positive (or 0 to disable)') - } - if ( - p.firstMessageDeliveriesWeight !== 0 && - (p.firstMessageDeliveriesDecay <= 0 || p.firstMessageDeliveriesDecay >= 1) - ) { -- throw new CodeError('invalid FirstMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid FirstMessageDeliveriesDecay; must be between 0 and 1') - } - if (p.firstMessageDeliveriesWeight !== 0 && p.firstMessageDeliveriesCap <= 0) { -- throw new CodeError('invalid FirstMessageDeliveriesCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid FirstMessageDeliveriesCap; must be positive') - } - - // check P3 - if (p.meshMessageDeliveriesWeight > 0) { -- throw new CodeError( -- 'invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesWeight; must be negative (or 0 to disable)') - } - if (p.meshMessageDeliveriesWeight !== 0 && (p.meshMessageDeliveriesDecay <= 0 || p.meshMessageDeliveriesDecay >= 1)) { -- throw new CodeError('invalid MeshMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesDecay; must be between 0 and 1') - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesCap <= 0) { -- throw new CodeError('invalid MeshMessageDeliveriesCap; must be positive', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesCap; must be positive') - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesThreshold <= 0) { -- throw new CodeError('invalid MeshMessageDeliveriesThreshold; must be positive', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesThreshold; must be positive') - } - if (p.meshMessageDeliveriesWindow < 0) { -- throw new CodeError('invalid MeshMessageDeliveriesWindow; must be non-negative', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesWindow; must be non-negative') - } - if (p.meshMessageDeliveriesWeight !== 0 && p.meshMessageDeliveriesActivation < 1000) { -- throw new CodeError('invalid MeshMessageDeliveriesActivation; must be at least 1s', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshMessageDeliveriesActivation; must be at least 1s') - } - - // check P3b - if (p.meshFailurePenaltyWeight > 0) { -- throw new CodeError( -- 'invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invalid MeshFailurePenaltyWeight; must be negative (or 0 to disable)') - } - if (p.meshFailurePenaltyWeight !== 0 && (p.meshFailurePenaltyDecay <= 0 || p.meshFailurePenaltyDecay >= 1)) { -- throw new CodeError('invalid MeshFailurePenaltyDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid MeshFailurePenaltyDecay; must be between 0 and 1') - } - - // check P4 - if (p.invalidMessageDeliveriesWeight > 0) { -- throw new CodeError( -- 'invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)', -- ERR_INVALID_PEER_SCORE_PARAMS -- ) -+ throw new InvalidPeerScoreParamsError('invalid InvalidMessageDeliveriesWeight; must be negative (or 0 to disable)') - } - if (p.invalidMessageDeliveriesDecay <= 0 || p.invalidMessageDeliveriesDecay >= 1) { -- throw new CodeError('invalid InvalidMessageDeliveriesDecay; must be between 0 and 1', ERR_INVALID_PEER_SCORE_PARAMS) -+ throw new InvalidPeerScoreParamsError('invalid InvalidMessageDeliveriesDecay; must be between 0 and 1') - } - } -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-thresholds.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-thresholds.ts -index b2e8dcc..b50225b 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-thresholds.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/score/peer-score-thresholds.ts -@@ -1,5 +1,4 @@ --import { CodeError } from '@libp2p/interface' --import { ERR_INVALID_PEER_SCORE_THRESHOLDS } from './constants.js' -+import { InvalidPeerScoreThresholdsError } from '../errors.js' - - // This file defines PeerScoreThresholds interface - // as well as a constructor, default constructor, and validation function -@@ -54,24 +53,18 @@ export function createPeerScoreThresholds (p: Partial = {}) - - export function validatePeerScoreThresholds (p: PeerScoreThresholds): void { - if (p.gossipThreshold > 0) { -- throw new CodeError('invalid gossip threshold; it must be <= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS) -+ throw new InvalidPeerScoreThresholdsError('invalid gossip threshold; it must be <= 0') - } - if (p.publishThreshold > 0 || p.publishThreshold > p.gossipThreshold) { -- throw new CodeError( -- 'invalid publish threshold; it must be <= 0 and <= gossip threshold', -- ERR_INVALID_PEER_SCORE_THRESHOLDS -- ) -+ throw new InvalidPeerScoreThresholdsError('invalid publish threshold; it must be <= 0 and <= gossip threshold') - } - if (p.graylistThreshold > 0 || p.graylistThreshold > p.publishThreshold) { -- throw new CodeError( -- 'invalid graylist threshold; it must be <= 0 and <= publish threshold', -- ERR_INVALID_PEER_SCORE_THRESHOLDS -- ) -+ throw new InvalidPeerScoreThresholdsError('invalid graylist threshold; it must be <= 0 and <= publish threshold') - } - if (p.acceptPXThreshold < 0) { -- throw new CodeError('invalid accept PX threshold; it must be >= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS) -+ throw new InvalidPeerScoreThresholdsError('invalid accept PX threshold; it must be >= 0') - } - if (p.opportunisticGraftThreshold < 0) { -- throw new CodeError('invalid opportunistic grafting threshold; it must be >= 0', ERR_INVALID_PEER_SCORE_THRESHOLDS) -+ throw new InvalidPeerScoreThresholdsError('invalid opportunistic grafting threshold; it must be >= 0') - } - } -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/buildRawMessage.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/buildRawMessage.ts -index 71b4007..3771dea 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/buildRawMessage.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/buildRawMessage.ts -@@ -1,9 +1,9 @@ - import { randomBytes } from '@libp2p/crypto' --import { marshalPublicKey, unmarshalPublicKey } from '@libp2p/crypto/keys' -+import { publicKeyFromProtobuf } from '@libp2p/crypto/keys' - import { StrictSign, StrictNoSign, type Message, type PublicKey, type PeerId } from '@libp2p/interface' --import { peerIdFromBytes } from '@libp2p/peer-id' -+import { peerIdFromMultihash } from '@libp2p/peer-id' -+import * as Digest from 'multiformats/hashes/digest' - import { concat as uint8ArrayConcat } from 'uint8arrays/concat' --import { equals as uint8ArrayEquals } from 'uint8arrays/equals' - import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' - import { toString as uint8ArrayToString } from 'uint8arrays/to-string' - import { RPC } from '../message/rpc.js' -@@ -25,7 +25,7 @@ export async function buildRawMessage ( - switch (publishConfig.type) { - case PublishConfigType.Signing: { - const rpcMsg: RPC.Message = { -- from: publishConfig.author.toBytes(), -+ from: publishConfig.author.toMultihash().bytes, - data: transformedData, - seqno: randomBytes(8), - topic, -@@ -47,7 +47,7 @@ export async function buildRawMessage ( - sequenceNumber: BigInt(`0x${uint8ArrayToString(rpcMsg.seqno as Uint8Array, 'base16')}`), - topic, - signature: rpcMsg.signature, -- key: rpcMsg.key -+ key: publicKeyFromProtobuf(rpcMsg.key) - } - return { - raw: rpcMsg, -@@ -108,7 +108,7 @@ export async function validateToRawMessage ( - let fromPeerId: PeerId - try { - // TODO: Fix PeerId types -- fromPeerId = peerIdFromBytes(msg.from) -+ fromPeerId = peerIdFromMultihash(Digest.decode(msg.from)) - } catch (e) { - return { valid: false, error: ValidateError.InvalidPeerId } - } -@@ -122,16 +122,16 @@ export async function validateToRawMessage ( - - let publicKey: PublicKey - if (msg.key != null) { -- publicKey = unmarshalPublicKey(msg.key) -+ publicKey = publicKeyFromProtobuf(msg.key) - // TODO: Should `fromPeerId.pubKey` be optional? -- if (fromPeerId.publicKey !== undefined && !uint8ArrayEquals(publicKey.bytes, fromPeerId.publicKey)) { -+ if (fromPeerId.publicKey !== undefined && !publicKey.equals(fromPeerId.publicKey)) { - return { valid: false, error: ValidateError.InvalidPeerId } - } - } else { - if (fromPeerId.publicKey == null) { - return { valid: false, error: ValidateError.InvalidPeerId } - } -- publicKey = unmarshalPublicKey(fromPeerId.publicKey) -+ publicKey = fromPeerId.publicKey - } - - const rpcMsgPreSign: RPC.Message = { -@@ -160,7 +160,7 @@ export async function validateToRawMessage ( - sequenceNumber: BigInt(`0x${uint8ArrayToString(msg.seqno, 'base16')}`), - topic: msg.topic, - signature: msg.signature, -- key: msg.key ?? marshalPublicKey(publicKey) -+ key: msg.key != null ? publicKeyFromProtobuf(msg.key) : publicKey - } - } - } -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/msgIdFn.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/msgIdFn.ts -index a36d40a..510378d 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/msgIdFn.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/msgIdFn.ts -@@ -13,7 +13,7 @@ export function msgIdFnStrictSign (msg: Message): Uint8Array { - if (msg.sequenceNumber == null) throw Error('missing seqno field') - - // TODO: Should use .from here or key? -- return msgId(msg.from.toBytes(), msg.sequenceNumber) -+ return msgId(msg.from.publicKey ?? msg.key, msg.sequenceNumber) - } - - /** -diff --git a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/publishConfig.ts b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/publishConfig.ts -index 7d3acda..cec74c9 100644 ---- a/node_modules/@chainsafe/libp2p-gossipsub/src/utils/publishConfig.ts -+++ b/node_modules/@chainsafe/libp2p-gossipsub/src/utils/publishConfig.ts -@@ -1,36 +1,22 @@ --import { unmarshalPrivateKey } from '@libp2p/crypto/keys' -+import { publicKeyToProtobuf } from '@libp2p/crypto/keys' - import { StrictSign, StrictNoSign } from '@libp2p/interface' - import { type PublishConfig, PublishConfigType } from '../types.js' --import type { PeerId } from '@libp2p/interface' -+import type { PeerId, PrivateKey } from '@libp2p/interface' - - /** - * Prepare a PublishConfig object from a PeerId. - */ --export async function getPublishConfigFromPeerId ( -+export function getPublishConfigFromPeerId ( - signaturePolicy: typeof StrictSign | typeof StrictNoSign, -- peerId?: PeerId --): Promise { -+ peerId: PeerId, -+ privateKey: PrivateKey -+): PublishConfig { - switch (signaturePolicy) { - case StrictSign: { -- if (peerId == null) { -- throw Error('Must provide PeerId') -- } -- -- if (peerId.privateKey == null) { -- throw Error('Cannot sign message, no private key present') -- } -- -- if (peerId.publicKey == null) { -- throw Error('Cannot sign message, no public key present') -- } -- -- // Transform privateKey once at initialization time instead of once per message -- const privateKey = await unmarshalPrivateKey(peerId.privateKey) -- - return { - type: PublishConfigType.Signing, - author: peerId, -- key: peerId.publicKey, -+ key: publicKeyToProtobuf(privateKey.publicKey), - privateKey - } - } diff --git a/patches/@chainsafe+libp2p-noise+15.1.2.patch b/patches/@chainsafe+libp2p-noise+15.1.2.patch deleted file mode 100644 index 956c20a609..0000000000 --- a/patches/@chainsafe+libp2p-noise+15.1.2.patch +++ /dev/null @@ -1,767 +0,0 @@ -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/index.min.js b/node_modules/@chainsafe/libp2p-noise/dist/index.min.js -index 33c00f0..4a23f91 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/index.min.js -+++ b/node_modules/@chainsafe/libp2p-noise/dist/index.min.js -@@ -1,10 +1,9 @@ - (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ChainsafeLibp2PNoise = factory()}(typeof self !== 'undefined' ? self : this, function () { --"use strict";var ChainsafeLibp2PNoise=(()=>{var nu=Object.create;var un=Object.defineProperty;var su=Object.getOwnPropertyDescriptor;var ou=Object.getOwnPropertyNames;var iu=Object.getPrototypeOf,au=Object.prototype.hasOwnProperty;var cu=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),ht=(r,t)=>{for(var e in t)un(r,e,{get:t[e],enumerable:!0})},Zi=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ou(t))!au.call(r,s)&&s!==e&&un(r,s,{get:()=>t[s],enumerable:!(n=su(t,s))||n.enumerable});return r};var lu=(r,t,e)=>(e=r!=null?nu(iu(r)):{},Zi(t||!r||!r.__esModule?un(e,"default",{value:r,enumerable:!0}):e,r)),uu=r=>Zi(un({},"__esModule",{value:!0}),r);var rc=cu(pr=>{"use strict";var $h="[object ArrayBuffer]",ae=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===$h}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;os.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 Wh(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;se0,pureJsCrypto:()=>Vs});var fn=Symbol.for("@libp2p/peer-id");function Xi(r){return r!=null&&!!r[fn]}var $=class extends Error{code;props;constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var Ji=Symbol.for("@libp2p/service-capabilities"),i0=Symbol.for("@libp2p/service-dependencies");var Wo={};ht(Wo,{Ed25519PrivateKey:()=>Fe,Ed25519PublicKey:()=>Mr,generateKeyPair:()=>Kh,generateKeyPairFromSeed:()=>ec,unmarshalEd25519PrivateKey:()=>Oh,unmarshalEd25519PublicKey:()=>Ph});var zs={};ht(zs,{base58btc:()=>Bt,base58flickr:()=>gu});var R0=new Uint8Array(0);function Qi(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n>>0,I=new Uint8Array(w);x!==m;){for(var R=p[x],S=0,N=w-1;(R!==0||S>>0,I[N]=R%a>>>0,R=R/a>>>0;if(R!==0)throw new Error("Non-zero carry");d=S,x++}for(var _=w-d;_!==w&&I[_]===0;)_++;for(var V=c.repeat(h);_>>0,w=new Uint8Array(m);p[h];){var I=e[p.charCodeAt(h)];if(I===255)return;for(var R=0,S=m-1;(I!==0||R>>0,w[S]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");x=R,h++}if(p[h]!==" "){for(var N=m-x;N!==m&&w[N]===0;)N++;for(var _=new Uint8Array(d+(m-N)),V=d;N!==m;)_[V++]=w[N++];return _}}}function E(p){var h=y(p);if(h)return h;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:y,decode:E}}var hu=fu,du=hu,na=du;var $s=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")}},qs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 sa(this,t)}},Gs=class{decoders;constructor(t){this.decoders=t}or(t){return sa(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 sa(r,t){return new Gs({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var js=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 $s(t,e,n),this.decoder=new qs(t,e,s)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function We({name:r,prefix:t,encode:e,decode:n}){return new js(r,t,e,n)}function ye({name:r,prefix:t,alphabet:e}){let{encode:n,decode:s}=na(e,r);return We({prefix:t,name:r,encode:n,decode:o=>Jt(s(o))})}function pu(r,t,e,n){let s={};for(let f=0;f=8&&(a-=8,i[u++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function yu(r,t,e){let n=t[t.length-1]==="=",s=(1<e;)i-=e,o+=t[s&a>>i];if(i!==0&&(o+=t[s&a<Qt});var mu=aa,oa=128,bu=127,wu=~bu,xu=Math.pow(2,31);function aa(r,t,e){t=t||[],e=e||0;for(var n=e;r>=xu;)t[e++]=r&255|oa,r/=128;for(;r&wu;)t[e++]=r&255|oa,r>>>=7;return t[e]=r|0,aa.bytes=e-n+1,t}var Eu=Ys,vu=128,ia=127;function Ys(r,n){var e=0,n=n||0,s=0,o=n,i,a=r.length;do{if(o>=a)throw Ys.bytes=0,new RangeError("Could not decode varint");i=r[o++],e+=s<28?(i&ia)<=vu);return Ys.bytes=o-n,e}var Bu=Math.pow(2,7),Au=Math.pow(2,14),Su=Math.pow(2,21),ku=Math.pow(2,28),Iu=Math.pow(2,35),_u=Math.pow(2,42),Nu=Math.pow(2,49),Ru=Math.pow(2,56),Lu=Math.pow(2,63),Tu=function(r){return ryt,sha512:()=>Vu});function Xs({name:r,code:t,encode:e}){return new Zs(r,t,e)}var Zs=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?jt(this.code,e):e.then(n=>jt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function ha(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var yt=Xs({name:"sha2-256",code:18,encode:ha("SHA-256")}),Vu=Xs({name:"sha2-512",code:19,encode:ha("SHA-512")});function gt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;es+o.length,0));let e=lt(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}var Qs={};ht(Qs,{base10:()=>Pu});var Pu=ye({prefix:"9",name:"base10",alphabet:"0123456789"});var to={};ht(to,{base16:()=>Ku,base16upper:()=>Mu});var Ku=st({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Mu=st({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var eo={};ht(eo,{base2:()=>Fu});var Fu=st({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ro={};ht(ro,{base256emoji:()=>zu});var da=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),$u=da.reduce((r,t,e)=>(r[e]=t,r),[]),qu=da.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Gu(r){return r.reduce((t,e)=>(t+=$u[e],t),"")}function ju(r){let t=[];for(let e of r){let n=qu[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var zu=We({prefix:"\u{1F680}",name:"base256emoji",encode:Gu,decode:ju});var no={};ht(no,{base32:()=>tr,base32hex:()=>Xu,base32hexpad:()=>Qu,base32hexpadupper:()=>tf,base32hexupper:()=>Ju,base32pad:()=>Wu,base32padupper:()=>Zu,base32upper:()=>Yu,base32z:()=>ef});var tr=st({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Yu=st({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Wu=st({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Zu=st({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Xu=st({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ju=st({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Qu=st({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),tf=st({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ef=st({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var so={};ht(so,{base36:()=>rf,base36upper:()=>nf});var rf=ye({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),nf=ye({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var io={};ht(io,{base64:()=>oo,base64pad:()=>sf,base64url:()=>of,base64urlpad:()=>af});var oo=st({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),sf=st({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),of=st({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),af=st({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ao={};ht(ao,{base8:()=>cf});var cf=st({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var co={};ht(co,{identity:()=>lf});var lf=We({prefix:"\0",name:"identity",encode:r=>ea(r),decode:r=>ta(r)});var np=new TextEncoder,sp=new TextDecoder;function pa(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return df(e,lo(r),t??Bt.encoder);default:return pf(e,lo(r),t??tr.encoder)}}var ya=new WeakMap;function lo(r){let t=ya.get(r);if(t==null){let e=new Map;return ya.set(r,e),e}return t}var ge=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!==Tr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==yf)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=jt(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&&ca(t.multihash,n.multihash)}toString(t){return pa(this,t)}toJSON(){return{"/":pa(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??ga(n,s,o.bytes))}else if(e[gf]===!0){let{version:n,multihash:s,code:o}=e,i=Lr(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!==Tr)throw new Error(`Version 0 CID must use dag-pb (code: ${Tr}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let s=ga(t,e,n.bytes);return new r(t,e,n,s)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Tr,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=Jt(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 Je(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[l,y]=Rr(t.subarray(e));return e+=y,l},s=n(),o=Tr;if(s===18?(s=0,e=0):o=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let i=e,a=n(),c=n(),u=e+c,f=u-i;return{version:s,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,e){let[n,s]=hf(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 lo(o).set(n,t),o}};function hf(r,t){switch(r[0]){case"Q":{let e=t??Bt;return[Bt.prefix,e.decode(`${Bt.prefix}${r}`)]}case Bt.prefix:{let e=t??Bt;return[Bt.prefix,e.decode(r)]}case tr.prefix:{let e=t??tr;return[tr.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function df(r,t,e){let{prefix:n}=e;if(n!==Bt.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 pf(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 Tr=112,yf=18;function ga(r,t,e){let n=Xe(r),s=n+Xe(t),o=new Uint8Array(s+e.byteLength);return Ze(r,o,0),Ze(t,o,n),o.set(e,s),o}var gf=Symbol.for("@ipld/js-cid/CID");var er={...co,...eo,...ao,...Qs,...to,...no,...so,...zs,...io,...ro},xp={...Js,...Ws};function ba(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var ma=ba("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),uo=ba("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=lt(r.length);for(let e=0;e0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function Te(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");me(r.outputLen),me(r.blockLen)}function nr(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 wa(r,t){rr(r);let e=t.outputLen;if(r.lengthnew DataView(r.buffer,r.byteOffset,r.byteLength),Dt=(r,t)=>r<<32-t|r>>>t;var Up=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var wf=async()=>{};async function xa(r,t,e){let n=Date.now();for(let s=0;s=0&&or().update(Vt(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function Ce(r=32){if(pn&&typeof pn.getRandomValues=="function")return pn.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function Ef(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),a=Number(e&o),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}var Ba=(r,t,e)=>r&t^~r&e,Aa=(r,t,e)=>r&t^r&e^t&e,ir=class extends sr{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=or(this.buffer)}update(t){nr(this);let{view:e,buffer:n,blockLen:s}=this;t=Vt(t);let o=t.length;for(let i=0;is-i&&(this.process(n,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>ho&gn)}:{h:Number(r>>ho&gn)|0,l:Number(r&gn)|0}}function vf(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;sBigInt(r>>>0)<>>0),Af=(r,t,e)=>r>>>e,Sf=(r,t,e)=>r<<32-e|t>>>e,kf=(r,t,e)=>r>>>e|t<<32-e,If=(r,t,e)=>r<<32-e|t>>>e,_f=(r,t,e)=>r<<64-e|t>>>e-32,Nf=(r,t,e)=>r>>>e-32|t<<64-e,Rf=(r,t)=>t,Lf=(r,t)=>r,Tf=(r,t,e)=>r<>>32-e,Cf=(r,t,e)=>t<>>32-e,Uf=(r,t,e)=>t<>>64-e,Hf=(r,t,e)=>r<>>64-e;function Df(r,t,e,n){let s=(t>>>0)+(n>>>0);return{h:r+e+(s/2**32|0)|0,l:s|0}}var Vf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Of=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Pf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Kf=(r,t,e,n,s)=>t+e+n+s+(r/2**32|0)|0,Mf=(r,t,e,n,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),Ff=(r,t,e,n,s,o)=>t+e+n+s+o+(r/2**32|0)|0;var $f={fromBig:Sa,split:vf,toBig:Bf,shrSH:Af,shrSL:Sf,rotrSH:kf,rotrSL:If,rotrBH:_f,rotrBL:Nf,rotr32H:Rf,rotr32L:Lf,rotlSH:Tf,rotlSL:Cf,rotlBH:Uf,rotlBL:Hf,add:Df,add3L:Vf,add3H:Of,add4L:Pf,add4H:Kf,add5H:Ff,add5L:Mf},q=$f;var[qf,Gf]=q.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))),be=new Uint32Array(80),we=new Uint32Array(80),po=class extends ir{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:a,Dl:c,Eh:u,El:f,Fh:l,Fl:y,Gh:E,Gl:p,Hh:h,Hl:d}=this;return[t,e,n,s,o,i,a,c,u,f,l,y,E,p,h,d]}set(t,e,n,s,o,i,a,c,u,f,l,y,E,p,h,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=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=y|0,this.Gh=E|0,this.Gl=p|0,this.Hh=h|0,this.Hl=d|0}process(t,e){for(let w=0;w<16;w++,e+=4)be[w]=t.getUint32(e),we[w]=t.getUint32(e+=4);for(let w=16;w<80;w++){let I=be[w-15]|0,R=we[w-15]|0,S=q.rotrSH(I,R,1)^q.rotrSH(I,R,8)^q.shrSH(I,R,7),N=q.rotrSL(I,R,1)^q.rotrSL(I,R,8)^q.shrSL(I,R,7),_=be[w-2]|0,V=we[w-2]|0,U=q.rotrSH(_,V,19)^q.rotrBH(_,V,61)^q.shrSH(_,V,6),L=q.rotrSL(_,V,19)^q.rotrBL(_,V,61)^q.shrSL(_,V,6),M=q.add4L(N,L,we[w-7],we[w-16]),K=q.add4H(M,S,U,be[w-7],be[w-16]);be[w]=K|0,we[w]=M|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:y,Fh:E,Fl:p,Gh:h,Gl:d,Hh:x,Hl:m}=this;for(let w=0;w<80;w++){let I=q.rotrSH(l,y,14)^q.rotrSH(l,y,18)^q.rotrBH(l,y,41),R=q.rotrSL(l,y,14)^q.rotrSL(l,y,18)^q.rotrBL(l,y,41),S=l&E^~l&h,N=y&p^~y&d,_=q.add5L(m,R,N,Gf[w],we[w]),V=q.add5H(_,x,I,S,qf[w],be[w]),U=_|0,L=q.rotrSH(n,s,28)^q.rotrBH(n,s,34)^q.rotrBH(n,s,39),M=q.rotrSL(n,s,28)^q.rotrBL(n,s,34)^q.rotrBL(n,s,39),K=n&o^n&a^o&a,k=s&i^s&c^i&c;x=h|0,m=d|0,h=E|0,d=p|0,E=l|0,p=y|0,{h:l,l:y}=q.add(u|0,f|0,V|0,U|0),u=a|0,f=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let b=q.add3L(U,M,k);n=q.add3H(b,V,L,K),s=b|0}({h:n,l:s}=q.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=q.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=q.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=q.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:y}=q.add(this.Eh|0,this.El|0,l|0,y|0),{h:E,l:p}=q.add(this.Fh|0,this.Fl|0,E|0,p|0),{h,l:d}=q.add(this.Gh|0,this.Gl|0,h|0,d|0),{h:x,l:m}=q.add(this.Hh|0,this.Hl|0,x|0,m|0),this.set(n,s,o,i,a,c,u,f,l,y,E,p,h,d,x,m)}roundClean(){be.fill(0),we.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 Cr=yn(()=>new po);var bn={};ht(bn,{aInRange:()=>mt,abool:()=>Ot,abytes:()=>ar,bitGet:()=>Jf,bitLen:()=>Xf,bitMask:()=>Hr,bitSet:()=>Qf,bytesToHex:()=>re,bytesToNumberBE:()=>ne,bytesToNumberLE:()=>Pt,concatBytes:()=>oe,createHmacDrbg:()=>wo,ensureBytes:()=>tt,equalBytes:()=>Wf,hexToBytes:()=>Ue,hexToNumber:()=>bo,inRange:()=>Ur,isBytes:()=>xe,memoized:()=>He,notImplemented:()=>eh,numberToBytesBE:()=>Ee,numberToBytesLE:()=>se,numberToHexUnpadded:()=>_a,numberToVarBytesBE:()=>Yf,utf8ToBytes:()=>Zf,validateObject:()=>Tt});var mo=BigInt(0),mn=BigInt(1),jf=BigInt(2);function xe(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function ar(r){if(!xe(r))throw new Error("Uint8Array expected")}function Ot(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var zf=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function re(r){ar(r);let t="";for(let e=0;e=ee._0&&r<=ee._9)return r-ee._0;if(r>=ee._A&&r<=ee._F)return r-(ee._A-10);if(r>=ee._a&&r<=ee._f)return r-(ee._a-10)}function Ue(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("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let s=0,o=0;stypeof r=="bigint"&&mo<=r;function Ur(r,t,e){return yo(r)&&yo(t)&&yo(e)&&t<=r&&rmo;r>>=mn,t+=1);return t}function Jf(r,t){return r>>BigInt(t)&mn}function Qf(r,t,e){return r|(e?mn:mo)<(jf<new Uint8Array(r),Ia=r=>Uint8Array.from(r);function wo(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=go(r),s=go(r),o=0,i=()=>{n.fill(1),s.fill(0),o=0},a=(...l)=>e(s,n,...l),c=(l=go())=>{s=a(Ia([0]),l),n=a(),l.length!==0&&(s=a(Ia([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,y=[];for(;l{i(),c(l);let E;for(;!(E=y(u()));)c();return i(),E}}var th={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"||xe(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 Tt(r,t,e={}){let n=(s,o,i)=>{let a=th[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=r[s];if(!(i&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};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 eh=()=>{throw new Error("not implemented")};function He(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 ut=BigInt(0),rt=BigInt(1),De=BigInt(2),rh=BigInt(3),xo=BigInt(4),Na=BigInt(5),Ra=BigInt(8),nh=BigInt(9),sh=BigInt(16);function Y(r,t){let e=r%t;return e>=ut?e:t+e}function Eo(r,t,e){if(e<=ut||t 0");if(e===rt)return ut;let n=rt;for(;t>ut;)t&rt&&(n=n*r%e),r=r*r%e,t>>=rt;return n}function et(r,t,e){let n=r;for(;t-- >ut;)n*=n,n%=e;return n}function wn(r,t){if(r===ut||t<=ut)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=Y(r,t),n=t,s=ut,o=rt,i=rt,a=ut;for(;e!==ut;){let u=n/e,f=n%e,l=s-i*u,y=o-a*u;n=e,e=f,s=i,o=a,i=l,a=y}if(n!==rt)throw new Error("invert: does not exist");return Y(s,t)}function oh(r){let t=(r-rt)/De,e,n,s;for(e=r-rt,n=0;e%De===ut;e/=De,n++);for(s=De;s(Y(r,t)&rt)===rt,ah=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function vo(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=ah.reduce((n,s)=>(n[s]="function",n),t);return Tt(r,e)}function ch(r,t,e){if(e 0");if(e===ut)return r.ONE;if(e===rt)return t;let n=r.ONE,s=t;for(;e>ut;)e&rt&&(n=r.mul(n,s)),s=r.sqr(s),e>>=rt;return n}function lh(r,t){let e=new Array(t.length),n=t.reduce((o,i,a)=>r.is0(i)?o:(e[a]=o,r.mul(o,i)),r.ONE),s=r.inv(n);return t.reduceRight((o,i,a)=>r.is0(i)?o:(e[a]=r.mul(o,e[a]),r.mul(o,i)),s),e}function Bo(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function xn(r,t,e=!1,n={}){if(r<=ut)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:o}=Bo(r,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let i=ih(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:o,MASK:Hr(s),ZERO:ut,ONE:rt,create:c=>Y(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ut<=c&&cc===ut,isOdd:c=>(c&rt)===rt,neg:c=>Y(-c,r),eql:(c,u)=>c===u,sqr:c=>Y(c*c,r),add:(c,u)=>Y(c+u,r),sub:(c,u)=>Y(c-u,r),mul:(c,u)=>Y(c*u,r),pow:(c,u)=>ch(a,c,u),div:(c,u)=>Y(c*wn(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>wn(c,r),sqrt:n.sqrt||(c=>i(a,c)),invertBatch:c=>lh(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>e?se(c,o):Ee(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return e?Pt(c):ne(c)}});return Object.freeze(a)}function Ta(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 Ao(r){let t=Ta(r);return t+Math.ceil(t/2)}function Ca(r,t,e=!1){let n=r.length,s=Ta(t),o=Ao(t);if(n<16||n1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let i=e?ne(r):Pt(r),a=Y(i,t-rt)+rt;return e?se(a,s):Ee(a,s)}var fh=BigInt(0),So=BigInt(1),ko=new WeakMap,Ua=new WeakMap;function En(r,t){let e=(o,i)=>{let a=i.negate();return o?a:i},n=o=>{if(!Number.isSafeInteger(o)||o<=0||o>t)throw new Error(`Wrong window size=${o}, should be [1..${t}]`)},s=o=>{n(o);let i=Math.ceil(t/o)+1,a=2**(o-1);return{windows:i,windowSize:a}};return{constTimeNegate:e,unsafeLadder(o,i){let a=r.ZERO,c=o;for(;i>fh;)i&So&&(a=a.add(c)),c=c.double(),i>>=So;return a},precomputeWindow(o,i){let{windows:a,windowSize:c}=s(i),u=[],f=o,l=f;for(let y=0;y>=p,x>u&&(x-=E,a+=So);let m=d,w=d+Math.abs(x)-1,I=h%2!==0,R=x<0;x===0?l=l.add(e(I,i[m])):f=f.add(e(R,i[w]))}return{p:f,f:l}},wNAFCached(o,i,a){let c=Ua.get(o)||1,u=ko.get(o);return u||(u=this.precomputeWindow(o,c),c!==1&&ko.set(o,a(u))),this.wNAF(c,u,i)},setWindowSize(o,i){n(i),Ua.set(o,i),ko.delete(o)}}}function Dr(r){return vo(r.Fp),Tt(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Bo(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Kt=BigInt(0),kt=BigInt(1),vn=BigInt(2),hh=BigInt(8),dh={zip215:!0};function ph(r){let t=Dr(r);return Tt(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Ha(r){let t=ph(r),{Fp:e,n,prehash:s,hash:o,randomBytes:i,nByteLength:a,h:c}=t,u=vn<{try{return{isValid:!0,value:e.sqrt(b*e.inv(g))}}catch{return{isValid:!1,value:Kt}}}),y=t.adjustScalarBytes||(b=>b),E=t.domain||((b,g,B)=>{if(Ot("phflag",B),g.length||B)throw new Error("Contexts/pre-hash are not supported");return b});function p(b,g){mt("coordinate "+b,g,Kt,u)}function h(b){if(!(b instanceof m))throw new Error("ExtendedPoint expected")}let d=He((b,g)=>{let{ex:B,ey:A,ez:v}=b,T=b.is0();g==null&&(g=T?hh:e.inv(v));let H=f(B*g),O=f(A*g),P=f(v*g);if(T)return{x:Kt,y:kt};if(P!==kt)throw new Error("invZ was invalid");return{x:H,y:O}}),x=He(b=>{let{a:g,d:B}=t;if(b.is0())throw new Error("bad point: ZERO");let{ex:A,ey:v,ez:T,et:H}=b,O=f(A*A),P=f(v*v),F=f(T*T),j=f(F*F),W=f(O*g),ot=f(F*f(W+P)),Q=f(j+f(B*f(O*P)));if(ot!==Q)throw new Error("bad point: equation left != right (1)");let J=f(A*v),Ut=f(T*H);if(J!==Ut)throw new Error("bad point: equation left != right (2)");return!0});class m{constructor(g,B,A,v){this.ex=g,this.ey=B,this.ez=A,this.et=v,p("x",g),p("y",B),p("z",A),p("t",v),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(g){if(g instanceof m)throw new Error("extended point not allowed");let{x:B,y:A}=g||{};return p("x",B),p("y",A),new m(B,A,kt,f(B*A))}static normalizeZ(g){let B=e.invertBatch(g.map(A=>A.ez));return g.map((A,v)=>A.toAffine(B[v])).map(m.fromAffine)}_setWindowSize(g){R.setWindowSize(this,g)}assertValidity(){x(this)}equals(g){h(g);let{ex:B,ey:A,ez:v}=this,{ex:T,ey:H,ez:O}=g,P=f(B*O),F=f(T*v),j=f(A*O),W=f(H*v);return P===F&&j===W}is0(){return this.equals(m.ZERO)}negate(){return new m(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:g}=t,{ex:B,ey:A,ez:v}=this,T=f(B*B),H=f(A*A),O=f(vn*f(v*v)),P=f(g*T),F=B+A,j=f(f(F*F)-T-H),W=P+H,ot=W-O,Q=P-H,J=f(j*ot),Ut=f(W*Q),ft=f(j*Q),Ht=f(ot*W);return new m(J,Ut,Ht,ft)}add(g){h(g);let{a:B,d:A}=t,{ex:v,ey:T,ez:H,et:O}=this,{ex:P,ey:F,ez:j,et:W}=g;if(B===BigInt(-1)){let $i=f((T-v)*(F+P)),qi=f((T+v)*(F-P)),Fs=f(qi-$i);if(Fs===Kt)return this.double();let Gi=f(H*vn*W),ji=f(O*vn*j),zi=ji+Gi,Yi=qi+$i,Wi=ji-Gi,Ql=f(zi*Fs),tu=f(Yi*Wi),eu=f(zi*Wi),ru=f(Fs*Yi);return new m(Ql,tu,ru,eu)}let ot=f(v*P),Q=f(T*F),J=f(O*A*W),Ut=f(H*j),ft=f((v+T)*(P+F)-ot-Q),Ht=Ut-J,Le=Ut+J,_r=f(Q-B*ot),ln=f(ft*Ht),Zl=f(Le*_r),Xl=f(ft*_r),Jl=f(Ht*Le);return new m(ln,Zl,Jl,Xl)}subtract(g){return this.add(g.negate())}wNAF(g){return R.wNAFCached(this,g,m.normalizeZ)}multiply(g){let B=g;mt("scalar",B,kt,n);let{p:A,f:v}=this.wNAF(B);return m.normalizeZ([A,v])[0]}multiplyUnsafe(g){let B=g;return mt("scalar",B,Kt,n),B===Kt?I:this.equals(I)||B===kt?this:this.equals(w)?this.wNAF(B).p:R.unsafeLadder(this,B)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return R.unsafeLadder(this,n).is0()}toAffine(g){return d(this,g)}clearCofactor(){let{h:g}=t;return g===kt?this:this.multiplyUnsafe(g)}static fromHex(g,B=!1){let{d:A,a:v}=t,T=e.BYTES;g=tt("pointHex",g,T),Ot("zip215",B);let H=g.slice(),O=g[T-1];H[T-1]=O&-129;let P=Pt(H),F=B?u:e.ORDER;mt("pointHex.y",P,Kt,F);let j=f(P*P),W=f(j-kt),ot=f(A*j-v),{isValid:Q,value:J}=l(W,ot);if(!Q)throw new Error("Point.fromHex: invalid y coordinate");let Ut=(J&kt)===kt,ft=(O&128)!==0;if(!B&&J===Kt&&ft)throw new Error("Point.fromHex: x=0 and x_0=1");return ft!==Ut&&(J=f(-J)),m.fromAffine({x:J,y:P})}static fromPrivateKey(g){return _(g).point}toRawBytes(){let{x:g,y:B}=this.toAffine(),A=se(B,e.BYTES);return A[A.length-1]|=g&kt?128:0,A}toHex(){return re(this.toRawBytes())}}m.BASE=new m(t.Gx,t.Gy,kt,f(t.Gx*t.Gy)),m.ZERO=new m(Kt,kt,kt,Kt);let{BASE:w,ZERO:I}=m,R=En(m,a*8);function S(b){return Y(b,n)}function N(b){return S(Pt(b))}function _(b){let g=a;b=tt("private key",b,g);let B=tt("hashed private key",o(b),2*g),A=y(B.slice(0,g)),v=B.slice(g,2*g),T=N(A),H=w.multiply(T),O=H.toRawBytes();return{head:A,prefix:v,scalar:T,point:H,pointBytes:O}}function V(b){return _(b).pointBytes}function U(b=new Uint8Array,...g){let B=oe(...g);return N(o(E(B,tt("context",b),!!s)))}function L(b,g,B={}){b=tt("message",b),s&&(b=s(b));let{prefix:A,scalar:v,pointBytes:T}=_(g),H=U(B.context,A,b),O=w.multiply(H).toRawBytes(),P=U(B.context,O,T,b),F=S(H+P*v);mt("signature.s",F,Kt,n);let j=oe(O,se(F,e.BYTES));return tt("result",j,a*2)}let M=dh;function K(b,g,B,A=M){let{context:v,zip215:T}=A,H=e.BYTES;b=tt("signature",b,2*H),g=tt("message",g),T!==void 0&&Ot("zip215",T),s&&(g=s(g));let O=Pt(b.slice(H,2*H)),P,F,j;try{P=m.fromHex(B,T),F=m.fromHex(b.slice(0,H),T),j=w.multiplyUnsafe(O)}catch{return!1}if(!T&&P.isSmallOrder())return!1;let W=U(v,F.toRawBytes(),P.toRawBytes(),g);return F.add(P.multiplyUnsafe(W)).subtract(j).clearCofactor().equals(m.ZERO)}return w._setWindowSize(8),{CURVE:t,getPublicKey:V,sign:L,verify:K,ExtendedPoint:m,utils:{getExtendedPublicKey:_,randomPrivateKey:()=>i(e.BYTES),precompute(b=8,g=m.BASE){return g._setWindowSize(b),g.multiply(BigInt(3)),g}}}}var cr=BigInt(0),Io=BigInt(1);function yh(r){return Tt(r,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r})}function Da(r){let t=yh(r),{P:e}=t,n=m=>Y(m,e),s=t.montgomeryBits,o=Math.ceil(s/8),i=t.nByteLength,a=t.adjustScalarBytes||(m=>m),c=t.powPminus2||(m=>Eo(m,e-BigInt(2),e));function u(m,w,I){let R=n(m*(w-I));return w=n(w-R),I=n(I+R),[w,I]}let f=(t.a-BigInt(2))/BigInt(4);function l(m,w){mt("u",m,cr,e),mt("scalar",w,cr,e);let I=w,R=m,S=Io,N=cr,_=m,V=Io,U=cr,L;for(let K=BigInt(s-1);K>=cr;K--){let k=I>>K&Io;U^=k,L=u(U,S,_),S=L[0],_=L[1],L=u(U,N,V),N=L[0],V=L[1],U=k;let b=S+N,g=n(b*b),B=S-N,A=n(B*B),v=g-A,T=_+V,H=_-V,O=n(H*b),P=n(T*B),F=O+P,j=O-P;_=n(F*F),V=n(R*n(j*j)),S=n(g*A),N=n(v*(g+n(f*v)))}L=u(U,S,_),S=L[0],_=L[1],L=u(U,N,V),N=L[0],V=L[1];let M=c(N);return n(S*M)}function y(m){return se(n(m),o)}function E(m){let w=tt("u coordinate",m,o);return i===32&&(w[31]&=127),Pt(w)}function p(m){let w=tt("scalar",m),I=w.length;if(I!==o&&I!==i)throw new Error(`Expected ${o} or ${i} bytes, got ${I}`);return Pt(a(w))}function h(m,w){let I=E(w),R=p(m),S=l(I,R);if(S===cr)throw new Error("Invalid private or public key received");return y(S)}let d=y(t.Gu);function x(m){return h(m,d)}return{scalarMult:h,scalarMultBase:x,getSharedSecret:(m,w)=>h(m,w),getPublicKey:m=>x(m),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:d}}var Vr=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Va=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),ay=BigInt(0),gh=BigInt(1),Oa=BigInt(2),mh=BigInt(3),bh=BigInt(5),wh=BigInt(8);function Pa(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),s=BigInt(80),o=Vr,a=r*r%o*r%o,c=et(a,Oa,o)*a%o,u=et(c,gh,o)*r%o,f=et(u,bh,o)*u%o,l=et(f,t,o)*f%o,y=et(l,e,o)*l%o,E=et(y,n,o)*y%o,p=et(E,s,o)*E%o,h=et(p,s,o)*E%o,d=et(h,t,o)*f%o;return{pow_p_5_8:et(d,Oa,o)*r%o,b2:a}}function Ka(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function xh(r,t){let e=Vr,n=Y(t*t*t,e),s=Y(n*n*t,e),o=Pa(r*s).pow_p_5_8,i=Y(r*n*o,e),a=Y(t*i*i,e),c=i,u=Y(i*Va,e),f=a===r,l=a===Y(-r,e),y=a===Y(-r*Va,e);return f&&(i=c),(l||y)&&(i=u),La(i,e)&&(i=Y(-i,e)),{isValid:f||l,value:i}}var Eh=xn(Vr,void 0,!0),vh={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Eh,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:wh,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Cr,randomBytes:Ce,adjustScalarBytes:Ka,uvRatio:xh},lr=Ha(vh);var Or=Da({P:Vr,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:r=>{let t=Vr,{pow_p_5_8:e,b2:n}=Pa(r);return Y(et(e,mh,t)*n,t)},adjustScalarBytes:Ka,randomBytes:Ce});var ur=32,ie=64,Bn=32;function Ma(){let r=lr.utils.randomPrivateKey(),t=lr.getPublicKey(r);return{privateKey:Ga(r,t),publicKey:t}}function Fa(r){if(r.length!==Bn)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=r,e=lr.getPublicKey(t);return{privateKey:Ga(t,e),publicKey:e}}function $a(r,t){let e=r.subarray(0,Bn);return lr.sign(t instanceof Uint8Array?t:t.subarray(),e)}function qa(r,t,e){return lr.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}function Ga(r,t){let e=new Uint8Array(ie);for(let n=0;nNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Co(r,t,e=0){switch(Nt(r)){case 8:t[e++]=r&255|Z,r/=128;case 7:t[e++]=r&255|Z,r/=128;case 6:t[e++]=r&255|Z,r/=128;case 5:t[e++]=r&255|Z,r/=128;case 4:t[e++]=r&255|Z,r>>>=7;case 3:t[e++]=r&255|Z,r>>>=7;case 2:t[e++]=r&255|Z,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function _h(r,t,e=0){switch(Nt(r)){case 8:t.set(e++,r&255|Z),r/=128;case 7:t.set(e++,r&255|Z),r/=128;case 6:t.set(e++,r&255|Z),r/=128;case 5:t.set(e++,r&255|Z),r/=128;case 4:t.set(e++,r&255|Z),r>>>=7;case 3:t.set(e++,r&255|Z),r>>>=7;case 2:t.set(e++,r&255|Z),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Uo(r,t){let e=r[t],n=0;if(n+=e&xt,e>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Ve;if(tLh)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,s=t-(n<<32n);return e&&(n=~n|0n,s=~s|0n,++s>Xa&&(s=0n,++n>Xa&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(t){if(t===0)return Ve;let e=t<0;e&&(t=-t);let n=t>>>0,s=(t-n)/4294967296>>>0;return e&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):Ve}},Ve=new Rt(0,0);Ve.toBigInt=function(){return 0n};Ve.zzEncode=Ve.zzDecode=function(){return this};Ve.length=function(){return 1};var Xa=4294967296n;function Ja(r){let t=0,e=0;for(let n=0;n191&&a<224?o[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,o[i++]=55296+(a>>10),o[i++]=56320+(a&1023)):o[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,o)),i=0);return s!=null?(i>0&&s.push(String.fromCharCode.apply(String,o.slice(0,i))),s.join("")):String.fromCharCode.apply(String,o.slice(0,i))}function Oo(r,t,e){let n=e,s,o;for(let i=0;i>6|192,t[e++]=s&63|128):(s&64512)===55296&&((o=r.charCodeAt(i+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++i,t[e++]=s>>18|240,t[e++]=s>>12&63|128,t[e++]=s>>6&63|128,t[e++]=s&63|128):(t[e++]=s>>12|224,t[e++]=s>>6&63|128,t[e++]=s&63|128);return e-n}function Mt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function kn(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Po=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Mt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Mt(this,4);return kn(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Mt(this,4);return kn(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Mt(this,4);let t=Ya(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Mt(this,4);let t=Za(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Mt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Qa(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Mt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Mt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Rt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Mt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Mt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Mt(this,8);let t=kn(this.buf,this.pos+=4),e=kn(this.buf,this.pos+=4);return new Rt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Uo(this.buf,this.pos);return this.pos+=Nt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Ko(r){return new Po(r instanceof Uint8Array?r:r.subarray())}function Oe(r,t,e){let n=Ko(r);return t.decode(n,void 0,e)}function Mo(r){let t=r??8192,e=t>>>1,n,s=t;return function(i){if(i<1||i>e)return lt(i);s+i>t&&(n=lt(t),s=0);let a=n.subarray(s,s+=i);return s&7&&(s=(s|7)+1),a}}var Pe=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Fo(){}var qo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Th=Mo();function Ch(r){return globalThis.Buffer!=null?lt(r):Th(r)}var Kr=class{len;head;tail;states;constructor(){this.len=0,this.head=new Pe(Fo,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new Pe(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Go((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(In,10,Rt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Rt.fromBigInt(t);return this._push(In,e.length(),e)}uint64Number(t){return this._push(Co,Nt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Rt.fromBigInt(t).zzEncode();return this._push(In,e.length(),e)}sint64Number(t){let e=Rt.fromNumber(t).zzEncode();return this._push(In,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push($o,1,t?1:0)}fixed32(t){return this._push(Pr,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Rt.fromBigInt(t);return this._push(Pr,4,e.lo)._push(Pr,4,e.hi)}fixed64Number(t){let e=Rt.fromNumber(t);return this._push(Pr,4,e.lo)._push(Pr,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(za,4,t)}double(t){return this._push(Wa,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push($o,1,0):this.uint32(e)._push(Hh,e,t)}string(t){let e=Ja(t);return e!==0?this.uint32(e)._push(Oo,e,t):this._push($o,1,0)}fork(){return this.states=new qo(this),this.head=this.tail=new Pe(Fo,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Pe(Fo,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Ch(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function $o(r,t,e){t[e]=r&255}function Uh(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Go=class extends Pe{next;constructor(t,e){super(Uh,t,e),this.next=void 0}};function In(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Pr(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Hh(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Kr.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Dh,t,r),this},Kr.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Vh,t,r),this});function Dh(r,t,e){t.set(r,e)}function Vh(r,t,e){r.length<40?Oo(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(X(r),e)}function jo(){return new Kr}function Ke(r,t){let e=jo();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var hr;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(hr||(hr={}));function _n(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function zo(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(o,i){let a=t(o);i.int32(a)},n=function(o){let i=o.int32();return t(i)};return _n("enum",hr.VARINT,e,n)}function Me(r,t){return _n("message",hr.LENGTH_DELIMITED,r,t)}var nt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(nt||(nt={}));var Yo;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Yo||(Yo={}));(function(r){r.codec=()=>zo(Yo)})(nt||(nt={}));var zt;(function(r){let t;r.codec=()=>(t==null&&(t=Me((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),nt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:s.Type=nt.codec().decode(e);break;case 2:s.Data=e.bytes();break;default:e.skipType(i&7);break}}return s})),t),r.encode=e=>Ke(e,r.codec()),r.decode=e=>Oe(e,r.codec())})(zt||(zt={}));var Yt;(function(r){let t;r.codec=()=>(t==null&&(t=Me((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),nt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:s.Type=nt.codec().decode(e);break;case 2:s.Data=e.bytes();break;default:e.skipType(i&7);break}}return s})),t),r.encode=e=>Ke(e,r.codec()),r.decode=e=>Oe(e,r.codec())})(Yt||(Yt={}));var Mr=class{_key;constructor(t){this._key=dr(t,ur)}verify(t,e){return qa(this._key,e,t)}marshal(){return this._key}get bytes(){return zt.encode({Type:nt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}hash(){let t=yt.digest(this.bytes);return Lt(t)?t.then(({bytes:e})=>e):t.bytes}},Fe=class{_key;_publicKey;constructor(t,e){this._key=dr(t,ie),this._publicKey=dr(e,ur)}sign(t){return $a(this._key,t)}get public(){return new Mr(this._publicKey)}marshal(){return this._key}get bytes(){return Yt.encode({Type:nt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let t=yt.digest(this.bytes),e;return Lt(t)?{bytes:e}=await t:e=t.bytes,e}async id(){let t=Qt.digest(this.public.bytes);return Bt.encode(t.bytes).substring(1)}async export(t,e="libp2p-key"){if(e==="libp2p-key")return fr(this.bytes,t);throw new $(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Oh(r){if(r.length>ie){r=dr(r,ie+ur);let n=r.subarray(0,ie),s=r.subarray(ie,r.length);return new Fe(n,s)}r=dr(r,ie);let t=r.subarray(0,ie),e=r.subarray(ur);return new Fe(t,e)}function Ph(r){return r=dr(r,ur),new Mr(r)}async function Kh(){let{privateKey:r,publicKey:t}=Ma();return new Fe(r,t)}async function ec(r){let{privateKey:t,publicKey:e}=Fa(r);return new Fe(t,e)}function dr(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new $(`Key must be a Uint8Array of length ${t}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}function z(r,t="utf8"){let e=dn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var oi={};ht(oi,{MAX_RSA_KEY_SIZE:()=>Jr,RsaPrivateKey:()=>br,RsaPublicKey:()=>Xr,fromJwk:()=>dd,generateKeyPair:()=>pd,unmarshalRsaPrivateKey:()=>ni,unmarshalRsaPublicKey:()=>hd});function $e(r){if(isNaN(r)||r<=0)throw new $("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ce(r)}var Ie={};ht(Ie,{exportToPem:()=>ad,importFromPem:()=>cd,jwkToPkcs1:()=>nd,jwkToPkix:()=>od,pkcs1ToJwk:()=>rd,pkixToJwk:()=>sd});var Rn=class extends sr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Te(t);let n=Vt(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?t.create().update(n).digest():n);for(let i=0;inew Rn(r,t).update(e).digest();Be.create=(r,t)=>new Rn(r,t);function Mh(r,t,e,n){Te(r);let s=va({dkLen:32,asyncTick:10},n),{c:o,dkLen:i,asyncTick:a}=s;if(me(o),me(i),me(a),o<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Vt(t),u=Vt(e),f=new Uint8Array(i),l=Be.create(r,c),y=l._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:f,PRF:l,PRFSalt:y}}function Fh(r,t,e,n,s){return r.destroy(),t.destroy(),n&&n.destroy(),s.fill(0),e}async function Zo(r,t,e,n){let{c:s,dkLen:o,asyncTick:i,DK:a,PRF:c,PRFSalt:u}=Mh(r,t,e,n),f,l=new Uint8Array(4),y=or(l),E=new Uint8Array(c.outputLen);for(let p=1,h=0;h{c._cloneInto(f).update(E).digestInto(E);for(let x=0;x=0;n--)e+=r[r.length-1-n]*Math.pow(2,t*n);return e}function Ae(r,t,e=-1){let n=e,s=r,o=0,i=Math.pow(2,t);for(let a=1;a<8;a++){if(r=0;f--){let l=Math.pow(2,f*t);u[o-f-1]=Math.floor(s/l),s-=u[o-f-1]*l}return c}i*=Math.pow(2,t)}return new ArrayBuffer(0)}function Cn(...r){let t=0,e=0;for(let o of r)t+=o.length;let n=new ArrayBuffer(t),s=new Uint8Array(n);for(let o of r)s.set(o,e),e+=o.length;return s}function Jo(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let t=new ArrayBuffer(this.valueHex.byteLength),e=new Uint8Array(t);for(let a=0;a"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Qo(r){let t=0,e=0;for(let s=0;s=o.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let y=new Uint8Array(f);for(let E=0;E8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;let a=e+1,c=s.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=qe(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){let s=Ae(this.length,8);if(s.byteLength>127)return this.error="Too big length",$t;if(e=new ArrayBuffer(s.byteLength+1),t)return e;let o=new Uint8Array(s);n=new Uint8Array(e),n[0]=s.byteLength|128;for(let i=0;i=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=C.EndOfContent;break;case 1:c=C.Boolean;break;case 2:c=C.Integer;break;case 3:c=C.BitString;break;case 4:c=C.OctetString;break;case 5:c=C.Null;break;case 6:c=C.ObjectIdentifier;break;case 10:c=C.Enumerated;break;case 12:c=C.Utf8String;break;case 13:c=C.RelativeObjectIdentifier;break;case 14:c=C.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=C.Sequence;break;case 17:c=C.Set;break;case 18:c=C.NumericString;break;case 19:c=C.PrintableString;break;case 20:c=C.TeletexString;break;case 21:c=C.VideotexString;break;case 22:c=C.IA5String;break;case 23:c=C.UTCTime;break;case 24:c=C.GeneralizedTime;break;case 25:c=C.GraphicString;break;case 26:c=C.VisibleString;break;case 27:c=C.GeneralString;break;case 28:c=C.UniversalString;break;case 29:c=C.CharacterString;break;case 30:c=C.BmpString;break;case 31:c=C.DATE;break;case 32:c=C.TimeOfDay;break;case 33:c=C.DateTime;break;case 34:c=C.Duration;break;default:{let u=s.idBlock.isConstructed?new C.Constructed:new C.Primitive;u.idBlock=s.idBlock,u.lenBlock=s.lenBlock,u.warnings=s.warnings,s=u}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?C.Constructed:C.Primitive}return s=Xh(s,c),a=s.fromBER(r,t,s.lenBlock.isIndefiniteForm?e:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function mr(r){if(!r.byteLength){let t=new bt({},vt);return t.error="Input buffer has zero length",{offset:-1,result:t}}return bs(G.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Jh(r,t){return r?1:t}var Wt=class extends vt{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){let s=G.BufferSourceConverter.toUint8Array(t);if(!fe(this,s,e,n))return-1;if(this.valueBeforeDecodeView=s.subarray(e,e+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),e;let o=e;for(;Jh(this.isIndefiniteForm,n)>0;){let i=bs(s,o,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(o=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===qr)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===qr?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(t,e){let n=e||new $r;for(let s=0;s{var tu=Object.create;var Wr=Object.defineProperty;var eu=Object.getOwnPropertyDescriptor;var ru=Object.getOwnPropertyNames;var nu=Object.getPrototypeOf,su=Object.prototype.hasOwnProperty;var ou=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),bt=(r,t)=>{for(var e in t)Wr(r,e,{get:t[e],enumerable:!0})},qi=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ru(t))!su.call(r,s)&&s!==e&&Wr(r,s,{get:()=>t[s],enumerable:!(n=eu(t,s))||n.enumerable});return r};var iu=(r,t,e)=>(e=r!=null?tu(nu(r)):{},qi(t||!r||!r.__esModule?Wr(e,"default",{value:r,enumerable:!0}):e,r)),au=r=>qi(Wr({},"__esModule",{value:!0}),r);var ic=ou(rr=>{"use strict";var Gh="[object ArrayBuffer]",Jt=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===Gh}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;os.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 Yh(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;sTd,pureJsCrypto:()=>Hs});var Ks=Symbol.for("@libp2p/peer-id");var Zr=class extends Error{constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}};var wt=class extends Error{constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},De=class extends Error{constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var Me=class extends Error{constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var Gi=Symbol.for("@libp2p/service-capabilities"),Dd=Symbol.for("@libp2p/service-dependencies");function zi(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function cu(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Ke(r,...t){if(!cu(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function ji(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");zi(r.outputLen),zi(r.blockLen)}function Pe(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 Wi(r,t){Ke(r);let e=t.outputLen;if(r.lengthnew DataView(r.buffer,r.byteOffset,r.byteLength),Tt=(r,t)=>r<<32-t|r>>>t;var h0=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Zi(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function pr(r){return typeof r=="string"&&(r=Zi(r)),Ke(r),r}function Ps(...r){let t=0;for(let n=0;nr().update(pr(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function gr(r=32){if(Xr&&typeof Xr.getRandomValues=="function")return Xr.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function lu(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),a=Number(e&o),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}var Xi=(r,t,e)=>r&t^~r&e,Yi=(r,t,e)=>r&t^r&e^t&e,$e=class extends Fe{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=Yr(this.buffer)}update(t){Pe(this);let{view:e,buffer:n,blockLen:s}=this;t=pr(t);let o=t.length;for(let i=0;is-i&&(this.process(n,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>>3,h=Tt(E,17)^Tt(E,19)^E>>>10;ae[l]=h+ae[l-7]+g+ae[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let m=Tt(a,6)^Tt(a,11)^Tt(a,25),E=f+m+Xi(a,c,u)+uu[l]+ae[l]|0,h=(Tt(n,2)^Tt(n,13)^Tt(n,22))+Yi(n,s,o)|0;f=u,u=c,c=a,a=i+E|0,i=o,o=s,s=n,n=E+h|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,o,i,a,c,u,f)}roundClean(){ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ji=Jr(()=>new Fs);var Qr=class extends Fe{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,ji(t);let n=pr(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?t.create().update(n).digest():n);for(let i=0;inew Qr(r,t).update(e).digest();$s.create=(r,t)=>new Qr(r,t);var en={};bt(en,{aInRange:()=>ft,abool:()=>Rt,abytes:()=>qe,bitGet:()=>mu,bitLen:()=>yu,bitMask:()=>mr,bitSet:()=>xu,bytesToHex:()=>zt,bytesToNumberBE:()=>jt,bytesToNumberLE:()=>Ht,concatBytes:()=>Zt,createHmacDrbg:()=>Ws,ensureBytes:()=>Y,equalBytes:()=>pu,hexToBytes:()=>Ae,hexToNumber:()=>js,inRange:()=>yr,isBytes:()=>ce,memoized:()=>Se,notImplemented:()=>wu,numberToBytesBE:()=>le,numberToBytesLE:()=>Wt,numberToHexUnpadded:()=>ea,numberToVarBytesBE:()=>du,utf8ToBytes:()=>gu,validateObject:()=>Nt});var zs=BigInt(0),tn=BigInt(1),fu=BigInt(2);function ce(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function qe(r){if(!ce(r))throw new Error("Uint8Array expected")}function Rt(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var hu=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function zt(r){qe(r);let t="";for(let e=0;e=Gt._0&&r<=Gt._9)return r-Gt._0;if(r>=Gt._A&&r<=Gt._F)return r-(Gt._A-10);if(r>=Gt._a&&r<=Gt._f)return r-(Gt._a-10)}function Ae(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("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let s=0,o=0;stypeof r=="bigint"&&zs<=r;function yr(r,t,e){return qs(r)&&qs(t)&&qs(e)&&t<=r&&rzs;r>>=tn,t+=1);return t}function mu(r,t){return r>>BigInt(t)&tn}function xu(r,t,e){return r|(e?tn:zs)<(fu<new Uint8Array(r),ta=r=>Uint8Array.from(r);function Ws(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=Gs(r),s=Gs(r),o=0,i=()=>{n.fill(1),s.fill(0),o=0},a=(...l)=>e(s,n,...l),c=(l=Gs())=>{s=a(ta([0]),l),n=a(),l.length!==0&&(s=a(ta([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,m=[];for(;l{i(),c(l);let E;for(;!(E=m(u()));)c();return i(),E}}var bu={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 Nt(r,t,e={}){let n=(s,o,i)=>{let a=bu[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=r[s];if(!(i&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};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 wu=()=>{throw new Error("not implemented")};function Se(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 ot=BigInt(0),Q=BigInt(1),ke=BigInt(2),Eu=BigInt(3),Zs=BigInt(4),ra=BigInt(5),na=BigInt(8),Bu=BigInt(9),vu=BigInt(16);function z(r,t){let e=r%t;return e>=ot?e:t+e}function Xs(r,t,e){if(e<=ot||t 0");if(e===Q)return ot;let n=Q;for(;t>ot;)t&Q&&(n=n*r%e),r=r*r%e,t>>=Q;return n}function J(r,t,e){let n=r;for(;t-- >ot;)n*=n,n%=e;return n}function rn(r,t){if(r===ot||t<=ot)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=z(r,t),n=t,s=ot,o=Q,i=Q,a=ot;for(;e!==ot;){let u=n/e,f=n%e,l=s-i*u,m=o-a*u;n=e,e=f,s=i,o=a,i=l,a=m}if(n!==Q)throw new Error("invert: does not exist");return z(s,t)}function Au(r){let t=(r-Q)/ke,e,n,s;for(e=r-Q,n=0;e%ke===ot;e/=ke,n++);for(s=ke;s(z(r,t)&Q)===Q,ku=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ys(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=ku.reduce((n,s)=>(n[s]="function",n),t);return Nt(r,e)}function Iu(r,t,e){if(e 0");if(e===ot)return r.ONE;if(e===Q)return t;let n=r.ONE,s=t;for(;e>ot;)e&Q&&(n=r.mul(n,s)),s=r.sqr(s),e>>=Q;return n}function Lu(r,t){let e=new Array(t.length),n=t.reduce((o,i,a)=>r.is0(i)?o:(e[a]=o,r.mul(o,i)),r.ONE),s=r.inv(n);return t.reduceRight((o,i,a)=>r.is0(i)?o:(e[a]=r.mul(o,e[a]),r.mul(o,i)),s),e}function Js(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function nn(r,t,e=!1,n={}){if(r<=ot)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:o}=Js(r,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let i=Su(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:o,MASK:mr(s),ZERO:ot,ONE:Q,create:c=>z(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ot<=c&&cc===ot,isOdd:c=>(c&Q)===Q,neg:c=>z(-c,r),eql:(c,u)=>c===u,sqr:c=>z(c*c,r),add:(c,u)=>z(c+u,r),sub:(c,u)=>z(c-u,r),mul:(c,u)=>z(c*u,r),pow:(c,u)=>Iu(a,c,u),div:(c,u)=>z(c*rn(u,r),r),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>rn(c,r),sqrt:n.sqrt||(c=>i(a,c)),invertBatch:c=>Lu(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>e?Wt(c,o):le(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return e?Ht(c):jt(c)}});return Object.freeze(a)}function oa(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 Qs(r){let t=oa(r);return t+Math.ceil(t/2)}function ia(r,t,e=!1){let n=r.length,s=oa(t),o=Qs(t);if(n<16||n1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let i=e?jt(r):Ht(r),a=z(i,t-Q)+Q;return e?Wt(a,s):le(a,s)}var Uu=BigInt(0),to=BigInt(1),eo=new WeakMap,aa=new WeakMap;function sn(r,t){let e=(o,i)=>{let a=i.negate();return o?a:i},n=o=>{if(!Number.isSafeInteger(o)||o<=0||o>t)throw new Error(`Wrong window size=${o}, should be [1..${t}]`)},s=o=>{n(o);let i=Math.ceil(t/o)+1,a=2**(o-1);return{windows:i,windowSize:a}};return{constTimeNegate:e,unsafeLadder(o,i){let a=r.ZERO,c=o;for(;i>Uu;)i&to&&(a=a.add(c)),c=c.double(),i>>=to;return a},precomputeWindow(o,i){let{windows:a,windowSize:c}=s(i),u=[],f=o,l=f;for(let m=0;m>=g,w>u&&(w-=E,a+=to);let y=d,b=d+Math.abs(w)-1,L=h%2!==0,U=w<0;w===0?l=l.add(e(L,i[y])):f=f.add(e(U,i[b]))}return{p:f,f:l}},wNAFCached(o,i,a){let c=aa.get(o)||1,u=eo.get(o);return u||(u=this.precomputeWindow(o,c),c!==1&&eo.set(o,a(u))),this.wNAF(c,u,i)},setWindowSize(o,i){n(i),aa.set(o,i),eo.delete(o)}}}function xr(r){return Ys(r.Fp),Nt(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Js(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}function ca(r){r.lowS!==void 0&&Rt("lowS",r.lowS),r.prehash!==void 0&&Rt("prehash",r.prehash)}function Cu(r){let t=xr(r);Nt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:_u,hexToBytes:Tu}=en,Ie={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){let{Err:t}=Ie;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");let e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:_u(n),l:r.subarray(e+2)}},toSig(r){let{Err:t}=Ie,e=typeof r=="string"?Tu(r):r;qe(e);let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:s,l:o}=Ie._parseInt(e.subarray(2)),{d:i,l:a}=Ie._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(r){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,e=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(e(r.s)),s=t(e(r.r)),o=n.length/2,i=s.length/2,a=e(o),c=e(i);return`30${e(i+o+4)}02${c}${s}02${a}${n}`}},ue=BigInt(0),ut=BigInt(1),C0=BigInt(2),la=BigInt(3),_0=BigInt(4);function Ru(r){let t=Cu(r),{Fp:e}=t,n=t.toBytes||((g,h,d)=>{let w=h.toAffine();return Zt(Uint8Array.from([4]),e.toBytes(w.x),e.toBytes(w.y))}),s=t.fromBytes||(g=>{let h=g.subarray(1),d=e.fromBytes(h.subarray(0,e.BYTES)),w=e.fromBytes(h.subarray(e.BYTES,2*e.BYTES));return{x:d,y:w}});function o(g){let{a:h,b:d}=t,w=e.sqr(g),y=e.mul(w,g);return e.add(e.add(y,e.mul(g,h)),d)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function i(g){return yr(g,ut,t.n)}function a(g){let{allowedPrivateKeyLengths:h,nByteLength:d,wrapPrivateKey:w,n:y}=t;if(h&&typeof g!="bigint"){if(ce(g)&&(g=zt(g)),typeof g!="string"||!h.includes(g.length))throw new Error("Invalid key");g=g.padStart(d*2,"0")}let b;try{b=typeof g=="bigint"?g:jt(Y("private key",g,d))}catch{throw new Error(`private key must be ${d} bytes, hex or bigint, not ${typeof g}`)}return w&&(b=z(b,y)),ft("private key",b,ut,y),b}function c(g){if(!(g instanceof l))throw new Error("ProjectivePoint expected")}let u=Se((g,h)=>{let{px:d,py:w,pz:y}=g;if(e.eql(y,e.ONE))return{x:d,y:w};let b=g.is0();h==null&&(h=b?e.ONE:e.inv(y));let L=e.mul(d,h),U=e.mul(w,h),S=e.mul(y,h);if(b)return{x:e.ZERO,y:e.ZERO};if(!e.eql(S,e.ONE))throw new Error("invZ was invalid");return{x:L,y:U}}),f=Se(g=>{if(g.is0()){if(t.allowInfinityPoint&&!e.is0(g.py))return;throw new Error("bad point: ZERO")}let{x:h,y:d}=g.toAffine();if(!e.isValid(h)||!e.isValid(d))throw new Error("bad point: x or y not FE");let w=e.sqr(d),y=o(h);if(!e.eql(w,y))throw new Error("bad point: equation left != right");if(!g.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(h,d,w){if(this.px=h,this.py=d,this.pz=w,h==null||!e.isValid(h))throw new Error("x required");if(d==null||!e.isValid(d))throw new Error("y required");if(w==null||!e.isValid(w))throw new Error("z required");Object.freeze(this)}static fromAffine(h){let{x:d,y:w}=h||{};if(!h||!e.isValid(d)||!e.isValid(w))throw new Error("invalid affine point");if(h instanceof l)throw new Error("projective point not allowed");let y=b=>e.eql(b,e.ZERO);return y(d)&&y(w)?l.ZERO:new l(d,w,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){let d=e.invertBatch(h.map(w=>w.pz));return h.map((w,y)=>w.toAffine(d[y])).map(l.fromAffine)}static fromHex(h){let d=l.fromAffine(s(Y("pointHex",h)));return d.assertValidity(),d}static fromPrivateKey(h){return l.BASE.multiply(a(h))}_setWindowSize(h){E.setWindowSize(this,h)}assertValidity(){f(this)}hasEvenY(){let{y:h}=this.toAffine();if(e.isOdd)return!e.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){c(h);let{px:d,py:w,pz:y}=this,{px:b,py:L,pz:U}=h,S=e.eql(e.mul(d,U),e.mul(b,y)),N=e.eql(e.mul(w,U),e.mul(L,y));return S&&N}negate(){return new l(this.px,e.neg(this.py),this.pz)}double(){let{a:h,b:d}=t,w=e.mul(d,la),{px:y,py:b,pz:L}=this,U=e.ZERO,S=e.ZERO,N=e.ZERO,I=e.mul(y,y),O=e.mul(b,b),R=e.mul(L,L),C=e.mul(y,b);return C=e.add(C,C),N=e.mul(y,L),N=e.add(N,N),U=e.mul(h,N),S=e.mul(w,R),S=e.add(U,S),U=e.sub(O,S),S=e.add(O,S),S=e.mul(U,S),U=e.mul(C,U),N=e.mul(w,N),R=e.mul(h,R),C=e.sub(I,R),C=e.mul(h,C),C=e.add(C,N),N=e.add(I,I),I=e.add(N,I),I=e.add(I,R),I=e.mul(I,C),S=e.add(S,I),R=e.mul(b,L),R=e.add(R,R),I=e.mul(R,C),U=e.sub(U,I),N=e.mul(R,O),N=e.add(N,N),N=e.add(N,N),new l(U,S,N)}add(h){c(h);let{px:d,py:w,pz:y}=this,{px:b,py:L,pz:U}=h,S=e.ZERO,N=e.ZERO,I=e.ZERO,O=t.a,R=e.mul(t.b,la),C=e.mul(d,b),P=e.mul(w,L),K=e.mul(y,U),k=e.add(d,w),x=e.add(b,L);k=e.mul(k,x),x=e.add(C,P),k=e.sub(k,x),x=e.add(d,y);let p=e.add(b,U);return x=e.mul(x,p),p=e.add(C,K),x=e.sub(x,p),p=e.add(w,y),S=e.add(L,U),p=e.mul(p,S),S=e.add(P,K),p=e.sub(p,S),I=e.mul(O,x),S=e.mul(R,K),I=e.add(S,I),S=e.sub(P,I),I=e.add(P,I),N=e.mul(S,I),P=e.add(C,C),P=e.add(P,C),K=e.mul(O,K),x=e.mul(R,x),P=e.add(P,K),K=e.sub(C,K),K=e.mul(O,K),x=e.add(x,K),C=e.mul(P,x),N=e.add(N,C),C=e.mul(p,x),S=e.mul(k,S),S=e.sub(S,C),C=e.mul(k,P),I=e.mul(p,I),I=e.add(I,C),new l(S,N,I)}subtract(h){return this.add(h.negate())}is0(){return this.equals(l.ZERO)}wNAF(h){return E.wNAFCached(this,h,l.normalizeZ)}multiplyUnsafe(h){ft("scalar",h,ue,t.n);let d=l.ZERO;if(h===ue)return d;if(h===ut)return this;let{endo:w}=t;if(!w)return E.unsafeLadder(this,h);let{k1neg:y,k1:b,k2neg:L,k2:U}=w.splitScalar(h),S=d,N=d,I=this;for(;b>ue||U>ue;)b&ut&&(S=S.add(I)),U&ut&&(N=N.add(I)),I=I.double(),b>>=ut,U>>=ut;return y&&(S=S.negate()),L&&(N=N.negate()),N=new l(e.mul(N.px,w.beta),N.py,N.pz),S.add(N)}multiply(h){let{endo:d,n:w}=t;ft("scalar",h,ut,w);let y,b;if(d){let{k1neg:L,k1:U,k2neg:S,k2:N}=d.splitScalar(h),{p:I,f:O}=this.wNAF(U),{p:R,f:C}=this.wNAF(N);I=E.constTimeNegate(L,I),R=E.constTimeNegate(S,R),R=new l(e.mul(R.px,d.beta),R.py,R.pz),y=I.add(R),b=O.add(C)}else{let{p:L,f:U}=this.wNAF(h);y=L,b=U}return l.normalizeZ([y,b])[0]}multiplyAndAddUnsafe(h,d,w){let y=l.BASE,b=(U,S)=>S===ue||S===ut||!U.equals(y)?U.multiplyUnsafe(S):U.multiply(S),L=b(this,d).add(b(h,w));return L.is0()?void 0:L}toAffine(h){return u(this,h)}isTorsionFree(){let{h,isTorsionFree:d}=t;if(h===ut)return!0;if(d)return d(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h,clearCofactor:d}=t;return h===ut?this:d?d(l,this):this.multiplyUnsafe(t.h)}toRawBytes(h=!0){return Rt("isCompressed",h),this.assertValidity(),n(l,this,h)}toHex(h=!0){return Rt("isCompressed",h),zt(this.toRawBytes(h))}}l.BASE=new l(t.Gx,t.Gy,e.ONE),l.ZERO=new l(e.ZERO,e.ONE,e.ZERO);let m=t.nBitLength,E=sn(l,t.endo?Math.ceil(m/2):m);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:a,weierstrassEquation:o,isWithinCurveOrder:i}}function Hu(r){let t=xr(r);return Nt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function ua(r){let t=Hu(r),{Fp:e,n}=t,s=e.BYTES+1,o=2*e.BYTES+1;function i(k){return z(k,n)}function a(k){return rn(k,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:f,isWithinCurveOrder:l}=Ru({...t,toBytes(k,x,p){let v=x.toAffine(),A=e.toBytes(v.x),B=Zt;return Rt("isCompressed",p),p?B(Uint8Array.from([x.hasEvenY()?2:3]),A):B(Uint8Array.from([4]),A,e.toBytes(v.y))},fromBytes(k){let x=k.length,p=k[0],v=k.subarray(1);if(x===s&&(p===2||p===3)){let A=jt(v);if(!yr(A,ut,e.ORDER))throw new Error("Point is not on curve");let B=f(A),_;try{_=e.sqrt(B)}catch(M){let F=M instanceof Error?": "+M.message:"";throw new Error("Point is not on curve"+F)}let H=(_&ut)===ut;return(p&1)===1!==H&&(_=e.neg(_)),{x:A,y:_}}else if(x===o&&p===4){let A=e.fromBytes(v.subarray(0,e.BYTES)),B=e.fromBytes(v.subarray(e.BYTES,2*e.BYTES));return{x:A,y:B}}else throw new Error(`Point of length ${x} was invalid. Expected ${s} compressed bytes or ${o} uncompressed bytes`)}}),m=k=>zt(le(k,t.nByteLength));function E(k){let x=n>>ut;return k>x}function g(k){return E(k)?i(-k):k}let h=(k,x,p)=>jt(k.slice(x,p));class d{constructor(x,p,v){this.r=x,this.s=p,this.recovery=v,this.assertValidity()}static fromCompact(x){let p=t.nByteLength;return x=Y("compactSignature",x,p*2),new d(h(x,0,p),h(x,p,2*p))}static fromDER(x){let{r:p,s:v}=Ie.toSig(Y("DER",x));return new d(p,v)}assertValidity(){ft("r",this.r,ut,n),ft("s",this.s,ut,n)}addRecoveryBit(x){return new d(this.r,this.s,x)}recoverPublicKey(x){let{r:p,s:v,recovery:A}=this,B=S(Y("msgHash",x));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let _=A===2||A===3?p+t.n:p;if(_>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",D=c.fromHex(H+m(_)),M=a(_),F=i(-B*M),G=i(v*M),j=c.BASE.multiplyAndAddUnsafe(D,F,G);if(!j)throw new Error("point at infinify");return j.assertValidity(),j}hasHighS(){return E(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return Ae(this.toDERHex())}toDERHex(){return Ie.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ae(this.toCompactHex())}toCompactHex(){return m(this.r)+m(this.s)}}let w={isValidPrivateKey(k){try{return u(k),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let k=Qs(t.n);return ia(t.randomBytes(k),t.n)},precompute(k=8,x=c.BASE){return x._setWindowSize(k),x.multiply(BigInt(3)),x}};function y(k,x=!0){return c.fromPrivateKey(k).toRawBytes(x)}function b(k){let x=ce(k),p=typeof k=="string",v=(x||p)&&k.length;return x?v===s||v===o:p?v===2*s||v===2*o:k instanceof c}function L(k,x,p=!0){if(b(k))throw new Error("first arg must be private key");if(!b(x))throw new Error("second arg must be public key");return c.fromHex(x).multiply(u(k)).toRawBytes(p)}let U=t.bits2int||function(k){let x=jt(k),p=k.length*8-t.nBitLength;return p>0?x>>BigInt(p):x},S=t.bits2int_modN||function(k){return i(U(k))},N=mr(t.nBitLength);function I(k){return ft(`num < 2^${t.nBitLength}`,k,ue,N),le(k,t.nByteLength)}function O(k,x,p=R){if(["recovered","canonical"].some(X=>X in p))throw new Error("sign() legacy options not supported");let{hash:v,randomBytes:A}=t,{lowS:B,prehash:_,extraEntropy:H}=p;B==null&&(B=!0),k=Y("msgHash",k),ca(p),_&&(k=Y("prehashed msgHash",v(k)));let D=S(k),M=u(x),F=[I(M),I(D)];if(H!=null&&H!==!1){let X=H===!0?A(e.BYTES):H;F.push(Y("extraEntropy",X))}let G=Zt(...F),j=D;function nt(X){let Z=U(X);if(!l(Z))return;let Ct=a(Z),lt=c.BASE.multiply(Z).toAffine(),_t=i(lt.x);if(_t===ue)return;let ve=i(Ct*i(j+_t*M));if(ve===ue)return;let dr=(lt.x===_t?0:2)|Number(lt.y&ut),jr=ve;return B&&E(ve)&&(jr=g(ve),dr^=1),new d(_t,jr,dr)}return{seed:G,k2sig:nt}}let R={lowS:t.lowS,prehash:!1},C={lowS:t.lowS,prehash:!1};function P(k,x,p=R){let{seed:v,k2sig:A}=O(k,x,p),B=t;return Ws(B.hash.outputLen,B.nByteLength,B.hmac)(v,A)}c.BASE._setWindowSize(8);function K(k,x,p,v=C){let A=k;if(x=Y("msgHash",x),p=Y("publicKey",p),"strict"in v)throw new Error("options.strict was renamed to lowS");ca(v);let{lowS:B,prehash:_}=v,H,D;try{if(typeof A=="string"||ce(A))try{H=d.fromDER(A)}catch(lt){if(!(lt instanceof Ie.Err))throw lt;H=d.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:lt,s:_t}=A;H=new d(lt,_t)}else throw new Error("PARSE");D=c.fromHex(p)}catch(lt){if(lt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(B&&H.hasHighS())return!1;_&&(x=t.hash(x));let{r:M,s:F}=H,G=S(x),j=a(F),nt=i(G*j),X=i(M*j),Z=c.BASE.multiplyAndAddUnsafe(D,nt,X)?.toAffine();return Z?i(Z.x)===M:!1}return{CURVE:t,getPublicKey:y,getSharedSecret:L,sign:P,verify:K,ProjectivePoint:c,Signature:d,utils:w}}function Vu(r){return{hash:r,hmac:(t,...e)=>$s(r,t,Ps(...e)),randomBytes:gr}}function fa(r,t){let e=n=>ua({...r,...Vu(n)});return Object.freeze({...e(t),create:e})}var pa=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),ha=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ou=BigInt(1),ro=BigInt(2),da=(r,t)=>(r+t/ro)/t;function Du(r){let t=pa,e=BigInt(3),n=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%t,f=u*u*r%t,l=J(f,e,t)*f%t,m=J(l,e,t)*f%t,E=J(m,ro,t)*u%t,g=J(E,s,t)*E%t,h=J(g,o,t)*g%t,d=J(h,a,t)*h%t,w=J(d,c,t)*d%t,y=J(w,a,t)*h%t,b=J(y,e,t)*f%t,L=J(b,i,t)*g%t,U=J(L,n,t)*u%t,S=J(U,ro,t);if(!no.eql(no.sqr(S),r))throw new Error("Cannot find square root");return S}var no=nn(pa,void 0,void 0,{sqrt:Du}),Le=fa({a:BigInt(0),b:BigInt(7),Fp:no,n:ha,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=ha,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ou*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,i=BigInt("0x100000000000000000000000000000000"),a=da(o*r,t),c=da(-n*r,t),u=z(r-a*e-c*s,t),f=z(-a*n-c*o,t),l=u>i,m=f>i;if(l&&(u=t-u),m&&(f=t-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:m,k2:f}}}},Ji),P0=BigInt(0);var F0=Le.ProjectivePoint;var co={};bt(co,{base58btc:()=>it,base58flickr:()=>qu});var q0=new Uint8Array(0);function ga(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n>>0,L=new Uint8Array(b);w!==y;){for(var U=g[w],S=0,N=b-1;(U!==0||S>>0,L[N]=U%a>>>0,U=U/a>>>0;if(U!==0)throw new Error("Non-zero carry");d=S,w++}for(var I=b-d;I!==b&&L[I]===0;)I++;for(var O=c.repeat(h);I>>0,b=new Uint8Array(y);g[h];){var L=e[g.charCodeAt(h)];if(L===255)return;for(var U=0,S=y-1;(L!==0||U>>0,b[S]=L%256>>>0,L=L/256>>>0;if(L!==0)throw new Error("Non-zero carry");w=U,h++}if(g[h]!==" "){for(var N=y-w;N!==y&&b[N]===0;)N++;for(var I=new Uint8Array(d+(y-N)),O=d;N!==y;)I[O++]=b[N++];return I}}}function E(g){var h=m(g);if(h)return h;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:m,decode:E}}var Ku=Mu,Pu=Ku,ba=Pu;var so=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")}},oo=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 wa(this,t)}},io=class{decoders;constructor(t){this.decoders=t}or(t){return wa(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 wa(r,t){return new io({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var ao=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 so(t,e,n),this.decoder=new oo(t,e,s)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Ge({name:r,prefix:t,encode:e,decode:n}){return new ao(r,t,e,n)}function fe({name:r,prefix:t,alphabet:e}){let{encode:n,decode:s}=ba(e,r);return Ge({prefix:t,name:r,encode:n,decode:o=>Xt(s(o))})}function Fu(r,t,e,n){let s={};for(let f=0;f=8&&(a-=8,i[u++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function $u(r,t,e){let n=t[t.length-1]==="=",s=(1<e;)i-=e,o+=t[s&a>>i];if(i!==0&&(o+=t[s&a<ze,base32hex:()=>Wu,base32hexpad:()=>Xu,base32hexpadupper:()=>Yu,base32hexupper:()=>Zu,base32pad:()=>zu,base32padupper:()=>ju,base32upper:()=>Gu,base32z:()=>Ju});var ze=rt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Gu=rt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),zu=rt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ju=rt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Wu=rt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Zu=rt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Xu=rt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Yu=rt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ju=rt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Qu=va,Ea=128,tf=127,ef=~tf,rf=Math.pow(2,31);function va(r,t,e){t=t||[],e=e||0;for(var n=e;r>=rf;)t[e++]=r&255|Ea,r/=128;for(;r&ef;)t[e++]=r&255|Ea,r>>>=7;return t[e]=r|0,va.bytes=e-n+1,t}var nf=uo,sf=128,Ba=127;function uo(r,n){var e=0,n=n||0,s=0,o=n,i,a=r.length;do{if(o>=a)throw uo.bytes=0,new RangeError("Could not decode varint");i=r[o++],e+=s<28?(i&Ba)<=sf);return uo.bytes=o-n,e}var of=Math.pow(2,7),af=Math.pow(2,14),cf=Math.pow(2,21),lf=Math.pow(2,28),uf=Math.pow(2,35),ff=Math.pow(2,42),hf=Math.pow(2,49),df=Math.pow(2,56),pf=Math.pow(2,63),gf=function(r){return r{let[l,m]=wr(t.subarray(e));return e+=m,l},s=n(),o=Er;if(s===18?(s=0,e=0):o=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let i=e,a=n(),c=n(),u=e+c,f=u-i;return{version:s,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,e){let[n,s]=xf(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 ho(o).set(n,t),o}};function xf(r,t){switch(r[0]){case"Q":{let e=t??it;return[it.prefix,e.decode(`${it.prefix}${r}`)]}case it.prefix:{let e=t??it;return[it.prefix,e.decode(r)]}case ze.prefix:{let e=t??ze;return[ze.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function bf(r,t,e){let{prefix:n}=e;if(n!==it.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 wf(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 Er=112,Ef=18;function Ia(r,t,e){let n=We(r),s=n+We(t),o=new Uint8Array(s+e.byteLength);return je(r,o,0),je(t,o,n),o.set(e,s),o}var Bf=Symbol.for("@ipld/js-cid/CID");var po={};bt(po,{identity:()=>he});var La=0,vf="identity",Na=Xt;function Af(r){return Vt(La,Na(r))}var he={code:La,name:vf,encode:Na,digest:Af};function kt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e>go&an)}:{h:Number(r>>go&an)|0,l:Number(r&an)|0}}function Sf(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;sBigInt(r>>>0)<>>0),If=(r,t,e)=>r>>>e,Lf=(r,t,e)=>r<<32-e|t>>>e,Nf=(r,t,e)=>r>>>e|t<<32-e,Uf=(r,t,e)=>r<<32-e|t>>>e,Cf=(r,t,e)=>r<<64-e|t>>>e-32,_f=(r,t,e)=>r>>>e-32|t<<64-e,Tf=(r,t)=>t,Rf=(r,t)=>r,Hf=(r,t,e)=>r<>>32-e,Vf=(r,t,e)=>t<>>32-e,Of=(r,t,e)=>t<>>64-e,Df=(r,t,e)=>r<>>64-e;function Mf(r,t,e,n){let s=(t>>>0)+(n>>>0);return{h:r+e+(s/2**32|0)|0,l:s|0}}var Kf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Pf=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Ff=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),$f=(r,t,e,n,s)=>t+e+n+s+(r/2**32|0)|0,qf=(r,t,e,n,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),Gf=(r,t,e,n,s,o)=>t+e+n+s+o+(r/2**32|0)|0;var zf={fromBig:Ua,split:Sf,toBig:kf,shrSH:If,shrSL:Lf,rotrSH:Nf,rotrSL:Uf,rotrBH:Cf,rotrBL:_f,rotr32H:Tf,rotr32L:Rf,rotlSH:Hf,rotlSL:Vf,rotlBH:Of,rotlBL:Df,add:Mf,add3L:Kf,add3H:Pf,add4L:Ff,add4H:$f,add5H:Gf,add5L:qf},$=zf;var[jf,Wf]=$.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))),de=new Uint32Array(80),pe=new Uint32Array(80),yo=class extends $e{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:a,Dl:c,Eh:u,El:f,Fh:l,Fl:m,Gh:E,Gl:g,Hh:h,Hl:d}=this;return[t,e,n,s,o,i,a,c,u,f,l,m,E,g,h,d]}set(t,e,n,s,o,i,a,c,u,f,l,m,E,g,h,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=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=m|0,this.Gh=E|0,this.Gl=g|0,this.Hh=h|0,this.Hl=d|0}process(t,e){for(let b=0;b<16;b++,e+=4)de[b]=t.getUint32(e),pe[b]=t.getUint32(e+=4);for(let b=16;b<80;b++){let L=de[b-15]|0,U=pe[b-15]|0,S=$.rotrSH(L,U,1)^$.rotrSH(L,U,8)^$.shrSH(L,U,7),N=$.rotrSL(L,U,1)^$.rotrSL(L,U,8)^$.shrSL(L,U,7),I=de[b-2]|0,O=pe[b-2]|0,R=$.rotrSH(I,O,19)^$.rotrBH(I,O,61)^$.shrSH(I,O,6),C=$.rotrSL(I,O,19)^$.rotrBL(I,O,61)^$.shrSL(I,O,6),P=$.add4L(N,C,pe[b-7],pe[b-16]),K=$.add4H(P,S,R,de[b-7],de[b-16]);de[b]=K|0,pe[b]=P|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:m,Fh:E,Fl:g,Gh:h,Gl:d,Hh:w,Hl:y}=this;for(let b=0;b<80;b++){let L=$.rotrSH(l,m,14)^$.rotrSH(l,m,18)^$.rotrBH(l,m,41),U=$.rotrSL(l,m,14)^$.rotrSL(l,m,18)^$.rotrBL(l,m,41),S=l&E^~l&h,N=m&g^~m&d,I=$.add5L(y,U,N,Wf[b],pe[b]),O=$.add5H(I,w,L,S,jf[b],de[b]),R=I|0,C=$.rotrSH(n,s,28)^$.rotrBH(n,s,34)^$.rotrBH(n,s,39),P=$.rotrSL(n,s,28)^$.rotrBL(n,s,34)^$.rotrBL(n,s,39),K=n&o^n&a^o&a,k=s&i^s&c^i&c;w=h|0,y=d|0,h=E|0,d=g|0,E=l|0,g=m|0,{h:l,l:m}=$.add(u|0,f|0,O|0,R|0),u=a|0,f=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let x=$.add3L(R,P,k);n=$.add3H(x,O,C,K),s=x|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:a,l:c}=$.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=$.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:m}=$.add(this.Eh|0,this.El|0,l|0,m|0),{h:E,l:g}=$.add(this.Fh|0,this.Fl|0,E|0,g|0),{h,l:d}=$.add(this.Gh|0,this.Gl|0,h|0,d|0),{h:w,l:y}=$.add(this.Hh|0,this.Hl|0,w|0,y|0),this.set(n,s,o,i,a,c,u,f,l,m,E,g,h,d,w,y)}roundClean(){de.fill(0),pe.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 Ca=Jr(()=>new yo);var Ot=BigInt(0),Bt=BigInt(1),cn=BigInt(2),Zf=BigInt(8),Xf={zip215:!0};function Yf(r){let t=xr(r);return Nt(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function _a(r){let t=Yf(r),{Fp:e,n,prehash:s,hash:o,randomBytes:i,nByteLength:a,h:c}=t,u=cn<{try{return{isValid:!0,value:e.sqrt(x*e.inv(p))}}catch{return{isValid:!1,value:Ot}}}),m=t.adjustScalarBytes||(x=>x),E=t.domain||((x,p,v)=>{if(Rt("phflag",v),p.length||v)throw new Error("Contexts/pre-hash are not supported");return x});function g(x,p){ft("coordinate "+x,p,Ot,u)}function h(x){if(!(x instanceof y))throw new Error("ExtendedPoint expected")}let d=Se((x,p)=>{let{ex:v,ey:A,ez:B}=x,_=x.is0();p==null&&(p=_?Zf:e.inv(B));let H=f(v*p),D=f(A*p),M=f(B*p);if(_)return{x:Ot,y:Bt};if(M!==Bt)throw new Error("invZ was invalid");return{x:H,y:D}}),w=Se(x=>{let{a:p,d:v}=t;if(x.is0())throw new Error("bad point: ZERO");let{ex:A,ey:B,ez:_,et:H}=x,D=f(A*A),M=f(B*B),F=f(_*_),G=f(F*F),j=f(D*p),nt=f(F*f(j+M)),X=f(G+f(v*f(D*M)));if(nt!==X)throw new Error("bad point: equation left != right (1)");let Z=f(A*B),Ct=f(_*H);if(Z!==Ct)throw new Error("bad point: equation left != right (2)");return!0});class y{constructor(p,v,A,B){this.ex=p,this.ey=v,this.ez=A,this.et=B,g("x",p),g("y",v),g("z",A),g("t",B),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(p){if(p instanceof y)throw new Error("extended point not allowed");let{x:v,y:A}=p||{};return g("x",v),g("y",A),new y(v,A,Bt,f(v*A))}static normalizeZ(p){let v=e.invertBatch(p.map(A=>A.ez));return p.map((A,B)=>A.toAffine(v[B])).map(y.fromAffine)}_setWindowSize(p){U.setWindowSize(this,p)}assertValidity(){w(this)}equals(p){h(p);let{ex:v,ey:A,ez:B}=this,{ex:_,ey:H,ez:D}=p,M=f(v*D),F=f(_*B),G=f(A*D),j=f(H*B);return M===F&&G===j}is0(){return this.equals(y.ZERO)}negate(){return new y(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:p}=t,{ex:v,ey:A,ez:B}=this,_=f(v*v),H=f(A*A),D=f(cn*f(B*B)),M=f(p*_),F=v+A,G=f(f(F*F)-_-H),j=M+H,nt=j-D,X=M-H,Z=f(G*nt),Ct=f(j*X),lt=f(G*X),_t=f(nt*j);return new y(Z,Ct,_t,lt)}add(p){h(p);let{a:v,d:A}=t,{ex:B,ey:_,ez:H,et:D}=this,{ex:M,ey:F,ez:G,et:j}=p;if(v===BigInt(-1)){let Oi=f((_-B)*(F+M)),Di=f((_+B)*(F-M)),Ms=f(Di-Oi);if(Ms===Ot)return this.double();let Mi=f(H*cn*j),Ki=f(D*cn*G),Pi=Ki+Mi,Fi=Di+Oi,$i=Ki-Mi,Xl=f(Pi*Ms),Yl=f(Fi*$i),Jl=f(Pi*$i),Ql=f(Ms*Fi);return new y(Xl,Yl,Ql,Jl)}let nt=f(B*M),X=f(_*F),Z=f(D*A*j),Ct=f(H*G),lt=f((B+_)*(M+F)-nt-X),_t=Ct-Z,ve=Ct+Z,dr=f(X-v*nt),jr=f(lt*_t),jl=f(ve*dr),Wl=f(lt*dr),Zl=f(_t*ve);return new y(jr,jl,Zl,Wl)}subtract(p){return this.add(p.negate())}wNAF(p){return U.wNAFCached(this,p,y.normalizeZ)}multiply(p){let v=p;ft("scalar",v,Bt,n);let{p:A,f:B}=this.wNAF(v);return y.normalizeZ([A,B])[0]}multiplyUnsafe(p){let v=p;return ft("scalar",v,Ot,n),v===Ot?L:this.equals(L)||v===Bt?this:this.equals(b)?this.wNAF(v).p:U.unsafeLadder(this,v)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return U.unsafeLadder(this,n).is0()}toAffine(p){return d(this,p)}clearCofactor(){let{h:p}=t;return p===Bt?this:this.multiplyUnsafe(p)}static fromHex(p,v=!1){let{d:A,a:B}=t,_=e.BYTES;p=Y("pointHex",p,_),Rt("zip215",v);let H=p.slice(),D=p[_-1];H[_-1]=D&-129;let M=Ht(H),F=v?u:e.ORDER;ft("pointHex.y",M,Ot,F);let G=f(M*M),j=f(G-Bt),nt=f(A*G-B),{isValid:X,value:Z}=l(j,nt);if(!X)throw new Error("Point.fromHex: invalid y coordinate");let Ct=(Z&Bt)===Bt,lt=(D&128)!==0;if(!v&&Z===Ot&<)throw new Error("Point.fromHex: x=0 and x_0=1");return lt!==Ct&&(Z=f(-Z)),y.fromAffine({x:Z,y:M})}static fromPrivateKey(p){return I(p).point}toRawBytes(){let{x:p,y:v}=this.toAffine(),A=Wt(v,e.BYTES);return A[A.length-1]|=p&Bt?128:0,A}toHex(){return zt(this.toRawBytes())}}y.BASE=new y(t.Gx,t.Gy,Bt,f(t.Gx*t.Gy)),y.ZERO=new y(Ot,Bt,Bt,Ot);let{BASE:b,ZERO:L}=y,U=sn(y,a*8);function S(x){return z(x,n)}function N(x){return S(Ht(x))}function I(x){let p=a;x=Y("private key",x,p);let v=Y("hashed private key",o(x),2*p),A=m(v.slice(0,p)),B=v.slice(p,2*p),_=N(A),H=b.multiply(_),D=H.toRawBytes();return{head:A,prefix:B,scalar:_,point:H,pointBytes:D}}function O(x){return I(x).pointBytes}function R(x=new Uint8Array,...p){let v=Zt(...p);return N(o(E(v,Y("context",x),!!s)))}function C(x,p,v={}){x=Y("message",x),s&&(x=s(x));let{prefix:A,scalar:B,pointBytes:_}=I(p),H=R(v.context,A,x),D=b.multiply(H).toRawBytes(),M=R(v.context,D,_,x),F=S(H+M*B);ft("signature.s",F,Ot,n);let G=Zt(D,Wt(F,e.BYTES));return Y("result",G,a*2)}let P=Xf;function K(x,p,v,A=P){let{context:B,zip215:_}=A,H=e.BYTES;x=Y("signature",x,2*H),p=Y("message",p),_!==void 0&&Rt("zip215",_),s&&(p=s(p));let D=Ht(x.slice(H,2*H)),M,F,G;try{M=y.fromHex(v,_),F=y.fromHex(x.slice(0,H),_),G=b.multiplyUnsafe(D)}catch{return!1}if(!_&&M.isSmallOrder())return!1;let j=R(B,F.toRawBytes(),M.toRawBytes(),p);return F.add(M.multiplyUnsafe(j)).subtract(G).clearCofactor().equals(y.ZERO)}return b._setWindowSize(8),{CURVE:t,getPublicKey:O,sign:C,verify:K,ExtendedPoint:y,utils:{getExtendedPublicKey:I,randomPrivateKey:()=>i(e.BYTES),precompute(x=8,p=y.BASE){return p._setWindowSize(x),p.multiply(BigInt(3)),p}}}}var Ye=BigInt(0),mo=BigInt(1);function Jf(r){return Nt(r,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...r})}function Ta(r){let t=Jf(r),{P:e}=t,n=y=>z(y,e),s=t.montgomeryBits,o=Math.ceil(s/8),i=t.nByteLength,a=t.adjustScalarBytes||(y=>y),c=t.powPminus2||(y=>Xs(y,e-BigInt(2),e));function u(y,b,L){let U=n(y*(b-L));return b=n(b-U),L=n(L+U),[b,L]}let f=(t.a-BigInt(2))/BigInt(4);function l(y,b){ft("u",y,Ye,e),ft("scalar",b,Ye,e);let L=b,U=y,S=mo,N=Ye,I=y,O=mo,R=Ye,C;for(let K=BigInt(s-1);K>=Ye;K--){let k=L>>K&mo;R^=k,C=u(R,S,I),S=C[0],I=C[1],C=u(R,N,O),N=C[0],O=C[1],R=k;let x=S+N,p=n(x*x),v=S-N,A=n(v*v),B=p-A,_=I+O,H=I-O,D=n(H*x),M=n(_*v),F=D+M,G=D-M;I=n(F*F),O=n(U*n(G*G)),S=n(p*A),N=n(B*(p+n(f*B)))}C=u(R,S,I),S=C[0],I=C[1],C=u(R,N,O),N=C[0],O=C[1];let P=c(N);return n(S*P)}function m(y){return Wt(n(y),o)}function E(y){let b=Y("u coordinate",y,o);return i===32&&(b[31]&=127),Ht(b)}function g(y){let b=Y("scalar",y),L=b.length;if(L!==o&&L!==i)throw new Error(`Expected ${o} or ${i} bytes, got ${L}`);return Ht(a(b))}function h(y,b){let L=E(b),U=g(y),S=l(L,U);if(S===Ye)throw new Error("Invalid private or public key received");return m(S)}let d=m(t.Gu);function w(y){return h(y,d)}return{scalarMult:h,scalarMultBase:w,getSharedSecret:(y,b)=>h(y,b),getPublicKey:y=>w(y),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:d}}var Br=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Ra=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Sp=BigInt(0),Qf=BigInt(1),Ha=BigInt(2),th=BigInt(3),eh=BigInt(5),rh=BigInt(8);function Va(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),s=BigInt(80),o=Br,a=r*r%o*r%o,c=J(a,Ha,o)*a%o,u=J(c,Qf,o)*r%o,f=J(u,eh,o)*u%o,l=J(f,t,o)*f%o,m=J(l,e,o)*l%o,E=J(m,n,o)*m%o,g=J(E,s,o)*E%o,h=J(g,s,o)*E%o,d=J(h,t,o)*f%o;return{pow_p_5_8:J(d,Ha,o)*r%o,b2:a}}function Oa(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function nh(r,t){let e=Br,n=z(t*t*t,e),s=z(n*n*t,e),o=Va(r*s).pow_p_5_8,i=z(r*n*o,e),a=z(t*i*i,e),c=i,u=z(i*Ra,e),f=a===r,l=a===z(-r,e),m=a===z(-r*Ra,e);return f&&(i=c),(l||m)&&(i=u),sa(i,e)&&(i=z(-i,e)),{isValid:f||l,value:i}}var sh=nn(Br,void 0,!0),oh={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:sh,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:rh,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ca,randomBytes:gr,adjustScalarBytes:Oa,uvRatio:nh},Da=_a(oh);var vr=Ta({P:Br,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:r=>{let t=Br,{pow_p_5_8:e,b2:n}=Va(r);return z(J(e,th,t)*n,t)},adjustScalarBytes:Oa,randomBytes:gr});var ln=32;function Ma(r,t,e){return Da.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}var un=class{type="Ed25519";raw;constructor(t){this.raw=xo(t,ln)}toMultihash(){return he.digest(Je(this))}toCID(){return St.createV1(114,this.toMultihash())}toString(){return it.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:kt(this.raw,t.raw)}verify(t,e){return Ma(this.raw,e,t)}};function Pa(r){return r=xo(r,ln),new un(r)}function xo(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new wt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}function at(r=0){return new Uint8Array(r)}function ct(r=0){return new Uint8Array(r)}var ah=Math.pow(2,7),ch=Math.pow(2,14),lh=Math.pow(2,21),bo=Math.pow(2,28),wo=Math.pow(2,35),Eo=Math.pow(2,42),Bo=Math.pow(2,49),W=128,yt=127;function It(r){if(rNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function vo(r,t,e=0){switch(It(r)){case 8:t[e++]=r&255|W,r/=128;case 7:t[e++]=r&255|W,r/=128;case 6:t[e++]=r&255|W,r/=128;case 5:t[e++]=r&255|W,r/=128;case 4:t[e++]=r&255|W,r>>>=7;case 3:t[e++]=r&255|W,r>>>=7;case 2:t[e++]=r&255|W,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function uh(r,t,e=0){switch(It(r)){case 8:t.set(e++,r&255|W),r/=128;case 7:t.set(e++,r&255|W),r/=128;case 6:t.set(e++,r&255|W),r/=128;case 5:t.set(e++,r&255|W),r/=128;case 4:t.set(e++,r&255|W),r>>>=7;case 3:t.set(e++,r&255|W),r>>>=7;case 2:t.set(e++,r&255|W),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Ao(r,t){let e=r[t],n=0;if(n+=e&yt,e>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Ne;if(tdh)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,s=t-(n<<32n);return e&&(n=~n|0n,s=~s|0n,++s>za&&(s=0n,++n>za&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(t){if(t===0)return Ne;let e=t<0;e&&(t=-t);let n=t>>>0,s=(t-n)/4294967296>>>0;return e&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):Ne}},Ne=new Lt(0,0);Ne.toBigInt=function(){return 0n};Ne.zzEncode=Ne.zzDecode=function(){return this};Ne.length=function(){return 1};var za=4294967296n;function ja(r){let t=0,e=0;for(let n=0;n191&&a<224?o[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,o[i++]=55296+(a>>10),o[i++]=56320+(a&1023)):o[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,o)),i=0);return s!=null?(i>0&&s.push(String.fromCharCode.apply(String,o.slice(0,i))),s.join("")):String.fromCharCode.apply(String,o.slice(0,i))}function Lo(r,t,e){let n=e,s,o;for(let i=0;i>6|192,t[e++]=s&63|128):(s&64512)===55296&&((o=r.charCodeAt(i+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++i,t[e++]=s>>18|240,t[e++]=s>>12&63|128,t[e++]=s>>6&63|128,t[e++]=s&63|128):(t[e++]=s>>12|224,t[e++]=s>>6&63|128,t[e++]=s&63|128);return e-n}function Dt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function dn(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var No=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Dt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Dt(this,4);return dn(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Dt(this,4);return dn(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Dt(this,4);let t=$a(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Dt(this,4);let t=Ga(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Dt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Wa(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Dt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Dt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Lt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Dt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Dt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Dt(this,8);let t=dn(this.buf,this.pos+=4),e=dn(this.buf,this.pos+=4);return new Lt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Ao(this.buf,this.pos);return this.pos+=It(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Uo(r){return new No(r instanceof Uint8Array?r:r.subarray())}function Ue(r,t,e){let n=Uo(r);return t.decode(n,void 0,e)}var Co={};bt(Co,{base10:()=>ph});var ph=fe({prefix:"9",name:"base10",alphabet:"0123456789"});var _o={};bt(_o,{base16:()=>gh,base16upper:()=>yh});var gh=rt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),yh=rt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var To={};bt(To,{base2:()=>mh});var mh=rt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ro={};bt(Ro,{base256emoji:()=>Bh});var Xa=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),xh=Xa.reduce((r,t,e)=>(r[e]=t,r),[]),bh=Xa.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function wh(r){return r.reduce((t,e)=>(t+=xh[e],t),"")}function Eh(r){let t=[];for(let e of r){let n=bh[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var Bh=Ge({prefix:"\u{1F680}",name:"base256emoji",encode:wh,decode:Eh});var Ho={};bt(Ho,{base36:()=>vh,base36upper:()=>Ah});var vh=fe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ah=fe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Vo={};bt(Vo,{base64:()=>Sh,base64pad:()=>kh,base64url:()=>Ih,base64urlpad:()=>Lh});var Sh=rt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),kh=rt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ih=rt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Lh=rt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Oo={};bt(Oo,{base8:()=>Nh});var Nh=rt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Do={};bt(Do,{identity:()=>Uh});var Uh=Ge({prefix:"\0",name:"identity",encode:r=>ma(r),decode:r=>ya(r)});var cg=new TextEncoder,lg=new TextDecoder;var Po={};bt(Po,{sha256:()=>pn,sha512:()=>Th});function Ko({name:r,code:t,encode:e}){return new Mo(r,t,e)}var Mo=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?Vt(this.code,e):e.then(n=>Vt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Ja(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var pn=Ko({name:"sha2-256",code:18,encode:Ja("SHA-256")}),Th=Ko({name:"sha2-512",code:19,encode:Ja("SHA-512")});var Fo={...Do,...To,...Oo,...Co,..._o,...lo,...Ho,...co,...Vo,...Ro},Eg={...Po,...po};function tc(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Qa=tc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),$o=tc("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=ct(r.length);for(let e=0;e>>1,n,s=t;return function(i){if(i<1||i>e)return ct(i);s+i>t&&(n=ct(t),s=0);let a=n.subarray(s,s+=i);return s&7&&(s=(s|7)+1),a}}var Ce=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Go(){}var jo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Hh=qo();function Vh(r){return globalThis.Buffer!=null?ct(r):Hh(r)}var Sr=class{len;head;tail;states;constructor(){this.len=0,this.head=new Ce(Go,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new Ce(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Wo((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(yn,10,Lt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Lt.fromBigInt(t);return this._push(yn,e.length(),e)}uint64Number(t){return this._push(vo,It(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Lt.fromBigInt(t).zzEncode();return this._push(yn,e.length(),e)}sint64Number(t){let e=Lt.fromNumber(t).zzEncode();return this._push(yn,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(zo,1,t?1:0)}fixed32(t){return this._push(Ar,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Lt.fromBigInt(t);return this._push(Ar,4,e.lo)._push(Ar,4,e.hi)}fixed64Number(t){let e=Lt.fromNumber(t);return this._push(Ar,4,e.lo)._push(Ar,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Fa,4,t)}double(t){return this._push(qa,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(zo,1,0):this.uint32(e)._push(Dh,e,t)}string(t){let e=ja(t);return e!==0?this.uint32(e)._push(Lo,e,t):this._push(zo,1,0)}fork(){return this.states=new jo(this),this.head=this.tail=new Ce(Go,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Ce(Go,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Vh(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function zo(r,t,e){t[e]=r&255}function Oh(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Wo=class extends Ce{next;constructor(t,e){super(Oh,t,e),this.next=void 0}};function yn(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Ar(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Dh(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Sr.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Mh,t,r),this},Sr.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Kh,t,r),this});function Mh(r,t,e){t.set(r,e)}function Kh(r,t,e){r.length<40?Lo(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(et(r),e)}function Zo(){return new Sr}function _e(r,t){let e=Zo();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Qe;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Qe||(Qe={}));function mn(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Xo(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(o,i){let a=t(o);i.int32(a)},n=function(o){let i=o.int32();return t(i)};return mn("enum",Qe.VARINT,e,n)}function Te(r,t){return mn("message",Qe.LENGTH_DELIMITED,r,t)}var ht;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(ht||(ht={}));var Yo;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(Yo||(Yo={}));(function(r){r.codec=()=>Xo(Yo)})(ht||(ht={}));var Yt;(function(r){let t;r.codec=()=>(t==null&&(t=Te((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ht.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{o.Type=ht.codec().decode(e);break}case 2:{o.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>_e(e,r.codec()),r.decode=(e,n)=>Ue(e,r.codec(),n)})(Yt||(Yt={}));var Jo;(function(r){let t;r.codec=()=>(t==null&&(t=Te((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ht.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{o.Type=ht.codec().decode(e);break}case 2:{o.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>_e(e,r.codec()),r.decode=(e,n)=>Ue(e,r.codec(),n)})(Jo||(Jo={}));var Or={};bt(Or,{MAX_RSA_KEY_SIZE:()=>fs,generateRSAKeyPair:()=>el,jwkToJWKKeyPair:()=>rl,jwkToPkcs1:()=>od,jwkToPkix:()=>ai,jwkToRSAPrivateKey:()=>tl,pkcs1ToJwk:()=>Yc,pkcs1ToRSAPrivateKey:()=>Qc,pkixToJwk:()=>Jc,pkixToRSAPublicKey:()=>ci});function xn(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Ph(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function kr(r,...t){if(!Ph(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function Ir(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");xn(r.outputLen),xn(r.blockLen)}function tr(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 rc(r,t){kr(r);let e=t.outputLen;if(r.lengthnew DataView(r.buffer,r.byteOffset,r.byteLength),Mt=(r,t)=>r<<32-t|r>>>t;var ty=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Fh(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function ye(r){return typeof r=="string"&&(r=Fh(r)),kr(r),r}var er=class{clone(){return this._cloneInto()}},ey={}.toString;function nc(r){let t=n=>r().update(ye(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function $h(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),a=Number(e&o),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}var sc=(r,t,e)=>r&t^~r&e,oc=(r,t,e)=>r&t^r&e^t&e,wn=class extends er{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=bn(this.buffer)}update(t){tr(this);let{view:e,buffer:n,blockLen:s}=this;t=ye(t);let o=t.length;for(let i=0;is-i&&(this.process(n,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>>3,h=Mt(E,17)^Mt(E,19)^E>>>10;xe[l]=h+xe[l-7]+g+xe[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let m=Mt(a,6)^Mt(a,11)^Mt(a,25),E=f+m+sc(a,c,u)+qh[l]+xe[l]|0,h=(Mt(n,2)^Mt(n,13)^Mt(n,22))+oc(n,s,o)|0;f=u,u=c,c=a,a=i+E|0,i=o,o=s,s=n,n=E+h|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,o,i,a,c,u,f)}roundClean(){xe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var be=nc(()=>new Qo);var q=iu(ic());function Re(r,t){let e=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)e+=r[r.length-1-n]*Math.pow(2,t*n);return e}function we(r,t,e=-1){let n=e,s=r,o=0,i=Math.pow(2,t);for(let a=1;a<8;a++){if(r=0;f--){let l=Math.pow(2,f*t);u[o-f-1]=Math.floor(s/l),s-=u[o-f-1]*l}return c}i*=Math.pow(2,t)}return new ArrayBuffer(0)}function vn(...r){let t=0,e=0;for(let o of r)t+=o.length;let n=new ArrayBuffer(t),s=new Uint8Array(n);for(let o of r)s.set(o,e),e+=o.length;return s}function ei(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let t=new ArrayBuffer(this.valueHex.byteLength),e=new Uint8Array(t);for(let a=0;a"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function ri(r){let t=0,e=0;for(let s=0;s=o.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let m=new Uint8Array(f);for(let E=0;E8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;let a=e+1,c=s.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Re(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){let s=we(this.length,8);if(s.byteLength>127)return this.error="Too big length",Kt;if(e=new ArrayBuffer(s.byteLength+1),t)return e;let o=new Uint8Array(s);n=new Uint8Array(e),n[0]=s.byteLength|128;for(let i=0;i=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=T.EndOfContent;break;case 1:c=T.Boolean;break;case 2:c=T.Integer;break;case 3:c=T.BitString;break;case 4:c=T.OctetString;break;case 5:c=T.Null;break;case 6:c=T.ObjectIdentifier;break;case 10:c=T.Enumerated;break;case 12:c=T.Utf8String;break;case 13:c=T.RelativeObjectIdentifier;break;case 14:c=T.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=T.Sequence;break;case 17:c=T.Set;break;case 18:c=T.NumericString;break;case 19:c=T.PrintableString;break;case 20:c=T.TeletexString;break;case 21:c=T.VideotexString;break;case 22:c=T.IA5String;break;case 23:c=T.UTCTime;break;case 24:c=T.GeneralizedTime;break;case 25:c=T.GraphicString;break;case 26:c=T.VisibleString;break;case 27:c=T.GeneralString;break;case 28:c=T.UniversalString;break;case 29:c=T.CharacterString;break;case 30:c=T.BmpString;break;case 31:c=T.DATE;break;case 32:c=T.TimeOfDay;break;case 33:c=T.DateTime;break;case 34:c=T.Duration;break;default:{let u=s.idBlock.isConstructed?new T.Constructed:new T.Primitive;u.idBlock=s.idBlock,u.lenBlock=s.lenBlock,u.warnings=s.warnings,s=u}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?T.Constructed:T.Primitive}return s=Qh(s,c),a=s.fromBER(r,t,s.lenBlock.isIndefiniteForm?e:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function si(r){if(!r.byteLength){let t=new dt({},xt);return t.error="Input buffer has zero length",{offset:-1,result:t}}return ls(q.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function td(r,t){return r?1:t}var Ft=class extends xt{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){let s=q.BufferSourceConverter.toUint8Array(t);if(!re(this,s,e,n))return-1;if(this.valueBeforeDecodeView=s.subarray(e,e+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),e;let o=e;for(;td(this.isIndefiniteForm,n)>0;){let i=ls(s,o,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(o=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===Ur)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===Ur?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(t,e){let n=e||new Nr;for(let s=0;s` ${s}`).join(` - `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} : - ${t.join(` --`)}`:`${e} :`}};fc=Se;C.Constructed=fc;Se.NAME="CONSTRUCTED";var Kn=class extends vt{fromBER(t,e,n){return e}toBER(t){return $t}};Kn.override="EndOfContentValueBlock";var hc,Mn=class extends bt{constructor(t={}){super(t,Kn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};hc=Mn;C.EndOfContent=hc;Mn.NAME=qr;var dc,ke=class extends bt{constructor(t={}){super(t,vt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};dc=ke;C.Null=dc;ke.NAME="NULL";var Fn=class extends he(vt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=G.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=G.BufferSourceConverter.toUint8Array(t);return fe(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Jo.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Fn.NAME="BooleanValueBlock";var pc,$n=class extends bt{constructor(t={}){super(t,Fn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};pc=$n;C.Boolean=pc;$n.NAME="BOOLEAN";var qn=class extends he(Wt){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Wt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let o=0;o0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return s}let o=G.BufferSourceConverter.toUint8Array(t);if(!fe(this,o,e,n))return-1;let i=o.subarray(e,e+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=bs(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,e+n}toBER(t,e){if(this.isConstructed)return Wt.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return $t;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};Gn.NAME="BitStringValueBlock";var gc,yr=class extends bt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Gn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Se.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};gc=yr;C.BitString=gc;yr.NAME=cc;var mc;function Qh(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u=0,f=c=0;y--,l++){switch(!0){case l=o.length:o=Cn(new Uint8Array([u%10]),o);break;default:o[i-l]=u%10}}return e[0]>0&&(o=Cn(e,o)),o}function ic(r){if(r>=Fr.length)for(let t=Fr.length;t<=r;t++){let e=new Uint8Array([0]),n=Fr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let o=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=o[0]/10,n[s]=o[0]%10}e[0]>0&&(n=Cn(e,n)),Fr.push(n)}return Fr[r]}function td(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u,f=0;for(let l=c;l>=0;l--,f++)switch(u=o[i-f]-a[c-f]-e,!0){case u<0:e=1,o[i-f]=u+10;break;default:e=0,o[i-f]=u}if(e>0)for(let l=i-c+1;l>=0;l--,f++)if(u=o[i-f]-e,u<0)e=1,o[i-f]=u+10;else{e=0,o[i-f]=u;break}return o.slice()}var Gr=class extends he(vt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Jo.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(nc(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let o=this.fromBER(t,e,n);if(o===-1)return o;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):s!==0&&i.length1&&(s=i.length+1),this.valueHexView=i.subarray(s-i.length)),o}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,o=this.valueHexView,i="",a=!1;for(let c=o.byteLength-1;c>=0;c--){s=o[c];for(let u=0;u<8;u++){if((s&1)===1)switch(n){case t:e=td(ic(n),e),i="-";break;default:e=Qh(e,ic(n))}n++,s>>=1}}for(let c=0;c0;){let o=new jr;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.value.length===0&&(o.isFirstSid=!0),this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t){let e=[];for(let n=0;nNumber.MAX_SAFE_INTEGER){Un();let a=BigInt(s);i.valueBigInt=a}else if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,o=!0),this.value.push(i)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n0;){let o=new zr;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t,e){let n=[];for(let s=0;s4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[s*4+c+a]=i[c]}this.valueBlock.value=t}};rs.NAME="UniversalStringValueBlock";var kc,ns=class extends rs{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};kc=ns;C.UniversalString=kc;ns.NAME="UniversalString";var Ic,ss=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Ic=ss;C.NumericString=Ic;ss.NAME="NumericString";var _c,os=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};_c=os;C.PrintableString=_c;os.NAME="PrintableString";var Nc,is=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Nc=is;C.TeletexString=Nc;is.NAME="TeletexString";var Rc,as=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Rc=as;C.VideotexString=Rc;as.NAME="VideotexString";var Lc,cs=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Lc=cs;C.IA5String=Lc;cs.NAME="IA5String";var Tc,ls=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Tc=ls;C.GraphicString=Tc;ls.NAME="GraphicString";var Cc,Yr=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Cc=Yr;C.VisibleString=Cc;Yr.NAME="VisibleString";var Uc,us=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Uc=us;C.GeneralString=Uc;us.NAME="GeneralString";var Hc,fs=class extends St{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Hc=fs;C.CharacterString=Hc;fs.NAME="CharacterString";var Dc,Wr=class extends Yr{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=It(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=It(this.month,2),e[2]=It(this.day,2),e[3]=It(this.hour,2),e[4]=It(this.minute,2),e[5]=It(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Dc=Wr;C.UTCTime=Dc;Wr.NAME="UTCTime";var Vc,hs=class extends Wr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",o=0,i,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let l=new Number(t[t.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,y=n.indexOf("+"),E="";if(y===-1&&(y=n.indexOf("-"),l=-1),y!==-1){if(E=n.substring(y+1),n=n.substring(0,y),E.length!==2&&E.length!==4)throw new Error("Wrong input string for conversion");let p=parseInt(E.substring(0,2),10);if(isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*p,E.length===4){if(p=parseInt(E.substring(2,4),10),isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");c=l*p}}}let u=n.indexOf(".");if(u===-1&&(u=n.indexOf(",")),u!==-1){let l=new Number(`0${n.substring(u)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");o=l.valueOf(),s=n.substring(0,u)}else s=n;switch(!0){case s.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=1e3*o;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,o=0;for(;s0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}var id=16,ei=32,ri=1e4;async function ad(r,t){let e=At.get(),s=new dt({value:[new it({value:0}),new dt({value:[new Ft({value:"1.2.840.113549.1.1.1"}),new ke]}),new le({valueHex:r.marshal()})]}).toBER(),o=new Uint8Array(s,0,s.byteLength),i=$e(id),a=await Zo(Cr,t,i,{c:ri,dkLen:ei}),c=$e(16),u=await e.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await e.subtle.encrypt({name:"AES-CBC",iv:c},u,o),l=new dt({value:[new le({valueHex:i}),new it({value:ri}),new it({value:ei}),new dt({value:[new Ft({value:"1.2.840.113549.2.11"}),new ke]})]}),y=new dt({value:[new Ft({value:"1.2.840.113549.1.5.13"}),new dt({value:[new dt({value:[new Ft({value:"1.2.840.113549.1.5.12"}),l]}),new dt({value:[new Ft({value:"2.16.840.1.101.3.4.1.42"}),new le({valueHex:c})]})]})]}),p=new dt({value:[y,new le({valueHex:f})]}).toBER(),h=new Uint8Array(p,0,p.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...z(h,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(` --`)}async function cd(r,t){let e=At.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let s=X(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:o}=mr(s),{iv:i,salt:a,iterations:c,keySize:u,cipherText:f}=ld(o),l=await Zo(Cr,t,a,{c,dkLen:u}),y=await e.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),E=Zr(await e.subtle.decrypt({name:"AES-CBC",iv:i},y,f)),{result:p}=mr(E);n=$c(p)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let s=X(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:o}=mr(s);n=$c(o)}else throw new $("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return ni(n)}function ld(r){let t=r.valueBlock.value[0];if(t.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new $("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=t.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new $("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let o=n.valueBlock.value[1],i=Zr(o.valueBlock.value[0].getValue()),a=ri,c=ei;if(o.valueBlock.value.length===3)a=Number(o.valueBlock.value[1].toBigInt()),c=Number(o.valueBlock.value[2].toBigInt());else if(o.valueBlock.value.length===2)throw new $("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let u=t.valueBlock.value[1].valueBlock.value[1],f=u.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new $("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Zr(u.valueBlock.value[1].getValue());return{cipherText:Zr(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:l}}function $c(r){return Zr(r.valueBlock.value[2].getValue())}function Zr(r){return new Uint8Array(r,0,r.byteLength)}async function qc(r){let t=await At.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await zc(t);return{privateKey:e[0],publicKey:e[1]}}async function si(r){let e=[await At.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await ud(r)],n=await zc({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function Gc(r,t){let e=await At.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await At.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function jc(r,t,e){let n=await At.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return At.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function zc(r){if(r.privateKey==null||r.publicKey==null)throw new $("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([At.get().subtle.exportKey("jwk",r.privateKey),At.get().subtle.exportKey("jwk",r.publicKey)])}async function ud(r){return At.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function ws(r){if(r.kty!=="RSA")throw new $("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new $("invalid key modulus","ERR_INVALID_KEY_MODULUS");return X(r.n,"base64url").length*8}var Jr=8192,Xr=class{_key;constructor(t){this._key=t}verify(t,e){return jc(this._key,e,t)}marshal(){return Ie.jwkToPkix(this._key)}get bytes(){return zt.encode({Type:nt.RSA,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}hash(){let t=yt.digest(this.bytes);return Lt(t)?t.then(({bytes:e})=>e):t.bytes}},br=class{_key;_publicKey;constructor(t,e){this._key=t,this._publicKey=e}genSecret(){return $e(16)}sign(t){return Gc(this._key,t)}get public(){if(this._publicKey==null)throw new $("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Xr(this._publicKey)}marshal(){return Ie.jwkToPkcs1(this._key)}get bytes(){return Yt.encode({Type:nt.RSA,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}hash(){let t=yt.digest(this.bytes);return Lt(t)?t.then(({bytes:e})=>e):t.bytes}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="pkcs-8"){if(e==="pkcs-8")return Ie.exportToPem(this,t);if(e==="libp2p-key")return fr(this.bytes,t);throw new $(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function ni(r){let t=Ie.pkcs1ToJwk(r);if(ws(t)>Jr)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await si(t);return new br(e.privateKey,e.publicKey)}function hd(r){let t=Ie.pkixToJwk(r);if(ws(t)>Jr)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Xr(t)}async function dd(r){if(ws(r)>Jr)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await si(r);return new br(t.privateKey,t.publicKey)}async function pd(r){if(r>Jr)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await qc(r);return new br(t.privateKey,t.publicKey)}var ui={};ht(ui,{Secp256k1PrivateKey:()=>tn,Secp256k1PublicKey:()=>Qr,generateKeyPair:()=>Id,unmarshalSecp256k1PrivateKey:()=>Sd,unmarshalSecp256k1PublicKey:()=>kd});var yd=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_e=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ne=new Uint32Array(64),ii=class extends ir{constructor(){super(64,32,8,!1),this.A=_e[0]|0,this.B=_e[1]|0,this.C=_e[2]|0,this.D=_e[3]|0,this.E=_e[4]|0,this.F=_e[5]|0,this.G=_e[6]|0,this.H=_e[7]|0}get(){let{A:t,B:e,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[t,e,n,s,o,i,a,c]}set(t,e,n,s,o,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,e){for(let l=0;l<16;l++,e+=4)Ne[l]=t.getUint32(e,!1);for(let l=16;l<64;l++){let y=Ne[l-15],E=Ne[l-2],p=Dt(y,7)^Dt(y,18)^y>>>3,h=Dt(E,17)^Dt(E,19)^E>>>10;Ne[l]=h+Ne[l-7]+p+Ne[l-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let y=Dt(a,6)^Dt(a,11)^Dt(a,25),E=f+y+Ba(a,c,u)+yd[l]+Ne[l]|0,h=(Dt(n,2)^Dt(n,13)^Dt(n,22))+Aa(n,s,o)|0;f=u,u=c,c=a,a=i+E|0,i=o,o=s,s=n,n=E+h|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,s,o,i,a,c,u,f)}roundClean(){Ne.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var wr=yn(()=>new ii);function Yc(r){r.lowS!==void 0&&Ot("lowS",r.lowS),r.prehash!==void 0&&Ot("prehash",r.prehash)}function gd(r){let t=Dr(r);Tt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:md,hexToBytes:bd}=bn,Ge={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){let{Err:t}=Ge;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");let e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:md(n),l:r.subarray(e+2)}},toSig(r){let{Err:t}=Ge,e=typeof r=="string"?bd(r):r;ar(e);let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:s,l:o}=Ge._parseInt(e.subarray(2)),{d:i,l:a}=Ge._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(r){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,e=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(e(r.s)),s=t(e(r.r)),o=n.length/2,i=s.length/2,a=e(o),c=e(i);return`30${e(i+o+4)}02${c}${s}02${a}${n}`}},Re=BigInt(0),pt=BigInt(1),Mg=BigInt(2),Wc=BigInt(3),Fg=BigInt(4);function wd(r){let t=gd(r),{Fp:e}=t,n=t.toBytes||((p,h,d)=>{let x=h.toAffine();return oe(Uint8Array.from([4]),e.toBytes(x.x),e.toBytes(x.y))}),s=t.fromBytes||(p=>{let h=p.subarray(1),d=e.fromBytes(h.subarray(0,e.BYTES)),x=e.fromBytes(h.subarray(e.BYTES,2*e.BYTES));return{x:d,y:x}});function o(p){let{a:h,b:d}=t,x=e.sqr(p),m=e.mul(x,p);return e.add(e.add(m,e.mul(p,h)),d)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function i(p){return Ur(p,pt,t.n)}function a(p){let{allowedPrivateKeyLengths:h,nByteLength:d,wrapPrivateKey:x,n:m}=t;if(h&&typeof p!="bigint"){if(xe(p)&&(p=re(p)),typeof p!="string"||!h.includes(p.length))throw new Error("Invalid key");p=p.padStart(d*2,"0")}let w;try{w=typeof p=="bigint"?p:ne(tt("private key",p,d))}catch{throw new Error(`private key must be ${d} bytes, hex or bigint, not ${typeof p}`)}return x&&(w=Y(w,m)),mt("private key",w,pt,m),w}function c(p){if(!(p instanceof l))throw new Error("ProjectivePoint expected")}let u=He((p,h)=>{let{px:d,py:x,pz:m}=p;if(e.eql(m,e.ONE))return{x:d,y:x};let w=p.is0();h==null&&(h=w?e.ONE:e.inv(m));let I=e.mul(d,h),R=e.mul(x,h),S=e.mul(m,h);if(w)return{x:e.ZERO,y:e.ZERO};if(!e.eql(S,e.ONE))throw new Error("invZ was invalid");return{x:I,y:R}}),f=He(p=>{if(p.is0()){if(t.allowInfinityPoint&&!e.is0(p.py))return;throw new Error("bad point: ZERO")}let{x:h,y:d}=p.toAffine();if(!e.isValid(h)||!e.isValid(d))throw new Error("bad point: x or y not FE");let x=e.sqr(d),m=o(h);if(!e.eql(x,m))throw new Error("bad point: equation left != right");if(!p.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(h,d,x){if(this.px=h,this.py=d,this.pz=x,h==null||!e.isValid(h))throw new Error("x required");if(d==null||!e.isValid(d))throw new Error("y required");if(x==null||!e.isValid(x))throw new Error("z required");Object.freeze(this)}static fromAffine(h){let{x:d,y:x}=h||{};if(!h||!e.isValid(d)||!e.isValid(x))throw new Error("invalid affine point");if(h instanceof l)throw new Error("projective point not allowed");let m=w=>e.eql(w,e.ZERO);return m(d)&&m(x)?l.ZERO:new l(d,x,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){let d=e.invertBatch(h.map(x=>x.pz));return h.map((x,m)=>x.toAffine(d[m])).map(l.fromAffine)}static fromHex(h){let d=l.fromAffine(s(tt("pointHex",h)));return d.assertValidity(),d}static fromPrivateKey(h){return l.BASE.multiply(a(h))}_setWindowSize(h){E.setWindowSize(this,h)}assertValidity(){f(this)}hasEvenY(){let{y:h}=this.toAffine();if(e.isOdd)return!e.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){c(h);let{px:d,py:x,pz:m}=this,{px:w,py:I,pz:R}=h,S=e.eql(e.mul(d,R),e.mul(w,m)),N=e.eql(e.mul(x,R),e.mul(I,m));return S&&N}negate(){return new l(this.px,e.neg(this.py),this.pz)}double(){let{a:h,b:d}=t,x=e.mul(d,Wc),{px:m,py:w,pz:I}=this,R=e.ZERO,S=e.ZERO,N=e.ZERO,_=e.mul(m,m),V=e.mul(w,w),U=e.mul(I,I),L=e.mul(m,w);return L=e.add(L,L),N=e.mul(m,I),N=e.add(N,N),R=e.mul(h,N),S=e.mul(x,U),S=e.add(R,S),R=e.sub(V,S),S=e.add(V,S),S=e.mul(R,S),R=e.mul(L,R),N=e.mul(x,N),U=e.mul(h,U),L=e.sub(_,U),L=e.mul(h,L),L=e.add(L,N),N=e.add(_,_),_=e.add(N,_),_=e.add(_,U),_=e.mul(_,L),S=e.add(S,_),U=e.mul(w,I),U=e.add(U,U),_=e.mul(U,L),R=e.sub(R,_),N=e.mul(U,V),N=e.add(N,N),N=e.add(N,N),new l(R,S,N)}add(h){c(h);let{px:d,py:x,pz:m}=this,{px:w,py:I,pz:R}=h,S=e.ZERO,N=e.ZERO,_=e.ZERO,V=t.a,U=e.mul(t.b,Wc),L=e.mul(d,w),M=e.mul(x,I),K=e.mul(m,R),k=e.add(d,x),b=e.add(w,I);k=e.mul(k,b),b=e.add(L,M),k=e.sub(k,b),b=e.add(d,m);let g=e.add(w,R);return b=e.mul(b,g),g=e.add(L,K),b=e.sub(b,g),g=e.add(x,m),S=e.add(I,R),g=e.mul(g,S),S=e.add(M,K),g=e.sub(g,S),_=e.mul(V,b),S=e.mul(U,K),_=e.add(S,_),S=e.sub(M,_),_=e.add(M,_),N=e.mul(S,_),M=e.add(L,L),M=e.add(M,L),K=e.mul(V,K),b=e.mul(U,b),M=e.add(M,K),K=e.sub(L,K),K=e.mul(V,K),b=e.add(b,K),L=e.mul(M,b),N=e.add(N,L),L=e.mul(g,b),S=e.mul(k,S),S=e.sub(S,L),L=e.mul(k,M),_=e.mul(g,_),_=e.add(_,L),new l(S,N,_)}subtract(h){return this.add(h.negate())}is0(){return this.equals(l.ZERO)}wNAF(h){return E.wNAFCached(this,h,l.normalizeZ)}multiplyUnsafe(h){mt("scalar",h,Re,t.n);let d=l.ZERO;if(h===Re)return d;if(h===pt)return this;let{endo:x}=t;if(!x)return E.unsafeLadder(this,h);let{k1neg:m,k1:w,k2neg:I,k2:R}=x.splitScalar(h),S=d,N=d,_=this;for(;w>Re||R>Re;)w&pt&&(S=S.add(_)),R&pt&&(N=N.add(_)),_=_.double(),w>>=pt,R>>=pt;return m&&(S=S.negate()),I&&(N=N.negate()),N=new l(e.mul(N.px,x.beta),N.py,N.pz),S.add(N)}multiply(h){let{endo:d,n:x}=t;mt("scalar",h,pt,x);let m,w;if(d){let{k1neg:I,k1:R,k2neg:S,k2:N}=d.splitScalar(h),{p:_,f:V}=this.wNAF(R),{p:U,f:L}=this.wNAF(N);_=E.constTimeNegate(I,_),U=E.constTimeNegate(S,U),U=new l(e.mul(U.px,d.beta),U.py,U.pz),m=_.add(U),w=V.add(L)}else{let{p:I,f:R}=this.wNAF(h);m=I,w=R}return l.normalizeZ([m,w])[0]}multiplyAndAddUnsafe(h,d,x){let m=l.BASE,w=(R,S)=>S===Re||S===pt||!R.equals(m)?R.multiplyUnsafe(S):R.multiply(S),I=w(this,d).add(w(h,x));return I.is0()?void 0:I}toAffine(h){return u(this,h)}isTorsionFree(){let{h,isTorsionFree:d}=t;if(h===pt)return!0;if(d)return d(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h,clearCofactor:d}=t;return h===pt?this:d?d(l,this):this.multiplyUnsafe(t.h)}toRawBytes(h=!0){return Ot("isCompressed",h),this.assertValidity(),n(l,this,h)}toHex(h=!0){return Ot("isCompressed",h),re(this.toRawBytes(h))}}l.BASE=new l(t.Gx,t.Gy,e.ONE),l.ZERO=new l(e.ZERO,e.ONE,e.ZERO);let y=t.nBitLength,E=En(l,t.endo?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:a,weierstrassEquation:o,isWithinCurveOrder:i}}function xd(r){let t=Dr(r);return Tt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Zc(r){let t=xd(r),{Fp:e,n}=t,s=e.BYTES+1,o=2*e.BYTES+1;function i(k){return Y(k,n)}function a(k){return wn(k,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:f,isWithinCurveOrder:l}=wd({...t,toBytes(k,b,g){let B=b.toAffine(),A=e.toBytes(B.x),v=oe;return Ot("isCompressed",g),g?v(Uint8Array.from([b.hasEvenY()?2:3]),A):v(Uint8Array.from([4]),A,e.toBytes(B.y))},fromBytes(k){let b=k.length,g=k[0],B=k.subarray(1);if(b===s&&(g===2||g===3)){let A=ne(B);if(!Ur(A,pt,e.ORDER))throw new Error("Point is not on curve");let v=f(A),T;try{T=e.sqrt(v)}catch(P){let F=P instanceof Error?": "+P.message:"";throw new Error("Point is not on curve"+F)}let H=(T&pt)===pt;return(g&1)===1!==H&&(T=e.neg(T)),{x:A,y:T}}else if(b===o&&g===4){let A=e.fromBytes(B.subarray(0,e.BYTES)),v=e.fromBytes(B.subarray(e.BYTES,2*e.BYTES));return{x:A,y:v}}else throw new Error(`Point of length ${b} was invalid. Expected ${s} compressed bytes or ${o} uncompressed bytes`)}}),y=k=>re(Ee(k,t.nByteLength));function E(k){let b=n>>pt;return k>b}function p(k){return E(k)?i(-k):k}let h=(k,b,g)=>ne(k.slice(b,g));class d{constructor(b,g,B){this.r=b,this.s=g,this.recovery=B,this.assertValidity()}static fromCompact(b){let g=t.nByteLength;return b=tt("compactSignature",b,g*2),new d(h(b,0,g),h(b,g,2*g))}static fromDER(b){let{r:g,s:B}=Ge.toSig(tt("DER",b));return new d(g,B)}assertValidity(){mt("r",this.r,pt,n),mt("s",this.s,pt,n)}addRecoveryBit(b){return new d(this.r,this.s,b)}recoverPublicKey(b){let{r:g,s:B,recovery:A}=this,v=S(tt("msgHash",b));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let T=A===2||A===3?g+t.n:g;if(T>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",O=c.fromHex(H+y(T)),P=a(T),F=i(-v*P),j=i(B*P),W=c.BASE.multiplyAndAddUnsafe(O,F,j);if(!W)throw new Error("point at infinify");return W.assertValidity(),W}hasHighS(){return E(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return Ue(this.toDERHex())}toDERHex(){return Ge.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ue(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}let x={isValidPrivateKey(k){try{return u(k),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let k=Ao(t.n);return Ca(t.randomBytes(k),t.n)},precompute(k=8,b=c.BASE){return b._setWindowSize(k),b.multiply(BigInt(3)),b}};function m(k,b=!0){return c.fromPrivateKey(k).toRawBytes(b)}function w(k){let b=xe(k),g=typeof k=="string",B=(b||g)&&k.length;return b?B===s||B===o:g?B===2*s||B===2*o:k instanceof c}function I(k,b,g=!0){if(w(k))throw new Error("first arg must be private key");if(!w(b))throw new Error("second arg must be public key");return c.fromHex(b).multiply(u(k)).toRawBytes(g)}let R=t.bits2int||function(k){let b=ne(k),g=k.length*8-t.nBitLength;return g>0?b>>BigInt(g):b},S=t.bits2int_modN||function(k){return i(R(k))},N=Hr(t.nBitLength);function _(k){return mt(`num < 2^${t.nBitLength}`,k,Re,N),Ee(k,t.nByteLength)}function V(k,b,g=U){if(["recovered","canonical"].some(Q=>Q in g))throw new Error("sign() legacy options not supported");let{hash:B,randomBytes:A}=t,{lowS:v,prehash:T,extraEntropy:H}=g;v==null&&(v=!0),k=tt("msgHash",k),Yc(g),T&&(k=tt("prehashed msgHash",B(k)));let O=S(k),P=u(b),F=[_(P),_(O)];if(H!=null&&H!==!1){let Q=H===!0?A(e.BYTES):H;F.push(tt("extraEntropy",Q))}let j=oe(...F),W=O;function ot(Q){let J=R(Q);if(!l(J))return;let Ut=a(J),ft=c.BASE.multiply(J).toAffine(),Ht=i(ft.x);if(Ht===Re)return;let Le=i(Ut*i(W+Ht*P));if(Le===Re)return;let _r=(ft.x===Ht?0:2)|Number(ft.y&pt),ln=Le;return v&&E(Le)&&(ln=p(Le),_r^=1),new d(Ht,ln,_r)}return{seed:j,k2sig:ot}}let U={lowS:t.lowS,prehash:!1},L={lowS:t.lowS,prehash:!1};function M(k,b,g=U){let{seed:B,k2sig:A}=V(k,b,g),v=t;return wo(v.hash.outputLen,v.nByteLength,v.hmac)(B,A)}c.BASE._setWindowSize(8);function K(k,b,g,B=L){let A=k;if(b=tt("msgHash",b),g=tt("publicKey",g),"strict"in B)throw new Error("options.strict was renamed to lowS");Yc(B);let{lowS:v,prehash:T}=B,H,O;try{if(typeof A=="string"||xe(A))try{H=d.fromDER(A)}catch(ft){if(!(ft instanceof Ge.Err))throw ft;H=d.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:ft,s:Ht}=A;H=new d(ft,Ht)}else throw new Error("PARSE");O=c.fromHex(g)}catch(ft){if(ft.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(v&&H.hasHighS())return!1;T&&(b=t.hash(b));let{r:P,s:F}=H,j=S(b),W=a(F),ot=i(j*W),Q=i(P*W),J=c.BASE.multiplyAndAddUnsafe(O,ot,Q)?.toAffine();return J?i(J.x)===P:!1}return{CURVE:t,getPublicKey:m,getSharedSecret:I,sign:M,verify:K,ProjectivePoint:c,Signature:d,utils:x}}function Ed(r){return{hash:r,hmac:(t,...e)=>Be(r,t,fo(...e)),randomBytes:Ce}}function Xc(r,t){let e=n=>Zc({...r,...Ed(n)});return Object.freeze({...e(t),create:e})}var tl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Jc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),vd=BigInt(1),ai=BigInt(2),Qc=(r,t)=>(r+t/ai)/t;function Bd(r){let t=tl,e=BigInt(3),n=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%t,f=u*u*r%t,l=et(f,e,t)*f%t,y=et(l,e,t)*f%t,E=et(y,ai,t)*u%t,p=et(E,s,t)*E%t,h=et(p,o,t)*p%t,d=et(h,a,t)*h%t,x=et(d,c,t)*d%t,m=et(x,a,t)*h%t,w=et(m,e,t)*f%t,I=et(w,i,t)*p%t,R=et(I,n,t)*u%t,S=et(R,ai,t);if(!ci.eql(ci.sqr(S),r))throw new Error("Cannot find square root");return S}var ci=xn(tl,void 0,void 0,{sqrt:Bd}),qt=Xc({a:BigInt(0),b:BigInt(7),Fp:ci,n:Jc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Jc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-vd*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,i=BigInt("0x100000000000000000000000000000000"),a=Qc(o*r,t),c=Qc(-n*r,t),u=Y(r-a*e-c*s,t),f=Y(-a*n-c*o,t),l=u>i,y=f>i;if(l&&(u=t-u),y&&(f=t-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:u,k2neg:y,k2:f}}}},wr),Xg=BigInt(0);var Jg=qt.ProjectivePoint;function el(){return qt.utils.randomPrivateKey()}function rl(r,t){let e=yt.digest(t instanceof Uint8Array?t:t.subarray());if(Lt(e))return e.then(({digest:n})=>qt.sign(n,r).toDERRawBytes()).catch(n=>{throw new $(String(n),"ERR_INVALID_INPUT")});try{return qt.sign(e.digest,r).toDERRawBytes()}catch(n){throw new $(String(n),"ERR_INVALID_INPUT")}}function nl(r,t,e){let n=yt.digest(e instanceof Uint8Array?e:e.subarray());if(Lt(n))return n.then(({digest:s})=>qt.verify(t,s,r)).catch(s=>{throw new $(String(s),"ERR_INVALID_INPUT")});try{return qt.verify(t,n.digest,r)}catch(s){throw new $(String(s),"ERR_INVALID_INPUT")}}function sl(r){return qt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function ol(r){try{qt.getPublicKey(r,!0)}catch(t){throw new $(String(t),"ERR_INVALID_PRIVATE_KEY")}}function li(r){try{qt.ProjectivePoint.fromHex(r)}catch(t){throw new $(String(t),"ERR_INVALID_PUBLIC_KEY")}}function il(r){try{return qt.getPublicKey(r,!0)}catch(t){throw new $(String(t),"ERR_INVALID_PRIVATE_KEY")}}var Qr=class{_key;constructor(t){li(t),this._key=t}verify(t,e){return nl(this._key,e,t)}marshal(){return sl(this._key)}get bytes(){return zt.encode({Type:nt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}async hash(){let t=yt.digest(this.bytes),e;return Lt(t)?{bytes:e}=await t:e=t.bytes,e}},tn=class{_key;_publicKey;constructor(t,e){this._key=t,this._publicKey=e??il(t),ol(this._key),li(this._publicKey)}sign(t){return rl(this._key,t)}get public(){return new Qr(this._publicKey)}marshal(){return this._key}get bytes(){return Yt.encode({Type:nt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return gt(this.bytes,t.bytes)}hash(){let t=yt.digest(this.bytes);return Lt(t)?t.then(({bytes:e})=>e):t.bytes}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="libp2p-key"){if(e==="libp2p-key")return fr(this.bytes,t);throw new $(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Sd(r){return new tn(r)}function kd(r){return new Qr(r)}async function Id(){let r=el();return new tn(r)}var je={rsa:oi,ed25519:Wo,secp256k1:ui};function al(r){let t=Object.keys(je).join(" / ");return new $(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function cl(r){let t=zt.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case nt.RSA:return je.rsa.unmarshalRsaPublicKey(e);case nt.Ed25519:return je.ed25519.unmarshalEd25519PublicKey(e);case nt.Secp256k1:return je.secp256k1.unmarshalSecp256k1PublicKey(e);default:throw al(t.Type??"unknown")}}async function fi(r){let t=Yt.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case nt.RSA:return je.rsa.unmarshalRsaPrivateKey(e);case nt.Ed25519:return je.ed25519.unmarshalEd25519PrivateKey(e);case nt.Secp256k1:return je.secp256k1.unmarshalSecp256k1PrivateKey(e);default:throw al(t.Type??"RSA")}}var ul=Symbol.for("nodejs.util.inspect.custom"),ll=Object.values(er).map(r=>r.decoder).reduce((r,t)=>r.or(t),er.identity.decoder),fl=114,pi=36,yi=37,en=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[fn]=!0;toString(){return this.string==null&&(this.string=Bt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return ge.createV1(fl,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return gt(this.multihash.bytes,t);if(typeof t=="string")return _d(t).equals(this);if(t?.multihash?.bytes!=null)return gt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[ul](){return`PeerId(${this.toString()})`}},xr=class extends en{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Er=class extends en{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},vr=class extends en{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}},hi=2336,di=class{type="url";multihash;privateKey;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Qt.digest(X(this.url))}[ul](){return`PeerId(${this.url})`}[fn]=!0;toString(){return this.toCID().toString()}toCID(){return ge.createV1(hi,this.multihash)}toBytes(){return this.toCID().bytes}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=z(t)),t.toString()===this.toString())}};function _d(r,t){if(t=t??ll,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=Lr(Bt.decode(`z${r}`));return r.startsWith("12D")?new Er({multihash:e}):r.startsWith("16U")?new vr({multihash:e}):new xr({multihash:e})}return Nd(ll.decode(r))}function Nd(r){try{let t=Lr(r);if(t.code===Qt.code){if(t.digest.length===pi)return new Er({multihash:t});if(t.digest.length===yi)return new vr({multihash:t})}if(t.code===yt.code)return new xr({multihash:t})}catch{return Rd(ge.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Rd(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==fl&&r.code!==hi)throw new Error("Supplied PeerID CID is invalid");if(r.code===hi){let e=z(r.multihash.digest);return new di(new URL(e))}let t=r.multihash;if(t.code===yt.code)return new xr({multihash:r.multihash});if(t.code===Qt.code){if(t.digest.length===pi)return new Er({multihash:r.multihash});if(t.digest.length===yi)return new vr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function gi(r,t){return r.length===pi?new Er({multihash:jt(Qt.code,r),privateKey:t}):r.length===yi?new vr({multihash:jt(Qt.code,r),privateKey:t}):new xr({multihash:await yt.digest(r),publicKey:r,privateKey:t})}var dl=Symbol.for("@achingbrain/uint8arraylist");function hl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(xs(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(xs(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=hl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=hl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return te(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:te(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),o=new r;return o.length=s,o.bufs=[...n],o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let o=0;o=c)continue;let u=t>=a&&ta&&e<=c;if(u&&f){if(t===a&&e===c){n.push(i);break}let l=t-a;n.push(i.subarray(l,l+(e-t)));break}if(u){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(f){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!xs(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let o=256,i=new Int32Array(o);for(let l=0;l=0;y--){let E=this.get(l+y);if(n[y]!==E){f=Math.max(1,y-a[E]);break}}if(f===0)return l}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=lt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=ct(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=ct(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=ct(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=lt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=ct(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=ct(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=ct(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=ct(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=ct(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;es+o.byteLength,0)),n.length=e,n}};function Es(r){return r[Symbol.asyncIterator]!=null}var vs=r=>{let t=Nt(r),e=lt(t);return An(r,e),vs.bytes=t,e};vs.bytes=0;function pl(r,t){t=t??{};let e=t.lengthEncoder??vs;function*n(s){let o=e(s.byteLength);o instanceof Uint8Array?yield o:yield*o,s instanceof Uint8Array?yield s:yield*s}return Es(r)?async function*(){for await(let s of r)yield*n(s)}():function*(){for(let s of r)yield*n(s)}()}pl.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??vs;return new at(e(r.byteLength),r)};var Bs=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},As=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ss=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},rn=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var Ld=8,Td=1024*1024*4,ze;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(ze||(ze={}));var mi=r=>{let t=Sn(r);return mi.bytes=Nt(t),t};mi.bytes=0;function nn(r,t){let e=new at,n=ze.LENGTH,s=-1,o=t?.lengthDecoder??mi,i=t?.maxLengthLength??Ld,a=t?.maxDataLength??Td;function*c(){for(;e.byteLength>0;){if(n===ze.LENGTH)try{if(s=o(e),s<0)throw new Bs("Invalid message length");if(s>a)throw new As("Message length too long");let u=o.bytes;e.consume(u),t?.onLength!=null&&t.onLength(s),n=ze.DATA}catch(u){if(u instanceof RangeError){if(e.byteLength>i)throw new Ss("Message length length too long");break}throw u}if(n===ze.DATA){if(e.byteLength0)throw new rn("Unexpected end of input")}():function*(){for(let u of r)e.append(u),yield*c();if(e.byteLength>0)throw new rn("Unexpected end of input")}()}nn.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:o,value:i}=await r.next(e);if(o===!0)return;i!=null&&(yield i)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{e=1}}();return nn(n,{...t??{},onLength:o=>{e=o}})};function Gt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var ks=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function yl(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new ks(e?.errorMessage,e?.errorCode,e?.errorName));let n,s=new ks(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((o,i)=>{n=()=>{i(s)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var bi=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Gt(),this.haveNext=Gt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Gt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Gt(),await yl(this.readNext.promise,e?.signal,e)}};function gl(){return new bi}var Is=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var wi=class extends Error{code;constructor(t,e){super(t),this.code=e}},xi=class extends wi{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function ml(r,t){let e=gl();r.sink(e).catch(async i=>{await e.end(i)}),r.sink=async i=>{for await(let a of i)await e.push(a);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new at;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new xi("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:y}=await Promise.race([n.next(),u]);return l===!0?new at:y}for(;s.byteLength{a?.signal?.throwIfAborted(),i instanceof Uint8Array?await e.push(i,a):await e.push(i.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let i=r.source;r.source=async function*(){t?.yieldBytes===!1?yield s:yield*s,yield*i}()}return r}}}var _s=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ns=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Rs=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Ei(r,t={}){let e=ml(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Nt(t.maxDataLength));let n=t?.lengthDecoder??Sn,s=t?.lengthEncoder??An;return{read:async i=>{let a=-1,c=new at;for(;;){c.append(await e.read(1,i));try{a=n(c)}catch(u){if(u instanceof RangeError)continue;throw u}if(a<0)throw new _s("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new Rs("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Ns("message length too long");return e.read(a,i)},write:async(i,a)=>{await e.write(new at(s(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new at(...i.flatMap(u=>[s(u.byteLength),u]));await e.write(c,a)},unwrap:()=>e.unwrap()}}function vi(){let r=Gt(),t=!1;return{sink:async e=>{if(t)throw new Error("already piped");t=!0,r.resolve(e)},source:async function*(){yield*await r.promise}()}}function bl(){let r=vi(),t=vi();return[{source:r.source,sink:t.sink},{source:t.source,sink:r.sink}]}var Ls=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Br=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Ls(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new Ls(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Bi=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Ts(r={}){return Cd(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Cd(r,t){t=t??{};let e=t.onEnd,n=new Br,s,o,i,a=Gt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((d,x)=>{o=m=>{o=null,n.push(m);try{d(r(n))}catch(w){x(w)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Gt()})}},u=d=>o!=null?o(d):(n.push(d),s),f=d=>(n=new Br,o!=null?o({error:d}):(n.push({error:d}),s)),l=d=>{if(i)return s;if(t?.objectMode!==!0&&d?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:d})},y=d=>i?s:(i=!0,d!=null?f(d):u({done:!0})),E=()=>(n=new Br,y(),{done:!0}),p=d=>(y(d),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:E,throw:p,push:l,end:y,get readableLength(){return n.size},onEmpty:async d=>{let x=d?.signal;if(x?.throwIfAborted(),n.isEmpty())return;let m,w;x!=null&&(m=new Promise((I,R)=>{w=()=>{R(new Bi)},x.addEventListener("abort",w)}));try{await Promise.race([a.promise,m])}finally{w!=null&&x!=null&&x?.removeEventListener("abort",w)}}},e==null)return s;let h=s;return s={[Symbol.asyncIterator](){return this},next(){return h.next()},throw(d){return h.throw(d),e!=null&&(e(d),e=void 0),{done:!0}},return(){return h.return(),e!=null&&(e(),e=void 0),{done:!0}},push:l,end(d){return h.end(d),e!=null&&(e(d),e=void 0),s},get readableLength(){return h.readableLength},onEmpty:d=>h.onEmpty(d)},s}function Ud(r){return r[Symbol.asyncIterator]!=null}function Hd(...r){let t=[];for(let e of r)Ud(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=Ts({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let s of n)e.push(s)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var wl=Hd;function xl(r,...t){if(r==null)throw new Error("Empty pipeline");if(Ai(r)){let n=r;r=()=>n.source}else if(vl(r)||El(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&Ai(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n{let t;for(;r.length>0;)t=r.shift()(t);return t},El=r=>r?.[Symbol.asyncIterator]!=null,vl=r=>r?.[Symbol.iterator]!=null,Ai=r=>r==null?!1:r.sink!=null&&r.source!=null,Vd=r=>t=>{let e=r.sink(t);if(e?.then!=null){let n=Ts({objectMode:!0});e.then(()=>{n.end()},i=>{n.end(i)});let s,o=r.source;if(El(o))s=async function*(){yield*o,n.end()};else if(vl(o))s=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return wl(n,s())}return r.source};var Ar=!!globalThis.process?.env?.DUMP_SESSION_KEYS;function Cs(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Si(r){if(typeof r!="boolean")throw new Error(`boolean expected, not ${r}`)}function ki(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function _t(r,...t){if(!ki(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function Ii(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 Bl(r,t){_t(r);let e=t.outputLen;if(r.lengthnew Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)),Al=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Od=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Od)throw new Error("Non little-endian hardware is not supported");function Pd(r){if(typeof r!="string")throw new Error(`string expected, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Us(r){if(typeof r=="string")r=Pd(r);else if(ki(r))r=Hs(r);else throw new Error(`Uint8Array expected, got ${typeof r}`);return r}function Sl(r,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(r,t)}function kl(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n(Object.assign(t,r),t);function Ni(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),a=Number(e&o),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}function Hs(r){return Uint8Array.from(r)}function pe(...r){for(let t=0;tUint8Array.from(r.split("").map(t=>t.charCodeAt(0))),Kd=_l("expand 16-byte k"),Md=_l("expand 32-byte k"),Fd=de(Kd),Nl=de(Md),wb=Nl.slice();function D(r,t){return r<>>32-t}function Ri(r){return r.byteOffset%4===0}var Ds=64,$d=16,Rl=2**32-1,Il=new Uint32Array;function qd(r,t,e,n,s,o,i,a){let c=s.length,u=new Uint8Array(Ds),f=de(u),l=Ri(s)&&Ri(o),y=l?de(s):Il,E=l?de(o):Il;for(let p=0;p=Rl)throw new Error("arx: counter overflow");let h=Math.min(Ds,c-p);if(l&&h===Ds){let d=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let x=0,m;x<$d;x++)m=d+x,E[m]=y[m]^f[x];p+=Ds;continue}for(let d=0,x;d{_t(a),_t(c),_t(u);let y=u.length;if(f===void 0&&(f=new Uint8Array(y)),_t(f),Cs(l),l<0||l>=Rl)throw new Error("arx: counter overflow");if(f.lengthr[t++]&255|(r[t++]&255)<<8,Ti=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=Us(t),_t(t,32);let e=wt(t,0),n=wt(t,2),s=wt(t,4),o=wt(t,6),i=wt(t,8),a=wt(t,10),c=wt(t,12),u=wt(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|s<<6)&7939,this.r[3]=(s>>>7|o<<9)&8191,this.r[4]=(o>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=wt(t,16+2*f)}process(t,e,n=!1){let s=n?0:2048,{h:o,r:i}=this,a=i[0],c=i[1],u=i[2],f=i[3],l=i[4],y=i[5],E=i[6],p=i[7],h=i[8],d=i[9],x=wt(t,e+0),m=wt(t,e+2),w=wt(t,e+4),I=wt(t,e+6),R=wt(t,e+8),S=wt(t,e+10),N=wt(t,e+12),_=wt(t,e+14),V=o[0]+(x&8191),U=o[1]+((x>>>13|m<<3)&8191),L=o[2]+((m>>>10|w<<6)&8191),M=o[3]+((w>>>7|I<<9)&8191),K=o[4]+((I>>>4|R<<12)&8191),k=o[5]+(R>>>1&8191),b=o[6]+((R>>>14|S<<2)&8191),g=o[7]+((S>>>11|N<<5)&8191),B=o[8]+((N>>>8|_<<8)&8191),A=o[9]+(_>>>5|s),v=0,T=v+V*a+U*(5*d)+L*(5*h)+M*(5*p)+K*(5*E);v=T>>>13,T&=8191,T+=k*(5*y)+b*(5*l)+g*(5*f)+B*(5*u)+A*(5*c),v+=T>>>13,T&=8191;let H=v+V*c+U*a+L*(5*d)+M*(5*h)+K*(5*p);v=H>>>13,H&=8191,H+=k*(5*E)+b*(5*y)+g*(5*l)+B*(5*f)+A*(5*u),v+=H>>>13,H&=8191;let O=v+V*u+U*c+L*a+M*(5*d)+K*(5*h);v=O>>>13,O&=8191,O+=k*(5*p)+b*(5*E)+g*(5*y)+B*(5*l)+A*(5*f),v+=O>>>13,O&=8191;let P=v+V*f+U*u+L*c+M*a+K*(5*d);v=P>>>13,P&=8191,P+=k*(5*h)+b*(5*p)+g*(5*E)+B*(5*y)+A*(5*l),v+=P>>>13,P&=8191;let F=v+V*l+U*f+L*u+M*c+K*a;v=F>>>13,F&=8191,F+=k*(5*d)+b*(5*h)+g*(5*p)+B*(5*E)+A*(5*y),v+=F>>>13,F&=8191;let j=v+V*y+U*l+L*f+M*u+K*c;v=j>>>13,j&=8191,j+=k*a+b*(5*d)+g*(5*h)+B*(5*p)+A*(5*E),v+=j>>>13,j&=8191;let W=v+V*E+U*y+L*l+M*f+K*u;v=W>>>13,W&=8191,W+=k*c+b*a+g*(5*d)+B*(5*h)+A*(5*p),v+=W>>>13,W&=8191;let ot=v+V*p+U*E+L*y+M*l+K*f;v=ot>>>13,ot&=8191,ot+=k*u+b*c+g*a+B*(5*d)+A*(5*h),v+=ot>>>13,ot&=8191;let Q=v+V*h+U*p+L*E+M*y+K*l;v=Q>>>13,Q&=8191,Q+=k*f+b*u+g*c+B*a+A*(5*d),v+=Q>>>13,Q&=8191;let J=v+V*d+U*h+L*p+M*E+K*y;v=J>>>13,J&=8191,J+=k*l+b*f+g*u+B*c+A*a,v+=J>>>13,J&=8191,v=(v<<2)+v|0,v=v+T|0,T=v&8191,v=v>>>13,H+=v,o[0]=T,o[1]=H,o[2]=O,o[3]=P,o[4]=F,o[5]=j,o[6]=W,o[7]=ot,o[8]=Q,o[9]=J}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),s=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=s,s=t[a]>>>13,t[a]&=8191;t[0]+=s*5,s=t[0]>>>13,t[0]&=8191,t[1]+=s,s=t[1]>>>13,t[1]&=8191,t[2]+=s,n[0]=t[0]+5,s=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+s,s=n[a]>>>13,n[a]&=8191;n[9]-=8192;let o=(s^1)-1;for(let a=0;a<10;a++)n[a]&=o;o=~o;for(let a=0;a<10;a++)t[a]=t[a]&o|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;pe(n)}update(t){Ii(this);let{buffer:e,blockLen:n}=this;t=Us(t);let s=t.length;for(let o=0;o>>0,t[o++]=n[i]>>>8;return t}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}};function Gd(r){let t=(n,s)=>r(s).update(Us(n)).digest(),e=r(new Uint8Array(32));return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=n=>r(n),t}var Ll=Gd(r=>new Ti(r));function Ul(r,t,e,n,s,o=20){let i=r[0],a=r[1],c=r[2],u=r[3],f=t[0],l=t[1],y=t[2],E=t[3],p=t[4],h=t[5],d=t[6],x=t[7],m=s,w=e[0],I=e[1],R=e[2],S=i,N=a,_=c,V=u,U=f,L=l,M=y,K=E,k=p,b=h,g=d,B=x,A=m,v=w,T=I,H=R;for(let P=0;P{r.update(t);let e=t.length%16;e&&r.update(Wd.subarray(e))},Zd=new Uint8Array(32);function Cl(r,t,e,n,s){let o=r(t,e,Zd),i=Ll.create(o);s&&Tl(i,s),Tl(i,n);let a=new Uint8Array(16),c=Al(a);Ni(c,0,BigInt(s?s.length:0),!0),Ni(c,8,BigInt(n.length),!0),i.update(a);let u=i.digest();return pe(o,a),u}var Hl=r=>(t,e,n)=>(_t(t,32),_t(e),{encrypt(o,i){let a=o.length,c=a+16;i?_t(i,c):i=new Uint8Array(c),r(t,e,o,i,1);let u=Cl(r,t,e,i.subarray(0,-16),n);return i.set(u,a),pe(u),i},decrypt(o,i){let a=o.length,c=a-16;if(a<16)throw new Error("encrypted data must be at least 16 bytes");i?_t(i,c):i=new Uint8Array(c);let u=o.subarray(0,-16),f=o.subarray(-16),l=Cl(r,t,e,u,n);if(!kl(f,l))throw new Error("invalid tag");return r(t,e,u,i,1),pe(l),i}}),Ci=_i({blockSize:64,nonceLength:12,tagLength:16},Hl(zd)),_b=_i({blockSize:64,nonceLength:24,tagLength:16},Hl(Yd));function Vl(r,t,e){return Te(r),e===void 0&&(e=new Uint8Array(r.outputLen)),Be(r,Vt(e),Vt(t))}var Ui=new Uint8Array([0]),Dl=new Uint8Array;function Ol(r,t,e,n=32){if(Te(r),me(n),n>255*r.outputLen)throw new Error("Length should be <= 255*HashLen");let s=Math.ceil(n/r.outputLen);e===void 0&&(e=Dl);let o=new Uint8Array(s*r.outputLen),i=Be.create(r,t),a=i._cloneInto(),c=new Uint8Array(i.outputLen);for(let u=0;ur.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var Sr=r=>{let t=lt(2);return t[0]=r>>8,t[1]=r,t};Sr.bytes=2;var sn=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};sn.bytes=2;function Ml(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}function Hi(r,t){!t.enabled||!Ar||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${z(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${z(r.privateKey,"hex")}`)):t("Missing local static keys."))}function Di(r,t){!t.enabled||!Ar||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${z(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${z(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Fl(r,t){!t.enabled||!Ar||t(r?`REMOTE_STATIC_PUBLIC_KEY ${z(r.subarray(),"hex")}`:"Missing remote static public key.")}function Vi(r,t){!t.enabled||!Ar||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${z(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Oi(r,t,e){!e.enabled||!Ar||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&z(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&z(t.k,"hex")}`))}var Os=class r extends Error{code;constructor(t="Unexpected Peer"){super(t),this.code=r.code}static code="ERR_UNEXPECTED_PEER"},kr=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Xd=0,Jd=4294967295,Qd="Cipherstate has reached maximum n, a new handshake must be performed",Ps=class{n;bytes;view;constructor(t=Xd){this.n=t,this.bytes=ct(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>Jd)throw new Error(Qd)}};var Ye=ct(0),Ir=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Ps(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let s=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),s}},Pi=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=X(e,"utf-8");this.h=t0(t,n),this.ck=this.h,this.cs=new Ir(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new Ir(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new at(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,Ye);return[new Ir(this.crypto,t),new Ir(this.crypto,e)]}},Ki=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:s,initiator:o,s:i,e:a,rs:c,re:u}=t;this.crypto=e,this.ss=new Pi(e,n),this.ss.mixHash(s),this.initiator=o,this.s=i,this.e=a,this.rs=c,this.re=u}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength(t==null&&(t=Me((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let o of e.webtransportCerthashes)n.uint32(10),n.bytes(o);s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={webtransportCerthashes:[]},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{s.webtransportCerthashes.push(e.bytes());break}default:{e.skipType(i&7);break}}}return s})),t),r.encode=e=>Ke(e,r.codec()),r.decode=e=>Oe(e,r.codec())})(Ks||(Ks={}));var an;(function(r){let t;r.codec=()=>(t==null&&(t=Me((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Ks.codec().encode(e.extensions,n)),s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={identityKey:ct(0),identitySig:ct(0)},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Ks.codec().decode(e,e.uint32());break}default:{e.skipType(i&7);break}}}return s})),t),r.encode=e=>Ke(e,r.codec()),r.decode=e=>Oe(e,r.codec())})(an||(an={}));async function Mi(r,t,e){let n=await r.sign($l(t));return an.encode({identityKey:r.public.bytes,identitySig:n,extensions:e})}async function Fi(r,t,e){try{let n=an.decode(r);if(e){let i=e.subarray();if(!gt(i,n.identityKey))throw new Error(`Payload identity key ${z(n.identityKey,"hex")} does not match expected remote identity key ${z(i,"hex")}`)}if(!t)throw new Error("Remote static does not exist");let s=$l(t);if(!await cl(n.identityKey).verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new Os(n.message)}}function $l(r){let t=X("noise-libp2p-static-key:");return r instanceof Uint8Array?te([t,r],t.length+r.length):(r.prepend(t),r)}async function ql(r,t){let{log:e,connection:n,crypto:s,privateKey:o,prologue:i,s:a,remoteIdentityKey:c,extensions:u}=r,f=await Mi(o,a.publicKey,u),l=new on({crypto:s,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Hi(l.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(l.writeMessageA(Ye),t),e.trace("Stage 0 - Initiator finished sending first message."),Di(l.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=l.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),Vi(l.re,e),Fl(l.rs,e),e.trace("Initiator going to check remote's signature...");let E=await Fi(y,l.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(l.writeMessageC(f),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[p,h]=l.ss.split();return Oi(p,h,e),{payload:E,encrypt:d=>p.encryptWithAd(Ye,d),decrypt:(d,x)=>h.decryptWithAd(Ye,d,x)}}async function Gl(r,t){let{log:e,connection:n,crypto:s,privateKey:o,prologue:i,s:a,remoteIdentityKey:c,extensions:u}=r,f=await Mi(o,a.publicKey,u),l=new on({crypto:s,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Hi(l.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),l.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),Vi(l.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(l.writeMessageB(f),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Di(l.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let y=l.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let E=await Fi(y,l.rs,c),[p,h]=l.ss.split();return Oi(p,h,e),{payload:E,encrypt:d=>h.encryptWithAd(Ye,d),decrypt:(d,x)=>p.decryptWithAd(Ye,d,x)}}var zl=16;function Yl(r,t){return async function*(e){for await(let n of e)for(let s=0;sn.length&&(o=n.length);let i;n instanceof Uint8Array?i=r.encrypt(n.subarray(s,o)):i=r.encrypt(n.sublist(s,o)),t?.encryptedPackets.increment(),yield new at(Sr(i.byteLength),i)}}}function Wl(r,t){return async function*(e){for await(let n of e)for(let s=0;sn.length&&(o=n.length),o-zlnn(i,{lengthDecoder:sn}),Wl(e,this.metrics),n),s}parseArgs(t){return Xi(t[0])?{localPeer:t[0],connection:t[1],remotePeer:t[2]}:{localPeer:this.components.peerId,connection:t[0],remotePeer:t[1]?.remotePeer,signal:t[1]?.signal}}};function e0(r={}){return t=>new Ms(t,r)}return uu(r0);})(); -+`)}`:`${e} :`}};gc=Ee;T.Constructed=gc;Ee.NAME="CONSTRUCTED";var Un=class extends xt{fromBER(t,e,n){return e}toBER(t){return Kt}};Un.override="EndOfContentValueBlock";var yc,Cn=class extends dt{constructor(t={}){super(t,Un),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};yc=Cn;T.EndOfContent=yc;Cn.NAME=Ur;var mc,nr=class extends dt{constructor(t={}){super(t,xt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};mc=nr;T.Null=mc;nr.NAME="NULL";var _n=class extends ne(xt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=q.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=q.BufferSourceConverter.toUint8Array(t);return re(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,ei.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};_n.NAME="BooleanValueBlock";var xc,Tn=class extends dt{constructor(t={}){super(t,_n),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};xc=Tn;T.Boolean=xc;Tn.NAME="BOOLEAN";var Rn=class extends ne(Ft){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Ft.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let o=0;o0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return s}let o=q.BufferSourceConverter.toUint8Array(t);if(!re(this,o,e,n))return-1;let i=o.subarray(e,e+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=ls(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,e+n}toBER(t,e){if(this.isConstructed)return Ft.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Kt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};Vn.NAME="BitStringValueBlock";var wc,sr=class extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Vn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ee.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};wc=sr;T.BitString=wc;sr.NAME=hc;var Ec;function ed(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u=0,f=c=0;m--,l++){switch(!0){case l=o.length:o=vn(new Uint8Array([u%10]),o);break;default:o[i-l]=u%10}}return e[0]>0&&(o=vn(e,o)),o}function uc(r){if(r>=Lr.length)for(let t=Lr.length;t<=r;t++){let e=new Uint8Array([0]),n=Lr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let o=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=o[0]/10,n[s]=o[0]%10}e[0]>0&&(n=vn(e,n)),Lr.push(n)}return Lr[r]}function rd(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u,f=0;for(let l=c;l>=0;l--,f++)switch(u=o[i-f]-a[c-f]-e,!0){case u<0:e=1,o[i-f]=u+10;break;default:e=0,o[i-f]=u}if(e>0)for(let l=i-c+1;l>=0;l--,f++)if(u=o[i-f]-e,u<0)e=1,o[i-f]=u+10;else{e=0,o[i-f]=u;break}return o.slice()}var Cr=class extends ne(xt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=ei.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(ac(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let o=this.fromBER(t,e,n);if(o===-1)return o;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):s!==0&&i.length1&&(s=i.length+1),this.valueHexView=i.subarray(s-i.length)),o}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,o=this.valueHexView,i="",a=!1;for(let c=o.byteLength-1;c>=0;c--){s=o[c];for(let u=0;u<8;u++){if((s&1)===1)switch(n){case t:e=rd(uc(n),e),i="-";break;default:e=ed(e,uc(n))}n++,s>>=1}}for(let c=0;c0;){let o=new _r;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.value.length===0&&(o.isFirstSid=!0),this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t){let e=[];for(let n=0;nNumber.MAX_SAFE_INTEGER){An();let a=BigInt(s);i.valueBigInt=a}else if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,o=!0),this.value.push(i)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n0;){let o=new Tr;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t,e){let n=[];for(let s=0;s4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[s*4+c+a]=i[c]}this.valueBlock.value=t}};jn.NAME="UniversalStringValueBlock";var Uc,Wn=class extends jn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Uc=Wn;T.UniversalString=Uc;Wn.NAME="UniversalString";var Cc,Zn=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Cc=Zn;T.NumericString=Cc;Zn.NAME="NumericString";var _c,Xn=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};_c=Xn;T.PrintableString=_c;Xn.NAME="PrintableString";var Tc,Yn=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Tc=Yn;T.TeletexString=Tc;Yn.NAME="TeletexString";var Rc,Jn=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Rc=Jn;T.VideotexString=Rc;Jn.NAME="VideotexString";var Hc,Qn=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Hc=Qn;T.IA5String=Hc;Qn.NAME="IA5String";var Vc,ts=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Vc=ts;T.GraphicString=Vc;ts.NAME="GraphicString";var Oc,Rr=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Oc=Rr;T.VisibleString=Oc;Rr.NAME="VisibleString";var Dc,es=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Dc=es;T.GeneralString=Dc;es.NAME="GeneralString";var Mc,rs=class extends Et{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Mc=rs;T.CharacterString=Mc;rs.NAME="CharacterString";var Kc,Hr=class extends Rr{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=vt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=vt(this.month,2),e[2]=vt(this.day,2),e[3]=vt(this.hour,2),e[4]=vt(this.minute,2),e[5]=vt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Kc=Hr;T.UTCTime=Kc;Hr.NAME="UTCTime";var Pc,ns=class extends Hr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",o=0,i,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let l=new Number(t[t.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,m=n.indexOf("+"),E="";if(m===-1&&(m=n.indexOf("-"),l=-1),m!==-1){if(E=n.substring(m+1),n=n.substring(0,m),E.length!==2&&E.length!==4)throw new Error("Wrong input string for conversion");let g=parseInt(E.substring(0,2),10);if(isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*g,E.length===4){if(g=parseInt(E.substring(2,4),10),isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");c=l*g}}}let u=n.indexOf(".");if(u===-1&&(u=n.indexOf(",")),u!==-1){let l=new Number(`0${n.substring(u)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");o=l.valueOf(),s=n.substring(0,u)}else s=n;switch(!0){case s.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=60*o;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let l=1e3*o;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,o=0;for(;s0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Qc(r){let t=Yc(r);return tl(t)}function ci(r){let t=Jc(r);if(oi(t)>fs)throw new De("Key size is too large");let e=be(Yt.encode({Type:ht.RSA,Data:r})),n=Vt(ii,e);return new ar(t,n)}function tl(r){if(oi(r)>fs)throw new wt("Key size is too large");let t=rl(r),e=be(Yt.encode({Type:ht.RSA,Data:ai(t.publicKey)})),n=Vt(ii,e);return new Dr(t.privateKey,new ar(t.publicKey,n))}async function el(r){if(r>fs)throw new wt("Key size is too large");let t=await Wc(r),e=be(Yt.encode({Type:ht.RSA,Data:ai(t.publicKey)})),n=Vt(ii,e);return new Dr(t.privateKey,new ar(t.publicKey,n))}function rl(r){if(r==null)throw new wt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}function He(r,t){t==null&&(t=r.reduce((s,o)=>s+o.length,0));let e=ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function nl(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function sl(r,t,e){let n=pn.digest(e instanceof Uint8Array?e:e.subarray());if(nl(n))return n.then(({digest:s})=>Le.verify(t,s,r)).catch(s=>{throw new Vr(String(s))});try{return Le.verify(t,n.digest,r)}catch(s){throw new Vr(String(s))}}var hs=class{type="secp256k1";raw;_key;constructor(t){this._key=il(t),this.raw=ol(this._key)}toMultihash(){return he.digest(Je(this))}toCID(){return St.createV1(114,this.toMultihash())}toString(){return it.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:kt(this.raw,t.raw)}verify(t,e){return sl(this._key,e,t)}};function al(r){return new hs(r)}function ol(r){return Le.ProjectivePoint.fromHex(r).toRawBytes(!0)}function il(r){try{return Le.ProjectivePoint.fromHex(r),r}catch(t){throw new De(String(t))}}function Mr(r){let{Type:t,Data:e}=Yt.decode(r),n=e??new Uint8Array;switch(t){case ht.RSA:return ci(n);case ht.Ed25519:return Pa(n);case ht.secp256k1:return al(n);default:throw new Me}}function Je(r){return Yt.encode({Type:ht[r.type],Data:r.raw})}var cl=Symbol.for("nodejs.util.inspect.custom"),ad=114,Kr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Ks]=!0;toString(){return this.string==null&&(this.string=it.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return St.createV1(ad,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return kt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return kt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[cl](){return`PeerId(${this.toString()})`}},ds=class extends Kr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},ps=class extends Kr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},gs=class extends Kr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},cd=2336,li=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=he.digest(et(this.url))}[cl](){return`PeerId(${this.url})`}[Ks]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return St.createV1(cd,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=tt(t)),t.toString()===this.toString())}};function ui(r){if(r.type==="Ed25519")return new ps({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new gs({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new ds({multihash:r.toCID().multihash,publicKey:r});throw new Me}var ul=Symbol.for("@achingbrain/uint8arraylist");function ll(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ys(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ys(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ll(this.bufs,t);return e.buf[e.index]}set(t,e){let n=ll(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return He(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:He(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),o=new r;return o.length=s,o.bufs=[...n],o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let o=0;o=c)continue;let u=t>=a&&ta&&e<=c;if(u&&f){if(t===a&&e===c){n.push(i);break}let l=t-a;n.push(i.subarray(l,l+(e-t)));break}if(u){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(f){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ys(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let o=256,i=new Int32Array(o);for(let l=0;l=0;m--){let E=this.get(l+m);if(n[m]!==E){f=Math.max(1,m-a[E]);break}}if(f===0)return l}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=at(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=at(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=at(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=at(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=at(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=at(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=at(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=at(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;es+o.byteLength,0)),n.length=e,n}};function ms(r){return r[Symbol.asyncIterator]!=null}var xs=r=>{let t=It(r),e=ct(t);return fn(r,e),xs.bytes=t,e};xs.bytes=0;function fl(r,t){t=t??{};let e=t.lengthEncoder??xs;function*n(s){let o=e(s.byteLength);o instanceof Uint8Array?yield o:yield*o,s instanceof Uint8Array?yield s:yield*s}return ms(r)?async function*(){for await(let s of r)yield*n(s)}():function*(){for(let s of r)yield*n(s)}()}fl.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??xs;return new st(e(r.byteLength),r)};var bs=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},ws=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Es=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Pr=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ld=8,ud=1024*1024*4,Ve;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Ve||(Ve={}));var fi=r=>{let t=hn(r);return fi.bytes=It(t),t};fi.bytes=0;function Fr(r,t){let e=new st,n=Ve.LENGTH,s=-1,o=t?.lengthDecoder??fi,i=t?.maxLengthLength??ld,a=t?.maxDataLength??ud;function*c(){for(;e.byteLength>0;){if(n===Ve.LENGTH)try{if(s=o(e),s<0)throw new bs("Invalid message length");if(s>a)throw new ws("Message length too long");let u=o.bytes;e.consume(u),t?.onLength!=null&&t.onLength(s),n=Ve.DATA}catch(u){if(u instanceof RangeError){if(e.byteLength>i)throw new Es("Message length length too long");break}throw u}if(n===Ve.DATA){if(e.byteLength0)throw new Pr("Unexpected end of input")}():function*(){for(let u of r)e.append(u),yield*c();if(e.byteLength>0)throw new Pr("Unexpected end of input")}()}Fr.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:o,value:i}=await r.next(e);if(o===!0)return;i!=null&&(yield i)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{e=1}}();return Fr(n,{...t??{},onLength:o=>{e=o}})};function Pt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var Bs=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function hl(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new Bs(e?.errorMessage,e?.errorCode,e?.errorName));let n,s=new Bs(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((o,i)=>{n=()=>{i(s)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var hi=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Pt(),this.haveNext=Pt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Pt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Pt(),await hl(this.readNext.promise,e?.signal,e)}};function dl(){return new hi}var vs=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var di=class extends Error{code;constructor(t,e){super(t),this.code=e}},pi=class extends di{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function pl(r,t){let e=dl();r.sink(e).catch(async i=>{await e.end(i)}),r.sink=async i=>{for await(let a of i)await e.push(a);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new st;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new pi("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:l,value:m}=await Promise.race([n.next(),u]);return l===!0?new st:m}for(;s.byteLength{a?.signal?.throwIfAborted(),i instanceof Uint8Array?await e.push(i,a):await e.push(i.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let i=r.source;r.source=async function*(){t?.yieldBytes===!1?yield s:yield*s,yield*i}()}return r}}}var As=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ss=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},ks=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function gi(r,t={}){let e=pl(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??hn,s=t?.lengthEncoder??fn;return{read:async i=>{let a=-1,c=new st;for(;;){c.append(await e.read(1,i));try{a=n(c)}catch(u){if(u instanceof RangeError)continue;throw u}if(a<0)throw new As("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new ks("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Ss("message length too long");return e.read(a,i)},write:async(i,a)=>{await e.write(new st(s(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new st(...i.flatMap(u=>[s(u.byteLength),u]));await e.write(c,a)},unwrap:()=>e.unwrap()}}function yi(){let r=Pt(),t=!1;return{sink:async e=>{if(t)throw new Error("already piped");t=!0,r.resolve(e)},source:async function*(){yield*await r.promise}()}}function gl(){let r=yi(),t=yi();return[{source:r.source,sink:t.sink},{source:t.source,sink:r.sink}]}var Is=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},cr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Is(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new Is(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var mi=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Ls(r={}){return fd(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function fd(r,t){t=t??{};let e=t.onEnd,n=new cr,s,o,i,a=Pt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((d,w)=>{o=y=>{o=null,n.push(y);try{d(r(n))}catch(b){w(b)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Pt()})}},u=d=>o!=null?o(d):(n.push(d),s),f=d=>(n=new cr,o!=null?o({error:d}):(n.push({error:d}),s)),l=d=>{if(i)return s;if(t?.objectMode!==!0&&d?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:d})},m=d=>i?s:(i=!0,d!=null?f(d):u({done:!0})),E=()=>(n=new cr,m(),{done:!0}),g=d=>(m(d),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:E,throw:g,push:l,end:m,get readableLength(){return n.size},onEmpty:async d=>{let w=d?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let y,b;w!=null&&(y=new Promise((L,U)=>{b=()=>{U(new mi)},w.addEventListener("abort",b)}));try{await Promise.race([a.promise,y])}finally{b!=null&&w!=null&&w?.removeEventListener("abort",b)}}},e==null)return s;let h=s;return s={[Symbol.asyncIterator](){return this},next(){return h.next()},throw(d){return h.throw(d),e!=null&&(e(d),e=void 0),{done:!0}},return(){return h.return(),e!=null&&(e(),e=void 0),{done:!0}},push:l,end(d){return h.end(d),e!=null&&(e(d),e=void 0),s},get readableLength(){return h.readableLength},onEmpty:d=>h.onEmpty(d)},s}function hd(r){return r[Symbol.asyncIterator]!=null}function dd(...r){let t=[];for(let e of r)hd(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=Ls({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let s of n)e.push(s)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var yl=dd;function ml(r,...t){if(r==null)throw new Error("Empty pipeline");if(xi(r)){let n=r;r=()=>n.source}else if(bl(r)||xl(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&xi(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n{let t;for(;r.length>0;)t=r.shift()(t);return t},xl=r=>r?.[Symbol.asyncIterator]!=null,bl=r=>r?.[Symbol.iterator]!=null,xi=r=>r==null?!1:r.sink!=null&&r.source!=null,gd=r=>t=>{let e=r.sink(t);if(e?.then!=null){let n=Ls({objectMode:!0});e.then(()=>{n.end()},i=>{n.end(i)});let s,o=r.source;if(xl(o))s=async function*(){yield*o,n.end()};else if(bl(o))s=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return yl(n,s())}return r.source};var lr=!!globalThis.process?.env?.DUMP_SESSION_KEYS;function Ns(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function bi(r){if(typeof r!="boolean")throw new Error(`boolean expected, not ${r}`)}function wi(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function At(r,...t){if(!wi(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function Ei(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 wl(r,t){At(r);let e=t.outputLen;if(r.lengthnew Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)),El=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),yd=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!yd)throw new Error("Non little-endian hardware is not supported");function md(r){if(typeof r!="string")throw new Error(`string expected, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Us(r){if(typeof r=="string")r=md(r);else if(wi(r))r=Cs(r);else throw new Error(`Uint8Array expected, got ${typeof r}`);return r}function Bl(r,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(r,t)}function vl(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n(Object.assign(t,r),t);function vi(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),a=Number(e&o),c=n?4:0,u=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+u,a,n)}function Cs(r){return Uint8Array.from(r)}function oe(...r){for(let t=0;tUint8Array.from(r.split("").map(t=>t.charCodeAt(0))),xd=Sl("expand 16-byte k"),bd=Sl("expand 32-byte k"),wd=se(xd),kl=se(bd),Ox=kl.slice();function V(r,t){return r<>>32-t}function Ai(r){return r.byteOffset%4===0}var _s=64,Ed=16,Il=2**32-1,Al=new Uint32Array;function Bd(r,t,e,n,s,o,i,a){let c=s.length,u=new Uint8Array(_s),f=se(u),l=Ai(s)&&Ai(o),m=l?se(s):Al,E=l?se(o):Al;for(let g=0;g=Il)throw new Error("arx: counter overflow");let h=Math.min(_s,c-g);if(l&&h===_s){let d=g/4;if(g%4!==0)throw new Error("arx: invalid block position");for(let w=0,y;w{At(a),At(c),At(u);let m=u.length;if(f===void 0&&(f=new Uint8Array(m)),At(f),Ns(l),l<0||l>=Il)throw new Error("arx: counter overflow");if(f.lengthr[t++]&255|(r[t++]&255)<<8,ki=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=Us(t),At(t,32);let e=gt(t,0),n=gt(t,2),s=gt(t,4),o=gt(t,6),i=gt(t,8),a=gt(t,10),c=gt(t,12),u=gt(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|s<<6)&7939,this.r[3]=(s>>>7|o<<9)&8191,this.r[4]=(o>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=gt(t,16+2*f)}process(t,e,n=!1){let s=n?0:2048,{h:o,r:i}=this,a=i[0],c=i[1],u=i[2],f=i[3],l=i[4],m=i[5],E=i[6],g=i[7],h=i[8],d=i[9],w=gt(t,e+0),y=gt(t,e+2),b=gt(t,e+4),L=gt(t,e+6),U=gt(t,e+8),S=gt(t,e+10),N=gt(t,e+12),I=gt(t,e+14),O=o[0]+(w&8191),R=o[1]+((w>>>13|y<<3)&8191),C=o[2]+((y>>>10|b<<6)&8191),P=o[3]+((b>>>7|L<<9)&8191),K=o[4]+((L>>>4|U<<12)&8191),k=o[5]+(U>>>1&8191),x=o[6]+((U>>>14|S<<2)&8191),p=o[7]+((S>>>11|N<<5)&8191),v=o[8]+((N>>>8|I<<8)&8191),A=o[9]+(I>>>5|s),B=0,_=B+O*a+R*(5*d)+C*(5*h)+P*(5*g)+K*(5*E);B=_>>>13,_&=8191,_+=k*(5*m)+x*(5*l)+p*(5*f)+v*(5*u)+A*(5*c),B+=_>>>13,_&=8191;let H=B+O*c+R*a+C*(5*d)+P*(5*h)+K*(5*g);B=H>>>13,H&=8191,H+=k*(5*E)+x*(5*m)+p*(5*l)+v*(5*f)+A*(5*u),B+=H>>>13,H&=8191;let D=B+O*u+R*c+C*a+P*(5*d)+K*(5*h);B=D>>>13,D&=8191,D+=k*(5*g)+x*(5*E)+p*(5*m)+v*(5*l)+A*(5*f),B+=D>>>13,D&=8191;let M=B+O*f+R*u+C*c+P*a+K*(5*d);B=M>>>13,M&=8191,M+=k*(5*h)+x*(5*g)+p*(5*E)+v*(5*m)+A*(5*l),B+=M>>>13,M&=8191;let F=B+O*l+R*f+C*u+P*c+K*a;B=F>>>13,F&=8191,F+=k*(5*d)+x*(5*h)+p*(5*g)+v*(5*E)+A*(5*m),B+=F>>>13,F&=8191;let G=B+O*m+R*l+C*f+P*u+K*c;B=G>>>13,G&=8191,G+=k*a+x*(5*d)+p*(5*h)+v*(5*g)+A*(5*E),B+=G>>>13,G&=8191;let j=B+O*E+R*m+C*l+P*f+K*u;B=j>>>13,j&=8191,j+=k*c+x*a+p*(5*d)+v*(5*h)+A*(5*g),B+=j>>>13,j&=8191;let nt=B+O*g+R*E+C*m+P*l+K*f;B=nt>>>13,nt&=8191,nt+=k*u+x*c+p*a+v*(5*d)+A*(5*h),B+=nt>>>13,nt&=8191;let X=B+O*h+R*g+C*E+P*m+K*l;B=X>>>13,X&=8191,X+=k*f+x*u+p*c+v*a+A*(5*d),B+=X>>>13,X&=8191;let Z=B+O*d+R*h+C*g+P*E+K*m;B=Z>>>13,Z&=8191,Z+=k*l+x*f+p*u+v*c+A*a,B+=Z>>>13,Z&=8191,B=(B<<2)+B|0,B=B+_|0,_=B&8191,B=B>>>13,H+=B,o[0]=_,o[1]=H,o[2]=D,o[3]=M,o[4]=F,o[5]=G,o[6]=j,o[7]=nt,o[8]=X,o[9]=Z}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),s=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=s,s=t[a]>>>13,t[a]&=8191;t[0]+=s*5,s=t[0]>>>13,t[0]&=8191,t[1]+=s,s=t[1]>>>13,t[1]&=8191,t[2]+=s,n[0]=t[0]+5,s=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+s,s=n[a]>>>13,n[a]&=8191;n[9]-=8192;let o=(s^1)-1;for(let a=0;a<10;a++)n[a]&=o;o=~o;for(let a=0;a<10;a++)t[a]=t[a]&o|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;oe(n)}update(t){Ei(this);let{buffer:e,blockLen:n}=this;t=Us(t);let s=t.length;for(let o=0;o>>0,t[o++]=n[i]>>>8;return t}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}};function vd(r){let t=(n,s)=>r(s).update(Us(n)).digest(),e=r(new Uint8Array(32));return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=n=>r(n),t}var Ll=vd(r=>new ki(r));function Cl(r,t,e,n,s,o=20){let i=r[0],a=r[1],c=r[2],u=r[3],f=t[0],l=t[1],m=t[2],E=t[3],g=t[4],h=t[5],d=t[6],w=t[7],y=s,b=e[0],L=e[1],U=e[2],S=i,N=a,I=c,O=u,R=f,C=l,P=m,K=E,k=g,x=h,p=d,v=w,A=y,B=b,_=L,H=U;for(let M=0;M{r.update(t);let e=t.length%16;e&&r.update(Id.subarray(e))},Ld=new Uint8Array(32);function Ul(r,t,e,n,s){let o=r(t,e,Ld),i=Ll.create(o);s&&Nl(i,s),Nl(i,n);let a=new Uint8Array(16),c=El(a);vi(c,0,BigInt(s?s.length:0),!0),vi(c,8,BigInt(n.length),!0),i.update(a);let u=i.digest();return oe(o,a),u}var _l=r=>(t,e,n)=>(At(t,32),At(e),{encrypt(o,i){let a=o.length,c=a+16;i?At(i,c):i=new Uint8Array(c),r(t,e,o,i,1);let u=Ul(r,t,e,i.subarray(0,-16),n);return i.set(u,a),oe(u),i},decrypt(o,i){let a=o.length,c=a-16;if(a<16)throw new Error("encrypted data must be at least 16 bytes");i?At(i,c):i=new Uint8Array(c);let u=o.subarray(0,-16),f=o.subarray(-16),l=Ul(r,t,e,u,n);if(!vl(f,l))throw new Error("invalid tag");return r(t,e,u,i,1),oe(l),i}}),Ii=Bi({blockSize:64,nonceLength:12,tagLength:16},_l(Sd)),zx=Bi({blockSize:64,nonceLength:24,tagLength:16},_l(kd));var Ts=class extends er{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Ir(t);let n=ye(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?t.create().update(n).digest():n);for(let i=0;inew Ts(r,t).update(e).digest();Rs.create=(r,t)=>new Ts(r,t);function Rl(r,t,e){return Ir(r),e===void 0&&(e=new Uint8Array(r.outputLen)),Rs(r,ye(e),ye(t))}var Li=new Uint8Array([0]),Tl=new Uint8Array;function Hl(r,t,e,n=32){if(Ir(r),xn(n),n>255*r.outputLen)throw new Error("Length should be <= 255*HashLen");let s=Math.ceil(n/r.outputLen);e===void 0&&(e=Tl);let o=new Uint8Array(s*r.outputLen),i=Rs.create(r,t),a=i._cloneInto(),c=new Uint8Array(i.outputLen);for(let u=0;ur.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var ur=r=>{let t=ct(2);return t[0]=r>>8,t[1]=r,t};ur.bytes=2;var $r=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};$r.bytes=2;function Dl(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}function Ni(r,t){!t.enabled||!lr||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${tt(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${tt(r.privateKey,"hex")}`)):t("Missing local static keys."))}function Ui(r,t){!t.enabled||!lr||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${tt(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${tt(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Ml(r,t){!t.enabled||!lr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${tt(r.subarray(),"hex")}`:"Missing remote static public key.")}function Ci(r,t){!t.enabled||!lr||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${tt(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function _i(r,t,e){!e.enabled||!lr||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&tt(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&tt(t.k,"hex")}`))}var fr=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Nd=0,Ud=4294967295,Cd="Cipherstate has reached maximum n, a new handshake must be performed",Vs=class{n;bytes;view;constructor(t=Nd){this.n=t,this.bytes=at(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>Ud)throw new Error(Cd)}};var Oe=at(0),hr=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Vs(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let s=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),s}},Ti=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=et(e,"utf-8");this.h=_d(t,n),this.ck=this.h,this.cs=new hr(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new hr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new st(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,Oe);return[new hr(this.crypto,t),new hr(this.crypto,e)]}},Ri=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:s,initiator:o,s:i,e:a,rs:c,re:u}=t;this.crypto=e,this.ss=new Ti(e,n),this.ss.mixHash(s),this.initiator=o,this.s=i,this.e=a,this.rs=c,this.re=u}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength(t==null&&(t=Te((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let o of e.webtransportCerthashes)n.uint32(10),n.bytes(o);s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={webtransportCerthashes:[]},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{s.webtransportCerthashes.push(e.bytes());break}default:{e.skipType(i&7);break}}}return s})),t),r.encode=e=>_e(e,r.codec()),r.decode=e=>Ue(e,r.codec())})(Os||(Os={}));var Gr;(function(r){let t;r.codec=()=>(t==null&&(t=Te((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Os.codec().encode(e.extensions,n)),s.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let s={identityKey:at(0),identitySig:at(0)},o=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Os.codec().decode(e,e.uint32());break}default:{e.skipType(i&7);break}}}return s})),t),r.encode=e=>_e(e,r.codec()),r.decode=e=>Ue(e,r.codec())})(Gr||(Gr={}));async function Hi(r,t,e){let n=await r.sign(Kl(t));return Gr.encode({identityKey:Je(r.publicKey),identitySig:n,extensions:e})}async function Vi(r,t,e){try{let n=Gr.decode(r),s=Mr(n.identityKey);if(e?.equals(s)===!1)throw new Error(`Payload identity key ${s} does not match expected remote identity key ${e}`);if(!t)throw new Error("Remote static does not exist");let o=Kl(t);if(!await s.verify(o,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new Zr(n.message)}}function Kl(r){let t=et("noise-libp2p-static-key:");return r instanceof Uint8Array?He([t,r],t.length+r.length):(r.prepend(t),r)}async function Pl(r,t){let{log:e,connection:n,crypto:s,privateKey:o,prologue:i,s:a,remoteIdentityKey:c,extensions:u}=r,f=await Hi(o,a.publicKey,u),l=new qr({crypto:s,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Ni(l.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(l.writeMessageA(Oe),t),e.trace("Stage 0 - Initiator finished sending first message."),Ui(l.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let m=l.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),Ci(l.re,e),Ml(l.rs,e),e.trace("Initiator going to check remote's signature...");let E=await Vi(m,l.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(l.writeMessageC(f),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[g,h]=l.ss.split();return _i(g,h,e),{payload:E,encrypt:d=>g.encryptWithAd(Oe,d),decrypt:(d,w)=>h.decryptWithAd(Oe,d,w)}}async function Fl(r,t){let{log:e,connection:n,crypto:s,privateKey:o,prologue:i,s:a,remoteIdentityKey:c,extensions:u}=r,f=await Hi(o,a.publicKey,u),l=new qr({crypto:s,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Ni(l.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),l.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),Ci(l.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(l.writeMessageB(f),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Ui(l.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let m=l.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let E=await Vi(m,l.rs,c),[g,h]=l.ss.split();return _i(g,h,e),{payload:E,encrypt:d=>h.encryptWithAd(Oe,d),decrypt:(d,w)=>g.decryptWithAd(Oe,d,w)}}var ql=16;function Gl(r,t){return async function*(e){for await(let n of e)for(let s=0;sn.length&&(o=n.length);let i;n instanceof Uint8Array?i=r.encrypt(n.subarray(s,o)):i=r.encrypt(n.sublist(s,o)),t?.encryptedPackets.increment(),yield new st(ur(i.byteLength),i)}}}function zl(r,t){return async function*(e){for await(let n of e)for(let s=0;sn.length&&(o=n.length),o-qlFr(i,{lengthDecoder:$r}),zl(e,this.metrics),n),s}};function Td(r={}){return t=>new Ds(t,r)}return au(Rd);})(); - /*! Bundled license information: - - pvtsutils/build/index.js: -@@ -45,6 +44,15 @@ pvtsutils/build/index.js: - @noble/curves/esm/abstract/curve.js: - (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) - -+@noble/curves/esm/abstract/weierstrass.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/_shortw_utils.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/secp256k1.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ - @noble/curves/esm/abstract/edwards.js: - (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) - -@@ -54,6 +62,9 @@ pvtsutils/build/index.js: - @noble/curves/esm/ed25519.js: - (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) - -+@noble/hashes/esm/utils.js: -+ (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ - pvutils/build/utils.es.js: - (*! - Copyright (c) Peculiar Ventures, LLC -@@ -94,15 +105,6 @@ asn1js/build/index.es.js: - * - *) - --@noble/curves/esm/abstract/weierstrass.js: -- (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -- --@noble/curves/esm/_shortw_utils.js: -- (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -- --@noble/curves/esm/secp256k1.js: -- (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -- - @noble/ciphers/esm/utils.js: - (*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) *) - */ -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts -index 92c9077..3cf2b26 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts -@@ -1,8 +1,3 @@ --export declare class UnexpectedPeerError extends Error { -- code: string; -- constructor(message?: string); -- static readonly code = "ERR_UNEXPECTED_PEER"; --} - export declare class InvalidCryptoExchangeError extends Error { - code: string; - constructor(message?: string); -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts.map b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts.map -index 6be6d3a..a4fa060 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAA;gBAEN,OAAO,SAAoB;IAKxC,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAwB;CAC7C;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAC5C,IAAI,EAAE,MAAM,CAAA;gBAEN,OAAO,SAA4B;IAKhD,MAAM,CAAC,QAAQ,CAAC,IAAI,iCAAgC;CACrD"} -\ No newline at end of file -+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,0BAA2B,SAAQ,KAAK;IAC5C,IAAI,EAAE,MAAM,CAAA;gBAEN,OAAO,SAA4B;IAKhD,MAAM,CAAC,QAAQ,CAAC,IAAI,iCAAgC;CACrD"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js -index 8c149c6..54d6f27 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js -@@ -1,11 +1,3 @@ --export class UnexpectedPeerError extends Error { -- code; -- constructor(message = 'Unexpected Peer') { -- super(message); -- this.code = UnexpectedPeerError.code; -- } -- static code = 'ERR_UNEXPECTED_PEER'; --} - export class InvalidCryptoExchangeError extends Error { - code; - constructor(message = 'Invalid crypto exchange') { -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js.map b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js.map -index b140370..5e8f02a 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/errors.js.map -@@ -1 +1 @@ --{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACrC,IAAI,CAAQ;IAEnB,YAAa,OAAO,GAAG,iBAAiB;QACtC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAA;IACtC,CAAC;IAED,MAAM,CAAU,IAAI,GAAG,qBAAqB,CAAA;;AAG9C,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC5C,IAAI,CAAQ;IAEnB,YAAa,OAAO,GAAG,yBAAyB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAA;IAC7C,CAAC;IAED,MAAM,CAAU,IAAI,GAAG,6BAA6B,CAAA"} -\ No newline at end of file -+{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC5C,IAAI,CAAQ;IAEnB,YAAa,OAAO,GAAG,yBAAyB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAA;IAC7C,CAAC;IAED,MAAM,CAAU,IAAI,GAAG,6BAA6B,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts b/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts -index ebd765f..add66c4 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts -@@ -1,10 +1,11 @@ - import type { NoiseInit } from './noise.js'; - import type { NoiseExtensions } from './proto/payload.js'; --import type { ComponentLogger, ConnectionEncrypter, Metrics, PeerId } from '@libp2p/interface'; -+import type { ComponentLogger, ConnectionEncrypter, Metrics, PeerId, PrivateKey } from '@libp2p/interface'; - export type { ICryptoInterface } from './crypto.js'; - export { pureJsCrypto } from './crypto/js.js'; - export interface NoiseComponents { - peerId: PeerId; -+ privateKey: PrivateKey; - logger: ComponentLogger; - metrics?: Metrics; - } -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts.map b/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts.map -index 9dfd10c..755a1ff 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9F,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,KAAK,CAAE,IAAI,GAAE,SAAc,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAElH"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC1G,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,KAAK,CAAE,IAAI,GAAE,SAAc,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,mBAAmB,CAAC,eAAe,CAAC,CAElH"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/index.js.map b/node_modules/@chainsafe/libp2p-noise/dist/src/index.js.map -index 860d713..3e11b90 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/index.js.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAKlC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAQ7C,MAAM,UAAU,KAAK,CAAE,OAAkB,EAAE;IACzC,OAAO,CAAC,UAA2B,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACrE,CAAC"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAKlC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAS7C,MAAM,UAAU,KAAK,CAAE,OAAkB,EAAE;IACzC,OAAO,CAAC,UAA2B,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACrE,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts -index 770dee7..6d1c6a9 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts -@@ -1,8 +1,9 @@ --import { type MultiaddrConnection, type SecuredConnection, type PeerId, serviceCapabilities } from '@libp2p/interface'; -+import { serviceCapabilities } from '@libp2p/interface'; - import { type ICryptoInterface } from './crypto.js'; - import type { NoiseComponents } from './index.js'; - import type { NoiseExtensions } from './proto/payload.js'; - import type { ICrypto, INoiseConnection } from './types.js'; -+import type { MultiaddrConnection, SecuredConnection, PeerId } from '@libp2p/interface'; - import type { Duplex } from 'it-stream-types'; - import type { Uint8ArrayList } from 'uint8arraylist'; - export interface NoiseInit { -@@ -28,27 +29,27 @@ export declare class Noise implements INoiseConnection { - /** - * Encrypt outgoing data to the remote party (handshake as initiator) - * -- * @param localPeer - PeerId of the receiving peer - * @param connection - streaming iterable duplex that will be encrypted -- * @param remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer. -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation - */ - secureOutbound> = MultiaddrConnection>(connection: Stream, options?: { - remotePeer?: PeerId; - signal?: AbortSignal; - }): Promise>; -- secureOutbound> = MultiaddrConnection>(localPeer: PeerId, connection: Stream, remotePeer?: PeerId): Promise>; - /** - * Decrypt incoming data (handshake as responder). - * -- * @param localPeer - PeerId of the receiving peer. -- * @param connection - streaming iterable duplex that will be encrypted. -- * @param remotePeer - optional PeerId of the initiating peer, if known. This may only exist during transport upgrades. -+ * @param connection - streaming iterable duplex that will be encrypted -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation - */ - secureInbound> = MultiaddrConnection>(connection: Stream, options?: { - remotePeer?: PeerId; - signal?: AbortSignal; - }): Promise>; -- secureInbound> = MultiaddrConnection>(localPeer: PeerId, connection: Stream, remotePeer?: PeerId): Promise>; - /** - * Perform XX handshake as initiator. - */ -@@ -58,12 +59,5 @@ export declare class Noise implements INoiseConnection { - */ - private performHandshakeResponder; - private createSecureConnection; -- /** -- * Detect call signature in `libp2p@1.x.x` or `libp2p@2.x.x` style. -- * -- * TODO: remove this after `libp2p@2.x.x` is released and only support the -- * newer style -- */ -- private parseArgs; - } - //# sourceMappingURL=noise.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts.map b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts.map -index 1b5a4bf..9c3ac66 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../../src/noise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAA8B,mBAAmB,EAA+B,MAAM,mBAAmB,CAAA;AAS/K,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAK/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAmB,OAAO,EAAE,gBAAgB,EAAW,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B;AAED,qBAAa,KAAM,YAAW,gBAAgB;IACrC,QAAQ,SAAW;IACnB,MAAM,EAAE,OAAO,CAAA;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAE/B,UAAU,EAAE,eAAe,EAAE,IAAI,GAAE,SAAc;IAmB9D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA4B;IAEzD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAGvC;IAED;;;;;;OAMG;IACU,cAAc,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5O,cAAc,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAuCxO;;;;;;OAMG;IACU,aAAa,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3O,aAAa,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAuCvO;;OAEG;YACW,yBAAyB;IA4BvC;;OAEG;YACW,yBAAyB;YA4BzB,sBAAsB;IAoBpC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CAoBlB"} -\ No newline at end of file -+{"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../../src/noise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AASvD,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAK/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAmB,OAAO,EAAE,gBAAgB,EAAW,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,EAAuC,MAAM,mBAAmB,CAAA;AAC5H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B;AAED,qBAAa,KAAM,YAAW,gBAAgB;IACrC,QAAQ,SAAW;IACnB,MAAM,EAAE,OAAO,CAAA;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;gBAE/B,UAAU,EAAE,eAAe,EAAE,IAAI,GAAE,SAAc;IAmB9D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA4B;IAEzD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAGvC;IAED;;;;;;;OAOG;IACU,cAAc,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IA8BzP;;;;;;;OAOG;IACU,aAAa,CAAE,MAAM,SAAS,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,GAAG,mBAAmB,EAAG,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IA8BxP;;OAEG;YACW,yBAAyB;IA4BvC;;OAEG;YACW,yBAAyB;YA2BzB,sBAAsB;CAmBrC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js -index d73056f..092f206 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js -@@ -1,6 +1,6 @@ --import { unmarshalPrivateKey } from '@libp2p/crypto/keys'; --import { CodeError, serviceCapabilities, isPeerId } from '@libp2p/interface'; --import { peerIdFromKeys } from '@libp2p/peer-id'; -+import { publicKeyFromProtobuf } from '@libp2p/crypto/keys'; -+import { serviceCapabilities } from '@libp2p/interface'; -+import { peerIdFromPublicKey } from '@libp2p/peer-id'; - import { decode } from 'it-length-prefixed'; - import { lpStream } from 'it-length-prefixed-stream'; - import { duplexPair } from 'it-pair/duplex'; -@@ -43,52 +43,54 @@ export class Noise { - '@libp2p/connection-encryption', - '@chainsafe/libp2p-noise' - ]; -- async secureOutbound(...args) { -- const { localPeer, connection, remotePeer, signal } = this.parseArgs(args); -+ /** -+ * Encrypt outgoing data to the remote party (handshake as initiator) -+ * -+ * @param connection - streaming iterable duplex that will be encrypted -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation -+ */ -+ async secureOutbound(connection, options) { - const wrappedConnection = lpStream(connection, { - lengthEncoder: uint16BEEncode, - lengthDecoder: uint16BEDecode, - maxDataLength: NOISE_MSG_MAX_LENGTH_BYTES - }); -- if (!localPeer.privateKey) { -- throw new CodeError('local peerId does not contain private key', 'ERR_NO_PRIVATE_KEY'); -- } -- const privateKey = await unmarshalPrivateKey(localPeer.privateKey); -- const remoteIdentityKey = remotePeer?.publicKey; -- const handshake = await this.performHandshakeInitiator(wrappedConnection, privateKey, remoteIdentityKey, { -- signal -- }); -+ const handshake = await this.performHandshakeInitiator(wrappedConnection, this.components.privateKey, options?.remotePeer?.publicKey, options); - const conn = await this.createSecureConnection(wrappedConnection, handshake); - connection.source = conn.source; - connection.sink = conn.sink; -+ const publicKey = publicKeyFromProtobuf(handshake.payload.identityKey); - return { - conn: connection, - remoteExtensions: handshake.payload.extensions, -- remotePeer: await peerIdFromKeys(handshake.payload.identityKey) -+ remotePeer: peerIdFromPublicKey(publicKey) - }; - } -- async secureInbound(...args) { -- const { localPeer, connection, remotePeer, signal } = this.parseArgs(args); -+ /** -+ * Decrypt incoming data (handshake as responder). -+ * -+ * @param connection - streaming iterable duplex that will be encrypted -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation -+ */ -+ async secureInbound(connection, options) { - const wrappedConnection = lpStream(connection, { - lengthEncoder: uint16BEEncode, - lengthDecoder: uint16BEDecode, - maxDataLength: NOISE_MSG_MAX_LENGTH_BYTES - }); -- if (!localPeer.privateKey) { -- throw new CodeError('local peerId does not contain private key', 'ERR_NO_PRIVATE_KEY'); -- } -- const privateKey = await unmarshalPrivateKey(localPeer.privateKey); -- const remoteIdentityKey = remotePeer?.publicKey; -- const handshake = await this.performHandshakeResponder(wrappedConnection, privateKey, remoteIdentityKey, { -- signal -- }); -+ const handshake = await this.performHandshakeResponder(wrappedConnection, this.components.privateKey, options?.remotePeer?.publicKey, options); - const conn = await this.createSecureConnection(wrappedConnection, handshake); - connection.source = conn.source; - connection.sink = conn.sink; -+ const publicKey = publicKeyFromProtobuf(handshake.payload.identityKey); - return { - conn: connection, - remoteExtensions: handshake.payload.extensions, -- remotePeer: await peerIdFromKeys(handshake.payload.identityKey) -+ remotePeer: peerIdFromPublicKey(publicKey) - }; - } - /** -@@ -120,9 +122,7 @@ export class Noise { - /** - * Perform XX handshake as responder. - */ -- async performHandshakeResponder(connection, -- // TODO: pass private key in noise constructor via Components -- privateKey, remoteIdentityKey, options) { -+ async performHandshakeResponder(connection, privateKey, remoteIdentityKey, options) { - let result; - try { - result = await performHandshakeResponder({ -@@ -156,32 +156,5 @@ export class Noise { - ); - return user; - } -- /** -- * Detect call signature in `libp2p@1.x.x` or `libp2p@2.x.x` style. -- * -- * TODO: remove this after `libp2p@2.x.x` is released and only support the -- * newer style -- */ -- parseArgs(args) { -- // if the first argument is a peer id, we're using the libp2p@1.x.x style -- if (isPeerId(args[0])) { -- return { -- localPeer: args[0], -- connection: args[1], -- remotePeer: args[2] -- }; -- } -- else { -- // handle upcoming changes in libp2p@2.x.x where the first argument is the -- // connection and the second is optionally the remote peer -- // @see https://github.com/libp2p/js-libp2p/pull/2304 -- return { -- localPeer: this.components.peerId, -- connection: args[0], -- remotePeer: args[1]?.remotePeer, -- signal: args[1]?.signal -- }; -- } -- } - } - //# sourceMappingURL=noise.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js.map b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js.map -index 5b019a4..e4d2f09 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/noise.js.map -@@ -1 +1 @@ --{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../src/noise.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../src/noise.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts b/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts -index db77d42..95b0b8e 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts -@@ -1,6 +1,6 @@ - import type { Nonce } from './nonce'; - import type { NoiseExtensions, NoiseHandshakePayload } from './proto/payload'; --import type { ConnectionEncrypter, Logger, PrivateKey } from '@libp2p/interface'; -+import type { ConnectionEncrypter, Logger, PrivateKey, PublicKey } from '@libp2p/interface'; - import type { LengthPrefixedStream } from 'it-length-prefixed-stream'; - import type { Uint8ArrayList } from 'uint8arraylist'; - /** Crypto functions defined by the noise protocol, abstracted from the underlying implementations */ -@@ -20,7 +20,7 @@ export interface HandshakeParams { - prologue: Uint8Array; - /** static keypair */ - s: KeyPair; -- remoteIdentityKey?: Uint8Array | Uint8ArrayList; -+ remoteIdentityKey?: PublicKey; - extensions?: NoiseExtensions; - } - export interface HandshakeResult { -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts.map b/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts.map -index 0c886dd..8e7509b 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/types.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qGAAqG;AACrG,MAAM,WAAW,OAAO;IACtB,eAAe,IAAI,OAAO,CAAA;IAC1B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACxE,OAAO,CAAC,SAAS,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IAC9H,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACjJ,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACnD,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,oBAAoB,CAAA;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,UAAU,CAAA;IACpB,qBAAqB;IACrB,CAAC,EAAE,OAAO,CAAA;IACV,iBAAiB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;IAC/C,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,CAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAAA;IAC7E,OAAO,CAAE,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,cAAc,CAAA;CACjG;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8HAA8H;IAC9H,CAAC,CAAC,EAAE,UAAU,CAAA;IACd;;;;;OAKG;IACH,CAAC,EAAE,KAAK,CAAA;CACT;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,YAAY,CAAA;IAChB,kCAAkC;IAClC,EAAE,EAAE,UAAU,CAAA;IACd,iCAAiC;IACjC,CAAC,EAAE,UAAU,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,eAAe,CAAA;IACnB,gCAAgC;IAChC,CAAC,CAAC,EAAE,OAAO,CAAA;IACX,mCAAmC;IACnC,CAAC,CAAC,EAAE,OAAO,CAAA;IACX,2CAA2C;IAC3C,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;IAChC,8CAA8C;IAC9C,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;CACjC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,CAAC,eAAe,CAAC;CAAI"} -\ No newline at end of file -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qGAAqG;AACrG,MAAM,WAAW,OAAO;IACtB,eAAe,IAAI,OAAO,CAAA;IAC1B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACxE,OAAO,CAAC,SAAS,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IAC9H,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACjJ,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACnD,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,oBAAoB,CAAA;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,UAAU,CAAA;IACpB,qBAAqB;IACrB,CAAC,EAAE,OAAO,CAAA;IACV,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,CAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAAA;IAC7E,OAAO,CAAE,UAAU,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,cAAc,CAAA;CACjG;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8HAA8H;IAC9H,CAAC,CAAC,EAAE,UAAU,CAAA;IACd;;;;;OAKG;IACH,CAAC,EAAE,KAAK,CAAA;CACT;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,YAAY,CAAA;IAChB,kCAAkC;IAClC,EAAE,EAAE,UAAU,CAAA;IACd,iCAAiC;IACjC,CAAC,EAAE,UAAU,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,eAAe,CAAA;IACnB,gCAAgC;IAChC,CAAC,CAAC,EAAE,OAAO,CAAA;IACX,mCAAmC;IACnC,CAAC,CAAC,EAAE,OAAO,CAAA;IACX,2CAA2C;IAC3C,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;IAChC,8CAA8C;IAC9C,EAAE,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;CACjC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,CAAC,eAAe,CAAC;CAAI"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts -index da047ab..4eacd40 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts -@@ -1,7 +1,7 @@ - import { type Uint8ArrayList } from 'uint8arraylist'; - import { type NoiseExtensions, NoiseHandshakePayload } from './proto/payload.js'; --import type { PrivateKey } from '@libp2p/interface'; -+import { type PrivateKey, type PublicKey } from '@libp2p/interface'; - export declare function createHandshakePayload(privateKey: PrivateKey, staticPublicKey: Uint8Array | Uint8ArrayList, extensions?: NoiseExtensions): Promise; --export declare function decodeHandshakePayload(payloadBytes: Uint8Array | Uint8ArrayList, remoteStaticKey?: Uint8Array | Uint8ArrayList, remoteIdentityKey?: Uint8Array | Uint8ArrayList): Promise; -+export declare function decodeHandshakePayload(payloadBytes: Uint8Array | Uint8ArrayList, remoteStaticKey?: Uint8Array | Uint8ArrayList, remoteIdentityKey?: PublicKey): Promise; - export declare function getSignaturePayload(publicKey: Uint8Array | Uint8ArrayList): Uint8Array | Uint8ArrayList; - //# sourceMappingURL=utils.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts.map b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts.map -index b6c1eff..d0b3df5 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,UAAU,GAAG,cAAc,EAC5C,UAAU,CAAC,EAAE,eAAe,GAC3B,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,CAQtC;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,UAAU,GAAG,cAAc,EACzC,eAAe,CAAC,EAAE,UAAU,GAAG,cAAc,EAC7C,iBAAiB,CAAC,EAAE,UAAU,GAAG,cAAc,GAC9C,OAAO,CAAC,qBAAqB,CAAC,CAyBhC;AAED,wBAAgB,mBAAmB,CAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAUxG"} -\ No newline at end of file -+{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAuB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExF,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,UAAU,GAAG,cAAc,EAC5C,UAAU,CAAC,EAAE,eAAe,GAC3B,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,CAQtC;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,UAAU,GAAG,cAAc,EACzC,eAAe,CAAC,EAAE,UAAU,GAAG,cAAc,EAC7C,iBAAiB,CAAC,EAAE,SAAS,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED,wBAAgB,mBAAmB,CAAE,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,CAUxG"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js -index 0180f36..9e55cca 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js -@@ -1,14 +1,14 @@ --import { unmarshalPublicKey } from '@libp2p/crypto/keys'; -+import { publicKeyFromProtobuf, publicKeyToProtobuf } from '@libp2p/crypto/keys'; - import {} from 'uint8arraylist'; --import { equals, toString } from 'uint8arrays'; -+import { toString } from 'uint8arrays'; - import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; - import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; --import { UnexpectedPeerError } from './errors.js'; - import { NoiseHandshakePayload } from './proto/payload.js'; -+import { UnexpectedPeerError } from '@libp2p/interface'; - export async function createHandshakePayload(privateKey, staticPublicKey, extensions) { - const identitySig = await privateKey.sign(getSignaturePayload(staticPublicKey)); - return NoiseHandshakePayload.encode({ -- identityKey: privateKey.public.bytes, -+ identityKey: publicKeyToProtobuf(privateKey.publicKey), - identitySig, - extensions - }); -@@ -16,17 +16,14 @@ export async function createHandshakePayload(privateKey, staticPublicKey, extens - export async function decodeHandshakePayload(payloadBytes, remoteStaticKey, remoteIdentityKey) { - try { - const payload = NoiseHandshakePayload.decode(payloadBytes); -- if (remoteIdentityKey) { -- const remoteIdentityKeyBytes = remoteIdentityKey.subarray(); -- if (!equals(remoteIdentityKeyBytes, payload.identityKey)) { -- throw new Error(`Payload identity key ${toString(payload.identityKey, 'hex')} does not match expected remote identity key ${toString(remoteIdentityKeyBytes, 'hex')}`); -- } -+ const publicKey = publicKeyFromProtobuf(payload.identityKey); -+ if (remoteIdentityKey?.equals(publicKey) === false) { -+ throw new Error(`Payload identity key ${publicKey} does not match expected remote identity key ${remoteIdentityKey}`); - } - if (!remoteStaticKey) { - throw new Error('Remote static does not exist'); - } - const signaturePayload = getSignaturePayload(remoteStaticKey); -- const publicKey = unmarshalPublicKey(payload.identityKey); - if (!(await publicKey.verify(signaturePayload, payload.identitySig))) { - throw new Error('Invalid payload signature'); - } -diff --git a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js.map b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js.map -index 84a4c1f..b981ba5 100644 ---- a/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js.map -+++ b/node_modules/@chainsafe/libp2p-noise/dist/src/utils.js.map -@@ -1 +1 @@ --{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAuB,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAwB,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAGhF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,eAA4C,EAC5C,UAA4B;IAE5B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAA;IAE/E,OAAO,qBAAqB,CAAC,MAAM,CAAC;QAClC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK;QACpC,WAAW;QACX,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAyC,EACzC,eAA6C,EAC7C,iBAA+C;IAE/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAA;YAC3D,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,gDAAgD,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACxK,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAA;QAC7D,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAEzD,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,mBAAmB,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,SAAsC;IACzE,MAAM,MAAM,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,CAAA;IAE/D,IAAI,SAAS,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAChF,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEzB,OAAO,SAAS,CAAA;AAClB,CAAC"} -\ No newline at end of file -+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAuB,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAwB,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAmC,MAAM,mBAAmB,CAAA;AAExF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,eAA4C,EAC5C,UAA4B;IAE5B,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAA;IAE/E,OAAO,qBAAqB,CAAC,MAAM,CAAC;QAClC,WAAW,EAAE,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC;QACtD,WAAW;QACX,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAyC,EACzC,eAA6C,EAC7C,iBAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAE5D,IAAI,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,gDAAgD,iBAAiB,EAAE,CAAC,CAAA;QACvH,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAA;QAE7D,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,mBAAmB,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,SAAsC;IACzE,MAAM,MAAM,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,CAAA;IAE/D,IAAI,SAAS,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAChF,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEzB,OAAO,SAAS,CAAA;AAClB,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-noise/src/errors.ts b/node_modules/@chainsafe/libp2p-noise/src/errors.ts -index 2e1aa43..6d526da 100644 ---- a/node_modules/@chainsafe/libp2p-noise/src/errors.ts -+++ b/node_modules/@chainsafe/libp2p-noise/src/errors.ts -@@ -1,14 +1,3 @@ --export class UnexpectedPeerError extends Error { -- public code: string -- -- constructor (message = 'Unexpected Peer') { -- super(message) -- this.code = UnexpectedPeerError.code -- } -- -- static readonly code = 'ERR_UNEXPECTED_PEER' --} -- - export class InvalidCryptoExchangeError extends Error { - public code: string - -diff --git a/node_modules/@chainsafe/libp2p-noise/src/index.ts b/node_modules/@chainsafe/libp2p-noise/src/index.ts -index 60725b4..cafb3d9 100644 ---- a/node_modules/@chainsafe/libp2p-noise/src/index.ts -+++ b/node_modules/@chainsafe/libp2p-noise/src/index.ts -@@ -1,12 +1,13 @@ - import { Noise } from './noise.js' - import type { NoiseInit } from './noise.js' - import type { NoiseExtensions } from './proto/payload.js' --import type { ComponentLogger, ConnectionEncrypter, Metrics, PeerId } from '@libp2p/interface' -+import type { ComponentLogger, ConnectionEncrypter, Metrics, PeerId, PrivateKey } from '@libp2p/interface' - export type { ICryptoInterface } from './crypto.js' - export { pureJsCrypto } from './crypto/js.js' - - export interface NoiseComponents { - peerId: PeerId -+ privateKey: PrivateKey - logger: ComponentLogger - metrics?: Metrics - } -diff --git a/node_modules/@chainsafe/libp2p-noise/src/noise.ts b/node_modules/@chainsafe/libp2p-noise/src/noise.ts -index 640b4a2..5fddd9b 100644 ---- a/node_modules/@chainsafe/libp2p-noise/src/noise.ts -+++ b/node_modules/@chainsafe/libp2p-noise/src/noise.ts -@@ -1,6 +1,6 @@ --import { unmarshalPrivateKey } from '@libp2p/crypto/keys' --import { type MultiaddrConnection, type SecuredConnection, type PeerId, CodeError, type PrivateKey, serviceCapabilities, isPeerId, type AbortOptions } from '@libp2p/interface' --import { peerIdFromKeys } from '@libp2p/peer-id' -+import { publicKeyFromProtobuf } from '@libp2p/crypto/keys' -+import { serviceCapabilities } from '@libp2p/interface' -+import { peerIdFromPublicKey } from '@libp2p/peer-id' - import { decode } from 'it-length-prefixed' - import { lpStream, type LengthPrefixedStream } from 'it-length-prefixed-stream' - import { duplexPair } from 'it-pair/duplex' -@@ -16,6 +16,7 @@ import { decryptStream, encryptStream } from './streaming.js' - import type { NoiseComponents } from './index.js' - import type { NoiseExtensions } from './proto/payload.js' - import type { HandshakeResult, ICrypto, INoiseConnection, KeyPair } from './types.js' -+import type { MultiaddrConnection, SecuredConnection, PeerId, PrivateKey, PublicKey, AbortOptions } from '@libp2p/interface' - import type { Duplex } from 'it-stream-types' - import type { Uint8ArrayList } from 'uint8arraylist' - -@@ -68,15 +69,12 @@ export class Noise implements INoiseConnection { - /** - * Encrypt outgoing data to the remote party (handshake as initiator) - * -- * @param localPeer - PeerId of the receiving peer - * @param connection - streaming iterable duplex that will be encrypted -- * @param remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer. -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation - */ -- public async secureOutbound > = MultiaddrConnection> (connection: Stream, options?: { remotePeer?: PeerId, signal?: AbortSignal }): Promise> -- public async secureOutbound > = MultiaddrConnection> (localPeer: PeerId, connection: Stream, remotePeer?: PeerId): Promise> -- public async secureOutbound > = MultiaddrConnection> (...args: any[]): Promise> { -- const { localPeer, connection, remotePeer, signal } = this.parseArgs(args) -- -+ public async secureOutbound > = MultiaddrConnection> (connection: Stream, options?: { remotePeer?: PeerId, signal?: AbortSignal }): Promise> { - const wrappedConnection = lpStream( - connection, - { -@@ -86,44 +84,35 @@ export class Noise implements INoiseConnection { - } - ) - -- if (!localPeer.privateKey) { -- throw new CodeError('local peerId does not contain private key', 'ERR_NO_PRIVATE_KEY') -- } -- const privateKey = await unmarshalPrivateKey(localPeer.privateKey) -- -- const remoteIdentityKey = remotePeer?.publicKey -- - const handshake = await this.performHandshakeInitiator( - wrappedConnection, -- privateKey, -- remoteIdentityKey, { -- signal -- } -+ this.components.privateKey, -+ options?.remotePeer?.publicKey, -+ options - ) - const conn = await this.createSecureConnection(wrappedConnection, handshake) - - connection.source = conn.source - connection.sink = conn.sink - -+ const publicKey = publicKeyFromProtobuf(handshake.payload.identityKey) -+ - return { - conn: connection, - remoteExtensions: handshake.payload.extensions, -- remotePeer: await peerIdFromKeys(handshake.payload.identityKey) -+ remotePeer: peerIdFromPublicKey(publicKey) - } - } - - /** - * Decrypt incoming data (handshake as responder). - * -- * @param localPeer - PeerId of the receiving peer. -- * @param connection - streaming iterable duplex that will be encrypted. -- * @param remotePeer - optional PeerId of the initiating peer, if known. This may only exist during transport upgrades. -+ * @param connection - streaming iterable duplex that will be encrypted -+ * @param options -+ * @param options.remotePeer - PeerId of the remote peer. Used to validate the integrity of the remote peer -+ * @param options.signal - Used to abort the operation - */ -- public async secureInbound > = MultiaddrConnection> (connection: Stream, options?: { remotePeer?: PeerId, signal?: AbortSignal }): Promise> -- public async secureInbound > = MultiaddrConnection> (localPeer: PeerId, connection: Stream, remotePeer?: PeerId): Promise> -- public async secureInbound > = MultiaddrConnection> (...args: any[]): Promise> { -- const { localPeer, connection, remotePeer, signal } = this.parseArgs(args) -- -+ public async secureInbound > = MultiaddrConnection> (connection: Stream, options?: { remotePeer?: PeerId, signal?: AbortSignal }): Promise> { - const wrappedConnection = lpStream( - connection, - { -@@ -133,29 +122,23 @@ export class Noise implements INoiseConnection { - } - ) - -- if (!localPeer.privateKey) { -- throw new CodeError('local peerId does not contain private key', 'ERR_NO_PRIVATE_KEY') -- } -- const privateKey = await unmarshalPrivateKey(localPeer.privateKey) -- -- const remoteIdentityKey = remotePeer?.publicKey -- - const handshake = await this.performHandshakeResponder( - wrappedConnection, -- privateKey, -- remoteIdentityKey, { -- signal -- } -+ this.components.privateKey, -+ options?.remotePeer?.publicKey, -+ options - ) - const conn = await this.createSecureConnection(wrappedConnection, handshake) - - connection.source = conn.source - connection.sink = conn.sink - -+ const publicKey = publicKeyFromProtobuf(handshake.payload.identityKey) -+ - return { - conn: connection, - remoteExtensions: handshake.payload.extensions, -- remotePeer: await peerIdFromKeys(handshake.payload.identityKey) -+ remotePeer: peerIdFromPublicKey(publicKey) - } - } - -@@ -166,7 +149,7 @@ export class Noise implements INoiseConnection { - connection: LengthPrefixedStream, - // TODO: pass private key in noise constructor via Components - privateKey: PrivateKey, -- remoteIdentityKey?: Uint8Array | Uint8ArrayList, -+ remoteIdentityKey?: PublicKey, - options?: AbortOptions - ): Promise { - let result: HandshakeResult -@@ -195,9 +178,8 @@ export class Noise implements INoiseConnection { - */ - private async performHandshakeResponder ( - connection: LengthPrefixedStream, -- // TODO: pass private key in noise constructor via Components - privateKey: PrivateKey, -- remoteIdentityKey?: Uint8Array | Uint8ArrayList, -+ remoteIdentityKey?: PublicKey, - options?: AbortOptions - ): Promise { - let result: HandshakeResult -@@ -240,31 +222,4 @@ export class Noise implements INoiseConnection { - - return user - } -- -- /** -- * Detect call signature in `libp2p@1.x.x` or `libp2p@2.x.x` style. -- * -- * TODO: remove this after `libp2p@2.x.x` is released and only support the -- * newer style -- */ -- private parseArgs > = MultiaddrConnection> (args: any[]): { localPeer: PeerId, connection: Stream, remotePeer?: PeerId, signal?: AbortSignal } { -- // if the first argument is a peer id, we're using the libp2p@1.x.x style -- if (isPeerId(args[0])) { -- return { -- localPeer: args[0], -- connection: args[1], -- remotePeer: args[2] -- } -- } else { -- // handle upcoming changes in libp2p@2.x.x where the first argument is the -- // connection and the second is optionally the remote peer -- // @see https://github.com/libp2p/js-libp2p/pull/2304 -- return { -- localPeer: this.components.peerId, -- connection: args[0], -- remotePeer: args[1]?.remotePeer, -- signal: args[1]?.signal -- } -- } -- } - } -diff --git a/node_modules/@chainsafe/libp2p-noise/src/types.ts b/node_modules/@chainsafe/libp2p-noise/src/types.ts -index 37feb73..cf2d650 100644 ---- a/node_modules/@chainsafe/libp2p-noise/src/types.ts -+++ b/node_modules/@chainsafe/libp2p-noise/src/types.ts -@@ -1,6 +1,6 @@ - import type { Nonce } from './nonce' - import type { NoiseExtensions, NoiseHandshakePayload } from './proto/payload' --import type { ConnectionEncrypter, Logger, PrivateKey } from '@libp2p/interface' -+import type { ConnectionEncrypter, Logger, PrivateKey, PublicKey } from '@libp2p/interface' - import type { LengthPrefixedStream } from 'it-length-prefixed-stream' - import type { Uint8ArrayList } from 'uint8arraylist' - -@@ -22,7 +22,7 @@ export interface HandshakeParams { - prologue: Uint8Array - /** static keypair */ - s: KeyPair -- remoteIdentityKey?: Uint8Array | Uint8ArrayList -+ remoteIdentityKey?: PublicKey - extensions?: NoiseExtensions - } - -diff --git a/node_modules/@chainsafe/libp2p-noise/src/utils.ts b/node_modules/@chainsafe/libp2p-noise/src/utils.ts -index 4c75fb4..528daf4 100644 ---- a/node_modules/@chainsafe/libp2p-noise/src/utils.ts -+++ b/node_modules/@chainsafe/libp2p-noise/src/utils.ts -@@ -1,11 +1,9 @@ --import { unmarshalPublicKey } from '@libp2p/crypto/keys' -+import { publicKeyFromProtobuf, publicKeyToProtobuf } from '@libp2p/crypto/keys' -+import { UnexpectedPeerError, type PrivateKey, type PublicKey } from '@libp2p/interface' - import { type Uint8ArrayList } from 'uint8arraylist' --import { equals, toString } from 'uint8arrays' - import { concat as uint8ArrayConcat } from 'uint8arrays/concat' - import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' --import { UnexpectedPeerError } from './errors.js' - import { type NoiseExtensions, NoiseHandshakePayload } from './proto/payload.js' --import type { PrivateKey } from '@libp2p/interface' - - export async function createHandshakePayload ( - privateKey: PrivateKey, -@@ -15,7 +13,7 @@ export async function createHandshakePayload ( - const identitySig = await privateKey.sign(getSignaturePayload(staticPublicKey)) - - return NoiseHandshakePayload.encode({ -- identityKey: privateKey.public.bytes, -+ identityKey: publicKeyToProtobuf(privateKey.publicKey), - identitySig, - extensions - }) -@@ -24,15 +22,14 @@ export async function createHandshakePayload ( - export async function decodeHandshakePayload ( - payloadBytes: Uint8Array | Uint8ArrayList, - remoteStaticKey?: Uint8Array | Uint8ArrayList, -- remoteIdentityKey?: Uint8Array | Uint8ArrayList -+ remoteIdentityKey?: PublicKey - ): Promise { - try { - const payload = NoiseHandshakePayload.decode(payloadBytes) -- if (remoteIdentityKey) { -- const remoteIdentityKeyBytes = remoteIdentityKey.subarray() -- if (!equals(remoteIdentityKeyBytes, payload.identityKey)) { -- throw new Error(`Payload identity key ${toString(payload.identityKey, 'hex')} does not match expected remote identity key ${toString(remoteIdentityKeyBytes, 'hex')}`) -- } -+ const publicKey = publicKeyFromProtobuf(payload.identityKey) -+ -+ if (remoteIdentityKey?.equals(publicKey) === false) { -+ throw new Error(`Payload identity key ${publicKey} does not match expected remote identity key ${remoteIdentityKey}`) - } - - if (!remoteStaticKey) { -@@ -40,7 +37,6 @@ export async function decodeHandshakePayload ( - } - - const signaturePayload = getSignaturePayload(remoteStaticKey) -- const publicKey = unmarshalPublicKey(payload.identityKey) - - if (!(await publicKey.verify(signaturePayload, payload.identitySig))) { - throw new Error('Invalid payload signature') diff --git a/patches/@chainsafe+libp2p-yamux+6.0.2.patch b/patches/@chainsafe+libp2p-yamux+6.0.2.patch deleted file mode 100644 index 43f88d6e46..0000000000 --- a/patches/@chainsafe+libp2p-yamux+6.0.2.patch +++ /dev/null @@ -1,2295 +0,0 @@ -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/index.min.js b/node_modules/@chainsafe/libp2p-yamux/dist/index.min.js -index 2e9672b..3d35f7c 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/index.min.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/index.min.js -@@ -1,3 +1,3 @@ - (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ChainsafeLibp2PYamux = factory()}(typeof self !== 'undefined' ? self : this, function () { --"use strict";var ChainsafeLibp2PYamux=(()=>{var Y=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var xt=Object.prototype.hasOwnProperty;var vt=(r,t)=>{for(var e in t)Y(r,e,{get:t[e],enumerable:!0})},Lt=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Dt(t))!xt.call(r,n)&&n!==e&&Y(r,n,{get:()=>t[n],enumerable:!(s=At(t,n))||s.enumerable});return r};var Ct=r=>Lt(Y({},"__esModule",{value:!0}),r);var Xt={};vt(Xt,{GoAwayCode:()=>m,yamux:()=>Bt});var a=class extends Error{code;props;constructor(t,e,s){super(t),this.code=e,this.name=s?.name??"CodeError",this.props=s??{}}};var H=(r,...t)=>{try{[...t]}catch{}};function W(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function y(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var M=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},x=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new M(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new M(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var q=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function k(r={}){return Tt(e=>{let s=e.shift();if(s==null)return{done:!0};if(s.error!=null)throw s.error;return{done:s.done===!0,value:s.value}},r)}function Tt(r,t){t=t??{};let e=t.onEnd,s=new x,n,i,o,l=y(),u=async()=>{try{return s.isEmpty()?o?{done:!0}:await new Promise((h,I)=>{i=U=>{i=null,s.push(U);try{h(r(s))}catch(D){I(D)}return n}}):r(s)}finally{s.isEmpty()&&queueMicrotask(()=>{l.resolve(),l=y()})}},w=h=>i!=null?i(h):(s.push(h),n),b=h=>(s=new x,i!=null?i({error:h}):(s.push({error:h}),n)),d=h=>{if(o)return n;if(t?.objectMode!==!0&&h?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return w({done:!1,value:h})},p=h=>o?n:(o=!0,h!=null?b(h):w({done:!0})),O=()=>(s=new x,p(),{done:!0}),_t=h=>(p(h),{done:!0});if(n={[Symbol.asyncIterator](){return this},next:u,return:O,throw:_t,push:d,end:p,get readableLength(){return s.size},onEmpty:async h=>{let I=h?.signal;if(I?.throwIfAborted(),s.isEmpty())return;let U,D;I!=null&&(U=new Promise((zt,It)=>{D=()=>{It(new q)},I.addEventListener("abort",D)}));try{await Promise.race([l.promise,U])}finally{D!=null&&I!=null&&I?.removeEventListener("abort",D)}}},e==null)return n;let A=n;return n={[Symbol.asyncIterator](){return this},next(){return A.next()},throw(h){return A.throw(h),e!=null&&(e(h),e=void 0),{done:!0}},return(){return A.return(),e!=null&&(e(),e=void 0),{done:!0}},push:d,end(h){return A.end(h),e!=null&&(e(h),e=void 0),n},get readableLength(){return A.readableLength},onEmpty:h=>A.onEmpty(h)},n}function v(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function E(r=0){return globalThis.Buffer?.alloc!=null?v(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function C(r=0){return globalThis.Buffer?.allocUnsafe!=null?v(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function K(r,t){if(globalThis.Buffer!=null)return v(globalThis.Buffer.concat(r,t));t==null&&(t=r.reduce((n,i)=>n+i.length,0));let e=C(t),s=0;for(let n of r)e.set(n,s),s+=n.length;return v(e)}function it(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let s of t)if(s instanceof Uint8Array)e+=s.byteLength,this.bufs.push(s);else if(P(s))e+=s.byteLength,this.bufs.push(...s.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let s of t.reverse())if(s instanceof Uint8Array)e+=s.byteLength,this.bufs.unshift(s);else if(P(s))e+=s.byteLength,this.bufs.unshift(...s.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ot(this.bufs,t);return e.buf[e.index]}set(t,e){let s=ot(this.bufs,t);s.buf[s.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let s=0;s0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:s,length:n}=this._subList(t,e);return K(s,n)}subarray(t,e){let{bufs:s,length:n}=this._subList(t,e);return s.length===1?s[0]:K(s,n)}sublist(t,e){let{bufs:s,length:n}=this._subList(t,e),i=new r;return i.length=n,i.bufs=[...s],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let s=[],n=0;for(let i=0;i=u)continue;let w=t>=l&&tl&&e<=u;if(w&&b){if(t===l&&e===u){s.push(o);break}let d=t-l;s.push(o.subarray(d,d+(e-t)));break}if(w){if(t===0){s.push(o);continue}s.push(o.subarray(t-l));continue}if(b){if(e===u){s.push(o);break}s.push(o.subarray(0,e-l));break}s.push(o)}return{bufs:s,length:e-t}}indexOf(t,e=0){if(!P(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let s=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let n=s.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let d=0;d=0;p--){let O=this.get(d+p);if(s[p]!==O){b=Math.max(1,p-l[O]);break}}if(b===0)return d}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let s=C(1);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt8(0,e),this.write(s,t)}getInt16(t,e){let s=this.subarray(t,t+2);return new DataView(s.buffer,s.byteOffset,s.byteLength).getInt16(0,e)}setInt16(t,e,s){let n=E(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,e,s),this.write(n,t)}getInt32(t,e){let s=this.subarray(t,t+4);return new DataView(s.buffer,s.byteOffset,s.byteLength).getInt32(0,e)}setInt32(t,e,s){let n=E(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,e,s),this.write(n,t)}getBigInt64(t,e){let s=this.subarray(t,t+8);return new DataView(s.buffer,s.byteOffset,s.byteLength).getBigInt64(0,e)}setBigInt64(t,e,s){let n=E(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,e,s),this.write(n,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let s=C(1);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint8(0,e),this.write(s,t)}getUint16(t,e){let s=this.subarray(t,t+2);return new DataView(s.buffer,s.byteOffset,s.byteLength).getUint16(0,e)}setUint16(t,e,s){let n=E(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,e,s),this.write(n,t)}getUint32(t,e){let s=this.subarray(t,t+4);return new DataView(s.buffer,s.byteOffset,s.byteLength).getUint32(0,e)}setUint32(t,e,s){let n=E(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,e,s),this.write(n,t)}getBigUint64(t,e){let s=this.subarray(t,t+8);return new DataView(s.buffer,s.byteOffset,s.byteLength).getBigUint64(0,e)}setBigUint64(t,e,s){let n=E(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,e,s),this.write(n,t)}getFloat32(t,e){let s=this.subarray(t,t+4);return new DataView(s.buffer,s.byteOffset,s.byteLength).getFloat32(0,e)}setFloat32(t,e,s){let n=E(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,e,s),this.write(n,t)}getFloat64(t,e){let s=this.subarray(t,t+8);return new DataView(s.buffer,s.byteOffset,s.byteLength).getFloat64(0,e)}setFloat64(t,e,s){let n=E(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,e,s),this.write(n,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;en+i.byteLength,0)),s.length=e,s}};var L="ERR_INVALID_FRAME",$="ERR_UNREQUESTED_PING",Q="ERR_NOT_MATCHING_PING",j="ERR_STREAM_ALREADY_EXISTS",J="ERR_DECODE_INVALID_VERSION",Z="ERR_BOTH_CLIENTS",tt="ERR_RECV_WINDOW_EXCEEDED",lt=new Set([L,$,Q,j,J,Z,tt]),R="ERR_INVALID_CONFIG",V="ERR_MUXER_LOCAL_CLOSED",et="ERR_MUXER_REMOTE_CLOSED";var ht="ERR_STREAM_ABORT",ut="ERROR_MAX_OUTBOUND_STREAMS_EXCEEDED",ct="ERR_DECODE_IN_PROGRESS",T=256*1024,ft=16*1024*1024;var dt={enableKeepAlive:!0,keepAliveInterval:3e4,maxInboundStreams:1e3,maxOutboundStreams:1e3,initialStreamWindowSize:T,maxStreamWindowSize:ft,maxMessageSize:64*1024};function mt(r){if(r.keepAliveInterval<=0)throw new a("keep-alive interval must be positive",R);if(r.maxInboundStreams<0)throw new a("max inbound streams must be larger or equal 0",R);if(r.maxOutboundStreams<0)throw new a("max outbound streams must be larger or equal 0",R);if(r.initialStreamWindowSize2**32-1)throw new a("MaxStreamWindowSize must be less than equal MAX_UINT32",R);if(r.maxMessageSize<1024)throw new a("MaxMessageSize must be greater than a kilobyte",R)}var f;(function(r){r[r.Data=0]="Data",r[r.WindowUpdate=1]="WindowUpdate",r[r.Ping=2]="Ping",r[r.GoAway=3]="GoAway"})(f||(f={}));var c;(function(r){r[r.SYN=1]="SYN",r[r.ACK=2]="ACK",r[r.FIN=4]="FIN",r[r.RST=8]="RST"})(c||(c={}));var ge=Object.values(c).filter(r=>typeof r!="string"),gt=0,m;(function(r){r[r.NormalTermination=0]="NormalTermination",r[r.ProtocolError=1]="ProtocolError",r[r.InternalError=2]="InternalError"})(m||(m={}));var _=12;var wt=2**24;function Nt(r){if(r[0]!==gt)throw new a("Invalid frame version",J);return{type:r[1],flag:(r[2]<<8)+r[3],streamID:r[4]*wt+(r[5]<<16)+(r[6]<<8)+r[7],length:r[8]*wt+(r[9]<<16)+(r[10]<<8)+r[11]}}var F=class{source;buffer;frameInProgress;constructor(t){this.source=Ot(t),this.buffer=new S,this.frameInProgress=!1}async*emitFrames(){for await(let t of this.source)for(this.buffer.append(t);;){let e=this.readHeader();if(e===void 0)break;let{type:s,length:n}=e;s===f.Data?(this.frameInProgress=!0,yield{header:e,readData:this.readBytes.bind(this,n)}):yield{header:e}}}readHeader(){if(this.frameInProgress)throw new a("decoding frame already in progress",ct);if(this.buffer.length<_)return;let t=Nt(this.buffer.subarray(0,_));return this.buffer.consume(_),t}async readBytes(t){if(this.buffer.length=t)break}let e=this.buffer.sublist(0,t);return this.buffer.consume(t),this.frameInProgress=!1,e}};function Ot(r){if(r[Symbol.iterator]!==void 0){let t=r[Symbol.iterator]();return t.return=void 0,{[Symbol.iterator](){return t}}}else if(r[Symbol.asyncIterator]!==void 0){let t=r[Symbol.asyncIterator]();return t.return=void 0,{[Symbol.asyncIterator](){return t}}}else throw new Error("a source must be either an iterable or an async iterable")}function st(r){let t=new Uint8Array(_);return t[1]=r.type,t[2]=r.flag>>>8,t[3]=r.flag,t[4]=r.streamID>>>24,t[5]=r.streamID>>>16,t[6]=r.streamID>>>8,t[7]=r.streamID,t[8]=r.length>>>24,t[9]=r.length>>>16,t[10]=r.length>>>8,t[11]=r.length,t}var G=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function N(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new G(e?.errorMessage,e?.errorCode));let s,n=new G(e?.errorMessage,e?.errorCode);try{return await Promise.race([r,new Promise((i,o)=>{s=()=>{o(n)},t.addEventListener("abort",s)})])}finally{s!=null&&t.removeEventListener("abort",s)}}function bt(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function pt(r,t){let e=W(r).return?.();bt(e)&&e.catch(s=>{t.error("could not cause iterator to return",s)})}var Ut="ERR_STREAM_RESET",Wt="ERR_SINK_INVALID_STATE",Mt=5e3;function rt(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var B=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;log;sinkController;sinkEnd;closed;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;sendCloseWriteTimeout;sendingData;constructor(t){this.sinkController=new AbortController,this.sinkEnd=y(),this.closed=y(),this.log=t.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=t.id,this.metadata=t.metadata??{},this.direction=t.direction,this.timeline={open:Date.now()},this.sendCloseWriteTimeout=t.sendCloseWriteTimeout??Mt,this.onEnd=t.onEnd,this.onCloseRead=t?.onCloseRead,this.onCloseWrite=t?.onCloseWrite,this.onReset=t?.onReset,this.onAbort=t?.onAbort,this.source=this.streamSource=k({onEnd:e=>{e!=null?this.log.trace("source ended with error",e):this.log.trace("source ended"),this.onSourceEnd(e)}}),this.sink=this.sink.bind(this)}async sink(t){if(this.writeStatus!=="ready")throw new a(`writable end state is "${this.writeStatus}" not "ready"`,Wt);try{this.writeStatus="writing";let e={signal:this.sinkController.signal};if(this.direction==="outbound"){let n=this.sendNewStream(e);rt(n)&&await n}let s=()=>{pt(t,this.log)};try{this.sinkController.signal.addEventListener("abort",s),this.log.trace("sink reading from source");for await(let n of t){n=n instanceof Uint8Array?new S(n):n;let i=this.sendData(n,e);rt(i)&&(this.sendingData=y(),await i,this.sendingData.resolve(),this.sendingData=void 0)}}finally{this.sinkController.signal.removeEventListener("abort",s)}this.log.trace('sink finished reading from source, write status is "%s"',this.writeStatus),this.writeStatus==="writing"&&(this.writeStatus="closing",this.log.trace("send close write to remote"),await this.sendCloseWrite({signal:AbortSignal.timeout(this.sendCloseWriteTimeout)}),this.writeStatus="closed"),this.onSinkEnd()}catch(e){throw this.log.trace("sink ended with error, calling abort with error",e),this.abort(e),e}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(t){this.timeline.closeRead==null&&(this.timeline.closeRead=Date.now(),this.readStatus="closed",t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseRead?.(),this.timeline.closeWrite!=null?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),this.status!=="aborted"&&this.status!=="reset"&&(this.status="closed"),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(t){this.timeline.closeWrite==null&&(this.timeline.closeWrite=Date.now(),this.writeStatus="closed",t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseWrite?.(),this.timeline.closeRead!=null?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),this.status!=="aborted"&&this.status!=="reset"&&(this.status="closed"),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()):this.log.trace("sink ended, waiting for source to end"))}async close(t){this.log.trace("closing gracefully"),this.status="closing",await N(Promise.all([this.closeWrite(t),this.closeRead(t),this.closed.promise]),t?.signal),this.status="closed",this.log.trace("closed gracefully")}async closeRead(t={}){if(this.readStatus==="closing"||this.readStatus==="closed")return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);let e=this.readStatus;this.readStatus="closing",this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeRead==null&&(this.log.trace("send close read to remote"),await this.sendCloseRead(t)),e==="ready"&&(this.log.trace("ending internal source queue with %d queued bytes",this.streamSource.readableLength),this.streamSource.end()),this.log.trace("closed readable end of stream")}async closeWrite(t={}){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus),this.writeStatus==="ready"&&(this.log.trace("sink was never sunk, sink an empty array"),await N(this.sink([]),t.signal)),this.writeStatus==="writing"&&(this.sendingData!=null&&await N(this.sendingData.promise,t.signal),this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),await N(this.sinkEnd.promise,t.signal)),this.writeStatus="closed",this.log.trace("closed writable end of stream"))}abort(t){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;this.log("abort with error",t),this.log("try to send reset to remote");let e=this.sendReset();rt(e)&&e.catch(s=>{this.log.error("error sending reset message",s)}),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(t),this.onAbort?.(t)}reset(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;let t=new a("stream reset",Ut);this.status="reset",this.timeline.reset=Date.now(),this._closeSinkAndSource(t),this.onReset?.()}_closeSinkAndSource(t){this._closeSink(t),this._closeSource(t)}_closeSink(t){this.writeStatus==="writing"&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(t)}_closeSource(t){this.readStatus!=="closing"&&this.readStatus!=="closed"&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(t))}remoteCloseWrite(){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("received remote close write but local source is already closed");return}this.log.trace("remote close write"),this._closeSource()}remoteCloseRead(){if(this.writeStatus==="closing"||this.writeStatus==="closed"){this.log("received remote close read but local sink is already closed");return}this.log.trace("remote close read"),this._closeSink()}destroy(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset"){this.log("received destroy but we are already closed");return}this.log.trace("stream destroyed"),this._closeSinkAndSource()}sourcePush(t){this.streamSource.push(t)}sourceReadableLength(){return this.streamSource.readableLength}};function kt(r){let[t,e]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],s=[];return{peek:()=>t.next(),push:n=>{s.push(n)},next:()=>s.length>0?{done:!1,value:s.shift()}:t.next(),[e](){return this}}}var yt=kt;function Pt(r){return r[Symbol.asyncIterator]!=null}function Et(r){return r?.then!=null}function Vt(r,t){if(Pt(r))return async function*(){for await(let l of r){let u=t(l);Et(u)&&await u,yield l}}();let e=yt(r),{value:s,done:n}=e.next();if(n===!0)return function*(){}();if(typeof t(s)?.then=="function")return async function*(){yield s;for await(let l of e){let u=t(l);Et(u)&&await u,yield l}}();let o=t;return function*(){yield s;for(let l of e)o(l),yield l}()}var St=Vt;var g;(function(r){r[r.Init=0]="Init",r[r.SYNSent=1]="SYNSent",r[r.SYNReceived=2]="SYNReceived",r[r.Established=3]="Established",r[r.Finished=4]="Finished"})(g||(g={}));var X=class extends B{name;state;config;_id;sendWindowCapacity;sendWindowCapacityUpdate;recvWindow;recvWindowCapacity;epochStart;getRTT;sendFrame;constructor(t){super({...t,onEnd:e=>{this.state=g.Finished,t.onEnd?.(e)}}),this.config=t.config,this._id=parseInt(t.id,10),this.name=t.name,this.state=t.state,this.sendWindowCapacity=T,this.recvWindow=this.config.initialStreamWindowSize,this.recvWindowCapacity=this.recvWindow,this.epochStart=Date.now(),this.getRTT=t.getRTT,this.sendFrame=t.sendFrame,this.source=St(this.source,()=>{this.sendWindowUpdate()})}async sendNewStream(){}async sendData(t,e={}){for(t=t.sublist();t.byteLength!==0;){if(this.sendWindowCapacity===0&&(this.log?.trace("wait for send window capacity, status %s",this.status),await this.waitForSendWindowCapacity(e),this.status==="closed"||this.status==="aborted"||this.status==="reset")){this.log?.trace("%s while waiting for send window capacity",this.status);return}let s=Math.min(this.sendWindowCapacity,this.config.maxMessageSize-_,t.length),n=this.getSendFlags();this.sendFrame({type:f.Data,flag:n,streamID:this._id,length:s},t.sublist(0,s)),this.sendWindowCapacity-=s,t.consume(s)}}async sendReset(){this.sendFrame({type:f.WindowUpdate,flag:c.RST,streamID:this._id,length:0})}async sendCloseWrite(){let t=this.getSendFlags()|c.FIN;this.sendFrame({type:f.WindowUpdate,flag:t,streamID:this._id,length:0})}async sendCloseRead(){}async waitForSendWindowCapacity(t={}){if(this.sendWindowCapacity>0)return;let e,s,n=()=>{this.status==="open"||this.status==="closing"?s(new a("stream aborted",ht)):e()};t.signal?.addEventListener("abort",n);try{await new Promise((i,o)=>{this.sendWindowCapacityUpdate=()=>{i()},s=o,e=i})}finally{t.signal?.removeEventListener("abort",n)}}handleWindowUpdate(t){this.log?.trace("stream received window update id=%s",this._id),this.processFlags(t.flag);let e=this.sendWindowCapacity;this.sendWindowCapacity+=t.length,e===0&&t.length>0&&this.sendWindowCapacityUpdate?.()}async handleData(t,e){if(this.log?.trace("stream received data id=%s",this._id),this.processFlags(t.flag),this.recvWindowCapacity-1&&e-this.epochStart=this.recvWindow&&t===0)return;let n=this.recvWindow-this.recvWindowCapacity;this.recvWindowCapacity=this.recvWindow,this.epochStart=e,this.sendFrame({type:f.WindowUpdate,flag:t,streamID:this._id,length:n})}};var Rt="/yamux/1.0.0",Ft=500,z=class{protocol=Rt;_components;_init;constructor(t,e={}){this._components=t,this._init=e}createStreamMuxer(t){return new nt(this._components,{...this._init,...t})}},nt=class{protocol=Rt;source;sink;config;log;logger;closeController;nextStreamID;_streams;nextPingID;activePing;rtt;client;localGoAway;remoteGoAway;numInboundStreams;numOutboundStreams;onIncomingStream;onStreamEnd;constructor(t,e){this.client=e.direction==="outbound",this.config={...dt,...e},this.logger=t.logger,this.log=this.logger.forComponent("libp2p:yamux"),mt(this.config),this.closeController=new AbortController,H(1/0,this.closeController.signal),this.onIncomingStream=e.onIncomingStream,this.onStreamEnd=e.onStreamEnd,this._streams=new Map,this.source=k({onEnd:()=>{this.log?.trace("muxer source ended"),this._streams.forEach(s=>{s.destroy()})}}),this.sink=async s=>{let n=()=>{let l=W(s);if(l.return!=null){let u=l.return();Gt(u)&&u.catch(w=>{this.log?.("could not cause sink source to return",w)})}},i,o;try{let l=new F(s);try{this.closeController.signal.addEventListener("abort",n);for await(let u of l.emitFrames())await this.handleFrame(u.header,u.readData)}finally{this.closeController.signal.removeEventListener("abort",n)}i=m.NormalTermination}catch(l){let u=l.code;lt.has(u)?(this.log?.error("protocol error in sink",l),i=m.ProtocolError):(this.log?.error("internal error in sink",l),i=m.InternalError),o=l}this.log?.trace("muxer sink ended"),o!=null?this.abort(o,i):await this.close({reason:i})},this.numInboundStreams=0,this.numOutboundStreams=0,this.nextStreamID=this.client?1:2,this.nextPingID=0,this.rtt=-1,this.log?.trace("muxer created"),this.config.enableKeepAlive&&this.keepAliveLoop().catch(s=>this.log?.error("keepalive error: %s",s)),this.ping().catch(s=>this.log?.error("ping error: %s",s))}get streams(){return Array.from(this._streams.values())}newStream(t){if(this.remoteGoAway!==void 0)throw new a("muxer closed remotely",et);if(this.localGoAway!==void 0)throw new a("muxer closed locally",V);let e=this.nextStreamID;if(this.nextStreamID+=2,this.numOutboundStreams>=this.config.maxOutboundStreams)throw new a("max outbound streams exceeded",ut);this.log?.trace("new outgoing stream id=%s",e);let s=this._newStream(e,t,g.Init,"outbound");return this._streams.set(e,s),this.numOutboundStreams++,s.sendWindowUpdate(),s}async ping(){if(this.remoteGoAway!==void 0)throw new a("muxer closed remotely",et);if(this.localGoAway!==void 0)throw new a("muxer closed locally",V);if(this.activePing===void 0){let t=()=>{};this.activePing={id:this.nextPingID++,promise:new Promise((n,i)=>{let o=()=>{i(new a("muxer closed locally",V))};this.closeController.signal.addEventListener("abort",o,{once:!0}),t=()=>{this.closeController.signal.removeEventListener("abort",o),n()}}),resolve:t};let e=Date.now();this.sendPing(this.activePing.id);try{await this.activePing.promise}finally{delete this.activePing}let s=Date.now();this.rtt=s-e}else await this.activePing.promise;return this.rtt}getRTT(){return this.rtt}async close(t={}){if(this.closeController.signal.aborted)return;let e=t?.reason??m.NormalTermination;if(this.log?.trace("muxer close reason=%s",e),t.signal==null){let s=AbortSignal.timeout(Ft);H(1/0,s),t={...t,signal:s}}try{await Promise.all([...this._streams.values()].map(async s=>s.close(t))),this.sendGoAway(e),this._closeMuxer()}catch(s){this.abort(s)}}abort(t,e){if(!this.closeController.signal.aborted){e=e??m.InternalError,this.log?.error("muxer abort reason=%s error=%s",e,t);for(let s of this._streams.values())s.abort(t);this.sendGoAway(e),this._closeMuxer()}}isClosed(){return this.closeController.signal.aborted}_closeMuxer(){this.closeController.abort(),this.source.end()}_newStream(t,e,s,n){if(this._streams.get(t)!=null)throw new a("Stream already exists",j,{id:t});let i=new X({id:t.toString(),name:e,state:s,direction:n,sendFrame:this.sendFrame.bind(this),onEnd:()=>{this.closeStream(t),this.onStreamEnd?.(i)},log:this.logger.forComponent(`libp2p:yamux:${n}:${t}`),config:this.config,getRTT:this.getRTT.bind(this)});return i}closeStream(t){this.client===(t%2===0)?this.numInboundStreams--:this.numOutboundStreams--,this._streams.delete(t)}async keepAliveLoop(){let t=new Promise((e,s)=>{this.closeController.signal.addEventListener("abort",s,{once:!0})});for(this.log?.trace("muxer keepalive enabled interval=%s",this.config.keepAliveInterval);;){let e;try{await Promise.race([t,new Promise(s=>{e=setTimeout(s,this.config.keepAliveInterval)})]),this.ping().catch(s=>this.log?.error("ping error: %s",s))}catch{clearInterval(e);return}}}async handleFrame(t,e){let{streamID:s,type:n,length:i}=t;if(this.log?.trace("received frame %o",t),s===0)switch(n){case f.Ping:{this.handlePing(t);return}case f.GoAway:{this.handleGoAway(i);return}default:throw new a("Invalid frame type",L,{header:t})}else switch(t.type){case f.Data:case f.WindowUpdate:{await this.handleStreamMessage(t,e);return}default:throw new a("Invalid frame type",L,{header:t})}}handlePing(t){if(t.flag===c.SYN)this.log?.trace("received ping request pingId=%s",t.length),this.sendPing(t.length,c.ACK);else if(t.flag===c.ACK)this.log?.trace("received ping response pingId=%s",t.length),this.handlePingResponse(t.length);else throw new a("Invalid frame flag",L,{header:t})}handlePingResponse(t){if(this.activePing===void 0)throw new a("ping not requested",$);if(this.activePing.id!==t)throw new a("ping doesn't match our id",Q);this.activePing.resolve()}handleGoAway(t){this.log?.trace("received GoAway reason=%s",m[t]??"unknown"),this.remoteGoAway=t;for(let e of this._streams.values())e.reset();this._closeMuxer()}async handleStreamMessage(t,e){let{streamID:s,flag:n,type:i}=t;(n&c.SYN)===c.SYN&&this.incomingStream(s);let o=this._streams.get(s);if(o===void 0){if(i===f.Data){if(this.log?.("discarding data for stream id=%s",s),e===void 0)throw new Error("unreachable");await e()}else this.log?.("frame for missing stream id=%s",s);return}switch(i){case f.WindowUpdate:{o.handleWindowUpdate(t);return}case f.Data:{if(e===void 0)throw new Error("unreachable");await o.handleData(t,e);return}default:throw new Error("unreachable")}}incomingStream(t){if(this.client!==(t%2===0))throw new a("both endpoints are clients",Z);if(this._streams.has(t))return;if(this.log?.trace("new incoming stream id=%s",t),this.localGoAway!==void 0){this.sendFrame({type:f.WindowUpdate,flag:c.RST,streamID:t,length:0});return}if(this.numInboundStreams>=this.config.maxInboundStreams){this.log?.("maxIncomingStreams exceeded, forcing stream reset"),this.sendFrame({type:f.WindowUpdate,flag:c.RST,streamID:t,length:0});return}let e=this._newStream(t,void 0,g.SYNReceived,"inbound");this.numInboundStreams++,this._streams.set(t,e),this.onIncomingStream?.(e)}sendFrame(t,e){if(this.log?.trace("sending frame %o",t),t.type===f.Data){if(e===void 0)throw new a("invalid frame",L);this.source.push(new S(st(t),e))}else this.source.push(st(t))}sendPing(t,e=c.SYN){e===c.SYN?this.log?.trace("sending ping request pingId=%s",t):this.log?.trace("sending ping response pingId=%s",t),this.sendFrame({type:f.Ping,flag:e,streamID:0,length:t})}sendGoAway(t=m.NormalTermination){this.log?.("sending GoAway reason=%s",m[t]),this.localGoAway=t,this.sendFrame({type:f.GoAway,flag:0,streamID:0,length:t})}};function Gt(r){return r!=null&&typeof r.then=="function"}function Bt(r={}){return t=>new z(t,r)}return Ct(Xt);})(); -+"use strict";var ChainsafeLibp2PYamux=(()=>{var tt=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var Dt=Object.prototype.hasOwnProperty;var Ct=(s,t)=>{for(var e in t)tt(s,e,{get:t[e],enumerable:!0})},Wt=(s,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Lt(t))!Dt.call(s,n)&&n!==e&&tt(s,n,{get:()=>t[n],enumerable:!(r=At(t,n))||r.enumerable});return s};var kt=s=>Wt(tt({},"__esModule",{value:!0}),s);var Vt={};Ct(Vt,{GoAwayCode:()=>p,yamux:()=>zt});var M=class extends Error{constructor(t="The operation was aborted"){super(t),this.name="AbortError"}};var m=class extends Error{constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}};var E=class extends Error{constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},O=class extends Error{constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}},F=class extends Error{constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}};var z=class extends Error{constructor(t="Too many outbound protocol streams"){super(t),this.name="TooManyOutboundProtocolStreamsError"}};var et=(s,...t)=>{try{[...t]}catch{}};var at=Symbol.for("@libp2p/service-capabilities"),Ht=Symbol.for("@libp2p/service-dependencies");function V(s){if(s!=null){if(typeof s[Symbol.iterator]=="function")return s[Symbol.iterator]();if(typeof s[Symbol.asyncIterator]=="function")return s[Symbol.asyncIterator]();if(typeof s.next=="function")return s}throw new Error("argument is not an iterator or iterable")}function x(){let s={};return s.promise=new Promise((t,e)=>{s.resolve=t,s.reject=e}),s}var G=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},C=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new G(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new G(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var rt=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function B(s={}){return _t(e=>{let r=e.shift();if(r==null)return{done:!0};if(r.error!=null)throw r.error;return{done:r.done===!0,value:r.value}},s)}function _t(s,t){t=t??{};let e=t.onEnd,r=new C,n,i,o,a=x(),l=async()=>{try{return r.isEmpty()?o?{done:!0}:await new Promise((u,A)=>{i=N=>{i=null,r.push(N);try{u(s(r))}catch(D){A(D)}return n}}):s(r)}finally{r.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=x()})}},f=u=>i!=null?i(u):(r.push(u),n),b=u=>(r=new C,i!=null?i({error:u}):(r.push({error:u}),n)),d=u=>{if(o)return n;if(t?.objectMode!==!0&&u?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:u})},y=u=>o?n:(o=!0,u!=null?b(u):f({done:!0})),T=()=>(r=new C,y(),{done:!0}),vt=u=>(y(u),{done:!0});if(n={[Symbol.asyncIterator](){return this},next:l,return:T,throw:vt,push:d,end:y,get readableLength(){return r.size},onEmpty:async u=>{let A=u?.signal;if(A?.throwIfAborted(),r.isEmpty())return;let N,D;A!=null&&(N=new Promise((Gt,It)=>{D=()=>{It(new rt)},A.addEventListener("abort",D)}));try{await Promise.race([a.promise,N])}finally{D!=null&&A!=null&&A?.removeEventListener("abort",D)}}},e==null)return n;let L=n;return n={[Symbol.asyncIterator](){return this},next(){return L.next()},throw(u){return L.throw(u),e!=null&&(e(u),e=void 0),{done:!0}},return(){return L.return(),e!=null&&(e(),e=void 0),{done:!0}},push:d,end(u){return L.end(u),e!=null&&(e(u),e=void 0),n},get readableLength(){return L.readableLength},onEmpty:u=>L.onEmpty(u)},n}function S(s=0){return new Uint8Array(s)}function R(s=0){return new Uint8Array(s)}function st(s,t){t==null&&(t=s.reduce((n,i)=>n+i.length,0));let e=R(t),r=0;for(let n of s)e.set(n,r),r+=n.length;return e}function lt(s,t){if(s===t)return!0;if(s.byteLength!==t.byteLength)return!1;for(let e=0;e0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let r of t)if(r instanceof Uint8Array)e+=r.byteLength,this.bufs.push(r);else if(q(r))e+=r.byteLength,this.bufs.push(...r.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let r of t.reverse())if(r instanceof Uint8Array)e+=r.byteLength,this.bufs.unshift(r);else if(q(r))e+=r.byteLength,this.bufs.unshift(...r.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ut(this.bufs,t);return e.buf[e.index]}set(t,e){let r=ut(this.bufs,t);r.buf[r.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let r=0;r0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:r,length:n}=this._subList(t,e);return st(r,n)}subarray(t,e){let{bufs:r,length:n}=this._subList(t,e);return r.length===1?r[0]:st(r,n)}sublist(t,e){let{bufs:r,length:n}=this._subList(t,e),i=new s;return i.length=n,i.bufs=[...r],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let r=[],n=0;for(let i=0;i=l)continue;let f=t>=a&&ta&&e<=l;if(f&&b){if(t===a&&e===l){r.push(o);break}let d=t-a;r.push(o.subarray(d,d+(e-t)));break}if(f){if(t===0){r.push(o);continue}r.push(o.subarray(t-a));continue}if(b){if(e===l){r.push(o);break}r.push(o.subarray(0,e-a));break}r.push(o)}return{bufs:r,length:e-t}}indexOf(t,e=0){if(!q(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let r=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let n=r.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let d=0;d=0;y--){let T=this.get(d+y);if(r[y]!==T){b=Math.max(1,y-a[T]);break}}if(b===0)return d}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let r=R(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt8(0,e),this.write(r,t)}getInt16(t,e){let r=this.subarray(t,t+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt16(0,e)}setInt16(t,e,r){let n=S(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,e,r),this.write(n,t)}getInt32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt32(0,e)}setInt32(t,e,r){let n=S(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,e,r),this.write(n,t)}getBigInt64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigInt64(0,e)}setBigInt64(t,e,r){let n=S(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,e,r),this.write(n,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let r=R(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint8(0,e),this.write(r,t)}getUint16(t,e){let r=this.subarray(t,t+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,e)}setUint16(t,e,r){let n=S(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,e,r),this.write(n,t)}getUint32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,e)}setUint32(t,e,r){let n=S(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,e,r),this.write(n,t)}getBigUint64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigUint64(0,e)}setBigUint64(t,e,r){let n=S(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,e,r),this.write(n,t)}getFloat32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat32(0,e)}setFloat32(t,e,r){let n=S(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,e,r),this.write(n,t)}getFloat64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat64(0,e)}setFloat64(t,e,r){let n=S(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,e,r),this.write(n,t)}equals(t){if(t==null||!(t instanceof s)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;en+i.byteLength,0)),r.length=e,r}};var w=class extends Error{static name="InvalidFrameError";constructor(t="The frame was invalid"){super(t),this.name="InvalidFrameError"}},W=class extends Error{static name="UnrequestedPingError";constructor(t="Unrequested ping error"){super(t),this.name="UnrequestedPingError"}},k=class extends Error{static name="NotMatchingPingError";constructor(t="Unrequested ping error"){super(t),this.name="NotMatchingPingError"}},Y=class extends Error{static name="InvalidStateError";constructor(t="Invalid state"){super(t),this.name="InvalidStateError"}},H=class extends Error{static name="StreamAlreadyExistsError";constructor(t="Strean already exists"){super(t),this.name="StreamAlreadyExistsError"}},K=class extends Error{static name="DecodeInvalidVersionError";constructor(t="Decode invalid version"){super(t),this.name="DecodeInvalidVersionError"}},$=class extends Error{static name="BothClientsError";constructor(t="Both clients"){super(t),this.name="BothClientsError"}},_=class extends Error{static name="ReceiveWindowExceededError";constructor(t="Receive window exceeded"){super(t),this.name="ReceiveWindowExceededError"}};var ct=new Set([w.name,W.name,k.name,H.name,K.name,$.name,_.name]),U=256*1024,dt=16*1024*1024;var ft={enableKeepAlive:!0,keepAliveInterval:3e4,maxInboundStreams:1e3,maxOutboundStreams:1e3,initialStreamWindowSize:U,maxStreamWindowSize:dt,maxMessageSize:64*1024};function mt(s){if(s.keepAliveInterval<=0)throw new m("keep-alive interval must be positive");if(s.maxInboundStreams<0)throw new m("max inbound streams must be larger or equal 0");if(s.maxOutboundStreams<0)throw new m("max outbound streams must be larger or equal 0");if(s.initialStreamWindowSize2**32-1)throw new m("MaxStreamWindowSize must be less than equal MAX_UINT32");if(s.maxMessageSize<1024)throw new m("MaxMessageSize must be greater than a kilobyte")}var c;(function(s){s[s.Data=0]="Data",s[s.WindowUpdate=1]="WindowUpdate",s[s.Ping=2]="Ping",s[s.GoAway=3]="GoAway"})(c||(c={}));var h;(function(s){s[s.SYN=1]="SYN",s[s.ACK=2]="ACK",s[s.FIN=4]="FIN",s[s.RST=8]="RST"})(h||(h={}));var Fe=Object.values(h).filter(s=>typeof s!="string"),pt=0,p;(function(s){s[s.NormalTermination=0]="NormalTermination",s[s.ProtocolError=1]="ProtocolError",s[s.InternalError=2]="InternalError"})(p||(p={}));var I=12;var gt=2**24;function Rt(s){if(s[0]!==pt)throw new w("Invalid frame version");return{type:s[1],flag:(s[2]<<8)+s[3],streamID:s[4]*gt+(s[5]<<16)+(s[6]<<8)+s[7],length:s[8]*gt+(s[9]<<16)+(s[10]<<8)+s[11]}}var X=class{source;buffer;frameInProgress;constructor(t){this.source=Ut(t),this.buffer=new v,this.frameInProgress=!1}async*emitFrames(){for await(let t of this.source)for(this.buffer.append(t);;){let e=this.readHeader();if(e===void 0)break;let{type:r,length:n}=e;r===c.Data?(this.frameInProgress=!0,yield{header:e,readData:this.readBytes.bind(this,n)}):yield{header:e}}}readHeader(){if(this.frameInProgress)throw new Y("decoding frame already in progress");if(this.buffer.length=t)break}let e=this.buffer.sublist(0,t);return this.buffer.consume(t),this.frameInProgress=!1,e}};function Ut(s){if(s[Symbol.iterator]!==void 0){let t=s[Symbol.iterator]();return t.return=void 0,{[Symbol.iterator](){return t}}}else if(s[Symbol.asyncIterator]!==void 0){let t=s[Symbol.asyncIterator]();return t.return=void 0,{[Symbol.asyncIterator](){return t}}}else throw new Error("a source must be either an iterable or an async iterable")}function nt(s){let t=new Uint8Array(I);return t[1]=s.type,t[2]=s.flag>>>8,t[3]=s.flag,t[4]=s.streamID>>>24,t[5]=s.streamID>>>16,t[6]=s.streamID>>>8,t[7]=s.streamID,t[8]=s.length>>>24,t[9]=s.length>>>16,t[10]=s.length>>>8,t[11]=s.length,t}var j=class extends Error{type;code;constructor(t,e,r){super(t??"The operation was aborted"),this.type="aborted",this.name=r??"AbortError",this.code=e??"ABORT_ERR"}};async function P(s,t,e){if(t==null)return s;if(t.aborted)return Promise.reject(new j(e?.errorMessage,e?.errorCode,e?.errorName));let r,n=new j(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([s,new Promise((i,o)=>{r=()=>{o(n)},t.addEventListener("abort",r)})])}finally{r!=null&&t.removeEventListener("abort",r)}}function wt(s){return s==null?!1:typeof s.then=="function"&&typeof s.catch=="function"&&typeof s.finally=="function"}function bt(s,t){let e=V(s).return?.();wt(e)&&e.catch(r=>{t.error("could not cause iterator to return",r)})}var Pt=5e3;function it(s){return s==null?!1:typeof s.then=="function"&&typeof s.catch=="function"&&typeof s.finally=="function"}var J=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;log;sinkController;sinkEnd;closed;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;sendCloseWriteTimeout;sendingData;constructor(t){this.sinkController=new AbortController,this.sinkEnd=x(),this.closed=x(),this.log=t.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=t.id,this.metadata=t.metadata??{},this.direction=t.direction,this.timeline={open:Date.now()},this.sendCloseWriteTimeout=t.sendCloseWriteTimeout??Pt,this.onEnd=t.onEnd,this.onCloseRead=t?.onCloseRead,this.onCloseWrite=t?.onCloseWrite,this.onReset=t?.onReset,this.onAbort=t?.onAbort,this.source=this.streamSource=B({onEnd:e=>{e!=null?this.log.trace("source ended with error",e):this.log.trace("source ended"),this.onSourceEnd(e)}}),this.sink=this.sink.bind(this)}async sink(t){if(this.writeStatus!=="ready")throw new F(`writable end state is "${this.writeStatus}" not "ready"`);try{this.writeStatus="writing";let e={signal:this.sinkController.signal};if(this.direction==="outbound"){let n=this.sendNewStream(e);it(n)&&await n}let r=()=>{bt(t,this.log)};try{this.sinkController.signal.addEventListener("abort",r),this.log.trace("sink reading from source");for await(let n of t){n=n instanceof Uint8Array?new v(n):n;let i=this.sendData(n,e);it(i)&&(this.sendingData=x(),await i,this.sendingData.resolve(),this.sendingData=void 0)}}finally{this.sinkController.signal.removeEventListener("abort",r)}this.log.trace('sink finished reading from source, write status is "%s"',this.writeStatus),this.writeStatus==="writing"&&(this.writeStatus="closing",this.log.trace("send close write to remote"),await this.sendCloseWrite({signal:AbortSignal.timeout(this.sendCloseWriteTimeout)}),this.writeStatus="closed"),this.onSinkEnd()}catch(e){throw this.log.trace("sink ended with error, calling abort with error",e),this.abort(e),e}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(t){this.timeline.closeRead==null&&(this.timeline.closeRead=Date.now(),this.readStatus="closed",t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseRead?.(),this.timeline.closeWrite!=null?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),this.status!=="aborted"&&this.status!=="reset"&&(this.status="closed"),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(t){this.timeline.closeWrite==null&&(this.timeline.closeWrite=Date.now(),this.writeStatus="closed",t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseWrite?.(),this.timeline.closeRead!=null?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),this.status!=="aborted"&&this.status!=="reset"&&(this.status="closed"),this.onEnd!=null&&this.onEnd(this.endErr),this.closed.resolve()):this.log.trace("sink ended, waiting for source to end"))}async close(t){this.log.trace("closing gracefully"),this.status="closing",await P(Promise.all([this.closeWrite(t),this.closeRead(t),this.closed.promise]),t?.signal),this.status="closed",this.log.trace("closed gracefully")}async closeRead(t={}){if(this.readStatus==="closing"||this.readStatus==="closed")return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);let e=this.readStatus;this.readStatus="closing",this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeRead==null&&(this.log.trace("send close read to remote"),await this.sendCloseRead(t)),e==="ready"&&(this.log.trace("ending internal source queue with %d queued bytes",this.streamSource.readableLength),this.streamSource.end()),this.log.trace("closed readable end of stream")}async closeWrite(t={}){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus),this.writeStatus==="ready"&&(this.log.trace("sink was never sunk, sink an empty array"),await P(this.sink([]),t.signal)),this.writeStatus==="writing"&&(this.sendingData!=null&&await P(this.sendingData.promise,t.signal),this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),await P(this.sinkEnd.promise,t.signal)),this.writeStatus="closed",this.log.trace("closed writable end of stream"))}abort(t){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;this.log("abort with error",t),this.log("try to send reset to remote");let e=this.sendReset();it(e)&&e.catch(r=>{this.log.error("error sending reset message",r)}),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(t),this.onAbort?.(t)}reset(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;let t=new O("stream reset");this.status="reset",this.timeline.reset=Date.now(),this._closeSinkAndSource(t),this.onReset?.()}_closeSinkAndSource(t){this._closeSink(t),this._closeSource(t)}_closeSink(t){this.writeStatus==="writing"&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(t)}_closeSource(t){this.readStatus!=="closing"&&this.readStatus!=="closed"&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(t))}remoteCloseWrite(){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("received remote close write but local source is already closed");return}this.log.trace("remote close write"),this._closeSource()}remoteCloseRead(){if(this.writeStatus==="closing"||this.writeStatus==="closed"){this.log("received remote close read but local sink is already closed");return}this.log.trace("remote close read"),this._closeSink()}destroy(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset"){this.log("received destroy but we are already closed");return}this.log.trace("stream destroyed"),this._closeSinkAndSource()}sourcePush(t){this.streamSource.push(t)}sourceReadableLength(){return this.streamSource.readableLength}};function Tt(s){let[t,e]=s[Symbol.asyncIterator]!=null?[s[Symbol.asyncIterator](),Symbol.asyncIterator]:[s[Symbol.iterator](),Symbol.iterator],r=[];return{peek:()=>t.next(),push:n=>{r.push(n)},next:()=>r.length>0?{done:!1,value:r.shift()}:t.next(),[e](){return this}}}var yt=Tt;function Nt(s){return s[Symbol.asyncIterator]!=null}function xt(s){return s?.then!=null}function Mt(s,t){let e=0;if(Nt(s))return async function*(){for await(let l of s){let f=t(l,e++);xt(f)&&await f,yield l}}();let r=yt(s),{value:n,done:i}=r.next();if(i===!0)return function*(){}();if(typeof t(n,e++)?.then=="function")return async function*(){yield n;for await(let l of r){let f=t(l,e++);xt(f)&&await f,yield l}}();let a=t;return function*(){yield n;for(let l of r)a(l,e++),yield l}()}var St=Mt;var g;(function(s){s[s.Init=0]="Init",s[s.SYNSent=1]="SYNSent",s[s.SYNReceived=2]="SYNReceived",s[s.Established=3]="Established",s[s.Finished=4]="Finished"})(g||(g={}));var Q=class extends J{name;state;config;_id;sendWindowCapacity;sendWindowCapacityUpdate;recvWindow;recvWindowCapacity;epochStart;getRTT;sendFrame;constructor(t){super({...t,onEnd:e=>{this.state=g.Finished,t.onEnd?.(e)}}),this.config=t.config,this._id=parseInt(t.id,10),this.name=t.name,this.state=t.state,this.sendWindowCapacity=U,this.recvWindow=this.config.initialStreamWindowSize,this.recvWindowCapacity=this.recvWindow,this.epochStart=Date.now(),this.getRTT=t.getRTT,this.sendFrame=t.sendFrame,this.source=St(this.source,()=>{this.sendWindowUpdate()})}async sendNewStream(){}async sendData(t,e={}){for(t=t.sublist();t.byteLength!==0;){if(this.sendWindowCapacity===0&&(this.log?.trace("wait for send window capacity, status %s",this.status),await this.waitForSendWindowCapacity(e),this.status==="closed"||this.status==="aborted"||this.status==="reset")){this.log?.trace("%s while waiting for send window capacity",this.status);return}let r=Math.min(this.sendWindowCapacity,this.config.maxMessageSize-I,t.length),n=this.getSendFlags();this.sendFrame({type:c.Data,flag:n,streamID:this._id,length:r},t.sublist(0,r)),this.sendWindowCapacity-=r,t.consume(r)}}async sendReset(){this.sendFrame({type:c.WindowUpdate,flag:h.RST,streamID:this._id,length:0})}async sendCloseWrite(){let t=this.getSendFlags()|h.FIN;this.sendFrame({type:c.WindowUpdate,flag:t,streamID:this._id,length:0})}async sendCloseRead(){}async waitForSendWindowCapacity(t={}){if(this.sendWindowCapacity>0)return;let e,r,n=()=>{this.status==="open"||this.status==="closing"?r(new M("Stream aborted")):e()};t.signal?.addEventListener("abort",n);try{await new Promise((i,o)=>{this.sendWindowCapacityUpdate=()=>{i()},r=o,e=i})}finally{t.signal?.removeEventListener("abort",n)}}handleWindowUpdate(t){this.log?.trace("stream received window update id=%s",this._id),this.processFlags(t.flag);let e=this.sendWindowCapacity;this.sendWindowCapacity+=t.length,e===0&&t.length>0&&this.sendWindowCapacityUpdate?.()}async handleData(t,e){if(this.log?.trace("stream received data id=%s",this._id),this.processFlags(t.flag),this.recvWindowCapacity-1&&e-this.epochStart=this.recvWindow&&t===0)return;let n=this.recvWindow-this.recvWindowCapacity;this.recvWindowCapacity=this.recvWindow,this.epochStart=e,this.sendFrame({type:c.WindowUpdate,flag:t,streamID:this._id,length:n})}};var Et="/yamux/1.0.0",Ot=500,Z=class{protocol=Et;_components;_init;constructor(t,e={}){this._components=t,this._init=e}[Symbol.toStringTag]="@chainsafe/libp2p-yamux";[at]=["@libp2p/stream-multiplexing"];createStreamMuxer(t){return new ot(this._components,{...this._init,...t})}},ot=class{protocol=Et;source;sink;config;log;logger;closeController;nextStreamID;_streams;nextPingID;activePing;rtt;client;localGoAway;remoteGoAway;numInboundStreams;numOutboundStreams;onIncomingStream;onStreamEnd;constructor(t,e){this.client=e.direction==="outbound",this.config={...ft,...e},this.logger=t.logger,this.log=this.logger.forComponent("libp2p:yamux"),mt(this.config),this.closeController=new AbortController,et(1/0,this.closeController.signal),this.onIncomingStream=e.onIncomingStream,this.onStreamEnd=e.onStreamEnd,this._streams=new Map,this.source=B({onEnd:()=>{this.log?.trace("muxer source ended"),this._streams.forEach(r=>{r.destroy()})}}),this.sink=async r=>{let n=()=>{let a=V(r);if(a.return!=null){let l=a.return();Ft(l)&&l.catch(f=>{this.log?.("could not cause sink source to return",f)})}},i,o;try{let a=new X(r);try{this.closeController.signal.addEventListener("abort",n);for await(let l of a.emitFrames())await this.handleFrame(l.header,l.readData)}finally{this.closeController.signal.removeEventListener("abort",n)}i=p.NormalTermination}catch(a){ct.has(a.name)?(this.log?.error("protocol error in sink",a),i=p.ProtocolError):(this.log?.error("internal error in sink",a),i=p.InternalError),o=a}this.log?.trace("muxer sink ended"),o!=null?this.abort(o,i):await this.close({reason:i})},this.numInboundStreams=0,this.numOutboundStreams=0,this.nextStreamID=this.client?1:2,this.nextPingID=0,this.rtt=-1,this.log?.trace("muxer created"),this.config.enableKeepAlive&&this.keepAliveLoop().catch(r=>this.log?.error("keepalive error: %s",r)),this.ping().catch(r=>this.log?.error("ping error: %s",r))}get streams(){return Array.from(this._streams.values())}newStream(t){if(this.remoteGoAway!==void 0)throw new E("Muxer closed remotely");if(this.localGoAway!==void 0)throw new E("Muxer closed locally");let e=this.nextStreamID;if(this.nextStreamID+=2,this.numOutboundStreams>=this.config.maxOutboundStreams)throw new z("max outbound streams exceeded");this.log?.trace("new outgoing stream id=%s",e);let r=this._newStream(e,t,g.Init,"outbound");return this._streams.set(e,r),this.numOutboundStreams++,r.sendWindowUpdate(),r}async ping(){if(this.remoteGoAway!==void 0)throw new E("Muxer closed remotely");if(this.localGoAway!==void 0)throw new E("Muxer closed locally");if(this.activePing===void 0){let t=()=>{};this.activePing={id:this.nextPingID++,promise:new Promise((n,i)=>{let o=()=>{i(new E("Muxer closed locally"))};this.closeController.signal.addEventListener("abort",o,{once:!0}),t=()=>{this.closeController.signal.removeEventListener("abort",o),n()}}),resolve:t};let e=Date.now();this.sendPing(this.activePing.id);try{await this.activePing.promise}finally{delete this.activePing}let r=Date.now();this.rtt=r-e}else await this.activePing.promise;return this.rtt}getRTT(){return this.rtt}async close(t={}){if(this.closeController.signal.aborted)return;let e=t?.reason??p.NormalTermination;if(this.log?.trace("muxer close reason=%s",e),t.signal==null){let r=AbortSignal.timeout(Ot);et(1/0,r),t={...t,signal:r}}try{await Promise.all([...this._streams.values()].map(async r=>r.close(t))),this.sendGoAway(e),this._closeMuxer()}catch(r){this.abort(r)}}abort(t,e){if(!this.closeController.signal.aborted){e=e??p.InternalError,this.log?.error("muxer abort reason=%s error=%s",e,t);for(let r of this._streams.values())r.abort(t);this.sendGoAway(e),this._closeMuxer()}}isClosed(){return this.closeController.signal.aborted}_closeMuxer(){this.closeController.abort(),this.source.end()}_newStream(t,e,r,n){if(this._streams.get(t)!=null)throw new m("Stream already exists with that id");let i=new Q({id:t.toString(),name:e,state:r,direction:n,sendFrame:this.sendFrame.bind(this),onEnd:()=>{this.closeStream(t),this.onStreamEnd?.(i)},log:this.logger.forComponent(`libp2p:yamux:${n}:${t}`),config:this.config,getRTT:this.getRTT.bind(this)});return i}closeStream(t){this.client===(t%2===0)?this.numInboundStreams--:this.numOutboundStreams--,this._streams.delete(t)}async keepAliveLoop(){let t=new Promise((e,r)=>{this.closeController.signal.addEventListener("abort",r,{once:!0})});for(this.log?.trace("muxer keepalive enabled interval=%s",this.config.keepAliveInterval);;){let e;try{await Promise.race([t,new Promise(r=>{e=setTimeout(r,this.config.keepAliveInterval)})]),this.ping().catch(r=>this.log?.error("ping error: %s",r))}catch{clearInterval(e);return}}}async handleFrame(t,e){let{streamID:r,type:n,length:i}=t;if(this.log?.trace("received frame %o",t),r===0)switch(n){case c.Ping:{this.handlePing(t);return}case c.GoAway:{this.handleGoAway(i);return}default:throw new w("Invalid frame type")}else switch(t.type){case c.Data:case c.WindowUpdate:{await this.handleStreamMessage(t,e);return}default:throw new w("Invalid frame type")}}handlePing(t){if(t.flag===h.SYN)this.log?.trace("received ping request pingId=%s",t.length),this.sendPing(t.length,h.ACK);else if(t.flag===h.ACK)this.log?.trace("received ping response pingId=%s",t.length),this.handlePingResponse(t.length);else throw new w("Invalid frame flag")}handlePingResponse(t){if(this.activePing===void 0)throw new W("ping not requested");if(this.activePing.id!==t)throw new k("ping doesn't match our id");this.activePing.resolve()}handleGoAway(t){this.log?.trace("received GoAway reason=%s",p[t]??"unknown"),this.remoteGoAway=t;for(let e of this._streams.values())e.reset();this._closeMuxer()}async handleStreamMessage(t,e){let{streamID:r,flag:n,type:i}=t;(n&h.SYN)===h.SYN&&this.incomingStream(r);let o=this._streams.get(r);if(o===void 0){if(i===c.Data){if(this.log?.("discarding data for stream id=%s",r),e===void 0)throw new Error("unreachable");await e()}else this.log?.("frame for missing stream id=%s",r);return}switch(i){case c.WindowUpdate:{o.handleWindowUpdate(t);return}case c.Data:{if(e===void 0)throw new Error("unreachable");await o.handleData(t,e);return}default:throw new Error("unreachable")}}incomingStream(t){if(this.client!==(t%2===0))throw new m("Both endpoints are clients");if(this._streams.has(t))return;if(this.log?.trace("new incoming stream id=%s",t),this.localGoAway!==void 0){this.sendFrame({type:c.WindowUpdate,flag:h.RST,streamID:t,length:0});return}if(this.numInboundStreams>=this.config.maxInboundStreams){this.log?.("maxIncomingStreams exceeded, forcing stream reset"),this.sendFrame({type:c.WindowUpdate,flag:h.RST,streamID:t,length:0});return}let e=this._newStream(t,void 0,g.SYNReceived,"inbound");this.numInboundStreams++,this._streams.set(t,e),this.onIncomingStream?.(e)}sendFrame(t,e){if(this.log?.trace("sending frame %o",t),t.type===c.Data){if(e===void 0)throw new w("Invalid frame");this.source.push(new v(nt(t),e))}else this.source.push(nt(t))}sendPing(t,e=h.SYN){e===h.SYN?this.log?.trace("sending ping request pingId=%s",t):this.log?.trace("sending ping response pingId=%s",t),this.sendFrame({type:c.Ping,flag:e,streamID:0,length:t})}sendGoAway(t=p.NormalTermination){this.log?.("sending GoAway reason=%s",p[t]),this.localGoAway=t,this.sendFrame({type:c.GoAway,flag:0,streamID:0,length:t})}};function Ft(s){return s!=null&&typeof s.then=="function"}function zt(s={}){return t=>new Z(t,s)}return kt(Vt);})(); - return ChainsafeLibp2PYamux})); -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js -index 5649b52..4c45130 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js -@@ -1,35 +1,35 @@ --import { CodeError } from '@libp2p/interface'; --import { ERR_INVALID_CONFIG, INITIAL_STREAM_WINDOW, MAX_STREAM_WINDOW } from './constants.js'; -+import { InvalidParametersError } from '@libp2p/interface'; -+import { INITIAL_STREAM_WINDOW, MAX_STREAM_WINDOW } from './constants.js'; - export const defaultConfig = { - enableKeepAlive: true, -- keepAliveInterval: 30000, -- maxInboundStreams: 1000, -- maxOutboundStreams: 1000, -+ keepAliveInterval: 30_000, -+ maxInboundStreams: 1_000, -+ maxOutboundStreams: 1_000, - initialStreamWindowSize: INITIAL_STREAM_WINDOW, - maxStreamWindowSize: MAX_STREAM_WINDOW, - maxMessageSize: 64 * 1024 - }; - export function verifyConfig(config) { - if (config.keepAliveInterval <= 0) { -- throw new CodeError('keep-alive interval must be positive', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('keep-alive interval must be positive'); - } - if (config.maxInboundStreams < 0) { -- throw new CodeError('max inbound streams must be larger or equal 0', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('max inbound streams must be larger or equal 0'); - } - if (config.maxOutboundStreams < 0) { -- throw new CodeError('max outbound streams must be larger or equal 0', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('max outbound streams must be larger or equal 0'); - } - if (config.initialStreamWindowSize < INITIAL_STREAM_WINDOW) { -- throw new CodeError('InitialStreamWindowSize must be larger or equal 256 kB', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('InitialStreamWindowSize must be larger or equal 256 kB'); - } - if (config.maxStreamWindowSize < config.initialStreamWindowSize) { -- throw new CodeError('MaxStreamWindowSize must be larger than the InitialStreamWindowSize', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('MaxStreamWindowSize must be larger than the InitialStreamWindowSize'); - } - if (config.maxStreamWindowSize > 2 ** 32 - 1) { -- throw new CodeError('MaxStreamWindowSize must be less than equal MAX_UINT32', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('MaxStreamWindowSize must be less than equal MAX_UINT32'); - } - if (config.maxMessageSize < 1024) { -- throw new CodeError('MaxMessageSize must be greater than a kilobyte', ERR_INVALID_CONFIG); -+ throw new InvalidParametersError('MaxMessageSize must be greater than a kilobyte'); - } - } - //# sourceMappingURL=config.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js.map -index 86bf355..2aca98b 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/config.js.map -@@ -1 +1 @@ --{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AA+C7F,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,KAAM;IACzB,iBAAiB,EAAE,IAAK;IACxB,kBAAkB,EAAE,IAAK;IACzB,uBAAuB,EAAE,qBAAqB;IAC9C,mBAAmB,EAAE,iBAAiB;IACtC,cAAc,EAAE,EAAE,GAAG,IAAI;CAC1B,CAAA;AAED,MAAM,UAAU,YAAY,CAAE,MAAc;IAC1C,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,sCAAsC,EAAE,kBAAkB,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,+CAA+C,EAAE,kBAAkB,CAAC,CAAA;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,gDAAgD,EAAE,kBAAkB,CAAC,CAAA;IAC3F,CAAC;IACD,IAAI,MAAM,CAAC,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,wDAAwD,EAAE,kBAAkB,CAAC,CAAA;IACnG,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,qEAAqE,EAAE,kBAAkB,CAAC,CAAA;IAChH,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,wDAAwD,EAAE,kBAAkB,CAAC,CAAA;IACnG,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,gDAAgD,EAAE,kBAAkB,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC"} -\ No newline at end of file -+{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AA+CzE,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,KAAK;IACxB,kBAAkB,EAAE,KAAK;IACzB,uBAAuB,EAAE,qBAAqB;IAC9C,mBAAmB,EAAE,iBAAiB;IACtC,cAAc,EAAE,EAAE,GAAG,IAAI;CAC1B,CAAA;AAED,MAAM,UAAU,YAAY,CAAE,MAAc;IAC1C,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,sBAAsB,CAAC,sCAAsC,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAsB,CAAC,+CAA+C,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,sBAAsB,CAAC,gDAAgD,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,uBAAuB,GAAG,qBAAqB,EAAE,CAAC;QAC3D,MAAM,IAAI,sBAAsB,CAAC,wDAAwD,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAChE,MAAM,IAAI,sBAAsB,CAAC,qEAAqE,CAAC,CAAA;IACzG,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,sBAAsB,CAAC,wDAAwD,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAsB,CAAC,gDAAgD,CAAC,CAAA;IACpF,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts -index a9ad1e4..de64bbe 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts -@@ -1,18 +1,4 @@ --export declare const ERR_INVALID_FRAME = "ERR_INVALID_FRAME"; --export declare const ERR_UNREQUESTED_PING = "ERR_UNREQUESTED_PING"; --export declare const ERR_NOT_MATCHING_PING = "ERR_NOT_MATCHING_PING"; --export declare const ERR_STREAM_ALREADY_EXISTS = "ERR_STREAM_ALREADY_EXISTS"; --export declare const ERR_DECODE_INVALID_VERSION = "ERR_DECODE_INVALID_VERSION"; --export declare const ERR_BOTH_CLIENTS = "ERR_BOTH_CLIENTS"; --export declare const ERR_RECV_WINDOW_EXCEEDED = "ERR_RECV_WINDOW_EXCEEDED"; - export declare const PROTOCOL_ERRORS: Set; --export declare const ERR_INVALID_CONFIG = "ERR_INVALID_CONFIG"; --export declare const ERR_MUXER_LOCAL_CLOSED = "ERR_MUXER_LOCAL_CLOSED"; --export declare const ERR_MUXER_REMOTE_CLOSED = "ERR_MUXER_REMOTE_CLOSED"; --export declare const ERR_STREAM_RESET = "ERR_STREAM_RESET"; --export declare const ERR_STREAM_ABORT = "ERR_STREAM_ABORT"; --export declare const ERR_MAX_OUTBOUND_STREAMS_EXCEEDED = "ERROR_MAX_OUTBOUND_STREAMS_EXCEEDED"; --export declare const ERR_DECODE_IN_PROGRESS = "ERR_DECODE_IN_PROGRESS"; - /** - * INITIAL_STREAM_WINDOW is the initial stream window size. - * -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts.map -index 81d5aa8..6c1aae4 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AACtE,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAElE,eAAO,MAAM,eAAe,aAQ1B,CAAA;AAIF,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,iCAAiC,wCAAwC,CAAA;AACtF,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAA"} -\ No newline at end of file -+{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,aAQ1B,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js -index ddc9564..42f2d07 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js -@@ -1,28 +1,14 @@ - // Protocol violation errors --export const ERR_INVALID_FRAME = 'ERR_INVALID_FRAME'; --export const ERR_UNREQUESTED_PING = 'ERR_UNREQUESTED_PING'; --export const ERR_NOT_MATCHING_PING = 'ERR_NOT_MATCHING_PING'; --export const ERR_STREAM_ALREADY_EXISTS = 'ERR_STREAM_ALREADY_EXISTS'; --export const ERR_DECODE_INVALID_VERSION = 'ERR_DECODE_INVALID_VERSION'; --export const ERR_BOTH_CLIENTS = 'ERR_BOTH_CLIENTS'; --export const ERR_RECV_WINDOW_EXCEEDED = 'ERR_RECV_WINDOW_EXCEEDED'; -+import { BothClientsError, DecodeInvalidVersionError, InvalidFrameError, NotMatchingPingError, ReceiveWindowExceededError, StreamAlreadyExistsError, UnrequestedPingError } from './errors.js'; - export const PROTOCOL_ERRORS = new Set([ -- ERR_INVALID_FRAME, -- ERR_UNREQUESTED_PING, -- ERR_NOT_MATCHING_PING, -- ERR_STREAM_ALREADY_EXISTS, -- ERR_DECODE_INVALID_VERSION, -- ERR_BOTH_CLIENTS, -- ERR_RECV_WINDOW_EXCEEDED -+ InvalidFrameError.name, -+ UnrequestedPingError.name, -+ NotMatchingPingError.name, -+ StreamAlreadyExistsError.name, -+ DecodeInvalidVersionError.name, -+ BothClientsError.name, -+ ReceiveWindowExceededError.name - ]); --// local errors --export const ERR_INVALID_CONFIG = 'ERR_INVALID_CONFIG'; --export const ERR_MUXER_LOCAL_CLOSED = 'ERR_MUXER_LOCAL_CLOSED'; --export const ERR_MUXER_REMOTE_CLOSED = 'ERR_MUXER_REMOTE_CLOSED'; --export const ERR_STREAM_RESET = 'ERR_STREAM_RESET'; --export const ERR_STREAM_ABORT = 'ERR_STREAM_ABORT'; --export const ERR_MAX_OUTBOUND_STREAMS_EXCEEDED = 'ERROR_MAX_OUTBOUND_STREAMS_EXCEEDED'; --export const ERR_DECODE_IN_PROGRESS = 'ERR_DECODE_IN_PROGRESS'; - /** - * INITIAL_STREAM_WINDOW is the initial stream window size. - * -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js.map -index 6995fa2..46abbd8 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/constants.js.map -@@ -1 +1 @@ --{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAA;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,0BAA0B;IAC1B,gBAAgB;IAChB,wBAAwB;CACzB,CAAC,CAAA;AAEF,eAAe;AAEf,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,iCAAiC,GAAG,qCAAqC,CAAA;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA"} -\ No newline at end of file -+{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAE9L,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,iBAAiB,CAAC,IAAI;IACtB,oBAAoB,CAAC,IAAI;IACzB,oBAAoB,CAAC,IAAI;IACzB,wBAAwB,CAAC,IAAI;IAC7B,yBAAyB,CAAC,IAAI;IAC9B,gBAAgB,CAAC,IAAI;IACrB,0BAA0B,CAAC,IAAI;CAChC,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.d.ts.map -index ddcf0ad..c3a0e2e 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,KAAK,WAAW,EAA2C,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAM7C;;;;GAIG;AACH,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,GAAG,WAAW,CAU3D;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,2EAA2E;IAC3E,OAAO,CAAC,eAAe,CAAS;gBAEnB,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC;IAcxD;;;;;OAKG;IACK,UAAU,IAAK,cAAc,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC;IA4BpG,OAAO,CAAC,UAAU;YAiBJ,SAAS;CAoBxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAgBjE"} -\ No newline at end of file -+{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,KAAK,WAAW,EAA2C,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAM7C;;;;GAIG;AACH,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,GAAG,WAAW,CAU3D;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,2EAA2E;IAC3E,OAAO,CAAC,eAAe,CAAS;gBAEnB,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC;IAcxD;;;;;OAKG;IACK,UAAU,IAAK,cAAc,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC;IA4BpG,OAAO,CAAC,UAAU;YAiBJ,SAAS;CAoBxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAgBjE"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js -index b290624..58728fd 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js -@@ -1,6 +1,5 @@ --import { CodeError } from '@libp2p/interface'; - import { Uint8ArrayList } from 'uint8arraylist'; --import { ERR_DECODE_INVALID_VERSION, ERR_DECODE_IN_PROGRESS } from './constants.js'; -+import { InvalidFrameError, InvalidStateError } from './errors.js'; - import { FrameType, HEADER_LENGTH, YAMUX_VERSION } from './frame.js'; - // used to bitshift in decoding - // native bitshift can overflow into a negative number, so we bitshift by multiplying by a power of 2 -@@ -12,7 +11,7 @@ const twoPow24 = 2 ** 24; - */ - export function decodeHeader(data) { - if (data[0] !== YAMUX_VERSION) { -- throw new CodeError('Invalid frame version', ERR_DECODE_INVALID_VERSION); -+ throw new InvalidFrameError('Invalid frame version'); - } - return { - type: data[1], -@@ -79,7 +78,7 @@ export class Decoder { - // Sanity check to ensure a header isn't read when another frame is partially decoded - // In practice this shouldn't happen - if (this.frameInProgress) { -- throw new CodeError('decoding frame already in progress', ERR_DECODE_IN_PROGRESS); -+ throw new InvalidStateError('decoding frame already in progress'); - } - if (this.buffer.length < HEADER_LENGTH) { - // not enough data yet -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js.map -index 9ae2e29..853ffe8 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/decode.js.map -@@ -1 +1 @@ --{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts -new file mode 100644 -index 0000000..78554f6 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts -@@ -0,0 +1,33 @@ -+export declare class InvalidFrameError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class UnrequestedPingError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class NotMatchingPingError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class InvalidStateError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class StreamAlreadyExistsError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class DecodeInvalidVersionError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class BothClientsError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+export declare class ReceiveWindowExceededError extends Error { -+ static name: string; -+ constructor(message?: string); -+} -+//# sourceMappingURL=errors.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts.map -new file mode 100644 -index 0000000..7aad1b8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,SAAsB;gBAEpB,OAAO,SAA0B;CAI/C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,SAAyB;gBAEvB,OAAO,SAA2B;CAIhD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,SAAyB;gBAEvB,OAAO,SAA2B;CAIhD;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,SAAsB;gBAEpB,OAAO,SAAkB;CAIvC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,MAAM,CAAC,IAAI,SAA6B;gBAE3B,OAAO,SAA0B;CAI/C;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,MAAM,CAAC,IAAI,SAA8B;gBAE5B,OAAO,SAA2B;CAIhD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,CAAC,IAAI,SAAqB;gBAEnB,OAAO,SAAiB;CAItC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,IAAI,SAA+B;gBAE7B,OAAO,SAA4B;CAIjD"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js -new file mode 100644 -index 0000000..68c9fc7 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js -@@ -0,0 +1,57 @@ -+export class InvalidFrameError extends Error { -+ static name = 'InvalidFrameError'; -+ constructor(message = 'The frame was invalid') { -+ super(message); -+ this.name = 'InvalidFrameError'; -+ } -+} -+export class UnrequestedPingError extends Error { -+ static name = 'UnrequestedPingError'; -+ constructor(message = 'Unrequested ping error') { -+ super(message); -+ this.name = 'UnrequestedPingError'; -+ } -+} -+export class NotMatchingPingError extends Error { -+ static name = 'NotMatchingPingError'; -+ constructor(message = 'Unrequested ping error') { -+ super(message); -+ this.name = 'NotMatchingPingError'; -+ } -+} -+export class InvalidStateError extends Error { -+ static name = 'InvalidStateError'; -+ constructor(message = 'Invalid state') { -+ super(message); -+ this.name = 'InvalidStateError'; -+ } -+} -+export class StreamAlreadyExistsError extends Error { -+ static name = 'StreamAlreadyExistsError'; -+ constructor(message = 'Strean already exists') { -+ super(message); -+ this.name = 'StreamAlreadyExistsError'; -+ } -+} -+export class DecodeInvalidVersionError extends Error { -+ static name = 'DecodeInvalidVersionError'; -+ constructor(message = 'Decode invalid version') { -+ super(message); -+ this.name = 'DecodeInvalidVersionError'; -+ } -+} -+export class BothClientsError extends Error { -+ static name = 'BothClientsError'; -+ constructor(message = 'Both clients') { -+ super(message); -+ this.name = 'BothClientsError'; -+ } -+} -+export class ReceiveWindowExceededError extends Error { -+ static name = 'ReceiveWindowExceededError'; -+ constructor(message = 'Receive window exceeded') { -+ super(message); -+ this.name = 'ReceiveWindowExceededError'; -+ } -+} -+//# sourceMappingURL=errors.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js.map -new file mode 100644 -index 0000000..987ed82 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/errors.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAA;IAEjC,YAAa,OAAO,GAAG,uBAAuB;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;;AAGH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,GAAG,sBAAsB,CAAA;IAEpC,YAAa,OAAO,GAAG,wBAAwB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;;AAGH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,MAAM,CAAC,IAAI,GAAG,sBAAsB,CAAA;IAEpC,YAAa,OAAO,GAAG,wBAAwB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;;AAGH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAA;IAEjC,YAAa,OAAO,GAAG,eAAe;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;;AAGH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,MAAM,CAAC,IAAI,GAAG,0BAA0B,CAAA;IAExC,YAAa,OAAO,GAAG,uBAAuB;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;;AAGH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,MAAM,CAAC,IAAI,GAAG,2BAA2B,CAAA;IAEzC,YAAa,OAAO,GAAG,wBAAwB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;;AAGH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAEhC,YAAa,OAAO,GAAG,cAAc;QACnC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAE1C,YAAa,OAAO,GAAG,yBAAyB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts -index 8b9d7f0..be2692e 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts -@@ -1,3 +1,4 @@ -+import { serviceCapabilities } from '@libp2p/interface'; - import { type Pushable } from 'it-pushable'; - import { Uint8ArrayList } from 'uint8arraylist'; - import { type Config } from './config.js'; -@@ -13,6 +14,8 @@ export declare class Yamux implements StreamMuxerFactory { - private readonly _components; - private readonly _init; - constructor(components: YamuxMuxerComponents, init?: YamuxMuxerInit); -+ readonly [Symbol.toStringTag] = "@chainsafe/libp2p-yamux"; -+ readonly [serviceCapabilities]: string[]; - createStreamMuxer(init?: YamuxMuxerInit): YamuxMuxer; - } - export interface CloseOptions extends AbortOptions { -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts.map -index 2859b2e..bb74393 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js -index ec5b5d3..6eeb7a3 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js -@@ -1,11 +1,12 @@ --import { CodeError, setMaxListeners } from '@libp2p/interface'; -+import { InvalidParametersError, MuxerClosedError, TooManyOutboundProtocolStreamsError, serviceCapabilities, setMaxListeners } from '@libp2p/interface'; - import { getIterator } from 'get-iterator'; - import { pushable } from 'it-pushable'; - import { Uint8ArrayList } from 'uint8arraylist'; - import { defaultConfig, verifyConfig } from './config.js'; --import { ERR_BOTH_CLIENTS, ERR_INVALID_FRAME, ERR_MAX_OUTBOUND_STREAMS_EXCEEDED, ERR_MUXER_LOCAL_CLOSED, ERR_MUXER_REMOTE_CLOSED, ERR_NOT_MATCHING_PING, ERR_STREAM_ALREADY_EXISTS, ERR_UNREQUESTED_PING, PROTOCOL_ERRORS } from './constants.js'; -+import { PROTOCOL_ERRORS } from './constants.js'; - import { Decoder } from './decode.js'; - import { encodeHeader } from './encode.js'; -+import { InvalidFrameError, NotMatchingPingError, UnrequestedPingError } from './errors.js'; - import { Flag, FrameType, GoAwayCode } from './frame.js'; - import { StreamState, YamuxStream } from './stream.js'; - const YAMUX_PROTOCOL_ID = '/yamux/1.0.0'; -@@ -18,6 +19,10 @@ export class Yamux { - this._components = components; - this._init = init; - } -+ [Symbol.toStringTag] = '@chainsafe/libp2p-yamux'; -+ [serviceCapabilities] = [ -+ '@libp2p/stream-multiplexing' -+ ]; - createStreamMuxer(init) { - return new YamuxMuxer(this._components, { - ...this._init, -@@ -101,8 +106,7 @@ export class YamuxMuxer { - } - catch (err) { - // either a protocol or internal error -- const errCode = err.code; -- if (PROTOCOL_ERRORS.has(errCode)) { -+ if (PROTOCOL_ERRORS.has(err.name)) { - this.log?.error('protocol error in sink', err); - reason = GoAwayCode.ProtocolError; - } -@@ -138,16 +142,16 @@ export class YamuxMuxer { - } - newStream(name) { - if (this.remoteGoAway !== undefined) { -- throw new CodeError('muxer closed remotely', ERR_MUXER_REMOTE_CLOSED); -+ throw new MuxerClosedError('Muxer closed remotely'); - } - if (this.localGoAway !== undefined) { -- throw new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED); -+ throw new MuxerClosedError('Muxer closed locally'); - } - const id = this.nextStreamID; - this.nextStreamID += 2; - // check against our configured maximum number of outbound streams - if (this.numOutboundStreams >= this.config.maxOutboundStreams) { -- throw new CodeError('max outbound streams exceeded', ERR_MAX_OUTBOUND_STREAMS_EXCEEDED); -+ throw new TooManyOutboundProtocolStreamsError('max outbound streams exceeded'); - } - this.log?.trace('new outgoing stream id=%s', id); - const stream = this._newStream(id, name, StreamState.Init, 'outbound'); -@@ -167,10 +171,10 @@ export class YamuxMuxer { - */ - async ping() { - if (this.remoteGoAway !== undefined) { -- throw new CodeError('muxer closed remotely', ERR_MUXER_REMOTE_CLOSED); -+ throw new MuxerClosedError('Muxer closed remotely'); - } - if (this.localGoAway !== undefined) { -- throw new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED); -+ throw new MuxerClosedError('Muxer closed locally'); - } - // An active ping does not yet exist, handle the process here - if (this.activePing === undefined) { -@@ -181,7 +185,7 @@ export class YamuxMuxer { - // this promise awaits resolution or the close controller aborting - promise: new Promise((resolve, reject) => { - const closed = () => { -- reject(new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED)); -+ reject(new MuxerClosedError('Muxer closed locally')); - }; - this.closeController.signal.addEventListener('abort', closed, { once: true }); - _resolve = () => { -@@ -281,7 +285,7 @@ export class YamuxMuxer { - /** Create a new stream */ - _newStream(id, name, state, direction) { - if (this._streams.get(id) != null) { -- throw new CodeError('Stream already exists', ERR_STREAM_ALREADY_EXISTS, { id }); -+ throw new InvalidParametersError('Stream already exists with that id'); - } - const stream = new YamuxStream({ - id: id.toString(), -@@ -350,7 +354,7 @@ export class YamuxMuxer { - } - default: - // Invalid state -- throw new CodeError('Invalid frame type', ERR_INVALID_FRAME, { header }); -+ throw new InvalidFrameError('Invalid frame type'); - } - } - else { -@@ -363,7 +367,7 @@ export class YamuxMuxer { - } - default: - // Invalid state -- throw new CodeError('Invalid frame type', ERR_INVALID_FRAME, { header }); -+ throw new InvalidFrameError('Invalid frame type'); - } - } - } -@@ -379,17 +383,17 @@ export class YamuxMuxer { - } - else { - // Invalid state -- throw new CodeError('Invalid frame flag', ERR_INVALID_FRAME, { header }); -+ throw new InvalidFrameError('Invalid frame flag'); - } - } - handlePingResponse(pingId) { - if (this.activePing === undefined) { - // this ping was not requested -- throw new CodeError('ping not requested', ERR_UNREQUESTED_PING); -+ throw new UnrequestedPingError('ping not requested'); - } - if (this.activePing.id !== pingId) { - // this ping doesn't match our active ping request -- throw new CodeError('ping doesn\'t match our id', ERR_NOT_MATCHING_PING); -+ throw new NotMatchingPingError('ping doesn\'t match our id'); - } - // valid ping response - this.activePing.resolve(); -@@ -441,7 +445,7 @@ export class YamuxMuxer { - } - incomingStream(id) { - if (this.client !== (id % 2 === 0)) { -- throw new CodeError('both endpoints are clients', ERR_BOTH_CLIENTS); -+ throw new InvalidParametersError('Both endpoints are clients'); - } - if (this._streams.has(id)) { - return; -@@ -479,7 +483,7 @@ export class YamuxMuxer { - this.log?.trace('sending frame %o', header); - if (header.type === FrameType.Data) { - if (data === undefined) { -- throw new CodeError('invalid frame', ERR_INVALID_FRAME); -+ throw new InvalidFrameError('Invalid frame'); - } - this.source.push(new Uint8ArrayList(encodeHeader(header), data)); - } -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js.map -index 3afa4ab..2b10694 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/muxer.js.map -@@ -1 +1 @@ --{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"muxer.js","sourceRoot":"","sources":["../../src/muxer.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.d.ts.map -index cc64eb9..6486734 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.d.ts.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGvF,OAAO,EAAQ,KAAK,WAAW,EAA4B,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,WAAW,IAAA;IACX,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC3D,MAAM,IAAI,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,yEAAyE;AACzE,qBAAa,WAAY,SAAQ,cAAc;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;IAElB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,4CAA4C;IAC5C,OAAO,CAAC,kBAAkB,CAAQ;IAClC,sEAAsE;IACtE,OAAO,CAAC,wBAAwB,CAAC,CAAY;IAE7C,gEAAgE;IAChE,OAAO,CAAC,UAAU,CAAQ;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAQ;IAElC;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;gBAEnE,IAAI,EAAE,eAAe;IA0BlC;;;;;;OAMG;IACG,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACG,QAAQ,CAAE,GAAG,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/E;;OAEG;IACG,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IASjC;;;OAGG;IACG,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;IAUtC;;;OAGG;IACG,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;;;OAIG;IACG,yBAAyB,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3E;;OAEG;IACH,kBAAkB,CAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAa9C;;OAEG;IACG,UAAU,CAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9F;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,gBAAgB,IAAK,IAAI;CAkC1B"} -\ No newline at end of file -+{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAIvF,OAAO,EAAQ,KAAK,WAAW,EAA4B,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,WAAW,IAAA;IACX,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC3D,MAAM,IAAI,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,yEAAyE;AACzE,qBAAa,WAAY,SAAQ,cAAc;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;IAElB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,4CAA4C;IAC5C,OAAO,CAAC,kBAAkB,CAAQ;IAClC,sEAAsE;IACtE,OAAO,CAAC,wBAAwB,CAAC,CAAY;IAE7C,gEAAgE;IAChE,OAAO,CAAC,UAAU,CAAQ;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAQ;IAElC;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;gBAEnE,IAAI,EAAE,eAAe;IA0BlC;;;;;;OAMG;IACG,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACG,QAAQ,CAAE,GAAG,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/E;;OAEG;IACG,SAAS,IAAK,OAAO,CAAC,IAAI,CAAC;IASjC;;;OAGG;IACG,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;IAUtC;;;OAGG;IACG,aAAa,IAAK,OAAO,CAAC,IAAI,CAAC;IAIrC;;;;OAIG;IACG,yBAAyB,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3E;;OAEG;IACH,kBAAkB,CAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAa9C;;OAEG;IACG,UAAU,CAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9F;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,gBAAgB,IAAK,IAAI;CAkC1B"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js -index 5b28564..6096431 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js -@@ -1,7 +1,8 @@ --import { CodeError } from '@libp2p/interface'; -+import { AbortError } from '@libp2p/interface'; - import { AbstractStream } from '@libp2p/utils/abstract-stream'; - import each from 'it-foreach'; --import { ERR_RECV_WINDOW_EXCEEDED, ERR_STREAM_ABORT, INITIAL_STREAM_WINDOW } from './constants.js'; -+import { INITIAL_STREAM_WINDOW } from './constants.js'; -+import { ReceiveWindowExceededError } from './errors.js'; - import { Flag, FrameType, HEADER_LENGTH } from './frame.js'; - export var StreamState; - (function (StreamState) { -@@ -137,7 +138,7 @@ export class YamuxStream extends AbstractStream { - let reject; - const abort = () => { - if (this.status === 'open' || this.status === 'closing') { -- reject(new CodeError('stream aborted', ERR_STREAM_ABORT)); -+ reject(new AbortError('Stream aborted')); - } - else { - // the stream was closed already, ignore the failure to send -@@ -180,7 +181,7 @@ export class YamuxStream extends AbstractStream { - this.processFlags(header.flag); - // check that our recv window is not exceeded - if (this.recvWindowCapacity < header.length) { -- throw new CodeError('receive window exceeded', ERR_RECV_WINDOW_EXCEEDED, { available: this.recvWindowCapacity, recv: header.length }); -+ throw new ReceiveWindowExceededError('Receive window exceeded'); - } - const data = await readData(); - this.recvWindowCapacity -= header.length; -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js.map -index 93bddc8..cc3a8e7 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js.map -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/src/stream.js.map -@@ -1 +1 @@ --{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAA2B,MAAM,+BAA+B,CAAA;AACvF,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,IAAI,EAAoB,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK7E,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,6CAAI,CAAA;IACJ,mDAAO,CAAA;IACP,2DAAW,CAAA;IACX,2DAAW,CAAA;IACX,qDAAQ,CAAA;AACV,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAUD,yEAAyE;AACzE,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,IAAI,CAAS;IACb,KAAK,CAAa;IAED,MAAM,CAAQ;IACd,GAAG,CAAQ;IAE5B,4CAA4C;IACpC,kBAAkB,CAAQ;IAClC,sEAAsE;IAC9D,wBAAwB,CAAa;IAE7C,gEAAgE;IACxD,UAAU,CAAQ;IAC1B,+CAA+C;IACvC,kBAAkB,CAAQ;IAElC;;;;OAIG;IACK,UAAU,CAAQ;IACT,MAAM,CAAc;IAEpB,SAAS,CAAsD;IAEhF,YAAa,IAAqB;QAChC,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAA;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAA;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAE/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa;IAEnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,GAAmB,EAAE,UAAwB,EAAE;QAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;QAEnB,6CAA6C;QAC7C,OAAO,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,qCAAqC;YACrC,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACxE,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;gBAE7C,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACrF,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBACzE,OAAM;gBACR,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACxG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YAEjC,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,IAAI,CAAC,GAAG;gBAClB,MAAM,EAAE,MAAM;aACf,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;YAE1B,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAA;YAEjC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,YAAY;YAC5B,IAAI,EAAE,IAAI,CAAC,GAAG;YACd,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM,EAAE,CAAC;SACV,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,YAAY;YAC5B,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM,EAAE,CAAC;SACV,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;IAEnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,yBAAyB,CAAE,UAAwB,EAAE;QACzD,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAChC,OAAM;QACR,CAAC;QAED,IAAI,OAAmB,CAAA;QACvB,IAAI,MAA4B,CAAA;QAChC,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAC1C,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAA;QACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAEhD,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;gBAC5C,IAAI,CAAC,wBAAwB,GAAG,GAAG,EAAE;oBACnC,QAAQ,EAAE,CAAA;gBACZ,CAAC,CAAA;gBACD,MAAM,GAAG,OAAO,CAAA;gBAChB,OAAO,GAAG,QAAQ,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAE,MAAmB;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAChE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE9B,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACzC,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,CAAA;QACxC,uFAAuF;QACvF,IAAI,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAA;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAE,MAAmB,EAAE,QAAuC;QAC5E,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE9B,6CAA6C;QAC7C,IAAI,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,0BAA0B,CAAC,yBAAyB,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;QAC7B,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,CAAA;QAExC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED;;OAEG;IACK,YAAY,CAAE,KAAa;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,CAAA;YACtC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,YAAY;QAClB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,IAAI;gBACnB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAA;gBAChC,OAAO,IAAI,CAAC,GAAG,CAAA;YACjB,KAAK,WAAW,CAAC,WAAW;gBAC1B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,WAAW,CAAA;gBACpC,OAAO,IAAI,CAAC,GAAG,CAAA;YACjB;gBACE,OAAO,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAEjC,6CAA6C;QAC7C,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QACzB,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YAC/D,iFAAiF;YACjF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAClF,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9D,+BAA+B;YAC/B,OAAM;QACR,CAAC;QAED,4BAA4B;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACvD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAA;QAEzC,yBAAyB;QACzB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;QAErB,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,YAAY;YAC5B,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;IACJ,CAAC;CACF"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts -new file mode 100644 -index 0000000..b4e5636 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=codec.bench.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts.map -new file mode 100644 -index 0000000..73758eb ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.bench.d.ts","sourceRoot":"","sources":["../../../test/bench/codec.bench.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js -new file mode 100644 -index 0000000..84f5ae8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js -@@ -0,0 +1,46 @@ -+import { itBench } from '@dapplion/benchmark'; -+import { decodeHeader } from '../../src/decode.js'; -+import { encodeHeader } from '../../src/encode.js'; -+import { Flag, FrameType } from '../../src/frame.js'; -+import { decodeHeaderNaive, encodeHeaderNaive } from '../codec.util.js'; -+describe('codec benchmark', () => { -+ for (const { encode, name } of [ -+ { encode: encodeHeader, name: 'encodeFrameHeader' }, -+ { encode: encodeHeaderNaive, name: 'encodeFrameHeaderNaive' } -+ ]) { -+ itBench({ -+ id: `frame header - ${name}`, -+ timeoutBench: 100000000, -+ beforeEach: () => { -+ return { -+ type: FrameType.WindowUpdate, -+ flag: Flag.ACK, -+ streamID: 0xffffffff, -+ length: 0xffffffff -+ }; -+ }, -+ fn: (header) => { -+ encode(header); -+ } -+ }); -+ } -+ for (const { decode, name } of [ -+ { decode: decodeHeader, name: 'decodeHeader' }, -+ { decode: decodeHeaderNaive, name: 'decodeHeaderNaive' } -+ ]) { -+ itBench({ -+ id: `frame header ${name}`, -+ beforeEach: () => { -+ const header = new Uint8Array(12); -+ for (let i = 1; i < 12; i++) { -+ header[i] = 255; -+ } -+ return header; -+ }, -+ fn: (header) => { -+ decode(header); -+ } -+ }); -+ } -+}); -+//# sourceMappingURL=codec.bench.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js.map -new file mode 100644 -index 0000000..79117ac ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/codec.bench.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.bench.js","sourceRoot":"","sources":["../../../test/bench/codec.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEvE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;QAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACnD,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,wBAAwB,EAAE;KAC9D,EAAE,CAAC;QACF,OAAO,CAAyB;YAC9B,EAAE,EAAE,kBAAkB,IAAI,EAAE;YAC5B,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,GAAG,EAAE;gBACf,OAAO;oBACL,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,IAAI,EAAE,IAAI,CAAC,GAAG;oBACd,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,UAAU;iBACnB,CAAA;YACH,CAAC;YACD,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBACb,MAAM,CAAC,MAAM,CAAC,CAAA;YAChB,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;QAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE;QAC9C,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE;KACzD,EAAE,CAAC;QACF,OAAO,CAAwB;YAC7B,EAAE,EAAE,gBAAgB,IAAI,EAAE;YAC1B,UAAU,EAAE,GAAG,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;gBACjB,CAAC;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;YACD,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBACb,MAAM,CAAC,MAAM,CAAC,CAAA;YAChB,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts -new file mode 100644 -index 0000000..cb9667d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=comparison.bench.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts.map -new file mode 100644 -index 0000000..c29eccd ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"comparison.bench.d.ts","sourceRoot":"","sources":["../../../test/bench/comparison.bench.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js -new file mode 100644 -index 0000000..19512e4 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js -@@ -0,0 +1,36 @@ -+import { itBench } from '@dapplion/benchmark'; -+import drain from 'it-drain'; -+import { pipe } from 'it-pipe'; -+import { testClientServer as testMplexClientServer } from '../mplex.util.js'; -+import { testClientServer as testYamuxClientServer } from '../util.js'; -+describe('comparison benchmark', () => { -+ for (const { impl, name } of [ -+ { impl: testYamuxClientServer, name: 'yamux' }, -+ { impl: testMplexClientServer, name: 'mplex' } -+ ]) { -+ for (const { numMessages, msgSize } of [ -+ { numMessages: 1, msgSize: 2 ** 6 }, -+ { numMessages: 1, msgSize: 2 ** 10 }, -+ { numMessages: 1, msgSize: 2 ** 16 }, -+ { numMessages: 1, msgSize: 2 ** 20 }, -+ { numMessages: 1000, msgSize: 2 ** 6 }, -+ { numMessages: 1000, msgSize: 2 ** 10 }, -+ { numMessages: 1000, msgSize: 2 ** 16 }, -+ { numMessages: 1000, msgSize: 2 ** 20 } -+ ]) { -+ itBench({ -+ id: `${name} send and receive ${numMessages} ${msgSize / 1024}KB chunks`, -+ beforeEach: () => impl({ -+ onIncomingStream: (stream) => { -+ void pipe(stream, drain).then(async () => { await stream.close(); }); -+ } -+ }), -+ fn: async ({ client, server }) => { -+ const stream = await client.newStream(); -+ await pipe(Array.from({ length: numMessages }, () => new Uint8Array(msgSize)), stream, drain); -+ } -+ }); -+ } -+ } -+}); -+//# sourceMappingURL=comparison.bench.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js.map -new file mode 100644 -index 0000000..5ca068d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/bench/comparison.bench.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"comparison.bench.js","sourceRoot":"","sources":["../../../test/bench/comparison.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEtE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC3B,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;QAC9C,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,EAAE;KAC/C,EAAE,CAAC;QACF,KAAK,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI;YACrC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YACnC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;YACtC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;SACxC,EAAE,CAAC;YACF,OAAO,CAAqC;gBAC1C,EAAE,EAAE,GAAG,IAAI,qBAAqB,WAAW,IAAI,OAAO,GAAG,IAAI,WAAW;gBACxE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;oBACrB,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;wBAC3B,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;oBACrE,CAAC;iBACF,CAAC;gBACF,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;oBAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;oBACvC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;gBAC/F,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts -new file mode 100644 -index 0000000..633c753 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=codec.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts.map -new file mode 100644 -index 0000000..9645478 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.spec.d.ts","sourceRoot":"","sources":["../../test/codec.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js -new file mode 100644 -index 0000000..4d61ce2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js -@@ -0,0 +1,28 @@ -+import { expect } from 'aegir/chai'; -+import { decodeHeader } from '../src/decode.js'; -+import { encodeHeader } from '../src/encode.js'; -+import { Flag, FrameType, GoAwayCode, stringifyHeader } from '../src/frame.js'; -+import { decodeHeaderNaive, encodeHeaderNaive } from './codec.util.js'; -+const frames = [ -+ { header: { type: FrameType.Ping, flag: Flag.SYN, streamID: 0, length: 1 } }, -+ { header: { type: FrameType.WindowUpdate, flag: Flag.SYN, streamID: 1, length: 1 } }, -+ { header: { type: FrameType.GoAway, flag: 0, streamID: 0, length: GoAwayCode.NormalTermination } }, -+ { header: { type: FrameType.Ping, flag: Flag.ACK, streamID: 0, length: 100 } }, -+ { header: { type: FrameType.WindowUpdate, flag: 0, streamID: 99, length: 1000 } }, -+ { header: { type: FrameType.WindowUpdate, flag: 0, streamID: 0xffffffff, length: 0xffffffff } }, -+ { header: { type: FrameType.GoAway, flag: 0, streamID: 0, length: GoAwayCode.ProtocolError } } -+]; -+describe('codec', () => { -+ for (const { header } of frames) { -+ it(`should round trip encode/decode header ${stringifyHeader(header)}`, () => { -+ expect(decodeHeader(encodeHeader(header))).to.deep.equal(header); -+ }); -+ } -+ for (const { header } of frames) { -+ it(`should match naive implementations of encode/decode for header ${stringifyHeader(header)}`, () => { -+ expect(encodeHeader(header)).to.deep.equal(encodeHeaderNaive(header)); -+ expect(decodeHeader(encodeHeader(header))).to.deep.equal(decodeHeaderNaive(encodeHeaderNaive(header))); -+ }); -+ } -+}); -+//# sourceMappingURL=codec.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js.map -new file mode 100644 -index 0000000..772f8f2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.spec.js","sourceRoot":"","sources":["../../test/codec.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAoB,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,MAAM,MAAM,GAAsD;IAChE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IAC5E,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IACpF,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,iBAAiB,EAAE,EAAE;IAClG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;IAC9E,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IACjF,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAC/F,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE;CAC/F,CAAA;AAED,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAChC,EAAE,CAAC,0CAA0C,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;YAC3E,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAChC,EAAE,CAAC,kEAAkE,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;YACnG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;YACrE,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxG,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts -new file mode 100644 -index 0000000..8b9852f ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts -@@ -0,0 +1,4 @@ -+import { type FrameHeader } from '../src/frame.js'; -+export declare function decodeHeaderNaive(data: Uint8Array): FrameHeader; -+export declare function encodeHeaderNaive(header: FrameHeader): Uint8Array; -+//# sourceMappingURL=codec.util.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts.map -new file mode 100644 -index 0000000..af7bf64 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.util.d.ts","sourceRoot":"","sources":["../../test/codec.util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAgC,MAAM,iBAAiB,CAAA;AAIhF,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,UAAU,GAAG,WAAW,CAYhE;AAED,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAclE"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js -new file mode 100644 -index 0000000..b989960 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js -@@ -0,0 +1,27 @@ -+import { InvalidFrameError } from '../src/errors.js'; -+import { HEADER_LENGTH, YAMUX_VERSION } from '../src/frame.js'; -+// Slower encode / decode functions that use dataview -+export function decodeHeaderNaive(data) { -+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength); -+ if (view.getUint8(0) !== YAMUX_VERSION) { -+ throw new InvalidFrameError('Invalid frame version'); -+ } -+ return { -+ type: view.getUint8(1), -+ flag: view.getUint16(2, false), -+ streamID: view.getUint32(4, false), -+ length: view.getUint32(8, false) -+ }; -+} -+export function encodeHeaderNaive(header) { -+ const frame = new Uint8Array(HEADER_LENGTH); -+ const frameView = new DataView(frame.buffer, frame.byteOffset, frame.byteLength); -+ // always assume version 0 -+ // frameView.setUint8(0, header.version) -+ frameView.setUint8(1, header.type); -+ frameView.setUint16(2, header.flag, false); -+ frameView.setUint32(4, header.streamID, false); -+ frameView.setUint32(8, header.length, false); -+ return frame; -+} -+//# sourceMappingURL=codec.util.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js.map -new file mode 100644 -index 0000000..a261962 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/codec.util.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"codec.util.js","sourceRoot":"","sources":["../../test/codec.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAoB,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEhF,qDAAqD;AAErD,MAAM,UAAU,iBAAiB,CAAE,IAAgB;IACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAExE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;IACtD,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;QAClC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;KACjC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,MAAmB;IACpD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAEhF,0BAA0B;IAC1B,wCAAwC;IAExC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAClC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1C,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC9C,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAE5C,OAAO,KAAK,CAAA;AACd,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts -new file mode 100644 -index 0000000..dac08d9 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=compliance.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts.map -new file mode 100644 -index 0000000..dc9e719 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"compliance.spec.d.ts","sourceRoot":"","sources":["../../test/compliance.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js -new file mode 100644 -index 0000000..92fc32e ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js -@@ -0,0 +1,15 @@ -+/* eslint-env mocha */ -+import tests from '@libp2p/interface-compliance-tests/stream-muxer'; -+import { defaultLogger } from '@libp2p/logger'; -+import { TestYamux } from './util.js'; -+describe('compliance', () => { -+ tests({ -+ async setup() { -+ return new TestYamux({ -+ logger: defaultLogger() -+ }); -+ }, -+ async teardown() { } -+ }); -+}); -+//# sourceMappingURL=compliance.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js.map -new file mode 100644 -index 0000000..20a514a ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/compliance.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"compliance.spec.js","sourceRoot":"","sources":["../../test/compliance.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,KAAK,MAAM,iDAAiD,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,KAAK,CAAC;QACJ,KAAK,CAAC,KAAK;YACT,OAAO,IAAI,SAAS,CAAC;gBACnB,MAAM,EAAE,aAAa,EAAE;aACxB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,QAAQ,KAAK,CAAC;KACrB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts -new file mode 100644 -index 0000000..07a9f5c ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts -@@ -0,0 +1,2 @@ -+export declare const randomRanges: (length: number) => number[][]; -+//# sourceMappingURL=decode.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts.map -new file mode 100644 -index 0000000..39c0c82 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decode.spec.d.ts","sourceRoot":"","sources":["../../test/decode.spec.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAAM,EAAE,EAUrD,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js -new file mode 100644 -index 0000000..419e242 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js -@@ -0,0 +1,297 @@ -+/* eslint-disable @typescript-eslint/dot-notation */ -+import { expect } from 'aegir/chai'; -+import { pushable } from 'it-pushable'; -+import { Decoder } from '../src/decode.js'; -+import { encodeHeader } from '../src/encode.js'; -+import { Flag, FrameType, GoAwayCode } from '../src/frame.js'; -+import { timeout } from './util.js'; -+const frames = [ -+ { header: { type: FrameType.Ping, flag: Flag.SYN, streamID: 0, length: 1 } }, -+ { header: { type: FrameType.WindowUpdate, flag: Flag.SYN, streamID: 1, length: 1 } }, -+ { header: { type: FrameType.GoAway, flag: 0, streamID: 0, length: GoAwayCode.NormalTermination } }, -+ { header: { type: FrameType.Ping, flag: Flag.ACK, streamID: 0, length: 100 } }, -+ { header: { type: FrameType.WindowUpdate, flag: 0, streamID: 99, length: 1000 } }, -+ { header: { type: FrameType.GoAway, flag: 0, streamID: 0, length: GoAwayCode.ProtocolError } } -+]; -+const data = (length) => Uint8Array.from(Array.from({ length }), (_, i) => i); -+const expectEqualBytes = (actual, expected, reason) => { -+ expect(actual instanceof Uint8Array ? actual : actual.subarray(), reason).to.deep.equal(expected instanceof Uint8Array ? expected : expected.subarray()); -+}; -+const expectEqualDataFrame = (actual, expected, reason = '') => { -+ expect(actual.header, reason + ' header').to.deep.equal(expected.header); -+ if (actual.data == null && expected.data != null) { -+ expect.fail('actual has no data but expected does'); -+ } -+ if (actual.data != null && expected.data == null) { -+ expect.fail('actual has data but expected does not'); -+ } -+ if (actual.data != null && expected.data != null) { -+ expectEqualBytes(actual.data, expected.data, reason + ' data?: string'); -+ } -+}; -+const expectEqualDataFrames = (actual, expected) => { -+ if (actual.length !== expected.length) { -+ expect.fail('actual'); -+ } -+ for (let i = 0; i < actual.length; i++) { -+ expectEqualDataFrame(actual[i], expected[i], String(i)); -+ } -+}; -+const dataFrame = (length) => ({ -+ header: { type: FrameType.Data, flag: 0, streamID: 1, length }, -+ data: data(length) -+}); -+export const randomRanges = (length) => { -+ const indices = []; -+ let i = 0; -+ let j = 0; -+ while (i < length) { -+ j = i; -+ i += Math.floor(Math.random() * length); -+ indices.push([j, i]); -+ } -+ return indices; -+}; -+describe('Decoder internals', () => { -+ describe('readHeader', () => { -+ const frame = frames[0]; -+ const p = pushable(); -+ const d = new Decoder(p); -+ afterEach(() => { -+ d['buffer'].consume(d['buffer'].length); -+ }); -+ it('should handle an empty buffer', async () => { -+ expect(d['buffer'].length, 'a freshly created decoder should have an empty buffer').to.equal(0); -+ expect(d['readHeader'](), 'an empty buffer should read no header').to.equal(undefined); -+ }); -+ it('should handle buffer length == header length', async () => { -+ d['buffer'].append(encodeHeader(frame.header)); -+ expect(d['readHeader'](), 'the decoded header should match the input').to.deep.equal(frame.header); -+ expect(d['buffer'].length, 'the buffer should be fully drained').to.equal(0); -+ }); -+ it('should handle buffer length < header length', async () => { -+ const upTo = 2; -+ d['buffer'].append(encodeHeader(frame.header).slice(0, upTo)); -+ expect(d['readHeader'](), 'an buffer that has insufficient bytes should read no header').to.equal(undefined); -+ expect(d['buffer'].length, 'a buffer that has insufficient bytes should not be consumed').to.equal(upTo); -+ d['buffer'].append(encodeHeader(frame.header).slice(upTo)); -+ expect(d['readHeader'](), 'the decoded header should match the input').to.deep.equal(frame.header); -+ expect(d['buffer'].length, 'the buffer should be fully drained').to.equal(0); -+ }); -+ it('should handle buffer length > header length', async () => { -+ const more = 10; -+ d['buffer'].append(encodeHeader(frame.header)); -+ d['buffer'].append(new Uint8Array(more)); -+ expect(d['readHeader'](), 'the decoded header should match the input').to.deep.equal(frame.header); -+ expect(d['buffer'].length, 'the buffer should be partially drained').to.equal(more); -+ }); -+ }); -+ describe('readBytes', () => { -+ const p = pushable(); -+ const d = new Decoder(p); -+ afterEach(() => { -+ d['buffer'].consume(d['buffer'].length); -+ }); -+ it('should handle buffer length == requested length', async () => { -+ const requested = 10; -+ d['buffer'].append(data(requested)); -+ let actual; -+ try { -+ actual = await Promise.race([timeout(1), d['readBytes'](requested)]); -+ } -+ catch (e) { -+ expect.fail('readBytes timed out'); -+ } -+ expectEqualBytes(actual, data(requested), 'read bytes should equal input'); -+ expect(d['buffer'].length, 'buffer should be drained').to.deep.equal(0); -+ }); -+ it('should handle buffer length > requested length', async () => { -+ const requested = 10; -+ d['buffer'].append(data(requested * 2)); -+ let actual; -+ try { -+ actual = await Promise.race([timeout(1), d['readBytes'](requested)]); -+ } -+ catch (e) { -+ expect.fail('readBytes timed out'); -+ } -+ expectEqualBytes(actual, data(requested), 'read bytes should equal input'); -+ expect(d['buffer'].length, 'buffer should be partially drained').to.deep.equal(requested); -+ }); -+ it('should handle buffer length < requested length, data available', async () => { -+ const requested = 10; -+ p.push(data(requested)); -+ let actual; -+ try { -+ actual = await Promise.race([timeout(10), d['readBytes'](requested)]); -+ } -+ catch (e) { -+ expect.fail('readBytes timed out'); -+ } -+ expectEqualBytes(actual, data(requested), 'read bytes should equal input'); -+ expect(d['buffer'].length, 'buffer should be drained').to.deep.equal(0); -+ }); -+ it('should handle buffer length < requested length, data not available', async () => { -+ const requested = 10; -+ p.push(data(requested - 1)); -+ try { -+ await Promise.race([timeout(10), d['readBytes'](requested)]); -+ expect.fail('readBytes should not resolve until the source + buffer have enough bytes'); -+ } -+ catch (e) { -+ } -+ }); -+ }); -+}); -+describe('Decoder', () => { -+ describe('emitFrames', () => { -+ let p; -+ let d; -+ beforeEach(() => { -+ p = pushable(); -+ d = new Decoder(p); -+ }); -+ it('should emit frames from source chunked by frame', async () => { -+ const expected = []; -+ for (const [i, frame] of frames.entries()) { -+ p.push(encodeHeader(frame.header)); -+ expected.push(frame); -+ // sprinkle in more data frames -+ if (i % 2 === 1) { -+ const df = dataFrame(i * 100); -+ p.push(encodeHeader(df.header)); -+ p.push(df.data); -+ expected.push(df); -+ } -+ } -+ p.end(); -+ const actual = []; -+ for await (const frame of d.emitFrames()) { -+ if (frame.readData === undefined) { -+ actual.push(frame); -+ } -+ else { -+ actual.push({ header: frame.header, data: await frame.readData() }); -+ } -+ } -+ expectEqualDataFrames(actual, expected); -+ }); -+ it('should emit frames from source chunked by partial frame', async () => { -+ const chunkSize = 5; -+ const expected = []; -+ for (const [i, frame] of frames.entries()) { -+ const encoded = encodeHeader(frame.header); -+ for (let i = 0; i < encoded.length; i += chunkSize) { -+ p.push(encoded.slice(i, i + chunkSize)); -+ } -+ expected.push(frame); -+ // sprinkle in more data frames -+ if (i % 2 === 1) { -+ const df = dataFrame(i * 100); -+ const encoded = Uint8Array.from([...encodeHeader(df.header), ...df.data]); -+ for (let i = 0; i < encoded.length; i += chunkSize) { -+ p.push(encoded.slice(i, i + chunkSize)); -+ } -+ expected.push(df); -+ } -+ } -+ p.end(); -+ const actual = []; -+ for await (const frame of d.emitFrames()) { -+ if (frame.readData === undefined) { -+ actual.push(frame); -+ } -+ else { -+ actual.push({ header: frame.header, data: await frame.readData() }); -+ } -+ } -+ expect(p.readableLength).to.equal(0); -+ expectEqualDataFrames(actual, expected); -+ }); -+ it('should emit frames from source chunked by multiple frames', async () => { -+ const expected = []; -+ for (let i = 0; i < frames.length; i++) { -+ const encoded1 = encodeHeader(frames[i].header); -+ expected.push(frames[i]); -+ i++; -+ const encoded2 = encodeHeader(frames[i].header); -+ expected.push(frames[i]); -+ // sprinkle in more data frames -+ const df = dataFrame(i * 100); -+ const encoded3 = Uint8Array.from([...encodeHeader(df.header), ...df.data]); -+ expected.push(df); -+ const encodedChunk = new Uint8Array(encoded1.length + encoded2.length + encoded3.length); -+ encodedChunk.set(encoded1, 0); -+ encodedChunk.set(encoded2, encoded1.length); -+ encodedChunk.set(encoded3, encoded1.length + encoded2.length); -+ p.push(encodedChunk); -+ } -+ p.end(); -+ const actual = []; -+ for await (const frame of d.emitFrames()) { -+ if (frame.readData === undefined) { -+ actual.push(frame); -+ } -+ else { -+ actual.push({ header: frame.header, data: await frame.readData() }); -+ } -+ } -+ expectEqualDataFrames(actual, expected); -+ }); -+ it('should emit frames from source chunked chaoticly', async () => { -+ const expected = []; -+ const encodedFrames = []; -+ for (const [i, frame] of frames.entries()) { -+ encodedFrames.push(encodeHeader(frame.header)); -+ expected.push(frame); -+ // sprinkle in more data frames -+ if (i % 2 === 1) { -+ const df = dataFrame(i * 100); -+ encodedFrames.push(encodeHeader(df.header)); -+ encodedFrames.push(df.data); -+ expected.push(df); -+ } -+ } -+ // create a single byte array of all frames to send -+ // so that we can chunk them chaoticly -+ const encoded = new Uint8Array(encodedFrames.reduce((a, b) => a + b.length, 0)); -+ let i = 0; -+ for (const e of encodedFrames) { -+ encoded.set(e, i); -+ i += e.length; -+ } -+ for (const [i, j] of randomRanges(encoded.length)) { -+ p.push(encoded.slice(i, j)); -+ } -+ p.end(); -+ const actual = []; -+ for await (const frame of d.emitFrames()) { -+ if (frame.readData === undefined) { -+ actual.push(frame); -+ } -+ else { -+ actual.push({ header: frame.header, data: await frame.readData() }); -+ } -+ } -+ expectEqualDataFrames(actual, expected); -+ }); -+ it('should error decoding frame while another decode is in progress', async () => { -+ const df1 = dataFrame(100); -+ p.push(encodeHeader(df1.header)); -+ p.push(df1.data); -+ const df2 = dataFrame(100); -+ p.push(encodeHeader(df2.header)); -+ p.push(df2.data); -+ try { -+ for await (const frame of d.emitFrames()) { -+ void frame; -+ } -+ expect.fail('decoding another frame before the first is finished should error'); -+ } -+ catch (e) { -+ expect(e).to.have.property('name', 'InvalidStateError'); -+ } -+ }); -+ }); -+}); -+//# sourceMappingURL=decode.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js.map -new file mode 100644 -index 0000000..b429593 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/decode.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decode.spec.js","sourceRoot":"","sources":["../../test/decode.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts -new file mode 100644 -index 0000000..f0903d1 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts -@@ -0,0 +1,28 @@ -+import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface'; -+import type { Source, Transform } from 'it-stream-types'; -+export declare function testYamuxMuxer(name: string, client: boolean, conf?: StreamMuxerInit): StreamMuxer; -+/** -+ * Create a transform that can be paused and unpaused -+ */ -+export declare function pauseableTransform(): { -+ transform: Transform, AsyncGenerator>; -+ pause(): void; -+ unpause(): void; -+}; -+export declare function testClientServer(conf?: StreamMuxerInit): { -+ client: StreamMuxer & { -+ pauseRead(): void; -+ unpauseRead(): void; -+ pauseWrite(): void; -+ unpauseWrite(): void; -+ }; -+ server: StreamMuxer & { -+ pauseRead(): void; -+ unpauseRead(): void; -+ pauseWrite(): void; -+ unpauseWrite(): void; -+ }; -+}; -+export declare function timeout(ms: number): Promise; -+export declare function sleep(ms: number): Promise; -+//# sourceMappingURL=mplex.util.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts.map -new file mode 100644 -index 0000000..100dcf8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"mplex.util.d.ts","sourceRoot":"","sources":["../../test/mplex.util.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAMxD,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,eAAoB,GAAG,WAAW,CAKtG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,CAAC,KAAM;IAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CAsBhI;AAED,wBAAgB,gBAAgB,CAAE,IAAI,GAAE,eAAoB,GAAG;IAC7D,MAAM,EAAE,WAAW,GAAG;QACpB,SAAS,IAAI,IAAI,CAAA;QACjB,WAAW,IAAI,IAAI,CAAA;QACnB,UAAU,IAAI,IAAI,CAAA;QAClB,YAAY,IAAI,IAAI,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,WAAW,GAAG;QACpB,SAAS,IAAI,IAAI,CAAA;QACjB,WAAW,IAAI,IAAI,CAAA;QACnB,UAAU,IAAI,IAAI,CAAA;QAClB,YAAY,IAAI,IAAI,CAAA;KACrB,CAAA;CACF,CA0BA;AAED,wBAAsB,OAAO,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3D;AAED,wBAAsB,KAAK,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzD"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js -new file mode 100644 -index 0000000..e4116a5 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js -@@ -0,0 +1,72 @@ -+import { defaultLogger } from '@libp2p/logger'; -+import { mplex } from '@libp2p/mplex'; -+import { duplexPair } from 'it-pair/duplex'; -+import { pipe } from 'it-pipe'; -+import {} from 'uint8arraylist'; -+const factory = mplex()({ -+ logger: defaultLogger() -+}); -+export function testYamuxMuxer(name, client, conf = {}) { -+ return factory.createStreamMuxer({ -+ ...conf, -+ direction: client ? 'outbound' : 'inbound' -+ }); -+} -+/** -+ * Create a transform that can be paused and unpaused -+ */ -+export function pauseableTransform() { -+ let resolvePausePromise; -+ let pausePromise; -+ const unpause = () => { -+ resolvePausePromise?.(null); -+ }; -+ const pause = () => { -+ pausePromise = new Promise(resolve => { -+ resolvePausePromise = resolve; -+ }); -+ }; -+ const transform = async function* (source) { -+ for await (const d of source) { -+ if (pausePromise !== undefined) { -+ await pausePromise; -+ pausePromise = undefined; -+ resolvePausePromise = undefined; -+ } -+ yield d; -+ } -+ }; -+ return { transform, pause, unpause }; -+} -+export function testClientServer(conf = {}) { -+ const pair = duplexPair(); -+ const client = testYamuxMuxer('libp2p:mplex:client', true, conf); -+ const server = testYamuxMuxer('libp2p:mplex:server', false, conf); -+ const clientReadTransform = pauseableTransform(); -+ const clientWriteTransform = pauseableTransform(); -+ const serverReadTransform = pauseableTransform(); -+ const serverWriteTransform = pauseableTransform(); -+ void pipe(pair[0], clientReadTransform.transform, client, clientWriteTransform.transform, pair[0]); -+ void pipe(pair[1], serverReadTransform.transform, server, serverWriteTransform.transform, pair[1]); -+ return { -+ client: Object.assign(client, { -+ pauseRead: clientReadTransform.pause, -+ unpauseRead: clientReadTransform.unpause, -+ pauseWrite: clientWriteTransform.pause, -+ unpauseWrite: clientWriteTransform.unpause -+ }), -+ server: Object.assign(server, { -+ pauseRead: serverReadTransform.pause, -+ unpauseRead: serverReadTransform.unpause, -+ pauseWrite: serverWriteTransform.pause, -+ unpauseWrite: serverWriteTransform.unpause -+ }) -+ }; -+} -+export async function timeout(ms) { -+ return new Promise((_resolve, reject) => setTimeout(() => { reject(new Error(`timeout after ${ms}ms`)); }, ms)); -+} -+export async function sleep(ms) { -+ return new Promise(resolve => setTimeout(() => { resolve(ms); }, ms)); -+} -+//# sourceMappingURL=mplex.util.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js.map -new file mode 100644 -index 0000000..543cad8 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/mplex.util.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"mplex.util.js","sourceRoot":"","sources":["../../test/mplex.util.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts -new file mode 100644 -index 0000000..5855d5d ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=muxer.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts.map -new file mode 100644 -index 0000000..cb814f4 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"muxer.spec.d.ts","sourceRoot":"","sources":["../../test/muxer.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js -new file mode 100644 -index 0000000..985763c ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js -@@ -0,0 +1,117 @@ -+/* eslint-env mocha */ -+import { expect } from 'aegir/chai'; -+import { duplexPair } from 'it-pair/duplex'; -+import { pipe } from 'it-pipe'; -+import {} from 'uint8arraylist'; -+import { sleep, testClientServer, testYamuxMuxer } from './util.js'; -+describe('muxer', () => { -+ let client; -+ let server; -+ afterEach(async () => { -+ if (client != null) { -+ await client.close(); -+ } -+ if (server != null) { -+ await server.close(); -+ } -+ }); -+ it('test repeated close', async () => { -+ const client1 = testYamuxMuxer('libp2p:yamux:1', true); -+ // inspect logs to ensure its only closed once -+ await client1.close(); -+ await client1.close(); -+ await client1.close(); -+ }); -+ it('test client<->client', async () => { -+ const pair = duplexPair(); -+ const client1 = testYamuxMuxer('libp2p:yamux:1', true); -+ const client2 = testYamuxMuxer('libp2p:yamux:2', true); -+ void pipe(pair[0], client1, pair[0]); -+ void pipe(pair[1], client2, pair[1]); -+ client1.newStream(); -+ client2.newStream(); -+ await sleep(20); -+ expect(client1.isClosed()).to.equal(true); -+ expect(client2.isClosed()).to.equal(true); -+ }); -+ it('test server<->server', async () => { -+ const pair = duplexPair(); -+ const client1 = testYamuxMuxer('libp2p:yamux:1', false); -+ const client2 = testYamuxMuxer('libp2p:yamux:2', false); -+ void pipe(pair[0], client1, pair[0]); -+ void pipe(pair[1], client2, pair[1]); -+ client1.newStream(); -+ client2.newStream(); -+ await sleep(20); -+ expect(client1.isClosed()).to.equal(true); -+ expect(client2.isClosed()).to.equal(true); -+ }); -+ it('test ping', async () => { -+ ({ client, server } = testClientServer()); -+ server.pauseRead(); -+ const clientRTT = client.ping(); -+ await sleep(10); -+ server.unpauseRead(); -+ expect(await clientRTT).to.not.equal(0); -+ server.pauseWrite(); -+ const serverRTT = server.ping(); -+ await sleep(10); -+ server.unpauseWrite(); -+ expect(await serverRTT).to.not.equal(0); -+ }); -+ it('test multiple simultaneous pings', async () => { -+ ({ client, server } = testClientServer()); -+ client.pauseWrite(); -+ const promise = [ -+ client.ping(), -+ client.ping(), -+ client.ping() -+ ]; -+ await sleep(10); -+ client.unpauseWrite(); -+ const clientRTTs = await Promise.all(promise); -+ expect(clientRTTs[0]).to.not.equal(0); -+ expect(clientRTTs[0]).to.equal(clientRTTs[1]); -+ expect(clientRTTs[1]).to.equal(clientRTTs[2]); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(client['nextPingID']).to.equal(1); -+ await client.close(); -+ }); -+ it('test go away', async () => { -+ ({ client, server } = testClientServer()); -+ await client.close(); -+ expect(() => { -+ client.newStream(); -+ }).to.throw().with.property('name', 'MuxerClosedError', 'should not be able to open a stream after close'); -+ }); -+ it('test keep alive', async () => { -+ ({ client, server } = testClientServer({ enableKeepAlive: true, keepAliveInterval: 10 })); -+ await sleep(1000); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(client['nextPingID']).to.be.gt(2); -+ await client.close(); -+ await server.close(); -+ }); -+ it('test max inbound streams', async () => { -+ ({ client, server } = testClientServer({ maxInboundStreams: 1 })); -+ client.newStream(); -+ client.newStream(); -+ await sleep(10); -+ expect(server.streams.length).to.equal(1); -+ expect(client.streams.length).to.equal(1); -+ }); -+ it('test max outbound streams', async () => { -+ ({ client, server } = testClientServer({ maxOutboundStreams: 1 })); -+ client.newStream(); -+ await sleep(10); -+ try { -+ client.newStream(); -+ expect.fail('stream creation should fail if exceeding maxOutboundStreams'); -+ } -+ catch (e) { -+ expect(server.streams.length).to.equal(1); -+ expect(client.streams.length).to.equal(1); -+ } -+ }); -+}); -+//# sourceMappingURL=muxer.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js.map -new file mode 100644 -index 0000000..9ced80e ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/muxer.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"muxer.spec.js","sourceRoot":"","sources":["../../test/muxer.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts -new file mode 100644 -index 0000000..2ce8297 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=stream.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts.map -new file mode 100644 -index 0000000..77bed14 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"stream.spec.d.ts","sourceRoot":"","sources":["../../test/stream.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js -new file mode 100644 -index 0000000..24e2b31 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js -@@ -0,0 +1,200 @@ -+/* eslint-env mocha */ -+import { expect } from 'aegir/chai'; -+import { pipe } from 'it-pipe'; -+import { pushable } from 'it-pushable'; -+import { defaultConfig } from '../src/config.js'; -+import { GoAwayCode } from '../src/frame.js'; -+import { StreamState } from '../src/stream.js'; -+import { sleep, testClientServer } from './util.js'; -+describe('stream', () => { -+ let client; -+ let server; -+ afterEach(async () => { -+ if (client != null) { -+ await client.close(); -+ } -+ if (server != null) { -+ await server.close(); -+ } -+ }); -+ it('test send data - small', async () => { -+ ({ client, server } = testClientServer({ initialStreamWindowSize: defaultConfig.initialStreamWindowSize })); -+ const { default: drain } = await import('it-drain'); -+ const p = pushable(); -+ const c1 = client.newStream(); -+ await sleep(10); -+ const s1 = server.streams[0]; -+ const sendPipe = pipe(p, c1); -+ const recvPipe = pipe(s1, drain); -+ for (let i = 0; i < 10; i++) { -+ p.push(new Uint8Array(256)); -+ } -+ p.end(); -+ await Promise.all([sendPipe, recvPipe]); -+ // the window capacities should have refilled via window updates as received data was consumed -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(c1['sendWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(s1['recvWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ }); -+ it('test send data - large', async () => { -+ ({ client, server } = testClientServer({ initialStreamWindowSize: defaultConfig.initialStreamWindowSize })); -+ const { default: drain } = await import('it-drain'); -+ const p = pushable(); -+ const c1 = client.newStream(); -+ await sleep(10); -+ const s1 = server.streams[0]; -+ const sendPipe = pipe(p, c1); -+ const recvPipe = pipe(s1, drain); -+ // amount of data is greater than initial window size -+ // and each payload is also greater than the max message size -+ // this will payload chunking and also waiting for window updates before continuing to send -+ for (let i = 0; i < 10; i++) { -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ } -+ p.end(); -+ await Promise.all([sendPipe, recvPipe]); -+ // the window capacities should have refilled via window updates as received data was consumed -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(c1['sendWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(s1['recvWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ }); -+ it('test send data - large with increasing recv window size', async () => { -+ ({ client, server } = testClientServer({ initialStreamWindowSize: defaultConfig.initialStreamWindowSize })); -+ const { default: drain } = await import('it-drain'); -+ const p = pushable(); -+ const c1 = client.newStream(); -+ server.pauseWrite(); -+ void server.ping(); -+ await sleep(10); -+ server.unpauseWrite(); -+ const s1 = server.streams[0]; -+ const sendPipe = pipe(p, c1); -+ const recvPipe = pipe(s1, drain); -+ // amount of data is greater than initial window size -+ // and each payload is also greater than the max message size -+ // this will payload chunking and also waiting for window updates before continuing to send -+ for (let i = 0; i < 10; i++) { -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ } -+ p.end(); -+ await Promise.all([sendPipe, recvPipe]); -+ // the window capacities should have refilled via window updates as received data was consumed -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(c1['sendWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ expect(s1['recvWindowCapacity']).to.be.gte(defaultConfig.initialStreamWindowSize); -+ }); -+ it('test many streams', async () => { -+ ({ client, server } = testClientServer()); -+ for (let i = 0; i < 1000; i++) { -+ client.newStream(); -+ } -+ await sleep(100); -+ expect(client.streams.length).to.equal(1000); -+ expect(server.streams.length).to.equal(1000); -+ }); -+ it('test many streams - ping pong', async () => { -+ ({ client, server } = testClientServer({ -+ // echo on incoming streams -+ onIncomingStream: (stream) => { void pipe(stream, stream); } -+ })); -+ const numStreams = 10; -+ const p = []; -+ for (let i = 0; i < numStreams; i++) { -+ client.newStream(); -+ p.push(pushable()); -+ } -+ await sleep(100); -+ for (let i = 0; i < numStreams; i++) { -+ const s = client.streams[i]; -+ void pipe(p[i], s); -+ p[i].push(new Uint8Array(16)); -+ } -+ await sleep(100); -+ expect(client.streams.length).to.equal(numStreams); -+ expect(server.streams.length).to.equal(numStreams); -+ await client.close(); -+ }); -+ it('test stream close', async () => { -+ ({ client, server } = testClientServer()); -+ const c1 = client.newStream(); -+ await c1.close(); -+ await sleep(5); -+ expect(c1.state).to.equal(StreamState.Finished); -+ const s1 = server.streams[0]; -+ expect(s1).to.not.be.undefined(); -+ expect(s1.state).to.equal(StreamState.SYNReceived); -+ }); -+ it('test stream close read', async () => { -+ ({ client, server } = testClientServer()); -+ const c1 = client.newStream(); -+ await c1.closeRead(); -+ await sleep(5); -+ const s1 = server.streams[0]; -+ expect(s1).to.not.be.undefined(); -+ expect(s1.readStatus).to.equal('ready'); -+ expect(s1.writeStatus).to.equal('ready'); -+ }); -+ it('test stream close write', async () => { -+ ({ client, server } = testClientServer()); -+ const c1 = client.newStream(); -+ await c1.closeWrite(); -+ await sleep(5); -+ expect(c1.readStatus).to.equal('ready'); -+ expect(c1.writeStatus).to.equal('closed'); -+ const s1 = server.streams[0]; -+ expect(s1).to.not.be.undefined(); -+ expect(s1.readStatus).to.equal('closed'); -+ expect(s1.writeStatus).to.equal('ready'); -+ }); -+ it('test window overflow', async () => { -+ ({ client, server } = testClientServer({ maxMessageSize: defaultConfig.initialStreamWindowSize, initialStreamWindowSize: defaultConfig.initialStreamWindowSize })); -+ const { default: drain } = await import('it-drain'); -+ const p = pushable(); -+ const c1 = client.newStream(); -+ await sleep(10); -+ const s1 = server.streams[0]; -+ const sendPipe = pipe(p, c1); -+ const c1SendData = c1.sendData.bind(c1); -+ c1.sendData = async (data) => { -+ await c1SendData(data); -+ // eslint-disable-next-line @typescript-eslint/dot-notation -+ c1['sendWindowCapacity'] = defaultConfig.initialStreamWindowSize * 10; -+ }; -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ await sleep(10); -+ const recvPipe = pipe(s1, drain); -+ p.end(); -+ try { -+ await Promise.all([sendPipe, recvPipe]); -+ } -+ catch (e) { -+ expect(e).to.have.property('name', 'ReceiveWindowExceededError'); -+ } -+ expect(client).to.have.property('remoteGoAway', GoAwayCode.ProtocolError); -+ expect(server).to.have.property('localGoAway', GoAwayCode.ProtocolError); -+ }); -+ it('test stream sink error', async () => { -+ ({ client, server } = testClientServer()); -+ // don't let the server respond -+ server.pauseRead(); -+ const p = pushable(); -+ const c1 = client.newStream(); -+ const sendPipe = pipe(p, c1); -+ // send more data than the window size, will trigger a wait -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ p.push(new Uint8Array(defaultConfig.initialStreamWindowSize)); -+ await sleep(10); -+ // the client should fail to close gracefully because there is unsent data -+ // that will never be sent -+ await client.close({ -+ signal: AbortSignal.timeout(10) -+ }); -+ p.end(); -+ await sendPipe; -+ }); -+}); -+//# sourceMappingURL=stream.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js.map -new file mode 100644 -index 0000000..7145483 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/stream.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"stream.spec.js","sourceRoot":"","sources":["../../test/stream.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts -new file mode 100644 -index 0000000..01e449e ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts -@@ -0,0 +1,36 @@ -+import { Yamux, YamuxMuxer, type YamuxMuxerInit } from '../src/muxer.js'; -+import type { Config } from '../src/config.js'; -+import type { Source, Transform } from 'it-stream-types'; -+export declare const testConf: Partial; -+/** -+ * Yamux must be configured with a client setting `client` to true -+ * and a server setting `client` to falsey -+ * -+ * Since the compliance tests create a dialer and listener, -+ * manually alternate setting `client` to true and false -+ */ -+export declare class TestYamux extends Yamux { -+ createStreamMuxer(init?: YamuxMuxerInit): YamuxMuxer; -+} -+export declare function testYamuxMuxer(name: string, client: boolean, conf?: YamuxMuxerInit): YamuxMuxer; -+/** -+ * Create a transform that can be paused and unpaused -+ */ -+export declare function pauseableTransform(): { -+ transform: Transform, AsyncGenerator>; -+ pause(): void; -+ unpause(): void; -+}; -+export interface YamuxFixture extends YamuxMuxer { -+ pauseRead(): void; -+ unpauseRead(): void; -+ pauseWrite(): void; -+ unpauseWrite(): void; -+} -+export declare function testClientServer(conf?: YamuxMuxerInit): { -+ client: YamuxFixture; -+ server: YamuxFixture; -+}; -+export declare function timeout(ms: number): Promise; -+export declare function sleep(ms: number): Promise; -+//# sourceMappingURL=util.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts.map -new file mode 100644 -index 0000000..e0a07d9 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../test/util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAWxD,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,MAAM,CAEpC,CAAA;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,iBAAiB,CAAE,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU;CAItD;AAED,wBAAgB,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,UAAU,CAQpG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,CAAC,KAAM;IAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CAsBhI;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,SAAS,IAAI,IAAI,CAAA;IACjB,WAAW,IAAI,IAAI,CAAA;IACnB,UAAU,IAAI,IAAI,CAAA;IAClB,YAAY,IAAI,IAAI,CAAA;CACrB;AAED,wBAAgB,gBAAgB,CAAE,IAAI,GAAE,cAAmB,GAAG;IAC5D,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;CACrB,CA0BA;AAED,wBAAsB,OAAO,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3D;AAED,wBAAsB,KAAK,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzD"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js -new file mode 100644 -index 0000000..e157153 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js -@@ -0,0 +1,96 @@ -+import { prefixLogger } from '@libp2p/logger'; -+import { duplexPair } from 'it-pair/duplex'; -+import { pipe } from 'it-pipe'; -+import {} from 'uint8arraylist'; -+import { Yamux, YamuxMuxer } from '../src/muxer.js'; -+const isClient = (() => { -+ let client = false; -+ return () => { -+ const isClient = !client; -+ client = isClient; -+ return isClient; -+ }; -+})(); -+export const testConf = { -+ enableKeepAlive: false -+}; -+/** -+ * Yamux must be configured with a client setting `client` to true -+ * and a server setting `client` to falsey -+ * -+ * Since the compliance tests create a dialer and listener, -+ * manually alternate setting `client` to true and false -+ */ -+export class TestYamux extends Yamux { -+ createStreamMuxer(init) { -+ const client = isClient(); -+ return super.createStreamMuxer({ ...testConf, ...init, direction: client ? 'outbound' : 'inbound' }); -+ } -+} -+export function testYamuxMuxer(name, client, conf = {}) { -+ return new YamuxMuxer({ -+ logger: prefixLogger(name) -+ }, { -+ ...testConf, -+ ...conf, -+ direction: client ? 'outbound' : 'inbound' -+ }); -+} -+/** -+ * Create a transform that can be paused and unpaused -+ */ -+export function pauseableTransform() { -+ let resolvePausePromise; -+ let pausePromise; -+ const unpause = () => { -+ resolvePausePromise?.(null); -+ }; -+ const pause = () => { -+ pausePromise = new Promise(resolve => { -+ resolvePausePromise = resolve; -+ }); -+ }; -+ const transform = async function* (source) { -+ for await (const d of source) { -+ if (pausePromise !== undefined) { -+ await pausePromise; -+ pausePromise = undefined; -+ resolvePausePromise = undefined; -+ } -+ yield d; -+ } -+ }; -+ return { transform, pause, unpause }; -+} -+export function testClientServer(conf = {}) { -+ const pair = duplexPair(); -+ const client = testYamuxMuxer('client', true, conf); -+ const server = testYamuxMuxer('server', false, conf); -+ const clientReadTransform = pauseableTransform(); -+ const clientWriteTransform = pauseableTransform(); -+ const serverReadTransform = pauseableTransform(); -+ const serverWriteTransform = pauseableTransform(); -+ void pipe(pair[0], clientReadTransform.transform, client, clientWriteTransform.transform, pair[0]); -+ void pipe(pair[1], serverReadTransform.transform, server, serverWriteTransform.transform, pair[1]); -+ return { -+ client: Object.assign(client, { -+ pauseRead: clientReadTransform.pause, -+ unpauseRead: clientReadTransform.unpause, -+ pauseWrite: clientWriteTransform.pause, -+ unpauseWrite: clientWriteTransform.unpause -+ }), -+ server: Object.assign(server, { -+ pauseRead: serverReadTransform.pause, -+ unpauseRead: serverReadTransform.unpause, -+ pauseWrite: serverWriteTransform.pause, -+ unpauseWrite: serverWriteTransform.unpause -+ }) -+ }; -+} -+export async function timeout(ms) { -+ return new Promise((_resolve, reject) => setTimeout(() => { reject(new Error(`timeout after ${ms}ms`)); }, ms)); -+} -+export async function sleep(ms) { -+ return new Promise(resolve => setTimeout(() => { resolve(ms); }, ms)); -+} -+//# sourceMappingURL=util.js.map -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js.map b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js.map -new file mode 100644 -index 0000000..0371ce2 ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/test/util.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"util.js","sourceRoot":"","sources":["../../test/util.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/tsconfig.tsbuildinfo b/node_modules/@chainsafe/libp2p-yamux/dist/tsconfig.tsbuildinfo -new file mode 100644 -index 0000000..3fc08ac ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/dist/tsconfig.tsbuildinfo -@@ -0,0 +1 @@ -+{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/multiformats/dist/src/bases/interface.d.ts","../node_modules/multiformats/dist/src/block/interface.d.ts","../node_modules/multiformats/dist/src/hashes/interface.d.ts","../node_modules/multiformats/dist/src/link/interface.d.ts","../node_modules/multiformats/dist/src/cid.d.ts","../node_modules/uint8arraylist/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/keys/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-id/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/dns-over-https.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/dns-json-over-https.d.ts","../node_modules/@multiformats/dns/dist/src/resolvers/index.d.ts","../node_modules/progress-events/dist/src/index.d.ts","../node_modules/@multiformats/dns/dist/src/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/resolvers/dnsaddr.d.ts","../node_modules/@multiformats/multiaddr/dist/src/resolvers/index.d.ts","../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../node_modules/it-stream-types/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-info/index.d.ts","../node_modules/@libp2p/interface/dist/src/content-routing/index.d.ts","../node_modules/@libp2p/interface/dist/src/event-target.d.ts","../node_modules/@libp2p/interface/dist/src/metrics/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-routing/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-store/index.d.ts","../node_modules/@libp2p/interface/dist/src/startable.d.ts","../node_modules/@libp2p/interface/dist/src/stream-handler/index.d.ts","../node_modules/@libp2p/interface/dist/src/topology/index.d.ts","../node_modules/@libp2p/interface/dist/src/stream-muxer/index.d.ts","../node_modules/@libp2p/interface/dist/src/transport/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection-encrypter/index.d.ts","../node_modules/@libp2p/interface/dist/src/connection-gater/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-discovery/index.d.ts","../node_modules/@libp2p/interface/dist/src/peer-store/tags.d.ts","../node_modules/it-pushable/dist/src/index.d.ts","../node_modules/@libp2p/interface/dist/src/pubsub/index.d.ts","../node_modules/@libp2p/interface/dist/src/record/index.d.ts","../node_modules/@libp2p/interface/dist/src/errors.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@libp2p/interface/dist/src/events.d.ts","../node_modules/@libp2p/interface/dist/src/index.d.ts","../src/errors.ts","../src/constants.ts","../src/config.ts","../src/frame.ts","../src/decode.ts","../src/encode.ts","../node_modules/get-iterator/dist/src/index.d.ts","../node_modules/@libp2p/logger/dist/src/index.d.ts","../node_modules/@libp2p/utils/dist/src/abstract-stream.d.ts","../node_modules/it-foreach/dist/src/index.d.ts","../src/stream.ts","../src/muxer.ts","../src/index.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-as-promised/index.d.ts","../node_modules/chai-parentheses/index.d.ts","../node_modules/@types/chai-subset/index.d.ts","../node_modules/chai-bites/index.d.ts","../node_modules/@types/chai-string/index.d.ts","../node_modules/aegir/dist/utils/chai.d.ts","../test/codec.util.ts","../test/codec.spec.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/index.d.ts","../node_modules/@libp2p/interface-compliance-tests/dist/src/stream-muxer/index.d.ts","../node_modules/it-pair/dist/src/duplex.d.ts","../node_modules/it-pipe/dist/src/index.d.ts","../test/util.ts","../test/compliance.spec.ts","../test/decode.spec.ts","../node_modules/@libp2p/mplex/dist/src/message-types.d.ts","../node_modules/@libp2p/mplex/dist/src/stream.d.ts","../node_modules/@libp2p/mplex/dist/src/mplex.d.ts","../node_modules/@libp2p/mplex/dist/src/index.d.ts","../test/mplex.util.ts","../test/muxer.spec.ts","../node_modules/it-drain/dist/src/index.d.ts","../test/stream.spec.ts","../node_modules/@dapplion/benchmark/lib/utils/mochacliexports.d.ts","../node_modules/@dapplion/benchmark/lib/types.d.ts","../node_modules/@dapplion/benchmark/lib/mochaplugin/runbenchfn.d.ts","../node_modules/@dapplion/benchmark/lib/mochaplugin/index.d.ts","../node_modules/@dapplion/benchmark/lib/index.d.ts","../test/bench/codec.bench.ts","../test/bench/comparison.bench.ts","../node_modules/keyv/src/index.d.ts","../node_modules/@types/http-cache-semantics/index.d.ts","../node_modules/@types/responselike/index.d.ts","../node_modules/@types/cacheable-request/index.d.ts","../node_modules/@types/ms/index.d.ts","../node_modules/@types/debug/index.d.ts","../node_modules/@types/dns-packet/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/keyv/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/mocha/index.d.ts","../node_modules/@types/murmurhash3js-revisited/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/retry/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/strip-bom/index.d.ts","../node_modules/@types/strip-json-comments/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts","../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"db88e2781075c7bca86634724f38a132de718ddf3a470a3a2cdb182f4364af9e","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","370079895f1acdd4bb5194a403c85bf60cfbb2654bced9430a6c7210e7246be8","90240231e730deed31569f6c686766a538e4a024bbc33ea1738fe924f477ba61","552223520e823223ee13c5764e9b69b1819c985818a8bcda435d8d1dbd909bee","49b7c3ddd683c09aa437dd92681699387441f522524b14d2331ce494a9bf2f27","d35b5db21a04a45ae6323c4d4b25acc983dfe2870fc670fd05249eb19d839a5e","637b97f727f21c07a73f09130dc7bf5ac94d04511b179b5eb3e9a4d85a16147a","51720c0374406647b50f84f24c7b623f1d01e1955f7e929da7c5c0629b4390ad","5212dd78d1d63ab33332c8846a0ea5ce248159e74033cde16de48373036b4704","954b3c04ee9f94ca1e262f3e5a6e833b0da0066514b3d4b97b92b7f0c85f8700","a2fc9ce1ae5bed7068d701d8aeebf13321de0f42c217dc2e10f1622dcaa53a7f","8e81f220cb935d551e88cff11541d5e89d3a3494a52fe6247e98016a9dbd4c2d","6b2576a04253626ba41b7dc7ec5977bec07f3b6952b16249d9fa8a3a0d79901c","9de17491f2bfbccea92500e174079d53bdedae34dbebe5d4a12a06ab09814710","e88481085a8576fa52efc913e631c1a833d16179486469b8538d8c4fab2f7381","aec68502c8f4ffaecb4440b37363473582fec0bfee4fb8668a87daa7f700f708","d71577e78c7a4257074aaf82f595724175210c89e8b467ef82f949a6cbd891bc","cf548af8b03cbbc79fdc4f357b5560f618c6d2f68c8688e6eb759c3c11d962c3","c84146dbc9d2e5f43d2cbf15485a4eabf90219dbb66c0d481f20f12d3851bffc","9dc5a1d8f09f9faf21207253a92b461190d59c81ee12c9ac612630e699749990","99c24f331c9f4e75a779b9a988e942442db3cf29923ceb820d3bdd4ed1edfef2","25b1f20d5868ef9ef18132f7dd76b40b7038688ff7c56c58930537a8dff9f231","4105fa0ecfaffb578c8051c3de22e8c984191aac8de14641ee99beed9c5e5bd9","af080582e94b991e099383c1da15f189ca240c12ff5e2338344b7263ab10e305","8c92080253bac0506d82b83d555a029582595f0944abb349954ea732322baa5c","45d4c8d63a67224af62bebff18da32bb2817e306c9fd9e5d1dac6ef8d2da7ead","230eb449f719119cab1728252f20ecdd36d7a20cef659e4a51ada1a232a8aaad","5f264ca312dfcbf23917febc8d7a73ef5be9c248af605939de1c7c4129aa65f2","c1c7b50665ce0b8aa4b95f3843167ac7ac25d1f724d77c2a07b597abb9cf394c","1bf687d978bdd6d5aff10b9eb0ff0695179f8594d4446946fd0182d6d25fa433","ec26029e3a4eccf8ee79d5c76093fbe928cedc83d813fca9be4f055d61530013","e0ff6a627dfbfb9d32e49f34879a763680e37758c509ddd809cb316b96f34390","2113d72680c7ddad6d3b6f70a29432a35c074c94ec6823a7c16ccd69847d965c","c8ffd61bf2db2e7bccb996dd70c9499805cb338f1b1c781987e38ba99dd5b296","55e5a976b594dc02f054860fb59a5299872a5b3c8c90e96733a5c9c9d4ed1fb8","fac83d4c6898d5bf90c508cc84409ded40fdc14611cf42d7fb750fb2c7847979","1668310e691181966c371fce881c88cb1c2e65ac832ef5470434ad926998da2f","4f1eb6b9c2b666278e09019281953fc4ecadad3b2ba2781b2602445743eaaeca","b0c64c942cb2e55bf49e513dfe46ae15b85754829d6639d1ab69a56c388cc2eb","e142fda89ed689ea53d6f2c93693898464c7d29a0ae71c6dc8cdfe5a1d76c775","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"964f307d249df0d7e8eb16d594536c0ac6cc63c8d467edf635d05542821dec8e","affectsGlobalScope":true},"db3ec8993b7596a4ef47f309c7b25ee2505b519c13050424d9c34701e5973315",{"version":"6a1ebd564896d530364f67b3257c62555b61d60494a73dfe8893274878c6589d","affectsGlobalScope":true},"af49b066a76ce26673fe49d1885cc6b44153f1071ed2d952f2a90fccba1095c9","f22fd1dc2df53eaf5ce0ff9e0a3326fc66f880d6a652210d50563ae72625455f",{"version":"3ddbdb519e87a7827c4f0c4007013f3628ca0ebb9e2b018cf31e5b2f61c593f1","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"6d498d4fd8036ea02a4edcae10375854a0eb1df0496cf0b9d692577d3c0fd603","affectsGlobalScope":true},"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","fd09b892597ab93e7f79745ce725a3aaf6dd005e8db20f0c63a5d10984cba328","a3be878ff1e1964ab2dc8e0a3b67087cf838731c7f3d8f603337e7b712fdd558","5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","9be74296ee565af0c12d7071541fdd23260f53c3da7731fb6361f61150a791f6",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"f501a53b94ba382d9ba396a5c486969a3abc68309828fa67f916035f5d37fe2b","affectsGlobalScope":true},"aa658b5d765f630c312ac9202d110bbaf2b82d180376457f0a9d57b42629714a","312ac7cbd070107766a9886fd27f9faad997ef57d93fdfb4095df2c618ac8162","2e9b4e7f9942af902eb85bae6066d04ef1afee51d61554a62d144df3da7dec94","672ad3045f329e94002256f8ed460cfd06173a50c92cde41edaadfacffd16808","64da4965d1e0559e134d9c1621ae400279a216f87ed00c4cce4f2c7c78021712","2205527b976f4f1844adc46a3f0528729fb68cac70027a5fb13c49ca23593797",{"version":"0166fce1204d520fdfd6b5febb3cda3deee438bcbf8ce9ffeb2b1bcde7155346","affectsGlobalScope":true},"d8b13eab85b532285031b06a971fa051bf0175d8fff68065a24a6da9c1c986cf","50c382ba1827988c59aa9cc9d046e386d55d70f762e9e352e95ee8cb7337cdb8","bb9627ab9d078c79bb5623de4ac8e5d08f806ec9b970962dfc83b3211373690d",{"version":"21d7e87f271e72d02f8d167edc902f90b04525edc7918f00f01dd0bd00599f7e","affectsGlobalScope":true},{"version":"6f6abdaf8764ef01a552a958f45e795b5e79153b87ddad3af5264b86d2681b72","affectsGlobalScope":true},"a215554477f7629e3dcbc8cde104bec036b78673650272f5ffdc5a2cee399a0a","c3497fc242aabfedcd430b5932412f94f157b5906568e737f6a18cc77b36a954","cdc1de3b672f9ef03ff15c443aa1b631edca35b6ae6970a7da6400647ff74d95","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","bf01fdd3b93cf633b3f7420718457af19c57ab8cbfea49268df60bae2e84d627","15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","5f461d6f5d9ff474f1121cc3fd86aa3cd67476c701f55c306d323c5112201207","65b39cc6b610a4a4aecc321f6efb436f10c0509d686124795b4c36a5e915b89e","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633",{"version":"83fe38aa2243059ea859325c006da3964ead69b773429fe049ebb0426e75424d","affectsGlobalScope":true},"d3edb86744e2c19f2c1503849ac7594a5e06024f2451bacae032390f2e20314a",{"version":"e501cbca25bd54f0bcb89c00f092d3cae227e970b93fd76207287fd8110b123d","affectsGlobalScope":true},{"version":"8a3e61347b8f80aa5af532094498bceb0c0b257b25a6aa8ab4880fd6ed57c95a","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","950f6810f7c80e0cffefcf1bcc6ade3485c94394720e334c3c2be3c16b6922fb","5475df7cfc493a08483c9d7aa61cc04791aecba9d0a2efc213f23c4006d4d3cd","000720870b275764c65e9f28ac97cc9e4d9e4a36942d4750ca8603e416e9c57c",{"version":"54412c70bacb9ed547ed6caae8836f712a83ccf58d94466f3387447ec4e82dc3","affectsGlobalScope":true},{"version":"e74e7b0baa7a24f073080091427d36a75836d584b9393e6ac2b1daf1647fe65a","affectsGlobalScope":true},"4c48e931a72f6971b5add7fdb1136be1d617f124594e94595f7114af749395e0","478eb5c32250678a906d91e0529c70243fc4d75477a08f3da408e2615396f558","e686a88c9ee004c8ba12ffc9d674ca3192a4c50ed0ca6bd5b2825c289e2b2bfe",{"version":"0d27932df2fbc3728e78b98892540e24084424ce12d3bd32f62a23cf307f411f","affectsGlobalScope":true},"4423fb3d6abe6eefb8d7f79eb2df9510824a216ec1c6feee46718c9b18e6d89f",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"01c47d1c006b3a15b51d89d7764fff7e4fabc4e412b3a61ee5357bd74b822879","c663a7e4ee2cb54d99cf095479a5bcf1dd18d762ffdfa038aa1b2d79b070b0d7","5463c98206a890ea7a759fbcc97b0c042ab1a740b3e24037f7fbf40bae70a3c5",{"version":"d6b10c26a79e4a5279a89103fcb895efee984b816f4279fa63937f66959dd062","signature":"2467a90b050241d2d8c9f63d86ff92422df9338b31cfa50be881f732f431e604"},{"version":"8b1ff9ccd34be40dcda7dcfc83819baa4c7ebf5ce3df3f636f946881de83de74","signature":"18a534f034fbfae93f07df2888b6f1989c17d5bb64ae8abd04ac1abfe882e398"},{"version":"8d814e3e7c47be9f5ac16f8cc9aab5c4e2d5b9dd084d46bb0b28f40ec1be5d7b","signature":"8211eeec7cb8f7b3605df9b4fec52960d4b6f9bce9435ce50e7fd94f143640d4"},{"version":"77b3667a04dcec1bbf3d5958cdd117e58ea93543370e019d5d2f313b33475d76","signature":"1633b84fd3346ad6500a88e7a119ac778bb6f6b2746a3b7b8164c5ef2721822f"},{"version":"78ff8d9c2ba3e5c23c66df3250610f3ab73086ae2f1795dca45280c558e772ad","signature":"487f7ccc7eed3378abe19ae3c149f799b13302a7b01803299bfce47458e6fb50"},{"version":"813aef3c48ba035ef86423017092460ca5cc552336f0519f71417c0e02d57c48","signature":"de47457474d7e0c031a66c92c6809813beced704dcff00b327252dbfbd735246"},"485ae32287d8df9e74f68a9dc96c9211a7cfe8b302717043a988a40d930330d2","841f7ca2af7f4d9cca1f9fa2288a4849fc9d49ca15b47336892efd06a14dd1d8","796eea44840b57d4c6741d119d767c5ea294fdf610151158fd0a2f236cf21367","ede411049b43adefd22786bd3a806a1cabf2463f74e6a2dba1963642cff0ca1e",{"version":"3ced32859ef1908d33702c48b1f5e7785176fceeceb7f6742ab50d0f586f945d","signature":"47fbed5e984278b46c60b87df76e63d4ea31bf80f29d49cbfb5cd140dd8e0a6e"},{"version":"229f75b6cddd3679ba24d805cfe3ca37639b50fcf2ce9c3470e9515c300e5583","signature":"58aa2c2157a9620698ca6280d24143dc332221cf0008c0af1c99d74494785989"},{"version":"bcd646b1cf077257f27c6387fc47a4f5f0d364a282c2668f070372c0881ceeaf","signature":"4d00cb0cbfca5ad8ceaee993887e618bada234de55a9bbc2adc33192ae57f4c4"},{"version":"6a9eb9c5d3f7474937973fe4b0a9e53025634c2e39118eda436d89f3e9df976f","affectsGlobalScope":true},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true},{"version":"c1f79c6d85cd84518fd7349588b3c61bdc189f58e3866f925cbf4631c81e31f9","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},{"version":"42f28f4cfca4a70bd89c1d55d76c7978275030b894f6793f36890265c11a83a4","affectsGlobalScope":true},{"version":"7cf1027da9599f056355b46bbea31dbf7f715f797dffb9cbb3402d4490c503e5","affectsGlobalScope":true},"96dbd0787b57ae02981d26d5f2441f0f8444fb46d7578c56527eab89cff13a7d",{"version":"a4f3216e3344157d3c3221bc75eeb509f0570e5a07a9d77a0138c9c8524a11e7","signature":"e0a5e1d0a21126716c6561a24e50810c24e63a549cb06d96d6cb675512c1b31c"},{"version":"8a54db2a8b7bfa3a68970b795708c982b45f76165538e8938a1fbdd7dbcd19f9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"5bca2169d85cde638dc45542bb3674c42e5a0eea70ac2737cb48848a0c9e10b4","48d887068d506cf9fc97a6d0e8f60dc53439edac36263b0ec6e01502dbbffc52","b1129d7c114eba7c7b155dc809d6371ef86a0738f7ca93b3efef9b796d6168d9","56558ae167446acf230ea2cc072a835309a37ae63d286b484308afd8c504c2d6",{"version":"abd063f8a03ad2888fb894c63c2bc9c91178c9d82a01325e7165ddf0636d81c7","signature":"336e4501c7d103776d3666e631ae3fa88d7e3d4435772da4b962fe2930c4cdd8"},{"version":"b5008d10c2de89d2856e1adb189d1e7ade03c99ef0f26548fc6591aacf69d075","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"27ece4a50c50091904515b65b2312455ca83d46595f376d829bebbca4c3a9f13","signature":"d44159b9ee3018b60e80fd577633a4e1ee533c89f1b1042ceba9e41b655baaf1"},"22c980472aeac42a88c7954c9645c5cf0c511142afd048699daf516b25f9ea2d","aabcb267f8a73a9923157af617c47e2d707481760e60967dfa836613e2b7433b","1571f35df4f2a4b83c321fda357626c289d86dbf88a2c222cda192e747c1e42d","d2b72d643d4b2b9c659f811341341acaa47557b9cee8ababe606b83146d84ee7",{"version":"0e8ea01ba86ef72b016946c3ea8a889886d106703b7c69da07fbda59680e19ff","signature":"ef8a8ab34e45e09e63c4fe13ebe87995bfb8e36a5e06346bce529d5123ec3fad"},{"version":"75dc9ac75407533765ffe76d008214335b0dcb3ecb3a269cbb435e11d512726b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"687ec53a7422d8cf80477fffa82a2db211f724039267931642befcd4907aec26",{"version":"54bc6f45ee0e57dc5724c2e1b3b6b0055c002ee819966d4f561158b82b0f8ca7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"4ef576c5a52f34423f6328a6834c6fc874c6683a0626c0f21d6b2209f460dffd","7b195dbf43d2194d18627fe3e190979b5bd2f0752001193260c89b01c36460e2","7350c835566c20d980134ad870a072daa93754c6b65d602a46f2bc2e2ae12165","ee9b614565fe2e96c3202c092ea4e4bc902f51d1508bf8015d8f2275686ab040","f6f278c43d4e70fe1abb2c826a0b1c1ea7c4f6ff50b272aacdda3b39c51f4d61",{"version":"507c17c9560d122d5a84b1a9c445f1dda6bab818e816490c92cae62cc85e177a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6fdcba0554752fe51578f0fadbbfa35ed5d3687ca9d48d533dfd49356879ea49","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","8718fa41d7cf4aa91de4e8f164c90f88e0bf343aa92a1b9b725a9c675c64e16b","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","bc222163edcb8df6ba9b506d053d6c5afcae50e85695151cf4636a3107deaba9","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318",{"version":"90ebf5865e27d8966ef44b073e6e83b0ddd45058bab1d58b1e4b5a47d36396c4","affectsGlobalScope":true},"cb482592bfcbdfcefa8d155590399e8bff66277e60e17bfada7c2f31322e7b87","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","510616459e6edd01acbce333fb256e06bdffdad43ca233a9090164bf8bb83912","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","4006c872e38a2c4e09c593bc0cdd32b7b4f5c4843910bea0def631c483fff6c5","ab6aa3a65d473871ee093e3b7b71ed0f9c69e07d1d4295f45c9efd91a771241d","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185"],"root":[[200,205],[210,212],220,221,[226,228],233,234,236,242,243],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"module":7,"noEmitOnError":true,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":9},"fileIdsList":[[240],[238,239],[238],[237],[199,222],[70,72,83,84,199],[72,82,84],[70,72,82,83,199],[69,85,199],[158,197],[71,72,77,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,101,102,103,198],[67,69,70],[84],[85,87],[67,69,71],[72,82],[72,85,199],[71,72,82],[70,71,72,84,87,100],[70,71],[70,83,84,199],[72,84],[77,82,84,87,94,199],[199],[199,231],[70],[70,83,199,229,230,232],[70,199,208,229],[70,83,199,207],[76,77],[76],[74,75,78],[82],[73,78,80,81],[78,80,82],[79,82],[158,161,189,197,244,245,246],[213],[248],[197],[255],[104],[145],[146,151,181],[147,152,158,159,166,178,189],[147,148,158,166],[149,190],[150,151,159,167],[151,178,186],[152,154,158,166],[145,153],[154,155],[158],[156,158],[145,158],[158,159,160,178,189],[158,159,160,173,178,181],[143,194],[143,154,158,161,166,178,189],[158,159,161,162,166,178,186,189],[161,163,178,186,189],[104,105,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[158,164],[165,189,194],[154,158,166,178],[167],[168],[145,169],[104,105,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195],[171],[172],[158,173,174],[173,175,190,192],[146,158,178,179,180,181],[146,178,180],[178,179],[181],[182],[104,178],[158,184,185],[184,185],[151,166,178,186],[187],[166,188],[146,161,172,189],[151,190],[178,191],[165,192],[193],[146,151,158,160,169,178,189,192,194],[178,195],[161,178,197],[264,303],[264,288,303],[303],[264],[264,289,303],[264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302],[289,303],[306],[158,178,197],[213,214,215,216,217,218],[213,214],[83],[68,69],[68],[65,66,67],[115,119,189],[115,178,189],[110],[112,115,186,189],[166,186],[110,197],[112,115,166,189],[107,108,111,114,146,158,178,189],[115,122],[107,113],[115,136,137],[111,115,146,181,189,197],[146,197],[136,146,197],[109,110,197],[115],[109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,137,138,139,140,141,142],[115,130],[115,122,123],[113,115,123,124],[114],[107,110,115],[115,119,123,124],[119],[113,115,118,189],[107,112,115,122],[146,178],[110,115,136,146,194,197],[199,201],[200],[70,83,200,203],[203],[199,203,211],[70,83,100,199,200,201,202,203,204,205,206,210,212],[70,199,200,201,202,203,208,209],[203,204,205,220,241],[225,226,233,235,241],[203,204,205,219,220],[200,203],[207,223,226],[70,100,203,204,205,219,226],[70,83,199,207,224,225,232],[70,219,224,225,226],[70,100,202,203,210,219,225,226,235],[70,83,202,207,211,224,225],[70,83,203],[70,83,100,199,202,203,210,212],[70,199,202,203,208],[83,199],[83,202,211]],"referencedMap":[[241,1],[240,2],[239,3],[238,4],[223,5],[96,6],[97,7],[84,8],[86,9],[198,10],[199,11],[71,12],[88,13],[98,14],[72,15],[85,16],[89,17],[90,18],[101,19],[102,20],[92,13],[94,21],[93,22],[95,23],[207,24],[232,25],[229,26],[231,27],[230,28],[208,29],[78,30],[75,31],[74,31],[76,32],[81,33],[82,34],[73,33],[79,35],[80,36],[247,37],[214,38],[218,38],[216,38],[249,39],[250,40],[254,10],[256,41],[104,42],[105,42],[145,43],[146,44],[147,45],[148,46],[149,47],[150,48],[151,49],[152,50],[153,51],[154,52],[155,52],[157,53],[156,54],[158,55],[159,56],[160,57],[144,58],[161,59],[162,60],[163,61],[197,62],[164,63],[165,64],[166,65],[167,66],[168,67],[169,68],[170,69],[171,70],[172,71],[173,72],[174,72],[175,73],[178,74],[180,75],[179,76],[181,77],[182,78],[183,79],[184,80],[185,81],[186,82],[187,83],[188,84],[189,85],[190,86],[191,87],[192,88],[193,89],[194,90],[195,91],[246,92],[288,93],[289,94],[264,95],[267,95],[286,93],[287,93],[277,93],[276,96],[274,93],[269,93],[282,93],[280,93],[284,93],[268,93],[281,93],[285,93],[270,93],[271,93],[283,93],[265,93],[272,93],[273,93],[275,93],[279,93],[290,97],[278,93],[266,93],[303,98],[297,97],[299,99],[298,97],[291,97],[292,97],[294,97],[296,97],[300,99],[301,99],[293,99],[295,99],[307,100],[308,101],[219,102],[217,38],[215,103],[224,104],[225,104],[244,53],[66,105],[69,106],[68,107],[122,108],[132,109],[121,108],[142,110],[113,111],[112,112],[141,40],[135,113],[140,114],[115,115],[129,116],[114,117],[138,118],[110,119],[109,120],[139,121],[111,122],[116,123],[120,123],[143,124],[133,125],[124,126],[125,127],[127,128],[123,129],[126,130],[136,40],[118,131],[119,132],[128,133],[108,134],[131,125],[130,123],[137,135],[202,136],[201,137],[204,138],[205,139],[212,140],[211,141],[210,142],[242,143],[243,144],[221,145],[220,146],[227,147],[228,148],[233,149],[234,150],[236,151],[226,152]],"exportedModulesMap":[[241,1],[240,2],[239,3],[238,4],[223,5],[96,6],[97,7],[84,8],[86,9],[198,10],[199,11],[71,12],[88,13],[98,14],[72,15],[85,16],[89,17],[90,18],[101,19],[102,20],[92,13],[94,21],[93,22],[95,23],[207,24],[232,25],[229,26],[231,27],[230,28],[208,29],[78,30],[75,31],[74,31],[76,32],[81,33],[82,34],[73,33],[79,35],[80,36],[247,37],[214,38],[218,38],[216,38],[249,39],[250,40],[254,10],[256,41],[104,42],[105,42],[145,43],[146,44],[147,45],[148,46],[149,47],[150,48],[151,49],[152,50],[153,51],[154,52],[155,52],[157,53],[156,54],[158,55],[159,56],[160,57],[144,58],[161,59],[162,60],[163,61],[197,62],[164,63],[165,64],[166,65],[167,66],[168,67],[169,68],[170,69],[171,70],[172,71],[173,72],[174,72],[175,73],[178,74],[180,75],[179,76],[181,77],[182,78],[183,79],[184,80],[185,81],[186,82],[187,83],[188,84],[189,85],[190,86],[191,87],[192,88],[193,89],[194,90],[195,91],[246,92],[288,93],[289,94],[264,95],[267,95],[286,93],[287,93],[277,93],[276,96],[274,93],[269,93],[282,93],[280,93],[284,93],[268,93],[281,93],[285,93],[270,93],[271,93],[283,93],[265,93],[272,93],[273,93],[275,93],[279,93],[290,97],[278,93],[266,93],[303,98],[297,97],[299,99],[298,97],[291,97],[292,97],[294,97],[296,97],[300,99],[301,99],[293,99],[295,99],[307,100],[308,101],[219,102],[217,38],[215,103],[224,104],[225,104],[244,53],[66,105],[69,106],[68,107],[122,108],[132,109],[121,108],[142,110],[113,111],[112,112],[141,40],[135,113],[140,114],[115,115],[129,116],[114,117],[138,118],[110,119],[109,120],[139,121],[111,122],[116,123],[120,123],[143,124],[133,125],[124,126],[125,127],[127,128],[123,129],[126,130],[136,40],[118,131],[119,132],[128,133],[108,134],[131,125],[130,123],[137,135],[204,153],[205,139],[212,140],[211,154],[210,155],[220,139],[233,156],[226,157]],"semanticDiagnosticsPerFile":[241,240,239,238,237,222,223,96,97,84,86,103,87,198,199,71,88,98,72,85,89,90,99,101,102,91,92,94,93,95,207,232,229,231,230,208,78,75,74,76,81,82,73,79,80,247,214,218,216,213,249,250,245,251,252,253,254,256,257,258,259,248,260,104,105,145,146,147,148,149,150,151,152,153,154,155,157,156,158,159,160,144,196,161,162,163,197,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,180,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,261,262,246,263,288,289,264,267,286,287,277,276,274,269,282,280,284,268,281,285,270,271,283,265,272,273,275,279,290,278,266,303,302,297,299,298,291,292,294,296,300,301,293,295,304,305,255,306,307,308,219,106,217,215,206,235,209,224,225,100,83,244,65,66,69,67,68,77,63,64,11,12,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,13,70,122,132,121,142,113,112,141,135,140,115,129,114,138,110,109,139,111,116,117,120,107,143,133,124,125,127,123,126,136,118,119,128,108,131,130,134,137,202,201,204,205,200,203,212,211,210,242,243,221,220,227,228,233,234,236,226],"latestChangedDtsFile":"./src/errors.d.ts"},"version":"5.4.5"} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/dist/typedoc-urls.json b/node_modules/@chainsafe/libp2p-yamux/dist/typedoc-urls.json -deleted file mode 100644 -index 21b4891..0000000 ---- a/node_modules/@chainsafe/libp2p-yamux/dist/typedoc-urls.json -+++ /dev/null -@@ -1,22 +0,0 @@ --{ -- "Config": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/config.Config.html", -- "./config:Config": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/config.Config.html", -- "defaultConfig": "https://ChainSafe.github.io/js-libp2p-yamux/variables/config.defaultConfig.html", -- "./config:defaultConfig": "https://ChainSafe.github.io/js-libp2p-yamux/variables/config.defaultConfig.html", -- "verifyConfig": "https://ChainSafe.github.io/js-libp2p-yamux/functions/config.verifyConfig.html", -- "./config:verifyConfig": "https://ChainSafe.github.io/js-libp2p-yamux/functions/config.verifyConfig.html", -- "FrameType": "https://ChainSafe.github.io/js-libp2p-yamux/enums/index.FrameType.html", -- "GoAwayCode": "https://ChainSafe.github.io/js-libp2p-yamux/enums/index.GoAwayCode.html", -- "FrameHeader": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/index.FrameHeader.html", -- "YamuxMuxerComponents": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/index.YamuxMuxerComponents.html", -- ".:YamuxMuxerComponents": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/index.YamuxMuxerComponents.html", -- "YamuxMuxerInit": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/index.YamuxMuxerInit.html", -- "yamux": "https://ChainSafe.github.io/js-libp2p-yamux/functions/index.yamux.html", -- ".:yamux": "https://ChainSafe.github.io/js-libp2p-yamux/functions/index.yamux.html", -- "StreamState": "https://ChainSafe.github.io/js-libp2p-yamux/enums/stream.StreamState.html", -- "./stream:StreamState": "https://ChainSafe.github.io/js-libp2p-yamux/enums/stream.StreamState.html", -- "YamuxStream": "https://ChainSafe.github.io/js-libp2p-yamux/classes/stream.YamuxStream.html", -- "./stream:YamuxStream": "https://ChainSafe.github.io/js-libp2p-yamux/classes/stream.YamuxStream.html", -- "YamuxStreamInit": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/stream.YamuxStreamInit.html", -- "./stream:YamuxStreamInit": "https://ChainSafe.github.io/js-libp2p-yamux/interfaces/stream.YamuxStreamInit.html" --} -\ No newline at end of file -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/config.ts b/node_modules/@chainsafe/libp2p-yamux/src/config.ts -index 62fd092..2cd9c54 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/src/config.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/src/config.ts -@@ -1,5 +1,5 @@ --import { CodeError } from '@libp2p/interface' --import { ERR_INVALID_CONFIG, INITIAL_STREAM_WINDOW, MAX_STREAM_WINDOW } from './constants.js' -+import { InvalidParametersError } from '@libp2p/interface' -+import { INITIAL_STREAM_WINDOW, MAX_STREAM_WINDOW } from './constants.js' - - // TOOD use config items or delete them - export interface Config { -@@ -58,24 +58,24 @@ export const defaultConfig: Config = { - - export function verifyConfig (config: Config): void { - if (config.keepAliveInterval <= 0) { -- throw new CodeError('keep-alive interval must be positive', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('keep-alive interval must be positive') - } - if (config.maxInboundStreams < 0) { -- throw new CodeError('max inbound streams must be larger or equal 0', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('max inbound streams must be larger or equal 0') - } - if (config.maxOutboundStreams < 0) { -- throw new CodeError('max outbound streams must be larger or equal 0', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('max outbound streams must be larger or equal 0') - } - if (config.initialStreamWindowSize < INITIAL_STREAM_WINDOW) { -- throw new CodeError('InitialStreamWindowSize must be larger or equal 256 kB', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('InitialStreamWindowSize must be larger or equal 256 kB') - } - if (config.maxStreamWindowSize < config.initialStreamWindowSize) { -- throw new CodeError('MaxStreamWindowSize must be larger than the InitialStreamWindowSize', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('MaxStreamWindowSize must be larger than the InitialStreamWindowSize') - } - if (config.maxStreamWindowSize > 2 ** 32 - 1) { -- throw new CodeError('MaxStreamWindowSize must be less than equal MAX_UINT32', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('MaxStreamWindowSize must be less than equal MAX_UINT32') - } - if (config.maxMessageSize < 1024) { -- throw new CodeError('MaxMessageSize must be greater than a kilobyte', ERR_INVALID_CONFIG) -+ throw new InvalidParametersError('MaxMessageSize must be greater than a kilobyte') - } - } -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/constants.ts b/node_modules/@chainsafe/libp2p-yamux/src/constants.ts -index d288300..546b38f 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/src/constants.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/src/constants.ts -@@ -1,33 +1,17 @@ - // Protocol violation errors - --export const ERR_INVALID_FRAME = 'ERR_INVALID_FRAME' --export const ERR_UNREQUESTED_PING = 'ERR_UNREQUESTED_PING' --export const ERR_NOT_MATCHING_PING = 'ERR_NOT_MATCHING_PING' --export const ERR_STREAM_ALREADY_EXISTS = 'ERR_STREAM_ALREADY_EXISTS' --export const ERR_DECODE_INVALID_VERSION = 'ERR_DECODE_INVALID_VERSION' --export const ERR_BOTH_CLIENTS = 'ERR_BOTH_CLIENTS' --export const ERR_RECV_WINDOW_EXCEEDED = 'ERR_RECV_WINDOW_EXCEEDED' -+import { BothClientsError, DecodeInvalidVersionError, InvalidFrameError, NotMatchingPingError, ReceiveWindowExceededError, StreamAlreadyExistsError, UnrequestedPingError } from './errors.js' - - export const PROTOCOL_ERRORS = new Set([ -- ERR_INVALID_FRAME, -- ERR_UNREQUESTED_PING, -- ERR_NOT_MATCHING_PING, -- ERR_STREAM_ALREADY_EXISTS, -- ERR_DECODE_INVALID_VERSION, -- ERR_BOTH_CLIENTS, -- ERR_RECV_WINDOW_EXCEEDED -+ InvalidFrameError.name, -+ UnrequestedPingError.name, -+ NotMatchingPingError.name, -+ StreamAlreadyExistsError.name, -+ DecodeInvalidVersionError.name, -+ BothClientsError.name, -+ ReceiveWindowExceededError.name - ]) - --// local errors -- --export const ERR_INVALID_CONFIG = 'ERR_INVALID_CONFIG' --export const ERR_MUXER_LOCAL_CLOSED = 'ERR_MUXER_LOCAL_CLOSED' --export const ERR_MUXER_REMOTE_CLOSED = 'ERR_MUXER_REMOTE_CLOSED' --export const ERR_STREAM_RESET = 'ERR_STREAM_RESET' --export const ERR_STREAM_ABORT = 'ERR_STREAM_ABORT' --export const ERR_MAX_OUTBOUND_STREAMS_EXCEEDED = 'ERROR_MAX_OUTBOUND_STREAMS_EXCEEDED' --export const ERR_DECODE_IN_PROGRESS = 'ERR_DECODE_IN_PROGRESS' -- - /** - * INITIAL_STREAM_WINDOW is the initial stream window size. - * -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/decode.ts b/node_modules/@chainsafe/libp2p-yamux/src/decode.ts -index 56440b9..dccb75d 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/src/decode.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/src/decode.ts -@@ -1,6 +1,5 @@ --import { CodeError } from '@libp2p/interface' - import { Uint8ArrayList } from 'uint8arraylist' --import { ERR_DECODE_INVALID_VERSION, ERR_DECODE_IN_PROGRESS } from './constants.js' -+import { InvalidFrameError, InvalidStateError } from './errors.js' - import { type FrameHeader, FrameType, HEADER_LENGTH, YAMUX_VERSION } from './frame.js' - import type { Source } from 'it-stream-types' - -@@ -15,7 +14,7 @@ const twoPow24 = 2 ** 24 - */ - export function decodeHeader (data: Uint8Array): FrameHeader { - if (data[0] !== YAMUX_VERSION) { -- throw new CodeError('Invalid frame version', ERR_DECODE_INVALID_VERSION) -+ throw new InvalidFrameError('Invalid frame version') - } - return { - type: data[1], -@@ -87,7 +86,7 @@ export class Decoder { - // Sanity check to ensure a header isn't read when another frame is partially decoded - // In practice this shouldn't happen - if (this.frameInProgress) { -- throw new CodeError('decoding frame already in progress', ERR_DECODE_IN_PROGRESS) -+ throw new InvalidStateError('decoding frame already in progress') - } - - if (this.buffer.length < HEADER_LENGTH) { -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/errors.ts b/node_modules/@chainsafe/libp2p-yamux/src/errors.ts -new file mode 100644 -index 0000000..acf0bbd ---- /dev/null -+++ b/node_modules/@chainsafe/libp2p-yamux/src/errors.ts -@@ -0,0 +1,71 @@ -+export class InvalidFrameError extends Error { -+ static name = 'InvalidFrameError' -+ -+ constructor (message = 'The frame was invalid') { -+ super(message) -+ this.name = 'InvalidFrameError' -+ } -+} -+ -+export class UnrequestedPingError extends Error { -+ static name = 'UnrequestedPingError' -+ -+ constructor (message = 'Unrequested ping error') { -+ super(message) -+ this.name = 'UnrequestedPingError' -+ } -+} -+ -+export class NotMatchingPingError extends Error { -+ static name = 'NotMatchingPingError' -+ -+ constructor (message = 'Unrequested ping error') { -+ super(message) -+ this.name = 'NotMatchingPingError' -+ } -+} -+ -+export class InvalidStateError extends Error { -+ static name = 'InvalidStateError' -+ -+ constructor (message = 'Invalid state') { -+ super(message) -+ this.name = 'InvalidStateError' -+ } -+} -+ -+export class StreamAlreadyExistsError extends Error { -+ static name = 'StreamAlreadyExistsError' -+ -+ constructor (message = 'Strean already exists') { -+ super(message) -+ this.name = 'StreamAlreadyExistsError' -+ } -+} -+ -+export class DecodeInvalidVersionError extends Error { -+ static name = 'DecodeInvalidVersionError' -+ -+ constructor (message = 'Decode invalid version') { -+ super(message) -+ this.name = 'DecodeInvalidVersionError' -+ } -+} -+ -+export class BothClientsError extends Error { -+ static name = 'BothClientsError' -+ -+ constructor (message = 'Both clients') { -+ super(message) -+ this.name = 'BothClientsError' -+ } -+} -+ -+export class ReceiveWindowExceededError extends Error { -+ static name = 'ReceiveWindowExceededError' -+ -+ constructor (message = 'Receive window exceeded') { -+ super(message) -+ this.name = 'ReceiveWindowExceededError' -+ } -+} -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/muxer.ts b/node_modules/@chainsafe/libp2p-yamux/src/muxer.ts -index df4e792..adb7ecb 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/src/muxer.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/src/muxer.ts -@@ -1,11 +1,12 @@ --import { CodeError, setMaxListeners } from '@libp2p/interface' -+import { InvalidParametersError, MuxerClosedError, TooManyOutboundProtocolStreamsError, serviceCapabilities, setMaxListeners } from '@libp2p/interface' - import { getIterator } from 'get-iterator' - import { pushable, type Pushable } from 'it-pushable' - import { Uint8ArrayList } from 'uint8arraylist' - import { type Config, defaultConfig, verifyConfig } from './config.js' --import { ERR_BOTH_CLIENTS, ERR_INVALID_FRAME, ERR_MAX_OUTBOUND_STREAMS_EXCEEDED, ERR_MUXER_LOCAL_CLOSED, ERR_MUXER_REMOTE_CLOSED, ERR_NOT_MATCHING_PING, ERR_STREAM_ALREADY_EXISTS, ERR_UNREQUESTED_PING, PROTOCOL_ERRORS } from './constants.js' -+import { PROTOCOL_ERRORS } from './constants.js' - import { Decoder } from './decode.js' - import { encodeHeader } from './encode.js' -+import { InvalidFrameError, NotMatchingPingError, UnrequestedPingError } from './errors.js' - import { Flag, type FrameHeader, FrameType, GoAwayCode } from './frame.js' - import { StreamState, YamuxStream } from './stream.js' - import type { YamuxMuxerComponents } from './index.js' -@@ -28,6 +29,12 @@ export class Yamux implements StreamMuxerFactory { - this._init = init - } - -+ readonly [Symbol.toStringTag] = '@chainsafe/libp2p-yamux' -+ -+ readonly [serviceCapabilities]: string[] = [ -+ '@libp2p/stream-multiplexing' -+ ] -+ - createStreamMuxer (init?: YamuxMuxerInit): YamuxMuxer { - return new YamuxMuxer(this._components, { - ...this._init, -@@ -133,10 +140,9 @@ export class YamuxMuxer implements StreamMuxer { - } - - reason = GoAwayCode.NormalTermination -- } catch (err: unknown) { -+ } catch (err: any) { - // either a protocol or internal error -- const errCode = (err as { code: string }).code -- if (PROTOCOL_ERRORS.has(errCode)) { -+ if (PROTOCOL_ERRORS.has(err.name)) { - this.log?.error('protocol error in sink', err) - reason = GoAwayCode.ProtocolError - } else { -@@ -181,10 +187,10 @@ export class YamuxMuxer implements StreamMuxer { - - newStream (name?: string | undefined): YamuxStream { - if (this.remoteGoAway !== undefined) { -- throw new CodeError('muxer closed remotely', ERR_MUXER_REMOTE_CLOSED) -+ throw new MuxerClosedError('Muxer closed remotely') - } - if (this.localGoAway !== undefined) { -- throw new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED) -+ throw new MuxerClosedError('Muxer closed locally') - } - - const id = this.nextStreamID -@@ -192,7 +198,7 @@ export class YamuxMuxer implements StreamMuxer { - - // check against our configured maximum number of outbound streams - if (this.numOutboundStreams >= this.config.maxOutboundStreams) { -- throw new CodeError('max outbound streams exceeded', ERR_MAX_OUTBOUND_STREAMS_EXCEEDED) -+ throw new TooManyOutboundProtocolStreamsError('max outbound streams exceeded') - } - - this.log?.trace('new outgoing stream id=%s', id) -@@ -218,10 +224,10 @@ export class YamuxMuxer implements StreamMuxer { - */ - async ping (): Promise { - if (this.remoteGoAway !== undefined) { -- throw new CodeError('muxer closed remotely', ERR_MUXER_REMOTE_CLOSED) -+ throw new MuxerClosedError('Muxer closed remotely') - } - if (this.localGoAway !== undefined) { -- throw new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED) -+ throw new MuxerClosedError('Muxer closed locally') - } - - // An active ping does not yet exist, handle the process here -@@ -233,7 +239,7 @@ export class YamuxMuxer implements StreamMuxer { - // this promise awaits resolution or the close controller aborting - promise: new Promise((resolve, reject) => { - const closed = (): void => { -- reject(new CodeError('muxer closed locally', ERR_MUXER_LOCAL_CLOSED)) -+ reject(new MuxerClosedError('Muxer closed locally')) - } - this.closeController.signal.addEventListener('abort', closed, { once: true }) - _resolve = (): void => { -@@ -351,7 +357,7 @@ export class YamuxMuxer implements StreamMuxer { - /** Create a new stream */ - private _newStream (id: number, name: string | undefined, state: StreamState, direction: 'inbound' | 'outbound'): YamuxStream { - if (this._streams.get(id) != null) { -- throw new CodeError('Stream already exists', ERR_STREAM_ALREADY_EXISTS, { id }) -+ throw new InvalidParametersError('Stream already exists with that id') - } - - const stream = new YamuxStream({ -@@ -422,7 +428,7 @@ export class YamuxMuxer implements StreamMuxer { - { this.handleGoAway(length); return } - default: - // Invalid state -- throw new CodeError('Invalid frame type', ERR_INVALID_FRAME, { header }) -+ throw new InvalidFrameError('Invalid frame type') - } - } else { - switch (header.type) { -@@ -431,7 +437,7 @@ export class YamuxMuxer implements StreamMuxer { - { await this.handleStreamMessage(header, readData); return } - default: - // Invalid state -- throw new CodeError('Invalid frame type', ERR_INVALID_FRAME, { header }) -+ throw new InvalidFrameError('Invalid frame type') - } - } - } -@@ -446,18 +452,18 @@ export class YamuxMuxer implements StreamMuxer { - this.handlePingResponse(header.length) - } else { - // Invalid state -- throw new CodeError('Invalid frame flag', ERR_INVALID_FRAME, { header }) -+ throw new InvalidFrameError('Invalid frame flag') - } - } - - private handlePingResponse (pingId: number): void { - if (this.activePing === undefined) { - // this ping was not requested -- throw new CodeError('ping not requested', ERR_UNREQUESTED_PING) -+ throw new UnrequestedPingError('ping not requested') - } - if (this.activePing.id !== pingId) { - // this ping doesn't match our active ping request -- throw new CodeError('ping doesn\'t match our id', ERR_NOT_MATCHING_PING) -+ throw new NotMatchingPingError('ping doesn\'t match our id') - } - - // valid ping response -@@ -516,7 +522,7 @@ export class YamuxMuxer implements StreamMuxer { - - private incomingStream (id: number): void { - if (this.client !== (id % 2 === 0)) { -- throw new CodeError('both endpoints are clients', ERR_BOTH_CLIENTS) -+ throw new InvalidParametersError('Both endpoints are clients') - } - if (this._streams.has(id)) { - return -@@ -559,7 +565,7 @@ export class YamuxMuxer implements StreamMuxer { - this.log?.trace('sending frame %o', header) - if (header.type === FrameType.Data) { - if (data === undefined) { -- throw new CodeError('invalid frame', ERR_INVALID_FRAME) -+ throw new InvalidFrameError('Invalid frame') - } - this.source.push( - new Uint8ArrayList(encodeHeader(header), data) -diff --git a/node_modules/@chainsafe/libp2p-yamux/src/stream.ts b/node_modules/@chainsafe/libp2p-yamux/src/stream.ts -index 3ebfa8f..7e17922 100644 ---- a/node_modules/@chainsafe/libp2p-yamux/src/stream.ts -+++ b/node_modules/@chainsafe/libp2p-yamux/src/stream.ts -@@ -1,7 +1,8 @@ --import { CodeError } from '@libp2p/interface' -+import { AbortError } from '@libp2p/interface' - import { AbstractStream, type AbstractStreamInit } from '@libp2p/utils/abstract-stream' - import each from 'it-foreach' --import { ERR_RECV_WINDOW_EXCEEDED, ERR_STREAM_ABORT, INITIAL_STREAM_WINDOW } from './constants.js' -+import { INITIAL_STREAM_WINDOW } from './constants.js' -+import { ReceiveWindowExceededError } from './errors.js' - import { Flag, type FrameHeader, FrameType, HEADER_LENGTH } from './frame.js' - import type { Config } from './config.js' - import type { AbortOptions } from '@libp2p/interface' -@@ -173,7 +174,7 @@ export class YamuxStream extends AbstractStream { - let reject: (err: Error) => void - const abort = (): void => { - if (this.status === 'open' || this.status === 'closing') { -- reject(new CodeError('stream aborted', ERR_STREAM_ABORT)) -+ reject(new AbortError('Stream aborted')) - } else { - // the stream was closed already, ignore the failure to send - resolve() -@@ -219,7 +220,7 @@ export class YamuxStream extends AbstractStream { - - // check that our recv window is not exceeded - if (this.recvWindowCapacity < header.length) { -- throw new CodeError('receive window exceeded', ERR_RECV_WINDOW_EXCEEDED, { available: this.recvWindowCapacity, recv: header.length }) -+ throw new ReceiveWindowExceededError('Receive window exceeded') - } - - const data = await readData() diff --git a/patches/@libp2p+daemon-client+8.0.6.patch b/patches/@libp2p+daemon-client+8.0.6.patch deleted file mode 100644 index 38594023eb..0000000000 --- a/patches/@libp2p+daemon-client+8.0.6.patch +++ /dev/null @@ -1,1731 +0,0 @@ -diff --git a/node_modules/@libp2p/daemon-client/dist/index.min.js b/node_modules/@libp2p/daemon-client/dist/index.min.js -index 7aa56da..82ec293 100644 ---- a/node_modules/@libp2p/daemon-client/dist/index.min.js -+++ b/node_modules/@libp2p/daemon-client/dist/index.min.js -@@ -1,7 +1,30 @@ - (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PDaemonClient = factory()}(typeof self !== 'undefined' ? self : this, function () { --"use strict";var Libp2PDaemonClient=(()=>{var Zi=Object.create;var ce=Object.defineProperty;var qi=Object.getOwnPropertyDescriptor;var ji=Object.getOwnPropertyNames;var to=Object.getPrototypeOf,eo=Object.prototype.hasOwnProperty;var $=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var xt=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),H=(r,t)=>{for(var e in t)ce(r,e,{get:t[e],enumerable:!0})},wn=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ji(t))!eo.call(r,n)&&n!==e&&ce(r,n,{get:()=>t[n],enumerable:!(i=qi(t,n))||i.enumerable});return r};var kt=(r,t,e)=>(e=r!=null?Zi(to(r)):{},wn(t||!r||!r.__esModule?ce(e,"default",{value:r,enumerable:!0}):e,r)),ro=r=>wn(ce({},"__esModule",{value:!0}),r);var Xn=xt((lu,Yn)=>{var $t=1e3,zt=$t*60,Ht=zt*60,Rt=Ht*24,Is=Rt*7,As=Rt*365.25;Yn.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return Cs(r);if(e==="number"&&isFinite(r))return t.long?vs(r):Ts(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Cs(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),i=(t[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return e*As;case"weeks":case"week":case"w":return e*Is;case"days":case"day":case"d":return e*Rt;case"hours":case"hour":case"hrs":case"hr":case"h":return e*Ht;case"minutes":case"minute":case"mins":case"min":case"m":return e*zt;case"seconds":case"second":case"secs":case"sec":case"s":return e*$t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function Ts(r){var t=Math.abs(r);return t>=Rt?Math.round(r/Rt)+"d":t>=Ht?Math.round(r/Ht)+"h":t>=zt?Math.round(r/zt)+"m":t>=$t?Math.round(r/$t)+"s":r+"ms"}function vs(r){var t=Math.abs(r);return t>=Rt?Te(r,t,Rt,"day"):t>=Ht?Te(r,t,Ht,"hour"):t>=zt?Te(r,t,zt,"minute"):t>=$t?Te(r,t,$t,"second"):r+" ms"}function Te(r,t,e,i){var n=t>=e*1.5;return Math.round(r/e)+" "+i+(n?"s":"")}});var Br=xt((du,Jn)=>{function Ss(r){e.debug=e,e.default=e,e.coerce=a,e.disable=o,e.enable=n,e.enabled=s,e.humanize=Xn(),e.destroy=g,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let l=0;for(let m=0;m{if(J==="%%")return"%";O++;let Q=e.formatters[z];if(typeof Q=="function"){let Ot=I[O];J=Q.call(E,Ot),I.splice(O,1),O--}return J}),e.formatArgs.call(E,I),(E.log||e.log).apply(E,I)}return w.namespace=u,w.useColors=e.useColors(),w.color=e.selectColor(u),w.extend=i,w.destroy=e.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>m!==null?m:(y!==e.namespaces&&(y=e.namespaces,p=e.enabled(u)),p),set:I=>{m=I}}),typeof e.init=="function"&&e.init(w),w}function i(u,l){let m=e(this.namespace+(typeof l>"u"?":":l)+u);return m.log=this.log,m}function n(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let l,m=(typeof u=="string"?u:"").split(/[\s,]+/),y=m.length;for(l=0;l"-"+l)].join(",");return e.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let l,m;for(l=0,m=e.skips.length;l{W.formatArgs=Ds;W.save=Ls;W.load=Ns;W.useColors=Rs;W.storage=_s();W.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();W.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Rs(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let r;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ds(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+ve.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,i=0;r[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(e++,n==="%c"&&(i=e))}),r.splice(i,0,t)}W.log=console.debug||console.log||(()=>{});function Ls(r){try{r?W.storage.setItem("debug",r):W.storage.removeItem("debug")}catch{}}function Ns(){let r;try{r=W.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function _s(){try{return localStorage}catch{}}ve.exports=Br()(W);var{formatters:Ps}=ve.exports;Ps.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var qn=xt((fu,Zn)=>{"use strict";Zn.exports=(r,t)=>{t=t||process.argv;let e=r.startsWith("-")?"":r.length===1?"-":"--",i=t.indexOf(e+r),n=t.indexOf("--");return i!==-1&&(n===-1?!0:i{"use strict";var Os=$("os"),st=qn(),V=process.env,Kt;st("no-color")||st("no-colors")||st("color=false")?Kt=!1:(st("color")||st("colors")||st("color=true")||st("color=always"))&&(Kt=!0);"FORCE_COLOR"in V&&(Kt=V.FORCE_COLOR.length===0||parseInt(V.FORCE_COLOR,10)!==0);function ks(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Us(r){if(Kt===!1)return 0;if(st("color=16m")||st("color=full")||st("color=truecolor"))return 3;if(st("color=256"))return 2;if(r&&!r.isTTY&&Kt!==!0)return 0;let t=Kt?1:0;if(process.platform==="win32"){let e=Os.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in V)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in V)||V.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in V)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(V.TEAMCITY_VERSION)?1:0;if(V.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in V){let e=parseInt((V.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(V.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(V.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(V.TERM)||"COLORTERM"in V?1:(V.TERM==="dumb",t)}function Mr(r){let t=Us(r);return ks(t)}jn.exports={supportsColor:Mr,stdout:Mr(process.stdout),stderr:Mr(process.stderr)}});var ri=xt((_,Re)=>{var Fs=$("tty"),Se=$("util");_.init=Hs;_.log=Gs;_.formatArgs=Ms;_.save=$s;_.load=zs;_.useColors=Bs;_.destroy=Se.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");_.colors=[6,2,3,4,5,1];try{let r=ti();r&&(r.stderr||r).level>=2&&(_.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}_.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,t)=>{let e=t.substring(6).toLowerCase().replace(/_([a-z])/g,(n,o)=>o.toUpperCase()),i=process.env[t];return/^(yes|on|true|enabled)$/i.test(i)?i=!0:/^(no|off|false|disabled)$/i.test(i)?i=!1:i==="null"?i=null:i=Number(i),r[e]=i,r},{});function Bs(){return"colors"in _.inspectOpts?!!_.inspectOpts.colors:Fs.isatty(process.stderr.fd)}function Ms(r){let{namespace:t,useColors:e}=this;if(e){let i=this.color,n="\x1B[3"+(i<8?i:"8;5;"+i),o=` ${n};1m${t} \x1B[0m`;r[0]=o+r[0].split(` -+"use strict";var Libp2PDaemonClient=(()=>{var fc=Object.create;var or=Object.defineProperty;var dc=Object.getOwnPropertyDescriptor;var hc=Object.getOwnPropertyNames;var pc=Object.getPrototypeOf,mc=Object.prototype.hasOwnProperty;var Z=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var lt=(r,t)=>{for(var e in t)or(r,e,{get:t[e],enumerable:!0})},ci=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hc(t))!mc.call(r,o)&&o!==e&&or(r,o,{get:()=>t[o],enumerable:!(n=dc(t,o))||n.enumerable});return r};var pt=(r,t,e)=>(e=r!=null?fc(pc(r)):{},ci(t||!r||!r.__esModule?or(e,"default",{value:r,enumerable:!0}):e,r)),gc=r=>ci(or({},"__esModule",{value:!0}),r);var vl={};lt(vl,{OperationFailedError:()=>O,createClient:()=>El});var bn=Z("node:buffer");function ce(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Rt(r=0){return ce(bn.Buffer.alloc(r))}function xt(r=0){return ce(bn.Buffer.allocUnsafe(r))}var yc=Math.pow(2,7),bc=Math.pow(2,14),wc=Math.pow(2,21),wn=Math.pow(2,28),xn=Math.pow(2,35),En=Math.pow(2,42),vn=Math.pow(2,49),N=128,ot=127;function it(r){if(rNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function In(r,t,e=0){switch(it(r)){case 8:t[e++]=r&255|N,r/=128;case 7:t[e++]=r&255|N,r/=128;case 6:t[e++]=r&255|N,r/=128;case 5:t[e++]=r&255|N,r/=128;case 4:t[e++]=r&255|N,r>>>=7;case 3:t[e++]=r&255|N,r>>>=7;case 2:t[e++]=r&255|N,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function xc(r,t,e=0){switch(it(r)){case 8:t.set(e++,r&255|N),r/=128;case 7:t.set(e++,r&255|N),r/=128;case 6:t.set(e++,r&255|N),r/=128;case 5:t.set(e++,r&255|N),r/=128;case 4:t.set(e++,r&255|N),r>>>=7;case 3:t.set(e++,r&255|N),r>>>=7;case 2:t.set(e++,r&255|N),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Sn(r,t){let e=r[t],n=0;if(n+=e&ot,e>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return ae;if(tIc)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>di&&(o=0n,++n>di&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return ae;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):ae}},ae=new mt(0,0);ae.toBigInt=function(){return 0n};ae.zzEncode=ae.zzDecode=function(){return this};ae.length=function(){return 1};var di=4294967296n;function hi(r){let t=0,e=0;for(let n=0;n191&&c<224?i[s++]=(c&31)<<6|r[t++]&63:c>239&&c<365?(c=((c&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,i[s++]=55296+(c>>10),i[s++]=56320+(c&1023)):i[s++]=(c&15)<<12|(r[t++]&63)<<6|r[t++]&63,s>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,i)),s=0);return o!=null?(s>0&&o.push(String.fromCharCode.apply(String,i.slice(0,s))),o.join("")):String.fromCharCode.apply(String,i.slice(0,s))}function Bn(r,t,e){let n=e,o,i;for(let s=0;s>6|192,t[e++]=o&63|128):(o&64512)===55296&&((i=r.charCodeAt(s+1))&64512)===56320?(o=65536+((o&1023)<<10)+(i&1023),++s,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Lt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function ir(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Cn=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Lt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Lt(this,4);return ir(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Lt(this,4);return ir(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Lt(this,4);let t=ui(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Lt(this,4);let t=fi(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Lt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return pi(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Lt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Lt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new mt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Lt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Lt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Lt(this,8);let t=ir(this.buf,this.pos+=4),e=ir(this.buf,this.pos+=4);return new mt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Sn(this.buf,this.pos);return this.pos+=it(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Pn(r){return new Cn(r instanceof Uint8Array?r:r.subarray())}function K(r,t,e){let n=Pn(r);return t.decode(n,void 0,e)}var Ri=Z("node:buffer");var Rn={};lt(Rn,{base10:()=>Cc});var Ul=new Uint8Array(0);function gi(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n>>0,C=new Uint8Array(S);m!==w;){for(var B=h[m],E=0,I=S-1;(B!==0||E>>0,C[I]=B%c>>>0,B=B/c>>>0;if(B!==0)throw new Error("Non-zero carry");p=E,m++}for(var T=S-p;T!==S&&C[T]===0;)T++;for(var Q=a.repeat(f);T>>0,S=new Uint8Array(w);h[f];){var C=e[h.charCodeAt(f)];if(C===255)return;for(var B=0,E=w-1;(C!==0||B>>0,S[E]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");m=B,f++}if(h[f]!==" "){for(var I=w-m;I!==w&&S[I]===0;)I++;for(var T=new Uint8Array(p+(w-I)),Q=p;I!==w;)T[Q++]=S[I++];return T}}}function y(h){var f=g(h);if(f)return f;throw new Error(`Non-${t} character`)}return{encode:u,decodeUnsafe:g,decode:y}}var Ac=Sc,Tc=Ac,xi=Tc;var Nn=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")}},kn=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 Ei(this,t)}},Dn=class{decoders;constructor(t){this.decoders=t}or(t){return Ei(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 Ei(r,t){return new Dn({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var On=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Nn(t,e,n),this.decoder=new kn(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function ve({name:r,prefix:t,encode:e,decode:n}){return new On(r,t,e,n)}function Yt({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=xi(e,r);return ve({prefix:t,name:r,encode:n,decode:i=>Et(o(i))})}function Lc(r,t,e,n){let o={};for(let l=0;l=8&&(c-=8,s[d++]=255&a>>c)}if(c>=e||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s}function Bc(r,t,e){let n=t[t.length-1]==="=",o=(1<e;)s-=e,i+=t[o&c>>s];if(s!==0&&(i+=t[o&c<Pc,base16upper:()=>Nc});var Pc=z({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Nc=z({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var _n={};lt(_n,{base2:()=>kc});var kc=z({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Mn={};lt(Mn,{base256emoji:()=>_c});var vi=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Dc=vi.reduce((r,t,e)=>(r[e]=t,r),[]),Oc=vi.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Rc(r){return r.reduce((t,e)=>(t+=Dc[e],t),"")}function Uc(r){let t=[];for(let e of r){let n=Oc[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var _c=ve({prefix:"\u{1F680}",name:"base256emoji",encode:Rc,decode:Uc});var Kn={};lt(Kn,{base32:()=>Bt,base32hex:()=>Vc,base32hexpad:()=>Gc,base32hexpadupper:()=>zc,base32hexupper:()=>Fc,base32pad:()=>Kc,base32padupper:()=>$c,base32upper:()=>Mc,base32z:()=>Hc});var Bt=z({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Mc=z({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Kc=z({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),$c=z({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Vc=z({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Fc=z({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Gc=z({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),zc=z({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Hc=z({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $n={};lt($n,{base36:()=>qc,base36upper:()=>Wc});var qc=Yt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Wc=Yt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Vn={};lt(Vn,{base58btc:()=>$,base58flickr:()=>Yc});var $=Yt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Yc=Yt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Gn={};lt(Gn,{base64:()=>Fn,base64pad:()=>Zc,base64url:()=>Xc,base64urlpad:()=>Jc});var Fn=z({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zc=z({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Xc=z({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Jc=z({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var zn={};lt(zn,{base8:()=>Qc});var Qc=z({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Hn={};lt(Hn,{identity:()=>jc});var jc=ve({prefix:"\0",name:"identity",encode:r=>bi(r),decode:r=>yi(r)});var Ql=new TextEncoder,jl=new TextDecoder;var Wn={};lt(Wn,{identity:()=>_t});var ra=Ai,Ii=128,na=127,oa=~na,ia=Math.pow(2,31);function Ai(r,t,e){t=t||[],e=e||0;for(var n=e;r>=ia;)t[e++]=r&255|Ii,r/=128;for(;r&oa;)t[e++]=r&255|Ii,r>>>=7;return t[e]=r|0,Ai.bytes=e-n+1,t}var sa=qn,ca=128,Si=127;function qn(r,n){var e=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw qn.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=o<28?(s&Si)<=ca);return qn.bytes=i-n,e}var aa=Math.pow(2,7),ua=Math.pow(2,14),la=Math.pow(2,21),fa=Math.pow(2,28),da=Math.pow(2,35),ha=Math.pow(2,42),pa=Math.pow(2,49),ma=Math.pow(2,56),ga=Math.pow(2,63),ya=function(r){return rJn,sha512:()=>va});var Xn=pt(Z("crypto"),1);function Zn({name:r,code:t,encode:e}){return new Yn(r,t,e)}var Yn=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?ue(this.code,e):e.then(n=>ue(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Jn=Zn({name:"sha2-256",code:18,encode:r=>Et(Xn.default.createHash("sha256").update(r).digest())}),va=Zn({name:"sha2-512",code:19,encode:r=>Et(Xn.default.createHash("sha512").update(r).digest())});function Pi(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return Sa(e,jn(r),t??$.encoder);default:return Aa(e,jn(r),t??Bt.encoder)}}var Ni=new WeakMap;function jn(r){let t=Ni.get(r);if(t==null){let e=new Map;return Ni.set(r,e),e}return t}var tt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==Fe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Ta)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=ue(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&&Ti(t.multihash,n.multihash)}toString(t){return Pi(this,t)}toJSON(){return{"/":Pi(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:o,multihash:i,bytes:s}=e;return new r(n,o,i,s??ki(n,o,i.bytes))}else if(e[La]===!0){let{version:n,multihash:o,code:i}=e,s=ft(o);return r.create(n,i,s)}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!==Fe)throw new Error(`Version 0 CID must use dag-pb (code: ${Fe}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=ki(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Fe,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,o=Et(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=o.subarray(e.multihashSize-e.digestSize),s=new Ae(e.multihashCode,e.digestSize,i,o);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[u,g]=Ve(t.subarray(e));return e+=g,u},o=n(),i=Fe;if(o===18?(o=0,e=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=e,c=n(),a=n(),d=e+a,l=d-s;return{version:o,codec:i,multihashCode:c,digestSize:a,multihashSize:l,size:d}}static parse(t,e){let[n,o]=Ia(t,e),i=r.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return jn(i).set(n,t),i}};function Ia(r,t){switch(r[0]){case"Q":{let e=t??$;return[$.prefix,e.decode(`${$.prefix}${r}`)]}case $.prefix:{let e=t??$;return[$.prefix,e.decode(r)]}case Bt.prefix:{let e=t??Bt;return[Bt.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Sa(r,t,e){let{prefix:n}=e;if(n!==$.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return o}function Aa(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let i=e.encode(r);return t.set(n,i),i}else return o}var Fe=112,Ta=18;function ki(r,t,e){let n=Se(r),o=n+Se(t),i=new Uint8Array(o+e.byteLength);return Ie(r,i,0),Ie(t,i,n),i.set(e,o),i}var La=Symbol.for("@ipld/js-cid/CID");var Ge={...Hn,..._n,...zn,...Rn,...Un,...Kn,...$n,...Vn,...Gn,...Mn},vf={...Qn,...Wn};function Oi(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Di=Oi("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),to=Oi("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=xt(r.length);for(let e=0;e>>1,n,o=t;return function(s){if(s<1||s>e)return xt(s);o+s>t&&(n=xt(t),o=0);let c=n.subarray(o,o+=s);return o&7&&(o=(o|7)+1),c}}var le=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function ro(){}var oo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Ca=eo();function Pa(r){return globalThis.Buffer!=null?xt(r):Ca(r)}var He=class{len;head;tail;states;constructor(){this.len=0,this.head=new le(ro,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new le(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new io((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(ar,10,mt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=mt.fromBigInt(t);return this._push(ar,e.length(),e)}uint64Number(t){return this._push(In,it(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=mt.fromBigInt(t).zzEncode();return this._push(ar,e.length(),e)}sint64Number(t){let e=mt.fromNumber(t).zzEncode();return this._push(ar,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(no,1,t?1:0)}fixed32(t){return this._push(ze,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=mt.fromBigInt(t);return this._push(ze,4,e.lo)._push(ze,4,e.hi)}fixed64Number(t){let e=mt.fromNumber(t);return this._push(ze,4,e.lo)._push(ze,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(ai,4,t)}double(t){return this._push(li,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(no,1,0):this.uint32(e)._push(ka,e,t)}string(t){let e=hi(t);return e!==0?this.uint32(e)._push(Bn,e,t):this._push(no,1,0)}fork(){return this.states=new oo(this),this.head=this.tail=new le(ro,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new le(ro,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Pa(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function no(r,t,e){t[e]=r&255}function Na(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var io=class extends le{next;constructor(t,e){super(Na,t,e),this.next=void 0}};function ar(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function ze(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function ka(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(He.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Da,t,r),this},He.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Oa,t,r),this});function Da(r,t,e){t.set(r,e)}function Oa(r,t,e){r.length<40?Bn(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(Zt(r),e)}function so(){return new He}function V(r,t){let e=so();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Te;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Te||(Te={}));function ur(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ct(r){function t(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let e=function(i,s){let c=t(i);s.int32(c)},n=function(i){let s=i.int32();return t(s)};return ur("enum",Te.VARINT,e,n)}function F(r,t){return ur("message",Te.LENGTH_DELIMITED,r,t)}var H;(function(r){let t;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.connect!=null&&(i.uint32(18),fr.codec().encode(o.connect,i)),o.streamOpen!=null&&(i.uint32(26),dr.codec().encode(o.streamOpen,i)),o.streamHandler!=null&&(i.uint32(34),hr.codec().encode(o.streamHandler,i)),o.dht!=null&&(i.uint32(42),vt.codec().encode(o.dht,i)),o.connManager!=null&&(i.uint32(50),mr.codec().encode(o.connManager,i)),o.disconnect!=null&&(i.uint32(58),gr.codec().encode(o.disconnect,i)),o.pubsub!=null&&(i.uint32(66),Mt.codec().encode(o.pubsub,i)),o.peerStore!=null&&(i.uint32(74),wr.codec().encode(o.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.connect=fr.codec().decode(o,o.uint32());break;case 3:s.streamOpen=dr.codec().decode(o,o.uint32());break;case 4:s.streamHandler=hr.codec().decode(o,o.uint32());break;case 5:s.dht=vt.codec().decode(o,o.uint32());break;case 6:s.connManager=mr.codec().decode(o,o.uint32());break;case 7:s.disconnect=gr.codec().decode(o,o.uint32());break;case 8:s.pubsub=Mt.codec().decode(o,o.uint32());break;case 9:s.peerStore=wr.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(H||(H={}));var P;(function(r){let t;(function(o){o.OK="OK",o.ERROR="ERROR"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.error!=null&&(i.uint32(18),pr.codec().encode(o.error,i)),o.streamInfo!=null&&(i.uint32(26),Le.codec().encode(o.streamInfo,i)),o.identify!=null&&(i.uint32(34),lr.codec().encode(o.identify,i)),o.dht!=null&&(i.uint32(42),Pt.codec().encode(o.dht,i)),o.peers!=null)for(let c of o.peers)i.uint32(50),Xt.codec().encode(c,i);o.pubsub!=null&&(i.uint32(58),br.codec().encode(o.pubsub,i)),o.peerStore!=null&&(i.uint32(66),xr.codec().encode(o.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={peers:[]},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.error=pr.codec().decode(o,o.uint32());break;case 3:s.streamInfo=Le.codec().decode(o,o.uint32());break;case 4:s.identify=lr.codec().decode(o,o.uint32());break;case 5:s.dht=Pt.codec().decode(o,o.uint32());break;case 6:s.peers.push(Xt.codec().decode(o,o.uint32()));break;case 7:s.pubsub=br.codec().decode(o,o.uint32());break;case 8:s.peerStore=xr.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(P||(P={}));var lr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={id:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.id=e.bytes();break;case 2:o.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(lr||(lr={}));var fr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);e.timeout!=null&&(n.uint32(24),n.int64(e.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.addrs.push(e.bytes());break;case 3:o.timeout=e.int64();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(fr||(fr={}));var dr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.proto!=null)for(let i of e.proto)n.uint32(18),n.string(i);e.timeout!=null&&(n.uint32(24),n.int64(e.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),proto:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.proto.push(e.string());break;case 3:o.timeout=e.int64();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(dr||(dr={}));var hr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.addr!=null&&e.addr.byteLength>0&&(n.uint32(10),n.bytes(e.addr)),e.proto!=null)for(let i of e.proto)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={addr:new Uint8Array(0),proto:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.addr=e.bytes();break;case 2:o.proto.push(e.string());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(hr||(hr={}));var pr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.msg!=null&&e.msg!==""&&(n.uint32(10),n.string(e.msg)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={msg:""},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.msg=e.string();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(pr||(pr={}));var Le;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.addr!=null&&e.addr.byteLength>0&&(n.uint32(18),n.bytes(e.addr)),e.proto!=null&&e.proto!==""&&(n.uint32(26),n.string(e.proto)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.addr=e.bytes();break;case 3:o.proto=e.string();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(Le||(Le={}));var vt;(function(r){let t;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),i.bytes(o.peer)),o.cid!=null&&(i.uint32(26),i.bytes(o.cid)),o.key!=null&&(i.uint32(34),i.bytes(o.key)),o.value!=null&&(i.uint32(42),i.bytes(o.value)),o.count!=null&&(i.uint32(48),i.int32(o.count)),o.timeout!=null&&(i.uint32(56),i.int64(o.timeout)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=o.bytes();break;case 3:s.cid=o.bytes();break;case 4:s.key=o.bytes();break;case 5:s.value=o.bytes();break;case 6:s.count=o.int32();break;case 7:s.timeout=o.int64();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(vt||(vt={}));var Pt;(function(r){let t;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),Xt.codec().encode(o.peer,i)),o.value!=null&&(i.uint32(26),i.bytes(o.value)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=Xt.codec().decode(o,o.uint32());break;case 3:s.value=o.bytes();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(Pt||(Pt={}));var Xt;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={id:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.id=e.bytes();break;case 2:o.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(Xt||(Xt={}));var mr;(function(r){let t;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),i.bytes(o.peer)),o.tag!=null&&(i.uint32(26),i.string(o.tag)),o.weight!=null&&(i.uint32(32),i.int64(o.weight)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=o.bytes();break;case 3:s.tag=o.string();break;case 4:s.weight=o.int64();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(mr||(mr={}));var gr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0)},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(gr||(gr={}));var Mt;(function(r){let t;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.topic!=null&&(i.uint32(18),i.string(o.topic)),o.data!=null&&(i.uint32(26),i.bytes(o.data)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.topic=o.string();break;case 3:s.data=o.bytes();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(Mt||(Mt={}));var yr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.from!=null&&(n.uint32(10),n.bytes(e.from)),e.data!=null&&(n.uint32(18),n.bytes(e.data)),e.seqno!=null&&(n.uint32(26),n.bytes(e.seqno)),e.topicIDs!=null)for(let i of e.topicIDs)n.uint32(34),n.string(i);e.signature!=null&&(n.uint32(42),n.bytes(e.signature)),e.key!=null&&(n.uint32(50),n.bytes(e.key)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={topicIDs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.from=e.bytes();break;case 2:o.data=e.bytes();break;case 3:o.seqno=e.bytes();break;case 4:o.topicIDs.push(e.string());break;case 5:o.signature=e.bytes();break;case 6:o.key=e.bytes();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(yr||(yr={}));var br;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.topics!=null)for(let i of e.topics)n.uint32(10),n.string(i);if(e.peerIDs!=null)for(let i of e.peerIDs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={topics:[],peerIDs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.topics.push(e.string());break;case 2:o.peerIDs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(br||(br={}));var wr;(function(r){let t;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=F((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.id!=null&&(i.uint32(18),i.bytes(o.id)),o.protos!=null)for(let c of o.protos)i.uint32(26),i.string(c);s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={protos:[]},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.id=o.bytes();break;case 3:s.protos.push(o.string());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>V(o,r.codec()),r.decode=o=>K(o,r.codec())})(wr||(wr={}));var xr;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&(n.uint32(10),Xt.codec().encode(e.peer,n)),e.protos!=null)for(let i of e.protos)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={protos:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=Xt.codec().decode(e,e.uint32());break;case 2:o.protos.push(e.string());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>V(e,r.codec()),r.decode=e=>K(e,r.codec())})(xr||(xr={}));var Mi=pt(Z("node:tty"),1),Tr=pt(Z("node:util"),1);function Ra(r,t){try{if(typeof r=="string"&&r.length>0)return Ua(r);if(typeof r=="number"&&isFinite(r))return t?.long?Ma(r):_a(r);throw new Error("Value is not a string or number.")}catch(e){let n=Ka(e)?`${e.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Ua(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!t)return NaN;let e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*315576e5;case"weeks":case"week":case"w":return e*6048e5;case"days":case"day":case"d":return e*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return e*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return e*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return e*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var vr=Ra;function _a(r){let t=Math.abs(r);return t>=864e5?`${Math.round(r/864e5)}d`:t>=36e5?`${Math.round(r/36e5)}h`:t>=6e4?`${Math.round(r/6e4)}m`:t>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Ma(r){let t=Math.abs(r);return t>=864e5?Er(r,t,864e5,"day"):t>=36e5?Er(r,t,36e5,"hour"):t>=6e4?Er(r,t,6e4,"minute"):t>=1e3?Er(r,t,1e3,"second"):`${r} ms`}function Er(r,t,e,n){let o=t>=e*1.5;return`${Math.round(r/e)} ${n}${o?"s":""}`}function Ka(r){return typeof r=="object"&&r!==null&&"message"in r}var Sr=pt(Z("node:process"),1),_i=pt(Z("node:os"),1),co=pt(Z("node:tty"),1);function It(r,t=globalThis.Deno?globalThis.Deno.args:Sr.default.argv){let e=r.startsWith("-")?"":r.length===1?"-":"--",n=t.indexOf(e+r),o=t.indexOf("--");return n!==-1&&(o===-1||n=2,has16m:r>=3}}function Fa(r,{streamIsTTY:t,sniffFlags:e=!0}={}){let n=$a();n!==void 0&&(Ir=n);let o=e?Ir:n;if(o===0)return 0;if(e){if(It("color=16m")||It("color=full")||It("color=truecolor"))return 3;if(It("color=256"))return 2}if("TF_BUILD"in G&&"AGENT_NAME"in G)return 1;if(r&&!t&&o===void 0)return 0;let i=o||0;if(G.TERM==="dumb")return i;if(Sr.default.platform==="win32"){let s=_i.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in G)return"GITHUB_ACTIONS"in G||"GITEA_ACTIONS"in G?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in G)||G.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in G)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION)?1:0;if(G.COLORTERM==="truecolor"||G.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in G){let s=Number.parseInt((G.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(G.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(G.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM)||"COLORTERM"in G?1:i}function Ui(r,t={}){let e=Fa(r,{streamIsTTY:r&&r.isTTY,...t});return Va(e)}var Ga={stdout:Ui({isTTY:co.default.isatty(1)}),stderr:Ui({isTTY:co.default.isatty(2)})},Ar=Ga;function ao(r){e.debug=e,e.default=e,e.coerce=a,e.disable=i,e.enable=o,e.enabled=s,e.humanize=vr,e.destroy=d,Object.keys(r).forEach(l=>{e[l]=r[l]}),e.names=[],e.skips=[],e.formatters={};function t(l){let u=0;for(let g=0;g{if(E==="%%")return"%";C++;let T=e.formatters[I];if(typeof T=="function"){let Q=p[C];E=T.call(m,Q),p.splice(C,1),C--}return E}),e.formatArgs.call(m,p),(m.log||e.log).apply(m,p)}return f.namespace=l,f.useColors=e.useColors(),f.color=e.selectColor(l),f.extend=n,f.destroy=e.destroy,Object.defineProperty(f,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(y!==e.namespaces&&(y=e.namespaces,h=e.enabled(l)),h),set:p=>{g=p}}),typeof e.init=="function"&&e.init(f),f}function n(l,u){let g=e(this.namespace+(typeof u>"u"?":":u)+l);return g.log=this.log,g}function o(l){e.save(l),e.namespaces=l,e.names=[],e.skips=[];let u,g=(typeof l=="string"?l:"").split(/[\s,]+/),y=g.length;for(u=0;u"-"+u)].join(",");return e.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let u,g;for(u=0,g=e.skips.length;u=2&&(Ki=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]);var Be=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,t)=>{let e=t.substring(6).toLowerCase().replace(/_([a-z])/g,(o,i)=>i.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[e]=n,r},{});function za(){return"colors"in Be?!!Be.colors:Mi.default.isatty(process.stderr.fd)}function Ha(r){let{namespace:t,useColors:e}=this;if(e!=null){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),i=` ${o};1m${t} \x1B[0m`;r[0]=i+r[0].split(` - `).join(` --`+o),r.push(n+"m+"+Re.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=Vs()+t+" "+r[0]}function Vs(){return _.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Gs(...r){return process.stderr.write(Se.formatWithOptions(_.inspectOpts,...r)+` --`)}function $s(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function zs(){return process.env.DEBUG}function Hs(r){r.inspectOpts={};let t=Object.keys(_.inspectOpts);for(let e=0;et.trim()).join(" ")};ei.O=function(r){return this.inspectOpts.colors=this.useColors,Se.inspect(r,this.inspectOpts)}});var ni=xt((pu,Vr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Vr.exports=Qn():Vr.exports=ri()});var _c={};H(_c,{createClient:()=>Nc});var Qe=$("node:buffer");function It(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function at(r=0){return It(Qe.Buffer.alloc(r))}function Z(r=0){return It(Qe.Buffer.allocUnsafe(r))}var no=Math.pow(2,7),io=Math.pow(2,14),oo=Math.pow(2,21),Ze=Math.pow(2,28),qe=Math.pow(2,35),je=Math.pow(2,42),tr=Math.pow(2,49),x=128,F=127;function B(r){if(rNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function er(r,t,e=0){switch(B(r)){case 8:t[e++]=r&255|x,r/=128;case 7:t[e++]=r&255|x,r/=128;case 6:t[e++]=r&255|x,r/=128;case 5:t[e++]=r&255|x,r/=128;case 4:t[e++]=r&255|x,r>>>=7;case 3:t[e++]=r&255|x,r>>>=7;case 2:t[e++]=r&255|x,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function so(r,t,e=0){switch(B(r)){case 8:t.set(e++,r&255|x),r/=128;case 7:t.set(e++,r&255|x),r/=128;case 6:t.set(e++,r&255|x),r/=128;case 5:t.set(e++,r&255|x),r/=128;case 4:t.set(e++,r&255|x),r>>>=7;case 3:t.set(e++,r&255|x),r>>>=7;case 2:t.set(e++,r&255|x),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function rr(r,t){let e=r[t],i=0;if(i+=e&F,e>>31>0){let e=~this.lo+1>>>0,i=~this.hi>>>0;return e===0&&(i=i+1>>>0),-(e+i*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,i=~this.hi>>>0;return e===0&&(i=i+1>>>0),-(BigInt(e)+(BigInt(i)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return i===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:i<128?9:10}static fromBigInt(t){if(t===0n)return At;if(tuo)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let i=t>>32n,n=t-(i<<32n);return e&&(i=~i|0n,n=~n|0n,++n>An&&(n=0n,++i>An&&(i=0n))),new r(Number(n),Number(i))}static fromNumber(t){if(t===0)return At;let e=t<0;e&&(t=-t);let i=t>>>0,n=(t-i)/4294967296>>>0;return e&&(n=~n>>>0,i=~i>>>0,++i>4294967295&&(i=0,++n>4294967295&&(n=0))),new r(i,n)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):At}},At=new K(0,0);At.toBigInt=function(){return 0n};At.zzEncode=At.zzDecode=function(){return this};At.length=function(){return 1};var An=4294967296n;function Cn(r){let t=0,e=0;for(let i=0;i191&&c<224?o[s++]=(c&31)<<6|r[t++]&63:c>239&&c<365?(c=((c&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,o[s++]=55296+(c>>10),o[s++]=56320+(c&1023)):o[s++]=(c&15)<<12|(r[t++]&63)<<6|r[t++]&63,s>8191&&((n??(n=[])).push(String.fromCharCode.apply(String,o)),s=0);return n!=null?(s>0&&n.push(String.fromCharCode.apply(String,o.slice(0,s))),n.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function sr(r,t,e){let i=e,n,o;for(let s=0;s>6|192,t[e++]=n&63|128):(n&64512)===55296&&((o=r.charCodeAt(s+1))&64512)===56320?(n=65536+((n&1023)<<10)+(o&1023),++s,t[e++]=n>>18|240,t[e++]=n>>12&63|128,t[e++]=n>>6&63|128,t[e++]=n&63|128):(t[e++]=n>>12|224,t[e++]=n>>6&63|128,t[e++]=n&63|128);return e-i}function nt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function ae(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var cr=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,nt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw nt(this,4);return ae(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw nt(this,4);return ae(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw nt(this,4);let t=En(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw nt(this,4);let t=In(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,i=this.pos+t;if(i>this.len)throw nt(this,t);return this.pos+=t,e===i?new Uint8Array(0):this.buf.subarray(e,i)}string(){let t=this.bytes();return Tn(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw nt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw nt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new K(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw nt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw nt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw nt(this,8);let t=ae(this.buf,this.pos+=4),e=ae(this.buf,this.pos+=4);return new K(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=rr(this.buf,this.pos);return this.pos+=B(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function ar(r){return new cr(r instanceof Uint8Array?r:r.subarray())}function R(r,t,e){let i=ar(r);return t.decode(i,void 0,e)}var Wn=$("node:buffer");var hr={};H(hr,{base10:()=>go});var Wc=new Uint8Array(0);function Sn(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),i=0;i>>0,O=new Uint8Array(X);E!==C;){for(var rt=p[E],J=0,z=X-1;(rt!==0||J>>0,O[z]=rt%c>>>0,rt=rt/c>>>0;if(rt!==0)throw new Error("Non-zero carry");I=J,E++}for(var Q=X-I;Q!==X&&O[Q]===0;)Q++;for(var Ot=a.repeat(w);Q>>0,X=new Uint8Array(C);p[w];){var O=e[p.charCodeAt(w)];if(O===255)return;for(var rt=0,J=C-1;(O!==0||rt>>0,X[J]=O%256>>>0,O=O/256>>>0;if(O!==0)throw new Error("Non-zero carry");E=rt,w++}if(p[w]!==" "){for(var z=C-E;z!==C&&X[z]===0;)z++;for(var Q=new Uint8Array(I+(C-z)),Ot=I;z!==C;)Q[Ot++]=X[z++];return Q}}}function y(p){var w=m(p);if(w)return w;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:m,decode:y}}var fo=lo,ho=fo,Nn=ho;var ur=class{name;prefix;baseEncode;constructor(t,e,i){this.name=t,this.prefix=e,this.baseEncode=i}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},lr=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,i){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=i}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 _n(this,t)}},dr=class{decoders;constructor(t){this.decoders=t}or(t){return _n(this,t)}decode(t){let e=t[0],i=this.decoders[e];if(i!=null)return i.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function _n(r,t){return new dr({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var fr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,i,n){this.name=t,this.prefix=e,this.baseEncode=i,this.baseDecode=n,this.encoder=new ur(t,e,i),this.decoder=new lr(t,e,n)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Ut({name:r,prefix:t,encode:e,decode:i}){return new fr(r,t,e,i)}function mt({name:r,prefix:t,alphabet:e}){let{encode:i,decode:n}=Nn(e,r);return Ut({prefix:t,name:r,encode:i,decode:o=>q(n(o))})}function po(r,t,e,i){let n={};for(let u=0;u=8&&(c-=8,s[g++]=255&a>>c)}if(c>=e||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s}function mo(r,t,e){let i=t[t.length-1]==="=",n=(1<e;)s-=e,o+=t[n&c>>s];if(s!==0&&(o+=t[n&c<yo,base16upper:()=>wo});var yo=T({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),wo=T({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var mr={};H(mr,{base2:()=>bo});var bo=T({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var gr={};H(gr,{base256emoji:()=>Co});var Pn=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Eo=Pn.reduce((r,t,e)=>(r[e]=t,r),[]),xo=Pn.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Io(r){return r.reduce((t,e)=>(t+=Eo[e],t),"")}function Ao(r){let t=[];for(let e of r){let i=xo[e.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(i)}return new Uint8Array(t)}var Co=Ut({prefix:"\u{1F680}",name:"base256emoji",encode:Io,decode:Ao});var yr={};H(yr,{base32:()=>it,base32hex:()=>Ro,base32hexpad:()=>Lo,base32hexpadupper:()=>No,base32hexupper:()=>Do,base32pad:()=>vo,base32padupper:()=>So,base32upper:()=>To,base32z:()=>_o});var it=T({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),To=T({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),vo=T({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),So=T({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ro=T({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Do=T({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Lo=T({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),No=T({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),_o=T({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var wr={};H(wr,{base36:()=>Po,base36upper:()=>Oo});var Po=mt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Oo=mt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var br={};H(br,{base58btc:()=>N,base58flickr:()=>ko});var N=mt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ko=mt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var xr={};H(xr,{base64:()=>Er,base64pad:()=>Uo,base64url:()=>Fo,base64urlpad:()=>Bo});var Er=T({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Uo=T({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fo=T({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Bo=T({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ir={};H(Ir,{base8:()=>Mo});var Mo=T({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ar={};H(Ar,{identity:()=>Vo});var Vo=Ut({prefix:"\0",name:"identity",encode:r=>Dn(r),decode:r=>Rn(r)});var aa=new TextEncoder,ua=new TextDecoder;var Tr={};H(Tr,{identity:()=>qt});var zo=Un,On=128,Ho=127,Ko=~Ho,Wo=Math.pow(2,31);function Un(r,t,e){t=t||[],e=e||0;for(var i=e;r>=Wo;)t[e++]=r&255|On,r/=128;for(;r&Ko;)t[e++]=r&255|On,r>>>=7;return t[e]=r|0,Un.bytes=e-i+1,t}var Yo=Cr,Xo=128,kn=127;function Cr(r,i){var e=0,i=i||0,n=0,o=i,s,c=r.length;do{if(o>=c)throw Cr.bytes=0,new RangeError("Could not decode varint");s=r[o++],e+=n<28?(s&kn)<=Xo);return Cr.bytes=o-i,e}var Jo=Math.pow(2,7),Qo=Math.pow(2,14),Zo=Math.pow(2,21),qo=Math.pow(2,28),jo=Math.pow(2,35),ts=Math.pow(2,42),es=Math.pow(2,49),rs=Math.pow(2,56),ns=Math.pow(2,63),is=function(r){return rle,sha512:()=>us});var Rr=kt($("crypto"),1);function Sr({name:r,code:t,encode:e}){return new vr(r,t,e)}var vr=class{name;code;encode;constructor(t,e,i){this.name=t,this.code=e,this.encode=i}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?gt(this.code,e):e.then(i=>gt(this.code,i))}else throw Error("Unknown type, must be binary type")}};var le=Sr({name:"sha2-256",code:18,encode:r=>q(Rr.default.createHash("sha256").update(r).digest())}),us=Sr({name:"sha2-512",code:19,encode:r=>q(Rr.default.createHash("sha512").update(r).digest())});function Gn(r,t){let{bytes:e,version:i}=r;switch(i){case 0:return ds(e,Lr(r),t??N.encoder);default:return fs(e,Lr(r),t??it.encoder)}}var $n=new WeakMap;function Lr(r){let t=$n.get(r);if(t==null){let e=new Map;return $n.set(r,e),e}return t}var G=class r{code;version;multihash;bytes;"/";constructor(t,e,i,n){this.code=e,this.version=t,this.multihash=i,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:t,multihash:e}=this;if(t!==jt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==hs)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,i=gt(t,e);return r.createV1(this.code,i)}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 i=e;return i!=null&&t.code===i.code&&t.version===i.version&&Fn(t.multihash,i.multihash)}toString(t){return Gn(this,t)}toJSON(){return{"/":Gn(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:i,code:n,multihash:o,bytes:s}=e;return new r(i,n,o,s??zn(i,n,o.bytes))}else if(e[ps]===!0){let{version:i,multihash:n,code:o}=e,s=Ct(n);return r.create(i,o,s)}else return null}static create(t,e,i){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(i.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==jt)throw new Error(`Version 0 CID must use dag-pb (code: ${jt}) block encoding`);return new r(t,e,i,i.bytes)}case 1:{let n=zn(t,e,i.bytes);return new r(t,e,i,n)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,jt,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,i]=r.decodeFirst(t);if(i.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),i=e.size-e.multihashSize,n=q(t.subarray(i,i+e.multihashSize));if(n.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=n.subarray(e.multihashSize-e.digestSize),s=new Mt(e.multihashCode,e.digestSize,o,n);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,i=()=>{let[l,m]=Zt(t.subarray(e));return e+=m,l},n=i(),o=jt;if(n===18?(n=0,e=0):o=i(),n!==0&&n!==1)throw new RangeError(`Invalid CID version ${n}`);let s=e,c=i(),a=i(),g=e+a,u=g-s;return{version:n,codec:o,multihashCode:c,digestSize:a,multihashSize:u,size:g}}static parse(t,e){let[i,n]=ls(t,e),o=r.decode(n);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Lr(o).set(i,t),o}};function ls(r,t){switch(r[0]){case"Q":{let e=t??N;return[N.prefix,e.decode(`${N.prefix}${r}`)]}case N.prefix:{let e=t??N;return[N.prefix,e.decode(r)]}case it.prefix:{let e=t??it;return[it.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function ds(r,t,e){let{prefix:i}=e;if(i!==N.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let n=t.get(i);if(n==null){let o=e.encode(r).slice(1);return t.set(i,o),o}else return n}function fs(r,t,e){let{prefix:i}=e,n=t.get(i);if(n==null){let o=e.encode(r);return t.set(i,o),o}else return n}var jt=112,hs=18;function zn(r,t,e){let i=Bt(r),n=i+Bt(t),o=new Uint8Array(n+e.byteLength);return Ft(r,o,0),Ft(t,o,i),o.set(e,n),o}var ps=Symbol.for("@ipld/js-cid/CID");var yt={...Ar,...mr,...Ir,...hr,...pr,...yr,...wr,...br,...xr,...gr},Na={...Dr,...Tr};function Kn(r,t,e,i){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:i}}}var Hn=Kn("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Nr=Kn("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=Z(r.length);for(let e=0;e>>1,i,n=t;return function(s){if(s<1||s>e)return Z(s);n+s>t&&(i=Z(t),n=0);let c=i.subarray(n,n+=s);return n&7&&(n=(n|7)+1),c}}var St=class{fn;len;next;val;constructor(t,e,i){this.fn=t,this.len=e,this.next=void 0,this.val=i}};function Pr(){}var kr=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},gs=_r();function ys(r){return globalThis.Buffer!=null?Z(r):gs(r)}var ee=class{len;head;tail;states;constructor(){this.len=0,this.head=new St(Pr,0,0),this.tail=this.head,this.states=null}_push(t,e,i){return this.tail=this.tail.next=new St(t,e,i),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Ur((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(fe,10,K.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=K.fromBigInt(t);return this._push(fe,e.length(),e)}uint64Number(t){return this._push(er,B(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=K.fromBigInt(t).zzEncode();return this._push(fe,e.length(),e)}sint64Number(t){let e=K.fromNumber(t).zzEncode();return this._push(fe,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Or,1,t?1:0)}fixed32(t){return this._push(te,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=K.fromBigInt(t);return this._push(te,4,e.lo)._push(te,4,e.hi)}fixed64Number(t){let e=K.fromNumber(t);return this._push(te,4,e.lo)._push(te,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(bn,4,t)}double(t){return this._push(xn,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Or,1,0):this.uint32(e)._push(bs,e,t)}string(t){let e=Cn(t);return e!==0?this.uint32(e)._push(sr,e,t):this._push(Or,1,0)}fork(){return this.states=new kr(this),this.head=this.tail=new St(Pr,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new St(Pr,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,i=this.len;return this.reset().uint32(i),i!==0&&(this.tail.next=t.next,this.tail=e,this.len+=i),this}finish(){let t=this.head.next,e=ys(this.len),i=0;for(;t!=null;)t.fn(t.val,e,i),i+=t.len,t=t.next;return e}};function Or(r,t,e){t[e]=r&255}function ws(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Ur=class extends St{next;constructor(t,e){super(ws,t,e),this.next=void 0}};function fe(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function te(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function bs(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(ee.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Es,t,r),this},ee.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(xs,t,r),this});function Es(r,t,e){t.set(r,e)}function xs(r,t,e){r.length<40?sr(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(vt(r),e)}function Fr(){return new ee}function D(r,t){let e=Fr();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Vt;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Vt||(Vt={}));function he(r,t,e,i){return{name:r,type:t,encode:e,decode:i}}function lt(r){function t(n){if(r[n.toString()]==null)throw new Error("Invalid enum value");return r[n]}let e=function(o,s){let c=t(o);s.int32(c)},i=function(o){let s=o.int32();return t(s)};return he("enum",Vt.VARINT,e,i)}function L(r,t){return he("message",Vt.LENGTH_DELIMITED,r,t)}var v;(function(r){let t;(function(n){n.IDENTIFY="IDENTIFY",n.CONNECT="CONNECT",n.STREAM_OPEN="STREAM_OPEN",n.STREAM_HANDLER="STREAM_HANDLER",n.DHT="DHT",n.LIST_PEERS="LIST_PEERS",n.CONNMANAGER="CONNMANAGER",n.DISCONNECT="DISCONNECT",n.PUBSUB="PUBSUB",n.PEERSTORE="PEERSTORE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.IDENTIFY=0]="IDENTIFY",n[n.CONNECT=1]="CONNECT",n[n.STREAM_OPEN=2]="STREAM_OPEN",n[n.STREAM_HANDLER=3]="STREAM_HANDLER",n[n.DHT=4]="DHT",n[n.LIST_PEERS=5]="LIST_PEERS",n[n.CONNMANAGER=6]="CONNMANAGER",n[n.DISCONNECT=7]="DISCONNECT",n[n.PUBSUB=8]="PUBSUB",n[n.PEERSTORE=9]="PEERSTORE"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.connect!=null&&(o.uint32(18),me.codec().encode(n.connect,o)),n.streamOpen!=null&&(o.uint32(26),ge.codec().encode(n.streamOpen,o)),n.streamHandler!=null&&(o.uint32(34),ye.codec().encode(n.streamHandler,o)),n.dht!=null&&(o.uint32(42),j.codec().encode(n.dht,o)),n.connManager!=null&&(o.uint32(50),be.codec().encode(n.connManager,o)),n.disconnect!=null&&(o.uint32(58),Ee.codec().encode(n.disconnect,o)),n.pubsub!=null&&(o.uint32(66),dt.codec().encode(n.pubsub,o)),n.peerStore!=null&&(o.uint32(74),Ae.codec().encode(n.peerStore,o)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.connect=me.codec().decode(n,n.uint32());break;case 3:s.streamOpen=ge.codec().decode(n,n.uint32());break;case 4:s.streamHandler=ye.codec().decode(n,n.uint32());break;case 5:s.dht=j.codec().decode(n,n.uint32());break;case 6:s.connManager=be.codec().decode(n,n.uint32());break;case 7:s.disconnect=Ee.codec().decode(n,n.uint32());break;case 8:s.pubsub=dt.codec().decode(n,n.uint32());break;case 9:s.peerStore=Ae.codec().decode(n,n.uint32());break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(v||(v={}));var b;(function(r){let t;(function(n){n.OK="OK",n.ERROR="ERROR"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.OK=0]="OK",n[n.ERROR=1]="ERROR"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.error!=null&&(o.uint32(18),we.codec().encode(n.error,o)),n.streamInfo!=null&&(o.uint32(26),Gt.codec().encode(n.streamInfo,o)),n.identify!=null&&(o.uint32(34),pe.codec().encode(n.identify,o)),n.dht!=null&&(o.uint32(42),ot.codec().encode(n.dht,o)),n.peers!=null)for(let c of n.peers)o.uint32(50),wt.codec().encode(c,o);n.pubsub!=null&&(o.uint32(58),Ie.codec().encode(n.pubsub,o)),n.peerStore!=null&&(o.uint32(66),Ce.codec().encode(n.peerStore,o)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={peers:[]},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.error=we.codec().decode(n,n.uint32());break;case 3:s.streamInfo=Gt.codec().decode(n,n.uint32());break;case 4:s.identify=pe.codec().decode(n,n.uint32());break;case 5:s.dht=ot.codec().decode(n,n.uint32());break;case 6:s.peers.push(wt.codec().decode(n,n.uint32()));break;case 7:s.pubsub=Ie.codec().decode(n,n.uint32());break;case 8:s.peerStore=Ce.codec().decode(n,n.uint32());break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(b||(b={}));var pe;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.id!=null&&e.id.byteLength>0&&(i.uint32(10),i.bytes(e.id)),e.addrs!=null)for(let o of e.addrs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={id:new Uint8Array(0),addrs:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.id=e.bytes();break;case 2:n.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(pe||(pe={}));var me;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.peer!=null&&e.peer.byteLength>0&&(i.uint32(10),i.bytes(e.peer)),e.addrs!=null)for(let o of e.addrs)i.uint32(18),i.bytes(o);e.timeout!=null&&(i.uint32(24),i.int64(e.timeout)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={peer:new Uint8Array(0),addrs:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.addrs.push(e.bytes());break;case 3:n.timeout=e.int64();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(me||(me={}));var ge;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.peer!=null&&e.peer.byteLength>0&&(i.uint32(10),i.bytes(e.peer)),e.proto!=null)for(let o of e.proto)i.uint32(18),i.string(o);e.timeout!=null&&(i.uint32(24),i.int64(e.timeout)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={peer:new Uint8Array(0),proto:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.proto.push(e.string());break;case 3:n.timeout=e.int64();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(ge||(ge={}));var ye;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.addr!=null&&e.addr.byteLength>0&&(i.uint32(10),i.bytes(e.addr)),e.proto!=null)for(let o of e.proto)i.uint32(18),i.string(o);n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={addr:new Uint8Array(0),proto:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.addr=e.bytes();break;case 2:n.proto.push(e.string());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(ye||(ye={}));var we;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),e.msg!=null&&e.msg!==""&&(i.uint32(10),i.string(e.msg)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={msg:""},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.msg=e.string();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(we||(we={}));var Gt;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),e.peer!=null&&e.peer.byteLength>0&&(i.uint32(10),i.bytes(e.peer)),e.addr!=null&&e.addr.byteLength>0&&(i.uint32(18),i.bytes(e.addr)),e.proto!=null&&e.proto!==""&&(i.uint32(26),i.string(e.proto)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.addr=e.bytes();break;case 3:n.proto=e.string();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(Gt||(Gt={}));var j;(function(r){let t;(function(n){n.FIND_PEER="FIND_PEER",n.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",n.FIND_PROVIDERS="FIND_PROVIDERS",n.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",n.GET_PUBLIC_KEY="GET_PUBLIC_KEY",n.GET_VALUE="GET_VALUE",n.SEARCH_VALUE="SEARCH_VALUE",n.PUT_VALUE="PUT_VALUE",n.PROVIDE="PROVIDE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.FIND_PEER=0]="FIND_PEER",n[n.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",n[n.FIND_PROVIDERS=2]="FIND_PROVIDERS",n[n.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",n[n.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",n[n.GET_VALUE=5]="GET_VALUE",n[n.SEARCH_VALUE=6]="SEARCH_VALUE",n[n.PUT_VALUE=7]="PUT_VALUE",n[n.PROVIDE=8]="PROVIDE"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),o.bytes(n.peer)),n.cid!=null&&(o.uint32(26),o.bytes(n.cid)),n.key!=null&&(o.uint32(34),o.bytes(n.key)),n.value!=null&&(o.uint32(42),o.bytes(n.value)),n.count!=null&&(o.uint32(48),o.int32(n.count)),n.timeout!=null&&(o.uint32(56),o.int64(n.timeout)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.cid=n.bytes();break;case 4:s.key=n.bytes();break;case 5:s.value=n.bytes();break;case 6:s.count=n.int32();break;case 7:s.timeout=n.int64();break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(j||(j={}));var ot;(function(r){let t;(function(n){n.BEGIN="BEGIN",n.VALUE="VALUE",n.END="END"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.BEGIN=0]="BEGIN",n[n.VALUE=1]="VALUE",n[n.END=2]="END"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),wt.codec().encode(n.peer,o)),n.value!=null&&(o.uint32(26),o.bytes(n.value)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=wt.codec().decode(n,n.uint32());break;case 3:s.value=n.bytes();break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(ot||(ot={}));var wt;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.id!=null&&e.id.byteLength>0&&(i.uint32(10),i.bytes(e.id)),e.addrs!=null)for(let o of e.addrs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={id:new Uint8Array(0),addrs:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.id=e.bytes();break;case 2:n.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(wt||(wt={}));var be;(function(r){let t;(function(n){n.TAG_PEER="TAG_PEER",n.UNTAG_PEER="UNTAG_PEER",n.TRIM="TRIM"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.TAG_PEER=0]="TAG_PEER",n[n.UNTAG_PEER=1]="UNTAG_PEER",n[n.TRIM=2]="TRIM"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.peer!=null&&(o.uint32(18),o.bytes(n.peer)),n.tag!=null&&(o.uint32(26),o.string(n.tag)),n.weight!=null&&(o.uint32(32),o.int64(n.weight)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.tag=n.string();break;case 4:s.weight=n.int64();break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(be||(be={}));var Ee;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{n.lengthDelimited!==!1&&i.fork(),e.peer!=null&&e.peer.byteLength>0&&(i.uint32(10),i.bytes(e.peer)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={peer:new Uint8Array(0)},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.peer=e.bytes();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(Ee||(Ee={}));var dt;(function(r){let t;(function(n){n.GET_TOPICS="GET_TOPICS",n.LIST_PEERS="LIST_PEERS",n.PUBLISH="PUBLISH",n.SUBSCRIBE="SUBSCRIBE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.GET_TOPICS=0]="GET_TOPICS",n[n.LIST_PEERS=1]="LIST_PEERS",n[n.PUBLISH=2]="PUBLISH",n[n.SUBSCRIBE=3]="SUBSCRIBE"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.topic!=null&&(o.uint32(18),o.string(n.topic)),n.data!=null&&(o.uint32(26),o.bytes(n.data)),s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.topic=n.string();break;case 3:s.data=n.bytes();break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(dt||(dt={}));var xe;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.from!=null&&(i.uint32(10),i.bytes(e.from)),e.data!=null&&(i.uint32(18),i.bytes(e.data)),e.seqno!=null&&(i.uint32(26),i.bytes(e.seqno)),e.topicIDs!=null)for(let o of e.topicIDs)i.uint32(34),i.string(o);e.signature!=null&&(i.uint32(42),i.bytes(e.signature)),e.key!=null&&(i.uint32(50),i.bytes(e.key)),n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={topicIDs:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.from=e.bytes();break;case 2:n.data=e.bytes();break;case 3:n.seqno=e.bytes();break;case 4:n.topicIDs.push(e.string());break;case 5:n.signature=e.bytes();break;case 6:n.key=e.bytes();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(xe||(xe={}));var Ie;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.topics!=null)for(let o of e.topics)i.uint32(10),i.string(o);if(e.peerIDs!=null)for(let o of e.peerIDs)i.uint32(18),i.bytes(o);n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={topics:[],peerIDs:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.topics.push(e.string());break;case 2:n.peerIDs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(Ie||(Ie={}));var Ae;(function(r){let t;(function(n){n.UNSPECIFIED="UNSPECIFIED",n.GET_PROTOCOLS="GET_PROTOCOLS",n.GET_PEER_INFO="GET_PEER_INFO"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.UNSPECIFIED=0]="UNSPECIFIED",n[n.GET_PROTOCOLS=1]="GET_PROTOCOLS",n[n.GET_PEER_INFO=2]="GET_PEER_INFO"})(e||(e={})),function(n){n.codec=()=>lt(e)}(t=r.Type||(r.Type={}));let i;r.codec=()=>(i==null&&(i=L((n,o,s={})=>{if(s.lengthDelimited!==!1&&o.fork(),n.type!=null&&(o.uint32(8),r.Type.codec().encode(n.type,o)),n.id!=null&&(o.uint32(18),o.bytes(n.id)),n.protos!=null)for(let c of n.protos)o.uint32(26),o.string(c);s.lengthDelimited!==!1&&o.ldelim()},(n,o)=>{let s={protos:[]},c=o==null?n.len:n.pos+o;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.id=n.bytes();break;case 3:s.protos.push(n.string());break;default:n.skipType(a&7);break}}return s})),i),r.encode=n=>D(n,r.codec()),r.decode=n=>R(n,r.codec())})(Ae||(Ae={}));var Ce;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,i,n={})=>{if(n.lengthDelimited!==!1&&i.fork(),e.peer!=null&&(i.uint32(10),wt.codec().encode(e.peer,i)),e.protos!=null)for(let o of e.protos)i.uint32(18),i.string(o);n.lengthDelimited!==!1&&i.ldelim()},(e,i)=>{let n={protos:[]},o=i==null?e.len:e.pos+i;for(;e.pos>>3){case 1:n.peer=wt.codec().decode(e,e.uint32());break;case 2:n.protos.push(e.string());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>D(e,r.codec()),r.decode=e=>R(e,r.codec())})(Ce||(Ce={}));var Y=kt(ni(),1);Y.default.formatters.b=r=>r==null?"undefined":N.baseEncode(r);Y.default.formatters.t=r=>r==null?"undefined":it.baseEncode(r);Y.default.formatters.m=r=>r==null?"undefined":Er.baseEncode(r);Y.default.formatters.p=r=>r==null?"undefined":r.toString();Y.default.formatters.c=r=>r==null?"undefined":r.toString();Y.default.formatters.k=r=>r==null?"undefined":r.toString();Y.default.formatters.a=r=>r==null?"undefined":r.toString();function Ks(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function ii(){return{forComponent(r){return Dt(r)}}}function Dt(r){let t=Ks(`${r}:trace`);return Y.default.enabled(`${r}:trace`)&&Y.default.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=(0,Y.default)(`${r}:trace`)),Object.assign((0,Y.default)(r),{error:(0,Y.default)(`${r}:error`),trace:t})}function Wt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var De=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function oi(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new De(e?.errorMessage,e?.errorCode));let i,n=new De(e?.errorMessage,e?.errorCode);try{return await Promise.race([r,new Promise((o,s)=>{i=()=>{s(n)},t.addEventListener("abort",i)})])}finally{i!=null&&t.removeEventListener("abort",i)}}var Gr=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Wt(),this.haveNext=Wt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Wt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Wt(),await oi(this.readNext.promise,e?.signal,e)}};function si(){return new Gr}var ci=$("node:buffer");function tt(r,t){return It(ci.Buffer.concat(r,t))}function Lt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let i of t)if(i instanceof Uint8Array)e+=i.byteLength,this.bufs.push(i);else if(Le(i))e+=i.byteLength,this.bufs.push(...i.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let i of t.reverse())if(i instanceof Uint8Array)e+=i.byteLength,this.bufs.unshift(i);else if(Le(i))e+=i.byteLength,this.bufs.unshift(...i.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ai(this.bufs,t);return e.buf[e.index]}set(t,e){let i=ai(this.bufs,t);i.buf[i.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let i=0;i0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:i,length:n}=this._subList(t,e);return tt(i,n)}subarray(t,e){let{bufs:i,length:n}=this._subList(t,e);return i.length===1?i[0]:tt(i,n)}sublist(t,e){let{bufs:i,length:n}=this._subList(t,e),o=new r;return o.length=n,o.bufs=[...i],o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let i=[],n=0;for(let o=0;o=a)continue;let g=t>=c&&tc&&e<=a;if(g&&u){if(t===c&&e===a){i.push(s);break}let l=t-c;i.push(s.subarray(l,l+(e-t)));break}if(g){if(t===0){i.push(s);continue}i.push(s.subarray(t-c));continue}if(u){if(e===a){i.push(s);break}i.push(s.subarray(0,e-c));break}i.push(s)}return{bufs:i,length:e-t}}indexOf(t,e=0){if(!Le(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let i=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let n=i.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l=0;m--){let y=this.get(l+m);if(i[m]!==y){u=Math.max(1,m-c[y]);break}}if(u===0)return l}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let i=Z(1);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt8(0,e),this.write(i,t)}getInt16(t,e){let i=this.subarray(t,t+2);return new DataView(i.buffer,i.byteOffset,i.byteLength).getInt16(0,e)}setInt16(t,e,i){let n=at(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,e,i),this.write(n,t)}getInt32(t,e){let i=this.subarray(t,t+4);return new DataView(i.buffer,i.byteOffset,i.byteLength).getInt32(0,e)}setInt32(t,e,i){let n=at(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,e,i),this.write(n,t)}getBigInt64(t,e){let i=this.subarray(t,t+8);return new DataView(i.buffer,i.byteOffset,i.byteLength).getBigInt64(0,e)}setBigInt64(t,e,i){let n=at(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,e,i),this.write(n,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let i=Z(1);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint8(0,e),this.write(i,t)}getUint16(t,e){let i=this.subarray(t,t+2);return new DataView(i.buffer,i.byteOffset,i.byteLength).getUint16(0,e)}setUint16(t,e,i){let n=at(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,e,i),this.write(n,t)}getUint32(t,e){let i=this.subarray(t,t+4);return new DataView(i.buffer,i.byteOffset,i.byteLength).getUint32(0,e)}setUint32(t,e,i){let n=at(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,e,i),this.write(n,t)}getBigUint64(t,e){let i=this.subarray(t,t+8);return new DataView(i.buffer,i.byteOffset,i.byteLength).getBigUint64(0,e)}setBigUint64(t,e,i){let n=at(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,e,i),this.write(n,t)}getFloat32(t,e){let i=this.subarray(t,t+4);return new DataView(i.buffer,i.byteOffset,i.byteLength).getFloat32(0,e)}setFloat32(t,e,i){let n=at(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,e,i),this.write(n,t)}getFloat64(t,e){let i=this.subarray(t,t+8);return new DataView(i.buffer,i.byteOffset,i.byteLength).getFloat64(0,e)}setFloat64(t,e,i){let n=at(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,e,i),this.write(n,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;en+o.byteLength,0)),i.length=e,i}};var Ne=class extends Error{code;constructor(t,e){super(t),this.code=e}},$r=class extends Ne{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function li(r,t){let e=si();r.sink(e).catch(async s=>{await e.end(s)}),r.sink=async s=>{for await(let c of s)await e.push(c);await e.end()};let i=r.source;r.source[Symbol.iterator]!=null?i=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(i=r.source[Symbol.asyncIterator]());let n=new ft;return{read:async(s,c)=>{c?.signal?.throwIfAborted();let a,g=new Promise((u,l)=>{a=()=>{l(new $r("Read aborted"))},c?.signal?.addEventListener("abort",a)});try{if(s==null){let{done:l,value:m}=await Promise.race([i.next(),g]);return l===!0?new ft:m}for(;n.byteLength{c?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,c):await e.push(s.subarray(),c)},unwrap:()=>{if(n.byteLength>0){let s=r.source;r.source=async function*(){t?.yieldBytes===!1?yield n:yield*n,yield*s}()}return r}}}var _e=class extends Error{code;constructor(t,e){super(t),this.code=e}};function Pe(r,t={}){let e=li(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=B(t.maxDataLength));let i=t?.lengthDecoder??ut,n=t?.lengthEncoder??ht;return{read:async s=>{let c=-1,a=new ft;for(;;){a.append(await e.read(1,s));try{c=i(a)}catch(g){if(g instanceof RangeError)continue;throw g}if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new _e("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(c>-1)break}if(t?.maxDataLength!=null&&c>t.maxDataLength)throw new _e("message length too long","ERR_MSG_DATA_TOO_LONG");return e.read(c,s)},write:async(s,c)=>{await e.write(new ft(n(s.byteLength),s),c)},writeV:async(s,c)=>{let a=new ft(...s.flatMap(g=>[n(g.byteLength),g]));await e.write(a,c)},unwrap:()=>e.unwrap()}}var zr=Dt("libp2p:daemon-protocol:stream-handler"),Oe=class{stream;lp;constructor(t){let{stream:e,maxLength:i}=t;this.stream=e,this.lp=Pe(this.stream,{maxDataLength:i??4096})}async read(){try{return await this.lp.read()}catch(t){zr.error("read received no value",t)}}async write(t){zr("write message"),await this.lp.write(t)}rest(){return this.lp.unwrap()}async close(){zr("closing the stream"),await this.rest().close()}};var Hr={upgradeInbound:async r=>r,upgradeOutbound:async r=>r};var ke=Symbol.for("@libp2p/peer-id");function Yt(r){return r!=null&&!!r[ke]}var fi=Symbol.for("@libp2p/transport");var di;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(di||(di={}));var re=class r extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},f=class extends Error{code;props;constructor(t,e,i){super(t),this.code=e,this.name=i?.name??"CodeError",this.props=i??{}}};var hi=$("events"),pi=(r,...t)=>{try{(0,hi.setMaxListeners)(r,...t)}catch{}};var Ue=class extends EventTarget{#t=new Map;constructor(){super(),pi(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,i){super.addEventListener(t,e,i);let n=this.#t.get(t);n==null&&(n=[],this.#t.set(t,n)),n.push({callback:e,once:(i!==!0&&i!==!1&&i?.once)??!1})}removeEventListener(t,e,i){super.removeEventListener(t.toString(),e??null,i);let n=this.#t.get(t);n!=null&&(n=n.filter(({callback:o})=>o!==e),this.#t.set(t,n))}dispatchEvent(t){let e=super.dispatchEvent(t),i=this.#t.get(t.type);return i==null||(i=i.filter(({once:n})=>!n),this.#t.set(t.type,i)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new Ws(t,e))}},Kr=class extends Event{detail;constructor(t,e){super(t,e),this.detail=e?.detail}},Ws=globalThis.CustomEvent??Kr;var mi=Symbol.for("@libp2p/service-capabilities"),Yu=Symbol.for("@libp2p/service-dependencies");var gi=$("node:buffer");function k(r,t="utf8"){let e=de[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return t==="utf8"||t==="utf-8"?gi.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var wi=Symbol.for("nodejs.util.inspect.custom"),yi=Object.values(yt).map(r=>r.decoder).reduce((r,t)=>r.or(t),yt.identity.decoder),bi=114,Ei=36,xi=37,ne=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ke]=!0;toString(){return this.string==null&&(this.string=N.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return G.createV1(bi,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return Lt(this.multihash.bytes,t);if(typeof t=="string")return Ys(t).equals(this);if(t?.multihash?.bytes!=null)return Lt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[wi](){return`PeerId(${this.toString()})`}},ie=class extends ne{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},oe=class extends ne{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},se=class extends ne{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}},Wr=2336,Yr=class{type="url";multihash;privateKey;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=qt.digest(vt(this.url))}[wi](){return`PeerId(${this.url})`}[ke]=!0;toString(){return this.toCID().toString()}toCID(){return G.createV1(Wr,this.multihash)}toBytes(){return this.toCID().bytes}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=k(t)),t.toString()===this.toString())}};function Ys(r,t){if(t=t??yi,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=Ct(N.decode(`z${r}`));return r.startsWith("12D")?new oe({multihash:e}):r.startsWith("16U")?new se({multihash:e}):new ie({multihash:e})}return ct(yi.decode(r))}function ct(r){try{let t=Ct(r);if(t.code===qt.code){if(t.digest.length===Ei)return new oe({multihash:t});if(t.digest.length===xi)return new se({multihash:t})}if(t.code===le.code)return new ie({multihash:t})}catch{return Xs(G.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Xs(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==bi&&r.code!==Wr)throw new Error("Supplied PeerID CID is invalid");if(r.code===Wr){let e=k(r.multihash.digest);return new Yr(new URL(e))}let t=r.multihash;if(t.code===le.code)return new ie({multihash:r.multihash});if(t.code===qt.code){if(t.digest.length===Ei)return new oe({multihash:r.multihash});if(t.digest.length===xi)return new se({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}var Xi=kt($("net"),1);var Fe=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,i=t();return i===void 0&&(this.index=e),i}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,i){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return i()})}readNumber(t,e,i,n){return this.readAtomically(()=>{let o=0,s=0,c=this.peekChar();if(c===void 0)return;let a=c==="0",g=2**(8*n)-1;for(;;){let u=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let m=Number.parseInt(l,t);if(!Number.isNaN(m))return m});if(u===void 0)break;if(o*=t,o+=u,o>g||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!i&&a&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;ethis.readNumber(10,3,!1,1));if(i===void 0)return;t[e]=i}return t})}readIPv6Addr(){let t=e=>{for(let i=0;ithis.readIPv4Addr());if(s!==void 0)return e[n]=s[0],e[n+1]=s[1],e[n+2]=s[2],e[n+3]=s[3],[n+4,!0]}let o=this.readSeparator(":",i,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[n,!1];e[n]=o>>8,e[n+1]=o&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[i,n]=t(e);if(i===16)return e;if(n||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(i+2),[c]=t(o.subarray(0,s));return e.set(o.subarray(0,c),16-c),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Nl=new Fe;var Ml=parseInt("0xFFFF",16),Vl=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var et=$("node:net");function Be(r){return!!(0,et.isIP)(r)}var Ci=et.isIPv4,tc=et.isIPv6,Xr=function(r){let t=0;if(r=r.toString().trim(),Ci(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(i=>{e[t++]=parseInt(i,10)&255}),e}if(tc(r)){let e=r.split(":",8),i;for(i=0;i0;i--)o.push("0");e.splice.apply(e,o)}let n=new Uint8Array(t+16);for(i=0;i>8&255,n[t++]=o&255}return n}throw new Error("invalid ip address")},Ti=function(r,t=0,e){t=~~t,e=e??r.length-t;let i=new DataView(r.buffer);if(e===4){let n=[];for(let o=0;o{let t=nc(...r);Jr[t.code]=t,Xt[t.name]=t});function nc(r,t,e,i,n){return{code:r,size:t,name:e,resolvable:!!i,path:!!n}}function A(r){if(typeof r=="number"){if(Jr[r]!=null)return Jr[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Xt[r]!=null)return Xt[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var Cd=A("ip4"),Td=A("ip6"),vd=A("ipcidr");function jr(r,t){switch(A(r).code){case 4:case 41:return oc(t);case 42:return qr(t);case 6:case 273:case 33:case 132:return Ri(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return qr(t);case 421:return uc(t);case 444:return Si(t);case 445:return Si(t);case 466:return ac(t);case 481:return globalThis.encodeURIComponent(qr(t));default:return k(t,"base16")}}function tn(r,t){switch(A(r).code){case 4:return vi(t);case 41:return vi(t);case 42:return Zr(t);case 6:case 273:case 33:case 132:return en(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Zr(t);case 421:return sc(t);case 444:return lc(t);case 445:return dc(t);case 466:return cc(t);case 481:return Zr(globalThis.decodeURIComponent(t));default:return vt(t,"base16")}}var Qr=Object.values(yt).map(r=>r.decoder),ic=function(){let r=Qr[0].or(Qr[1]);return Qr.slice(2).forEach(t=>r=r.or(t)),r}();function vi(r){if(!Be(r))throw new Error("invalid ip address");return Xr(r)}function oc(r){let t=Ti(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Be(t))throw new Error("invalid ip address");return t}function en(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Ri(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Zr(r){let t=vt(r),e=Uint8Array.from(ht(t.length));return tt([e,t],e.length+t.length)}function qr(r){let t=ut(r);if(r=r.slice(B(t)),r.length!==t)throw new Error("inconsistent lengths");return k(r)}function sc(r){let t;r[0]==="Q"||r[0]==="1"?t=Ct(N.decode(`z${r}`)).bytes:t=G.parse(r).multihash.bytes;let e=Uint8Array.from(ht(t.length));return tt([e,t],e.length+t.length)}function cc(r){let t=ic.decode(r),e=Uint8Array.from(ht(t.length));return tt([e,t],e.length+t.length)}function ac(r){let t=ut(r),e=r.slice(B(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+k(e,"base64url")}function uc(r){let t=ut(r),e=r.slice(B(t));if(e.length!==t)throw new Error("inconsistent lengths");return k(e,"base58btc")}function lc(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=it.decode("b"+t[0]),i=parseInt(t[1],10);if(i<1||i>65536)throw new Error("Port number is not in range(1, 65536)");let n=en(i);return tt([e,n],e.length+n.length)}function dc(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=it.decode(`b${t[0]}`),i=parseInt(t[1],10);if(i<1||i>65536)throw new Error("Port number is not in range(1, 65536)");let n=en(i);return tt([e,n],e.length+n.length)}function Si(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),i=k(t,"base32"),n=Ri(e);return`${i}:${n}`}function Di(r){r=rn(r);let t=[],e=[],i=null,n=r.split("/").slice(1);if(n.length===1&&n[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o=n.length)throw Ni("invalid address: "+r);if(c.path===!0){i=rn(n.slice(o).join("/")),t.push([c.code,tn(c.code,i)]),e.push([c.code,i]);break}let a=tn(c.code,n[o]);t.push([c.code,a]),e.push([c.code,jr(c.code,a)])}return{string:Li(e),bytes:on(t),tuples:t,stringTuples:e,path:i}}function nn(r){let t=[],e=[],i=null,n=0;for(;nr.length)throw Ni("Invalid address Uint8Array: "+k(r,"base16"));t.push([o,g]);let u=jr(o,g);if(e.push([o,u]),c.path===!0){i=u;break}}return{bytes:Uint8Array.from(r),string:Li(e),tuples:t,stringTuples:e,path:i}}function Li(r){let t=[];return r.map(e=>{let i=A(e[0]);return t.push(i.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),rn(t.join("/"))}function on(r){return tt(r.map(t=>{let e=A(t[0]),i=Uint8Array.from(ht(e.code));return t.length>1&&t[1]!=null&&(i=tt([i,t[1]])),i}))}function fc(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=ut(t instanceof Uint8Array?t:Uint8Array.from(t));return e+B(e)}}function rn(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Ni(r){return new Error("Error parsing address: "+r)}var hc=Symbol.for("nodejs.util.inspect.custom"),sn=Symbol.for("@multiformats/js-multiaddr/multiaddr"),pc=[A("dns").code,A("dns4").code,A("dns6").code,A("dnsaddr").code],Me=class r{bytes;#t;#e;#r;#n;[sn]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=nn(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=Di(t)}else if(Ve(t))e=nn(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,i,n,o="",s=A("tcp"),c=A("udp"),a=A("ip4"),g=A("ip6"),u=A("dns6"),l=A("ip6zone");for(let[y,p]of this.stringTuples())y===l.code&&(o=`%${p??""}`),pc.includes(y)&&(e=s.name,n=443,i=`${p??""}${o}`,t=y===u.code?6:4),(y===s.code||y===c.code)&&(e=A(y).name,n=parseInt(p??"")),(y===a.code||y===g.code)&&(e=A(y).name,i=`${p??""}${o}`,t=y===g.code?6:4);if(t==null||e==null||i==null||n==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:i,transport:e,port:n}}protos(){return this.#e.map(([t])=>Object.assign({},A(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>A(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),i=this.toString(),n=i.lastIndexOf(e);if(n<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(i.slice(0,n))}decapsulateCode(t){let e=this.tuples();for(let i=e.length-1;i>=0;i--)if(e[i][0]===t)return new r(on(e.slice(0,i)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([i,n])=>{i===Xt.p2p.code&&t.push([i,n]),i===Xt["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let i=e[1];return i[0]==="Q"||i[0]==="1"?k(N.decode(`z${i}`),"base58btc"):k(G.parse(i).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Lt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(o=>o.resolvable);if(e==null)return[this];let i=_i.get(e.name);if(i==null)throw new f(`no available resolver for ${e.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await i(this,t)).map(o=>U(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[hc](){return`Multiaddr(${this.#t})`}};var _i=new Map;function Ve(r){return!!r?.[sn]}function U(r){return new Me(r)}var mc=d("dns4"),gc=d("dns6"),yc=d("dnsaddr"),_t=S(d("dns"),yc,mc,gc),ze=S(d("ip4"),d("ip6")),Et=S(h(ze,d("tcp")),h(_t,d("tcp"))),He=h(ze,d("udp")),wc=h(He,d("utp")),bc=h(He,d("quic")),Ec=h(He,d("quic-v1")),cn=S(h(Et,d("ws")),h(_t,d("ws"))),Ge=S(h(cn,d("p2p")),cn),an=S(h(Et,d("wss")),h(_t,d("wss")),h(Et,d("tls"),d("ws")),h(_t,d("tls"),d("ws"))),$e=S(h(an,d("p2p")),an),un=S(h(Et,d("http")),h(ze,d("http")),h(_t,d("http"))),ln=S(h(Et,d("https")),h(ze,d("https")),h(_t,d("https"))),Pi=h(He,d("webrtc-direct"),d("certhash")),Ui=S(h(Pi,d("p2p")),Pi),Oi=h(Ec,d("webtransport"),d("certhash"),d("certhash")),Fi=S(h(Oi,d("p2p")),Oi),Bi=S(h(Ge,d("p2p-webrtc-star"),d("p2p")),h($e,d("p2p-webrtc-star"),d("p2p")),h(Ge,d("p2p-webrtc-star")),h($e,d("p2p-webrtc-star"))),qd=S(h(Ge,d("p2p-websocket-star"),d("p2p")),h($e,d("p2p-websocket-star"),d("p2p")),h(Ge,d("p2p-websocket-star")),h($e,d("p2p-websocket-star"))),Mi=S(h(un,d("p2p-webrtc-direct"),d("p2p")),h(ln,d("p2p-webrtc-direct"),d("p2p")),h(un,d("p2p-webrtc-direct")),h(ln,d("p2p-webrtc-direct"))),Pt=S(cn,an,un,ln,Bi,Mi,Et,wc,bc,_t,Ui,Fi),jd=S(h(Pt,d("p2p-stardust"),d("p2p")),h(Pt,d("p2p-stardust"))),bt=S(h(Pt,d("p2p")),Bi,Mi,Ui,Fi,d("p2p")),ki=S(h(bt,d("p2p-circuit"),bt),h(bt,d("p2p-circuit")),h(d("p2p-circuit"),bt),h(Pt,d("p2p-circuit")),h(d("p2p-circuit"),Pt),d("p2p-circuit")),Vi=()=>S(h(ki,Vi),ki),Nt=Vi(),tf=S(h(Nt,bt,Nt),h(bt,Nt),h(Nt,bt),Nt,bt);var ef=S(h(Nt,d("webrtc"),d("p2p")),h(Nt,d("webrtc")),h(Pt,d("webrtc"),d("p2p")),h(Pt,d("webrtc")),d("webrtc"));function Gi(r){function t(e){let i;try{i=U(e)}catch{return!1}let n=r(i.protoNames());return n===null?!1:n===!0||n===!1?n:n.length===0}return t}function h(...r){function t(e){if(e.length(i=typeof n=="function"?n().partialMatch(e):n.partialMatch(e),Array.isArray(i)&&(e=i),i===null)),i}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gi(t),partialMatch:t}}function S(...r){function t(i){let n=null;return r.some(o=>{let s=typeof o=="function"?o().partialMatch(i):o.partialMatch(i);return s!=null?(n=s,!0):!1}),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gi(t),partialMatch:t}}function d(r){let t=r;function e(n){let o;try{o=U(n)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function i(n){return n.length===0?null:n[0]===t?n.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:i}}var Ke=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var Yi=kt($("net"),1);var dn={ERR_INVALID_IP_PARAMETER:"ERR_INVALID_IP_PARAMETER",ERR_INVALID_PORT_PARAMETER:"ERR_INVALID_PORT_PARAMETER",ERR_INVALID_IP:"ERR_INVALID_IP"};function $i(r,t){if(typeof r!="string")throw new f(`invalid ip provided: ${r}`,dn.ERR_INVALID_IP_PARAMETER);if(typeof t=="string"&&(t=parseInt(t)),isNaN(t))throw new f(`invalid port provided: ${t}`,dn.ERR_INVALID_PORT_PARAMETER);if((0,et.isIPv4)(r))return U(`/ip4/${r}/tcp/${t}`);if((0,et.isIPv6)(r))return U(`/ip6/${r}/tcp/${t}`);throw new f(`invalid ip:port for creating a multiaddr: ${r}:${t}`,dn.ERR_INVALID_IP)}function zi(r){if(Ac(r))return async function*(){let t=r.getReader();try{for(;;){let{done:e,value:i}=await t.read();if(e)return;yield i}}finally{t.releaseLock()}}();if(Ic(r))return r;throw new Error("unknown stream")}function Ic(r){return r[Symbol.asyncIterator]!=null}function Ac(r){return typeof r?.getReader=="function"}function Hi(r){return async t=>{let e=async()=>{Cc(t)&&await t.return(void 0)},i,n,o=E=>{i=E,e().catch(C=>{C=new AggregateError([i,C],"The Writable emitted an error, additionally an error occurred while ending the Source")}).finally(()=>{n?.(E)})},s,c=!1,a=()=>{c=!0,s?.()},g,u=!1,l=()=>{u=!0,g?.()},m,y=()=>{m?.()},p=async()=>new Promise((E,C)=>{s=m=E,n=C,r.once("drain",y)}),w=async()=>(await e(),new Promise((E,C)=>{if(c||u||i!=null){E();return}g=s=E,n=C})),I=()=>{r.removeListener("error",o),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("drain",y)};r.once("error",o),r.once("close",a),r.once("finish",l);try{for await(let E of t){if(!r.writable||r.destroyed||i!=null)break;r.write(E)||await p()}}catch(E){i==null&&r.destroy(E),i=E}try{if(r.writable&&r.end(),await w(),i!=null)throw i}finally{I()}}}function Cc(r){return r.return!=null}function fn(r){return{sink:Hi(r),source:zi(r)}}var hn=kt($("os"),1),Ki=kt($("path"),1);var Tc={ip4:"IPv4",ip6:"IPv6"};function Jt(r,t={}){let e=r.getPath();return e!=null?hn.default.platform()==="win32"?{path:Ki.default.join("\\\\.\\pipe\\",e)}:{path:e}:{...t,...r.toOptions()}}function pn(r,t,e){let i=n=>U(`/${r}/${n}/tcp/${e}`);return(vc(t)?Rc(Tc[r]):[t]).map(i)}function vc(r){return["0.0.0.0","::"].includes(r)}var Sc=hn.default.networkInterfaces();function Rc(r){let t=[];for(let[,e]of Object.entries(Sc))if(e!=null)for(let i of e)i.family===r&&t.push(i.address);return t}var We=(r,t)=>{let e=null,i=t.logger.forComponent("libp2p:tcp:socket"),n=t.metrics,o=t.metricPrefix??"",s=t.socketInactivityTimeout??3e5,c=t.socketCloseTimeout??500;t.listeningAddr?.getPath()!=null&&(t.remoteAddr=t.listeningAddr),t.remoteAddr?.getPath()!=null&&(t.localAddr=t.remoteAddr);let a;if(t.remoteAddr!=null)a=t.remoteAddr;else{if(r.remoteAddress==null||r.remotePort==null)throw new f("Could not determine remote address or port","ERR_NO_REMOTE_ADDRESS");a=$i(r.remoteAddress,r.remotePort)}let g=Jt(a),u=g.path??`${g.host??""}:${g.port??""}`,{sink:l,source:m}=fn(r);r.setTimeout(s,()=>{i("%s socket read timeout",u),n?.increment({[`${o}timeout`]:!0});let p;r.readable&&(p=new f("Socket read timeout","ERR_SOCKET_READ_TIMEOUT")),r.destroy(p)}),r.once("close",()=>{i("%s socket close",u),n?.increment({[`${o}close`]:!0}),y.timeline.close==null&&(y.timeline.close=Date.now())}),r.once("end",()=>{i("%s socket end",u),n?.increment({[`${o}end`]:!0})});let y={async sink(p){try{await l(async function*(){for await(let w of p)w instanceof Uint8Array?yield w:yield w.subarray()}())}catch(w){w.type!=="aborted"&&i.error("%s error in sink",u,w)}r.end()},source:m,remoteAddr:a,timeline:{open:Date.now()},async close(p={}){if(r.destroyed){i("The %s socket is destroyed",u);return}if(e!=null)return i("The %s socket is closed or closing",u),e;if(p.signal==null){let I=AbortSignal.timeout(c);p={...p,signal:I}}let w=()=>{r.destroy(new f("Destroying socket after timeout","ERR_CLOSE_TIMEOUT"))};p.signal?.addEventListener("abort",w);try{i("%s closing socket",u),e=new Promise((I,E)=>{r.once("close",()=>{i("%s socket closed",u),I()}),r.once("error",C=>{i("%s socket error",u,C),y.timeline.close==null&&(y.timeline.close=Date.now()),r.destroyed||E(C)}),r.setTimeout(c),r.end(),r.writableLength>0?r.once("drain",()=>{i("%s socket drained",u),r.destroy()}):r.destroy()}),await e}catch(I){this.abort(I)}finally{p.signal?.removeEventListener("abort",w)}},abort:p=>{i("%s socket abort due to error",u,p),r.destroyed||r.destroy(p),y.timeline.close==null&&(y.timeline.close=Date.now())},log:i};return y};async function Wi(r,t){try{await r.close()}catch(e){t.log.error("an error occurred closing the connection",e),r.abort(e)}}var P;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(P||(P={}));var Ye=class extends Ue{context;server;connections=new Set;status={code:P.INACTIVE};metrics;addr;log;constructor(t){if(super(),this.context=t,t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,this.log=t.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=Yi.default.createServer(t,this.onSocket.bind(this)),t.maxConnections!==void 0&&(this.server.maxConnections=t.maxConnections),t.closeServerOnMaxConnections!=null&&t.closeServerOnMaxConnections.closeAbove= listenBelow","ERR_CONNECTION_LIMITS");this.server.on("listening",()=>{if(t.metrics!=null){let e=this.server.address();e==null?this.addr="unknown":typeof e=="string"?this.addr=e:this.addr=`${e.address}:${e.port}`,t.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.connections.size})}),this.metrics={status:t.metrics.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:t.metrics.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:t.metrics.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.metrics?.status.update({[this.addr]:P.ACTIVE})}this.safeDispatchEvent("listening")}).on("error",e=>{this.metrics?.errors.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:e})}).on("close",()=>{this.metrics?.status.update({[this.addr]:this.status.code}),this.status.code!==P.PAUSED&&this.safeDispatchEvent("close")})}onSocket(t){if(this.status.code!==P.ACTIVE)throw new f("Server is not listening yet","ERR_SERVER_NOT_RUNNING");t.on("error",i=>{this.log("socket error",i),this.metrics?.events.increment({[`${this.addr} error`]:!0})});let e;try{e=We(t,{listeningAddr:this.status.listeningAddr,socketInactivityTimeout:this.context.socketInactivityTimeout,socketCloseTimeout:this.context.socketCloseTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,logger:this.context.logger})}catch(i){this.log.error("inbound connection failed",i),this.metrics?.errors.increment({[`${this.addr} inbound_to_connection`]:!0});return}this.log("new inbound connection %s",e.remoteAddr);try{this.context.upgrader.upgradeInbound(e).then(i=>{this.log("inbound connection upgraded %s",e.remoteAddr),this.connections.add(e),t.once("close",()=>{this.connections.delete(e),this.context.closeServerOnMaxConnections!=null&&this.connections.size{this.log.error("error attempting to listen server once connection count under limit",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.handler!=null&&this.context.handler(i),this.context.closeServerOnMaxConnections!=null&&this.connections.size>=this.context.closeServerOnMaxConnections.closeAbove&&this.pause(!1).catch(n=>{this.log.error("error attempting to close server once connection count over limit",n)}),this.safeDispatchEvent("connection",{detail:i})}).catch(async i=>{this.log.error("inbound connection failed",i),this.metrics?.errors.increment({[`${this.addr} inbound_upgrade`]:!0}),await Wi(e,{log:this.log})}).catch(i=>{this.log.error("closing inbound connection failed",i)})}catch(i){this.log.error("inbound connection failed",i),Wi(e,{log:this.log}).catch(n=>{this.log.error("closing inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_closing_failed`]:!0})})}}getAddrs(){if(this.status.code===P.INACTIVE)return[];let t=[],e=this.server.address(),{listeningAddr:i,peerId:n}=this.status;if(e==null)return[];if(typeof e=="string")t=[i];else try{i.toString().startsWith("/ip4")?t=t.concat(pn("ip4",e.address,e.port)):e.family==="IPv6"&&(t=t.concat(pn("ip6",e.address,e.port)))}catch(o){this.log.error("could not turn %s:%s into multiaddr",e.address,e.port,o)}return t.map(o=>n!=null?o.encapsulate(`/p2p/${n}`):o)}async listen(t){if(this.status.code===P.ACTIVE||this.status.code===P.PAUSED)throw new f("server is already listening","ERR_SERVER_ALREADY_LISTENING");let e=t.getPeerId(),i=e==null?t.decapsulateCode(421):t,{backlog:n}=this.context;try{this.status={code:P.ACTIVE,listeningAddr:i,peerId:e,netConfig:Jt(i,{backlog:n})},await this.resume()}catch(o){throw this.status={code:P.INACTIVE},o}}async close(){let t=new f("Listener is closing","ERR_LISTENER_CLOSING");this.connections.forEach(e=>{e.abort(t)}),await this.pause(!0)}async resume(){if(this.server.listening||this.status.code===P.INACTIVE)return;let t=this.status.netConfig;await new Promise((e,i)=>{this.server.once("error",i),this.server.listen(t,e)}),this.status={...this.status,code:P.ACTIVE},this.log("listening on %s",this.server.address())}async pause(t){if(!this.server.listening&&this.status.code===P.PAUSED&&t){this.status={code:P.INACTIVE};return}!this.server.listening||this.status.code!==P.ACTIVE||(this.log("closing server on %s",this.server.address()),this.status=t?{code:P.INACTIVE}:{...this.status,code:P.PAUSED},await new Promise((e,i)=>{this.server.close(n=>{if(n!=null){i(n);return}e()})}))}};var mn=class{opts;metrics;components;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:tcp"),this.opts=e,this.components=t,t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[fi]=!0;[Symbol.toStringTag]="@libp2p/tcp";[mi]=["@libp2p/transport"];async dial(t,e){e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0;let i=await this._connect(t,e);i.on("error",c=>{this.log("socket error",c)});let n=We(i,{remoteAddr:t,socketInactivityTimeout:this.opts.outboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.metrics?.dialerEvents,logger:this.components.logger}),o=()=>{n.close().catch(c=>{this.log.error("Error closing maConn after abort",c)})};e.signal?.addEventListener("abort",o,{once:!0}),this.log("new outbound connection %s",n.remoteAddr);let s=await e.upgrader.upgradeOutbound(n);if(this.log("outbound connection %s upgraded",n.remoteAddr),e.signal?.removeEventListener("abort",o),e.signal?.aborted===!0)throw s.close().catch(c=>{this.log.error("Error closing conn after abort",c)}),new re;return s}async _connect(t,e){return e.signal?.throwIfAborted(),e.onProgress?.(new Ke("tcp:open-connection")),new Promise((i,n)=>{let o=Date.now(),s=Jt(t,{...this.opts.dialOpts??{},...e});this.log("dialing %a",t);let c=Xi.default.connect(s),a=y=>{let p=s.path??`${s.host??""}:${s.port}`;y.message=`connection error ${p}: ${y.message}`,this.metrics?.dialerEvents.increment({error:!0}),m(y)},g=()=>{this.log("connection timeout %a",t),this.metrics?.dialerEvents.increment({timeout:!0});let y=new f(`connection timeout after ${Date.now()-o}ms`,"ERR_CONNECT_TIMEOUT");c.emit("error",y)},u=()=>{this.log("connection opened %a",t),this.metrics?.dialerEvents.increment({connect:!0}),m()},l=()=>{this.log("connection aborted %a",t),this.metrics?.dialerEvents.increment({abort:!0}),c.destroy(),m(new re)},m=y=>{if(c.removeListener("error",a),c.removeListener("timeout",g),c.removeListener("connect",u),e.signal!=null&&e.signal.removeEventListener("abort",l),y!=null){n(y);return}i(c)};c.on("error",a),c.on("timeout",g),c.on("connect",u),e.signal!=null&&e.signal.addEventListener("abort",l)})}createListener(t){return new Ye({...this.opts.listenOpts??{},...t,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,socketInactivityTimeout:this.opts.inboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>e.protoCodes().includes(290)?!1:e.protoCodes().includes(400)?!0:Et.matches(e.decapsulateCode(421)))}dialFilter(t){return this.listenFilter(t)}};function Ji(r={}){return t=>new mn(t,r)}function Qi(r,t){let e=Pe(r,t),i={read:async(n,o)=>{let s=await e.read(o);return n.decode(s)},write:async(n,o,s)=>{await e.write(o.encode(n),s)},writeV:async(n,o,s)=>{await e.writeV(n.map(c=>o.encode(c)),s)},pb:n=>({read:async o=>i.read(n,o),write:async(o,s)=>i.write(o,n,s),writeV:async(o,s)=>i.writeV(o,n,s),unwrap:()=>i}),unwrap:()=>e.unwrap()};return i}var Lc=Dt("libp2p:daemon-client:dht"),Xe=class{client;constructor(t){this.client=t}async put(t,e){if(!(t instanceof Uint8Array))throw new f("invalid key received","ERR_INVALID_KEY");if(!(e instanceof Uint8Array))throw new f("value received is not a Uint8Array","ERR_INVALID_VALUE");let i=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.PUT_VALUE,key:t,value:e}}),n=await i.read(b);if(Lc("read",n),await i.unwrap().close(),n.type!==b.Type.OK)throw new f(n.error?.msg??"DHT put failed","ERR_DHT_PUT_FAILED")}async get(t){if(!(t instanceof Uint8Array))throw new f("invalid key received","ERR_INVALID_KEY");let e=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.GET_VALUE,key:t}}),i=await e.read(b);if(await e.unwrap().close(),i.type!==b.Type.OK)throw new f(i.error?.msg??"DHT get failed","ERR_DHT_GET_FAILED");if(i.dht==null||i.dht.value==null)throw new f("Invalid DHT get response","ERR_DHT_GET_FAILED");return i.dht.value}async findPeer(t){if(!Yt(t))throw new f("invalid peer id received","ERR_INVALID_PEER_ID");let e=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.FIND_PEER,peer:t.toBytes()}}),i=await e.read(b);if(await e.unwrap().close(),i.type!==b.Type.OK)throw new f(i.error?.msg??"DHT find peer failed","ERR_DHT_FIND_PEER_FAILED");if(i.dht==null||i.dht.peer==null||i.dht.peer.addrs==null)throw new f("Invalid response","ERR_DHT_FIND_PEER_FAILED");return{id:ct(i.dht.peer.id),multiaddrs:i.dht.peer.addrs.map(n=>U(n))}}async provide(t){if(t==null||G.asCID(t)==null)throw new f("invalid cid received","ERR_INVALID_CID");let e=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.PROVIDE,cid:t.bytes}}),i=await e.read(b);if(await e.unwrap().close(),i.type!==b.Type.OK)throw new f(i.error?.msg??"DHT provide failed","ERR_DHT_PROVIDE_FAILED")}async*findProviders(t,e=1){if(t==null||G.asCID(t)==null)throw new f("invalid cid received","ERR_INVALID_CID");let i=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.FIND_PROVIDERS,cid:t.bytes,count:e}}),n=await i.read(b);if(n.type!==b.Type.OK)throw await i.unwrap().close(),new f(n.error?.msg??"DHT find providers failed","ERR_DHT_FIND_PROVIDERS_FAILED");for(;;){let o=await i.read(ot);if(o.type===ot.Type.END){await i.unwrap().close();return}if(o.type===ot.Type.VALUE&&o.peer!=null&&o.peer?.addrs!=null)yield{id:ct(o.peer.id),multiaddrs:o.peer.addrs.map(s=>U(s))};else throw await i.unwrap().close(),new f("unexpected message received","ERR_UNEXPECTED_MESSAGE_RECEIVED")}}async*getClosestPeers(t){if(!(t instanceof Uint8Array))throw new f("invalid key received","ERR_INVALID_KEY");let e=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.GET_CLOSEST_PEERS,key:t}}),i=await e.read(b);if(i.type!==b.Type.OK)throw await e.unwrap().close(),new f(i.error?.msg??"DHT find providers failed","ERR_DHT_FIND_PROVIDERS_FAILED");for(;;){let n=await e.read(ot);if(n.type===ot.Type.END){await e.unwrap().close();return}if(n.type===ot.Type.VALUE&&n.value!=null)yield{id:ct(n.value),multiaddrs:[]};else throw await e.unwrap().close(),new f("unexpected message received","ERR_UNEXPECTED_MESSAGE_RECEIVED")}}async getPublicKey(t){if(!Yt(t))throw new f("invalid peer id received","ERR_INVALID_PEER_ID");let e=await this.client.send({type:v.Type.DHT,dht:{type:j.Type.GET_PUBLIC_KEY,peer:t.toBytes()}}),i=await e.read(b);if(await e.unwrap().close(),i.type!==b.Type.OK)throw new f(i.error?.msg??"DHT get public key failed","ERR_DHT_GET_PUBLIC_KEY_FAILED");if(i.dht==null)throw new f("Invalid response","ERR_DHT_GET_PUBLIC_KEY_FAILED");return i.dht.value}};var Je=class{client;constructor(t){this.client=t}async getTopics(){let t=await this.client.send({type:v.Type.PUBSUB,pubsub:{type:dt.Type.GET_TOPICS}}),e=await t.read(b);if(await t.unwrap().close(),e.type!==b.Type.OK)throw new f(e.error?.msg??"Pubsub get topics failed","ERR_PUBSUB_GET_TOPICS_FAILED");if(e.pubsub==null||e.pubsub.topics==null)throw new f("Invalid response","ERR_PUBSUB_GET_TOPICS_FAILED");return e.pubsub.topics}async publish(t,e){if(typeof t!="string")throw new f("invalid topic received","ERR_INVALID_TOPIC");if(!(e instanceof Uint8Array))throw new f("data received is not a Uint8Array","ERR_INVALID_DATA");let i=await this.client.send({type:v.Type.PUBSUB,pubsub:{type:dt.Type.PUBLISH,topic:t,data:e}}),n=await i.read(b);if(await i.unwrap().close(),n.type!==b.Type.OK)throw new f(n.error?.msg??"Pubsub publish failed","ERR_PUBSUB_PUBLISH_FAILED")}async subscribe(t){if(typeof t!="string")throw new f("invalid topic received","ERR_INVALID_TOPIC");let e=await this.client.send({type:v.Type.PUBSUB,pubsub:{type:dt.Type.SUBSCRIBE,topic:t}}),i=await e.read(b);if(i.type!==b.Type.OK)throw new f(i.error?.msg??"Pubsub publish failed","ERR_PUBSUB_PUBLISH_FAILED");let n=!0;return{async*messages(){for(;n;)yield await e.read(xe)},async cancel(){n=!1,await e.unwrap().close()}}}async getSubscribers(t){if(typeof t!="string")throw new f("invalid topic received","ERR_INVALID_TOPIC");let e=await this.client.send({type:v.Type.PUBSUB,pubsub:{type:dt.Type.LIST_PEERS,topic:t}}),i=await e.read(b);if(await e.unwrap().close(),i.type!==b.Type.OK)throw new f(i.error?.msg??"Pubsub get subscribers failed","ERR_PUBSUB_GET_SUBSCRIBERS_FAILED");if(i.pubsub==null||i.pubsub.topics==null)throw new f("Invalid response","ERR_PUBSUB_GET_SUBSCRIBERS_FAILED");return i.pubsub.peerIDs.map(n=>ct(n))}};var gn=Dt("libp2p:daemon-client"),yn=class{multiaddr;dht;pubsub;tcp;constructor(t){this.multiaddr=t,this.tcp=Ji()({logger:ii()}),this.dht=new Xe(this),this.pubsub=new Je(this)}async connectDaemon(){return this.tcp.dial(this.multiaddr,{upgrader:Hr})}async send(t){let e=await this.connectDaemon(),i=t.pubsub?.type??t.dht?.type??t.peerStore?.type??"";gn("send",t.type,i);let n=Qi(e);return await n.write(t,v),n}async connect(t,e){if(!Yt(t))throw new f("invalid peer id received","ERR_INVALID_PEER_ID");if(!Array.isArray(e))throw new f("addrs received are not in an array","ERR_INVALID_ADDRS_TYPE");e.forEach(o=>{if(!Ve(o))throw new f("received an address that is not a multiaddr","ERR_NO_MULTIADDR_RECEIVED")});let i=await this.send({type:v.Type.CONNECT,connect:{peer:t.toBytes(),addrs:e.map(o=>o.bytes)}}),n=await i.read(b);if(n.type!==b.Type.OK){let o=n.error??{msg:"unspecified"};throw new f(o.msg??"unspecified","ERR_CONNECT_FAILED")}await i.unwrap().close()}async identify(){let t=await this.send({type:v.Type.IDENTIFY}),e=await t.read(b);if(e.type!==b.Type.OK)throw new f(e.error?.msg??"Identify failed","ERR_IDENTIFY_FAILED");if(e.identify==null||e.identify.addrs==null)throw new f("Invalid response","ERR_IDENTIFY_FAILED");let i=ct(e.identify?.id),n=e.identify.addrs.map(o=>U(o));return await t.unwrap().close(),{peerId:i,addrs:n}}async listPeers(){let t=await this.send({type:v.Type.LIST_PEERS}),e=await t.read(b);if(e.type!==b.Type.OK)throw new f(e.error?.msg??"List peers failed","ERR_LIST_PEERS_FAILED");return await t.unwrap().close(),e.peers.map(i=>ct(i.id))}async openStream(t,e){if(!Yt(t))throw new f("invalid peer id received","ERR_INVALID_PEER_ID");if(typeof e!="string")throw new f("invalid protocol received","ERR_INVALID_PROTOCOL");let i=await this.send({type:v.Type.STREAM_OPEN,streamOpen:{peer:t.toBytes(),proto:[e]}}),n=await i.read(b);if(n.type!==b.Type.OK)throw await i.unwrap().close(),new f(n.error?.msg??"Open stream failed","ERR_OPEN_STREAM_FAILED");return i.unwrap()}async registerStreamHandler(t,e){if(typeof t!="string")throw new f("invalid protocol received","ERR_INVALID_PROTOCOL");let i=this.tcp.createListener({upgrader:Hr,handler:c=>{Promise.resolve().then(async()=>{let a=new Oe({stream:c}),g=await a.read();if(g==null)throw new f("Could not read open stream response","ERR_OPEN_STREAM_FAILED");if(Gt.decode(g).proto!==t)throw new f("Incorrect protocol","ERR_OPEN_STREAM_FAILED");await e(a.rest())}).finally(()=>{c.close().catch(a=>{gn.error(a)}),i.close().catch(a=>{gn.error(a)})})}});await i.listen(U("/ip4/127.0.0.1/tcp/0"));let n=i.getAddrs()[0];if(n==null)throw new f("Could not listen on port","ERR_REGISTER_STREAM_HANDLER_FAILED");let o=await this.send({type:v.Type.STREAM_HANDLER,streamHandler:{addr:n.bytes,proto:[t]}}),s=await o.read(b);if(await o.unwrap().close(),s.type!==b.Type.OK)throw new f(s.error?.msg??"Register stream handler failed","ERR_REGISTER_STREAM_HANDLER_FAILED")}};function Nc(r){return new yn(r)}return ro(_c);})(); -+`+i),r.push(o+"m+"+vr(this.diff)+"\x1B[0m")}else r[0]=qa()+t+" "+r[0]}function qa(){return Be.hideDate!=null?"":new Date().toISOString()+" "}function Wa(...r){return process.stderr.write(Tr.default.format(...r)+` -+`)}function Ya(r){r!=null?process.env.DEBUG=r:delete process.env.DEBUG}function Za(){return process.env.DEBUG}function Xa(r){r.inspectOpts={};let t=Object.keys(Be);for(let e=0;ee.trim()).join(" ")},r.O=function(t){return this.inspectOpts.colors=this.useColors,Tr.default.inspect(t,this.inspectOpts)}}var $i=ao({init:Xa,log:Wa,formatArgs:Ha,save:Ya,load:Za,useColors:za,setupFormatters:Ja,colors:Ki,inspectOpts:Be});var gt=$i;gt.formatters.b=r=>r==null?"undefined":$.baseEncode(r);gt.formatters.t=r=>r==null?"undefined":Bt.baseEncode(r);gt.formatters.m=r=>r==null?"undefined":Fn.baseEncode(r);gt.formatters.p=r=>r==null?"undefined":r.toString();gt.formatters.c=r=>r==null?"undefined":r.toString();gt.formatters.k=r=>r==null?"undefined":r.toString();gt.formatters.a=r=>r==null?"undefined":r.toString();function Qa(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function Vi(){return{forComponent(r){return fe(r)}}}function fe(r){let t=Qa(`${r}:trace`);return gt.enabled(`${r}:trace`)&>.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=gt(`${r}:trace`)),Object.assign(gt(r),{error:gt(`${r}:error`),trace:t})}function Ce(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var Lr=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function Fi(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new Lr(e?.errorMessage,e?.errorCode,e?.errorName));let n,o=new Lr(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var uo=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Ce(),this.haveNext=Ce()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Ce(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ce(),await Fi(this.readNext.promise,e?.signal,e)}};function Gi(){return new uo}var zi=Z("node:buffer");function yt(r,t){return ce(zi.Buffer.concat(r,t))}function Nt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Br(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Br(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Hi(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Hi(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return yt(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:yt(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),i=new r;return i.length=o,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let i=0;i=a)continue;let d=t>=c&&tc&&e<=a;if(d&&l){if(t===c&&e===a){n.push(s);break}let u=t-c;n.push(s.subarray(u,u+(e-t)));break}if(d){if(t===0){n.push(s);continue}n.push(s.subarray(t-c));continue}if(l){if(e===a){n.push(s);break}n.push(s.subarray(0,e-c));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Br(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let i=256,s=new Int32Array(i);for(let u=0;u=0;g--){let y=this.get(u+g);if(n[g]!==y){l=Math.max(1,g-c[y]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=xt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=Rt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=Rt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=Rt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=xt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=Rt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=Rt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=Rt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=Rt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=Rt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;eo+i.byteLength,0)),n.length=e,n}};var Cr=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var lo=class extends Error{code;constructor(t,e){super(t),this.code=e}},fo=class extends lo{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Wi(r,t){let e=Gi();r.sink(e).catch(async s=>{await e.end(s)}),r.sink=async s=>{for await(let c of s)await e.push(c);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let o=new Kt;return{read:async(s,c)=>{c?.signal?.throwIfAborted();let a,d=new Promise((l,u)=>{a=()=>{u(new fo("Read aborted"))},c?.signal?.addEventListener("abort",a)});try{if(s==null){let{done:u,value:g}=await Promise.race([n.next(),d]);return u===!0?new Kt:g}for(;o.byteLength{c?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,c):await e.push(s.subarray(),c)},unwrap:()=>{if(o.byteLength>0){let s=r.source;r.source=async function*(){t?.yieldBytes===!1?yield o:yield*o,yield*s}()}return r}}}var Pr=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Nr=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},kr=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Dr(r,t={}){let e=Wi(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=it(t.maxDataLength));let n=t?.lengthDecoder??Ut,o=t?.lengthEncoder??qt;return{read:async s=>{let c=-1,a=new Kt;for(;;){a.append(await e.read(1,s));try{c=n(a)}catch(d){if(d instanceof RangeError)continue;throw d}if(c<0)throw new Pr("Invalid message length");if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new kr("message length length too long");if(c>-1)break}if(t?.maxDataLength!=null&&c>t.maxDataLength)throw new Nr("message length too long");return e.read(c,s)},write:async(s,c)=>{await e.write(new Kt(o(s.byteLength),s),c)},writeV:async(s,c)=>{let a=new Kt(...s.flatMap(d=>[o(d.byteLength),d]));await e.write(a,c)},unwrap:()=>e.unwrap()}}var ho=fe("libp2p:daemon-protocol:stream-handler"),Or=class{stream;lp;constructor(t){let{stream:e,maxLength:n}=t;this.stream=e,this.lp=Dr(this.stream,{maxDataLength:n??4096})}async read(){try{return await this.lp.read()}catch(t){ho.error("read received no value",t)}}async write(t){ho("write message"),await this.lp.write(t)}rest(){return this.lp.unwrap()}async close(){ho("closing the stream"),await this.rest().close()}};var po={upgradeInbound:async r=>r,upgradeOutbound:async r=>r};var Rr=Symbol.for("@libp2p/peer-id");function Pe(r){return!!r?.[Rr]}var Zi=Symbol.for("@libp2p/transport");var Yi;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Yi||(Yi={}));var qe=class extends Error{constructor(t="The operation was aborted"){super(t),this.name="AbortError"}},X=class extends Error{code;props;constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var D=class extends Error{constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},Ur=class extends Error{constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var _r=class extends Error{constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var We=class extends Error{constructor(t="Invalid message"){super(t),this.name="InvalidMessageError"}},Ye=class extends Error{constructor(t="Protocol error"){super(t),this.name="ProtocolError"}};var Ze=class extends Error{constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var Xi=Z("events"),Ji=(r,...t)=>{try{(0,Xi.setMaxListeners)(r,...t)}catch{}};var Mr=class extends EventTarget{#t=new Map;constructor(){super(),Ji(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 o=this.#t.get(t);o==null&&(o=[],this.#t.set(t,o)),o.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:i})=>i!==e),this.#t.set(t,o))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:o})=>!o),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var Qi=Symbol.for("@libp2p/service-capabilities"),Yd=Symbol.for("@libp2p/service-dependencies");var Kr=pt(Z("crypto"),1);var ji=Z("node:buffer");function Y(r,t="utf8"){let e=cr[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return t==="utf8"||t==="utf-8"?ji.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var Ih=Kr.default.generateKeyPairSync,Xe=32;var ja=64;function ts(r,t,e){if(r.byteLength!==Xe)throw new TypeError('"key" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(t.byteLength!==ja)throw new TypeError('"sig" must be 64 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=Kr.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:Y(r,"base64url"),kty:"OKP"}});return Kr.default.verify(null,e instanceof Uint8Array?e:e.subarray(),n,t)}var $r=class{type="Ed25519";raw;constructor(t){this.raw=mo(t,Xe)}toMultihash(){return _t.digest(Vr(this))}toCID(){return tt.createV1(114,this.toMultihash())}toString(){return $.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Nt(this.raw,t.raw)}verify(t,e){return ts(this.raw,e,t)}};function rs(r){return r=mo(r,Xe),new $r(r)}function mo(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new D(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}var St;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(St||(St={}));var go;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(go||(go={}));(function(r){r.codec=()=>Ct(go)})(St||(St={}));var Je;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),St.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{i.Type=St.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(c&7);break}}}return i})),t),r.encode=e=>V(e,r.codec()),r.decode=(e,n)=>K(e,r.codec(),n)})(Je||(Je={}));var yo;(function(r){let t;r.codec=()=>(t==null&&(t=F((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),St.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{i.Type=St.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(c&7);break}}}return i})),t),r.encode=e=>V(e,r.codec()),r.decode=(e,n)=>K(e,r.codec(),n)})(yo||(yo={}));function ns(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function ru(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Ne(r,...t){if(!ru(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function os(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ns(r.outputLen),ns(r.blockLen)}function ke(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 is(r,t){Ne(r);let e=t.outputLen;if(r.lengthnew DataView(r.buffer,r.byteOffset,r.byteLength),kt=(r,t)=>r<<32-t|r>>>t;var zh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function nu(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function je(r){return typeof r=="string"&&(r=nu(r)),Ne(r),r}function ss(...r){let t=0;for(let n=0;nr().update(je(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function as(r=32){if(Fr&&typeof Fr.getRandomValues=="function")return Fr.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}var zr=class extends De{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,os(t);let n=je(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,i=new Uint8Array(o);i.set(n.length>o?t.create().update(n).digest():n);for(let s=0;snew zr(r,t).update(e).digest();bo.create=(r,t)=>new zr(r,t);function ou(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let o=BigInt(32),i=BigInt(4294967295),s=Number(e>>o&i),c=Number(e&i),a=n?4:0,d=n?0:4;r.setUint32(t+a,s,n),r.setUint32(t+d,c,n)}var us=(r,t,e)=>r&t^~r&e,ls=(r,t,e)=>r&t^r&e^t&e,Hr=class extends De{constructor(t,e,n,o){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Gr(this.buffer)}update(t){ke(this);let{view:e,buffer:n,blockLen:o}=this;t=je(t);let i=t.length;for(let s=0;so-s&&(this.process(n,0),s=0);for(let u=s;ul.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u>>3,f=kt(y,17)^kt(y,19)^y>>>10;Qt[u]=f+Qt[u-7]+h+Qt[u-16]|0}let{A:n,B:o,C:i,D:s,E:c,F:a,G:d,H:l}=this;for(let u=0;u<64;u++){let g=kt(c,6)^kt(c,11)^kt(c,25),y=l+g+us(c,a,d)+iu[u]+Qt[u]|0,f=(kt(n,2)^kt(n,13)^kt(n,22))+ls(n,o,i)|0;l=d,d=a,a=c,c=s+y|0,s=i,i=o,o=n,n=y+f|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,c=c+this.E|0,a=a+this.F|0,d=d+this.G|0,l=l+this.H|0,this.set(n,o,i,s,c,a,d,l)}roundClean(){Qt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var fs=cs(()=>new wo);var Ao={};lt(Ao,{aInRange:()=>ee,abool:()=>de,abytes:()=>Oe,bitGet:()=>du,bitLen:()=>fu,bitMask:()=>er,bitSet:()=>hu,bytesToHex:()=>he,bytesToNumberBE:()=>Vt,bytesToNumberLE:()=>Wr,concatBytes:()=>Re,createHmacDrbg:()=>So,ensureBytes:()=>bt,equalBytes:()=>uu,hexToBytes:()=>pe,hexToNumber:()=>Io,inRange:()=>tr,isBytes:()=>jt,memoized:()=>Zr,notImplemented:()=>mu,numberToBytesBE:()=>te,numberToBytesLE:()=>Yr,numberToHexUnpadded:()=>ps,numberToVarBytesBE:()=>au,utf8ToBytes:()=>lu,validateObject:()=>re});var vo=BigInt(0),qr=BigInt(1),su=BigInt(2);function jt(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Oe(r){if(!jt(r))throw new Error("Uint8Array expected")}function de(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var cu=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function he(r){Oe(r);let t="";for(let e=0;e=$t._0&&r<=$t._9)return r-$t._0;if(r>=$t._A&&r<=$t._F)return r-($t._A-10);if(r>=$t._a&&r<=$t._f)return r-($t._a-10)}function pe(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("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,i=0;otypeof r=="bigint"&&vo<=r;function tr(r,t,e){return xo(r)&&xo(t)&&xo(e)&&t<=r&&rvo;r>>=qr,t+=1);return t}function du(r,t){return r>>BigInt(t)&qr}function hu(r,t,e){return r|(e?qr:vo)<(su<new Uint8Array(r),hs=r=>Uint8Array.from(r);function So(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=Eo(r),o=Eo(r),i=0,s=()=>{n.fill(1),o.fill(0),i=0},c=(...u)=>e(o,n,...u),a=(u=Eo())=>{o=c(hs([0]),u),n=c(),u.length!==0&&(o=c(hs([1]),u),n=c())},d=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,g=[];for(;u{s(),a(u);let y;for(;!(y=g(d()));)a();return s(),y}}var pu={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"||jt(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 re(r,t,e={}){let n=(o,i,s)=>{let c=pu[i];if(typeof c!="function")throw new Error(`Invalid validator "${i}", expected function`);let a=r[o];if(!(s&&a===void 0)&&!c(a,r))throw new Error(`Invalid param ${String(o)}=${a} (${typeof a}), expected ${i}`)};for(let[o,i]of Object.entries(t))n(o,i,!1);for(let[o,i]of Object.entries(e))n(o,i,!0);return r}var mu=()=>{throw new Error("not implemented")};function Zr(r){let t=new WeakMap;return(e,...n)=>{let o=t.get(e);if(o!==void 0)return o;let i=r(e,...n);return t.set(e,i),i}}var J=BigInt(0),q=BigInt(1),me=BigInt(2),gu=BigInt(3),To=BigInt(4),ms=BigInt(5),gs=BigInt(8),yu=BigInt(9),bu=BigInt(16);function ct(r,t){let e=r%t;return e>=J?e:t+e}function wu(r,t,e){if(e<=J||t 0");if(e===q)return J;let n=q;for(;t>J;)t&q&&(n=n*r%e),r=r*r%e,t>>=q;return n}function wt(r,t,e){let n=r;for(;t-- >J;)n*=n,n%=e;return n}function Xr(r,t){if(r===J||t<=J)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=ct(r,t),n=t,o=J,i=q,s=q,c=J;for(;e!==J;){let d=n/e,l=n%e,u=o-s*d,g=i-c*d;n=e,e=l,o=s,i=c,s=u,c=g}if(n!==q)throw new Error("invert: does not exist");return ct(o,t)}function xu(r){let t=(r-q)/me,e,n,o;for(e=r-q,n=0;e%me===J;e/=me,n++);for(o=me;o(n[o]="function",n),t);return re(r,e)}function Iu(r,t,e){if(e 0");if(e===J)return r.ONE;if(e===q)return t;let n=r.ONE,o=t;for(;e>J;)e&q&&(n=r.mul(n,o)),o=r.sqr(o),e>>=q;return n}function Su(r,t){let e=new Array(t.length),n=t.reduce((i,s,c)=>r.is0(s)?i:(e[c]=i,r.mul(i,s)),r.ONE),o=r.inv(n);return t.reduceRight((i,s,c)=>r.is0(s)?i:(e[c]=r.mul(i,e[c]),r.mul(i,s)),o),e}function Bo(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function ys(r,t,e=!1,n={}){if(r<=J)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:o,nByteLength:i}=Bo(r,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=Eu(r),c=Object.freeze({ORDER:r,BITS:o,BYTES:i,MASK:er(o),ZERO:J,ONE:q,create:a=>ct(a,r),isValid:a=>{if(typeof a!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof a}`);return J<=a&&aa===J,isOdd:a=>(a&q)===q,neg:a=>ct(-a,r),eql:(a,d)=>a===d,sqr:a=>ct(a*a,r),add:(a,d)=>ct(a+d,r),sub:(a,d)=>ct(a-d,r),mul:(a,d)=>ct(a*d,r),pow:(a,d)=>Iu(c,a,d),div:(a,d)=>ct(a*Xr(d,r),r),sqrN:a=>a*a,addN:(a,d)=>a+d,subN:(a,d)=>a-d,mulN:(a,d)=>a*d,inv:a=>Xr(a,r),sqrt:n.sqrt||(a=>s(c,a)),invertBatch:a=>Su(c,a),cmov:(a,d,l)=>l?d:a,toBytes:a=>e?Yr(a,i):te(a,i),fromBytes:a=>{if(a.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${a.length}`);return e?Wr(a):Vt(a)}});return Object.freeze(c)}function bs(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 Co(r){let t=bs(r);return t+Math.ceil(t/2)}function ws(r,t,e=!1){let n=r.length,o=bs(t),i=Co(t);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let s=e?Vt(r):Wr(r),c=ct(s,t-q)+q;return e?Yr(c,o):te(c,o)}var Tu=BigInt(0),Po=BigInt(1),No=new WeakMap,xs=new WeakMap;function Es(r,t){let e=(i,s)=>{let c=s.negate();return i?c:s},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>t)throw new Error(`Wrong window size=${i}, should be [1..${t}]`)},o=i=>{n(i);let s=Math.ceil(t/i)+1,c=2**(i-1);return{windows:s,windowSize:c}};return{constTimeNegate:e,unsafeLadder(i,s){let c=r.ZERO,a=i;for(;s>Tu;)s&Po&&(c=c.add(a)),a=a.double(),s>>=Po;return c},precomputeWindow(i,s){let{windows:c,windowSize:a}=o(s),d=[],l=i,u=l;for(let g=0;g>=h,m>d&&(m-=y,c+=Po);let w=p,S=p+Math.abs(m)-1,C=f%2!==0,B=m<0;m===0?u=u.add(e(C,s[w])):l=l.add(e(B,s[S]))}return{p:l,f:u}},wNAFCached(i,s,c){let a=xs.get(i)||1,d=No.get(i);return d||(d=this.precomputeWindow(i,a),a!==1&&No.set(i,c(d))),this.wNAF(a,d,s)},setWindowSize(i,s){n(s),xs.set(i,s),No.delete(i)}}}function ko(r){return Lo(r.Fp),re(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Bo(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}function vs(r){r.lowS!==void 0&&de("lowS",r.lowS),r.prehash!==void 0&&de("prehash",r.prehash)}function Lu(r){let t=ko(r);re(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:o}=t;if(e){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Bu,hexToBytes:Cu}=Ao,ge={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){let{Err:t}=ge;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");let e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Bu(n),l:r.subarray(e+2)}},toSig(r){let{Err:t}=ge,e=typeof r=="string"?Cu(r):r;Oe(e);let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:o,l:i}=ge._parseInt(e.subarray(2)),{d:s,l:c}=ge._parseInt(i);if(c.length)throw new t("Invalid signature: left bytes after parsing");return{r:o,s}},hexFromSig(r){let t=d=>Number.parseInt(d[0],16)&8?"00"+d:d,e=d=>{let l=d.toString(16);return l.length&1?`0${l}`:l},n=t(e(r.s)),o=t(e(r.r)),i=n.length/2,s=o.length/2,c=e(i),a=e(s);return`30${e(s+i+4)}02${a}${o}02${c}${n}`}},ne=BigInt(0),et=BigInt(1),up=BigInt(2),Is=BigInt(3),lp=BigInt(4);function Pu(r){let t=Lu(r),{Fp:e}=t,n=t.toBytes||((h,f,p)=>{let m=f.toAffine();return Re(Uint8Array.from([4]),e.toBytes(m.x),e.toBytes(m.y))}),o=t.fromBytes||(h=>{let f=h.subarray(1),p=e.fromBytes(f.subarray(0,e.BYTES)),m=e.fromBytes(f.subarray(e.BYTES,2*e.BYTES));return{x:p,y:m}});function i(h){let{a:f,b:p}=t,m=e.sqr(h),w=e.mul(m,h);return e.add(e.add(w,e.mul(h,f)),p)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(h){return tr(h,et,t.n)}function c(h){let{allowedPrivateKeyLengths:f,nByteLength:p,wrapPrivateKey:m,n:w}=t;if(f&&typeof h!="bigint"){if(jt(h)&&(h=he(h)),typeof h!="string"||!f.includes(h.length))throw new Error("Invalid key");h=h.padStart(p*2,"0")}let S;try{S=typeof h=="bigint"?h:Vt(bt("private key",h,p))}catch{throw new Error(`private key must be ${p} bytes, hex or bigint, not ${typeof h}`)}return m&&(S=ct(S,w)),ee("private key",S,et,w),S}function a(h){if(!(h instanceof u))throw new Error("ProjectivePoint expected")}let d=Zr((h,f)=>{let{px:p,py:m,pz:w}=h;if(e.eql(w,e.ONE))return{x:p,y:m};let S=h.is0();f==null&&(f=S?e.ONE:e.inv(w));let C=e.mul(p,f),B=e.mul(m,f),E=e.mul(w,f);if(S)return{x:e.ZERO,y:e.ZERO};if(!e.eql(E,e.ONE))throw new Error("invZ was invalid");return{x:C,y:B}}),l=Zr(h=>{if(h.is0()){if(t.allowInfinityPoint&&!e.is0(h.py))return;throw new Error("bad point: ZERO")}let{x:f,y:p}=h.toAffine();if(!e.isValid(f)||!e.isValid(p))throw new Error("bad point: x or y not FE");let m=e.sqr(p),w=i(f);if(!e.eql(m,w))throw new Error("bad point: equation left != right");if(!h.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class u{constructor(f,p,m){if(this.px=f,this.py=p,this.pz=m,f==null||!e.isValid(f))throw new Error("x required");if(p==null||!e.isValid(p))throw new Error("y required");if(m==null||!e.isValid(m))throw new Error("z required");Object.freeze(this)}static fromAffine(f){let{x:p,y:m}=f||{};if(!f||!e.isValid(p)||!e.isValid(m))throw new Error("invalid affine point");if(f instanceof u)throw new Error("projective point not allowed");let w=S=>e.eql(S,e.ZERO);return w(p)&&w(m)?u.ZERO:new u(p,m,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(f){let p=e.invertBatch(f.map(m=>m.pz));return f.map((m,w)=>m.toAffine(p[w])).map(u.fromAffine)}static fromHex(f){let p=u.fromAffine(o(bt("pointHex",f)));return p.assertValidity(),p}static fromPrivateKey(f){return u.BASE.multiply(c(f))}_setWindowSize(f){y.setWindowSize(this,f)}assertValidity(){l(this)}hasEvenY(){let{y:f}=this.toAffine();if(e.isOdd)return!e.isOdd(f);throw new Error("Field doesn't support isOdd")}equals(f){a(f);let{px:p,py:m,pz:w}=this,{px:S,py:C,pz:B}=f,E=e.eql(e.mul(p,B),e.mul(S,w)),I=e.eql(e.mul(m,B),e.mul(C,w));return E&&I}negate(){return new u(this.px,e.neg(this.py),this.pz)}double(){let{a:f,b:p}=t,m=e.mul(p,Is),{px:w,py:S,pz:C}=this,B=e.ZERO,E=e.ZERO,I=e.ZERO,T=e.mul(w,w),Q=e.mul(S,S),M=e.mul(C,C),k=e.mul(w,S);return k=e.add(k,k),I=e.mul(w,C),I=e.add(I,I),B=e.mul(f,I),E=e.mul(m,M),E=e.add(B,E),B=e.sub(Q,E),E=e.add(Q,E),E=e.mul(B,E),B=e.mul(k,B),I=e.mul(m,I),M=e.mul(f,M),k=e.sub(T,M),k=e.mul(f,k),k=e.add(k,I),I=e.add(T,T),T=e.add(I,T),T=e.add(T,M),T=e.mul(T,k),E=e.add(E,T),M=e.mul(S,C),M=e.add(M,M),T=e.mul(M,k),B=e.sub(B,T),I=e.mul(M,Q),I=e.add(I,I),I=e.add(I,I),new u(B,E,I)}add(f){a(f);let{px:p,py:m,pz:w}=this,{px:S,py:C,pz:B}=f,E=e.ZERO,I=e.ZERO,T=e.ZERO,Q=t.a,M=e.mul(t.b,Is),k=e.mul(p,S),dt=e.mul(m,C),ht=e.mul(w,B),v=e.add(p,m),x=e.add(S,C);v=e.mul(v,x),x=e.add(k,dt),v=e.sub(v,x),x=e.add(p,w);let L=e.add(S,B);return x=e.mul(x,L),L=e.add(k,ht),x=e.sub(x,L),L=e.add(m,w),E=e.add(C,B),L=e.mul(L,E),E=e.add(dt,ht),L=e.sub(L,E),T=e.mul(Q,x),E=e.mul(M,ht),T=e.add(E,T),E=e.sub(dt,T),T=e.add(dt,T),I=e.mul(E,T),dt=e.add(k,k),dt=e.add(dt,k),ht=e.mul(Q,ht),x=e.mul(M,x),dt=e.add(dt,ht),ht=e.sub(k,ht),ht=e.mul(Q,ht),x=e.add(x,ht),k=e.mul(dt,x),I=e.add(I,k),k=e.mul(L,x),E=e.mul(v,E),E=e.sub(E,k),k=e.mul(v,dt),T=e.mul(L,T),T=e.add(T,k),new u(E,I,T)}subtract(f){return this.add(f.negate())}is0(){return this.equals(u.ZERO)}wNAF(f){return y.wNAFCached(this,f,u.normalizeZ)}multiplyUnsafe(f){ee("scalar",f,ne,t.n);let p=u.ZERO;if(f===ne)return p;if(f===et)return this;let{endo:m}=t;if(!m)return y.unsafeLadder(this,f);let{k1neg:w,k1:S,k2neg:C,k2:B}=m.splitScalar(f),E=p,I=p,T=this;for(;S>ne||B>ne;)S&et&&(E=E.add(T)),B&et&&(I=I.add(T)),T=T.double(),S>>=et,B>>=et;return w&&(E=E.negate()),C&&(I=I.negate()),I=new u(e.mul(I.px,m.beta),I.py,I.pz),E.add(I)}multiply(f){let{endo:p,n:m}=t;ee("scalar",f,et,m);let w,S;if(p){let{k1neg:C,k1:B,k2neg:E,k2:I}=p.splitScalar(f),{p:T,f:Q}=this.wNAF(B),{p:M,f:k}=this.wNAF(I);T=y.constTimeNegate(C,T),M=y.constTimeNegate(E,M),M=new u(e.mul(M.px,p.beta),M.py,M.pz),w=T.add(M),S=Q.add(k)}else{let{p:C,f:B}=this.wNAF(f);w=C,S=B}return u.normalizeZ([w,S])[0]}multiplyAndAddUnsafe(f,p,m){let w=u.BASE,S=(B,E)=>E===ne||E===et||!B.equals(w)?B.multiplyUnsafe(E):B.multiply(E),C=S(this,p).add(S(f,m));return C.is0()?void 0:C}toAffine(f){return d(this,f)}isTorsionFree(){let{h:f,isTorsionFree:p}=t;if(f===et)return!0;if(p)return p(u,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:f,clearCofactor:p}=t;return f===et?this:p?p(u,this):this.multiplyUnsafe(t.h)}toRawBytes(f=!0){return de("isCompressed",f),this.assertValidity(),n(u,this,f)}toHex(f=!0){return de("isCompressed",f),he(this.toRawBytes(f))}}u.BASE=new u(t.Gx,t.Gy,e.ONE),u.ZERO=new u(e.ZERO,e.ONE,e.ZERO);let g=t.nBitLength,y=Es(u,t.endo?Math.ceil(g/2):g);return{CURVE:t,ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function Nu(r){let t=ko(r);return re(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Ss(r){let t=Nu(r),{Fp:e,n}=t,o=e.BYTES+1,i=2*e.BYTES+1;function s(v){return ct(v,n)}function c(v){return Xr(v,n)}let{ProjectivePoint:a,normPrivateKeyToScalar:d,weierstrassEquation:l,isWithinCurveOrder:u}=Pu({...t,toBytes(v,x,L){let _=x.toAffine(),R=e.toBytes(_.x),j=Re;return de("isCompressed",L),L?j(Uint8Array.from([x.hasEvenY()?2:3]),R):j(Uint8Array.from([4]),R,e.toBytes(_.y))},fromBytes(v){let x=v.length,L=v[0],_=v.subarray(1);if(x===o&&(L===2||L===3)){let R=Vt(_);if(!tr(R,et,e.ORDER))throw new Error("Point is not on curve");let j=l(R),at;try{at=e.sqrt(j)}catch(Tt){let zt=Tt instanceof Error?": "+Tt.message:"";throw new Error("Point is not on curve"+zt)}let ut=(at&et)===et;return(L&1)===1!==ut&&(at=e.neg(at)),{x:R,y:at}}else if(x===i&&L===4){let R=e.fromBytes(_.subarray(0,e.BYTES)),j=e.fromBytes(_.subarray(e.BYTES,2*e.BYTES));return{x:R,y:j}}else throw new Error(`Point of length ${x} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}}),g=v=>he(te(v,t.nByteLength));function y(v){let x=n>>et;return v>x}function h(v){return y(v)?s(-v):v}let f=(v,x,L)=>Vt(v.slice(x,L));class p{constructor(x,L,_){this.r=x,this.s=L,this.recovery=_,this.assertValidity()}static fromCompact(x){let L=t.nByteLength;return x=bt("compactSignature",x,L*2),new p(f(x,0,L),f(x,L,2*L))}static fromDER(x){let{r:L,s:_}=ge.toSig(bt("DER",x));return new p(L,_)}assertValidity(){ee("r",this.r,et,n),ee("s",this.s,et,n)}addRecoveryBit(x){return new p(this.r,this.s,x)}recoverPublicKey(x){let{r:L,s:_,recovery:R}=this,j=E(bt("msgHash",x));if(R==null||![0,1,2,3].includes(R))throw new Error("recovery id invalid");let at=R===2||R===3?L+t.n:L;if(at>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let ut=R&1?"03":"02",Gt=a.fromHex(ut+g(at)),Tt=c(at),zt=s(-j*Tt),Ke=s(_*Tt),Ht=a.BASE.multiplyAndAddUnsafe(Gt,zt,Ke);if(!Ht)throw new Error("point at infinify");return Ht.assertValidity(),Ht}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return pe(this.toDERHex())}toDERHex(){return ge.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return pe(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let m={isValidPrivateKey(v){try{return d(v),!0}catch{return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{let v=Co(t.n);return ws(t.randomBytes(v),t.n)},precompute(v=8,x=a.BASE){return x._setWindowSize(v),x.multiply(BigInt(3)),x}};function w(v,x=!0){return a.fromPrivateKey(v).toRawBytes(x)}function S(v){let x=jt(v),L=typeof v=="string",_=(x||L)&&v.length;return x?_===o||_===i:L?_===2*o||_===2*i:v instanceof a}function C(v,x,L=!0){if(S(v))throw new Error("first arg must be private key");if(!S(x))throw new Error("second arg must be public key");return a.fromHex(x).multiply(d(v)).toRawBytes(L)}let B=t.bits2int||function(v){let x=Vt(v),L=v.length*8-t.nBitLength;return L>0?x>>BigInt(L):x},E=t.bits2int_modN||function(v){return s(B(v))},I=er(t.nBitLength);function T(v){return ee(`num < 2^${t.nBitLength}`,v,ne,I),te(v,t.nByteLength)}function Q(v,x,L=M){if(["recovered","canonical"].some(se=>se in L))throw new Error("sign() legacy options not supported");let{hash:_,randomBytes:R}=t,{lowS:j,prehash:at,extraEntropy:ut}=L;j==null&&(j=!0),v=bt("msgHash",v),vs(L),at&&(v=bt("prehashed msgHash",_(v)));let Gt=E(v),Tt=d(x),zt=[T(Tt),T(Gt)];if(ut!=null&&ut!==!1){let se=ut===!0?R(e.BYTES):ut;zt.push(bt("extraEntropy",se))}let Ke=Re(...zt),Ht=Gt;function yn(se){let xe=B(se);if(!u(xe))return;let oi=c(xe),Dt=a.BASE.multiply(xe).toAffine(),Ee=s(Dt.x);if(Ee===ne)return;let nr=s(oi*s(Ht+Ee*Tt));if(nr===ne)return;let ii=(Dt.x===Ee?0:2)|Number(Dt.y&et),si=nr;return j&&y(nr)&&(si=h(nr),ii^=1),new p(Ee,si,ii)}return{seed:Ke,k2sig:yn}}let M={lowS:t.lowS,prehash:!1},k={lowS:t.lowS,prehash:!1};function dt(v,x,L=M){let{seed:_,k2sig:R}=Q(v,x,L),j=t;return So(j.hash.outputLen,j.nByteLength,j.hmac)(_,R)}a.BASE._setWindowSize(8);function ht(v,x,L,_=k){let R=v;if(x=bt("msgHash",x),L=bt("publicKey",L),"strict"in _)throw new Error("options.strict was renamed to lowS");vs(_);let{lowS:j,prehash:at}=_,ut,Gt;try{if(typeof R=="string"||jt(R))try{ut=p.fromDER(R)}catch(Dt){if(!(Dt instanceof ge.Err))throw Dt;ut=p.fromCompact(R)}else if(typeof R=="object"&&typeof R.r=="bigint"&&typeof R.s=="bigint"){let{r:Dt,s:Ee}=R;ut=new p(Dt,Ee)}else throw new Error("PARSE");Gt=a.fromHex(L)}catch(Dt){if(Dt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(j&&ut.hasHighS())return!1;at&&(x=t.hash(x));let{r:Tt,s:zt}=ut,Ke=E(x),Ht=c(zt),yn=s(Ke*Ht),se=s(Tt*Ht),xe=a.BASE.multiplyAndAddUnsafe(Gt,yn,se)?.toAffine();return xe?s(xe.x)===Tt:!1}return{CURVE:t,getPublicKey:w,getSharedSecret:C,sign:dt,verify:ht,ProjectivePoint:a,Signature:p,utils:m}}function ku(r){return{hash:r,hmac:(t,...e)=>bo(r,t,ss(...e)),randomBytes:as}}function As(r,t){let e=n=>Ss({...r,...ku(n)});return Object.freeze({...e(t),create:e})}var Bs=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ts=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Du=BigInt(1),Do=BigInt(2),Ls=(r,t)=>(r+t/Do)/t;function Ou(r){let t=Bs,e=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),c=BigInt(44),a=BigInt(88),d=r*r*r%t,l=d*d*r%t,u=wt(l,e,t)*l%t,g=wt(u,e,t)*l%t,y=wt(g,Do,t)*d%t,h=wt(y,o,t)*y%t,f=wt(h,i,t)*h%t,p=wt(f,c,t)*f%t,m=wt(p,a,t)*p%t,w=wt(m,c,t)*f%t,S=wt(w,e,t)*l%t,C=wt(S,s,t)*h%t,B=wt(C,n,t)*d%t,E=wt(B,Do,t);if(!Oo.eql(Oo.sqr(E),r))throw new Error("Cannot find square root");return E}var Oo=ys(Bs,void 0,void 0,{sqrt:Ou}),Ue=As({a:BigInt(0),b:BigInt(7),Fp:Oo,n:Ts,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Ts,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Du*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,s=BigInt("0x100000000000000000000000000000000"),c=Ls(i*r,t),a=Ls(-n*r,t),d=ct(r-c*e-a*o,t),l=ct(-c*n-a*i,t),u=d>s,g=l>s;if(u&&(d=t-d),g&&(l=t-l),d>s||l>s)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:d,k2neg:g,k2:l}}}},fs),wp=BigInt(0);var xp=Ue.ProjectivePoint;var Cs=pt(Z("node:crypto"),1);var Jr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}};function Ps(r,t,e){let n=Cs.default.createHash("sha256");if(e instanceof Uint8Array)n.update(e);else for(let i of e)n.update(i);let o=n.digest();try{return Ue.verify(t,o,r)}catch(i){throw new Jr(String(i))}}var Qr=class{type="secp256k1";raw;_key;constructor(t){this._key=ks(t),this.raw=Ns(this._key)}toMultihash(){return _t.digest(Vr(this))}toCID(){return tt.createV1(114,this.toMultihash())}toString(){return $.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Nt(this.raw,t.raw)}verify(t,e){return Ps(this._key,e,t)}};function Ds(r){return new Qr(r)}function Ns(r){return Ue.ProjectivePoint.fromHex(r).toRawBytes(!0)}function ks(r){try{return Ue.ProjectivePoint.fromHex(r),r}catch(t){throw new Ur(String(t))}}function Os(r){let{Type:t,Data:e}=Je.decode(r.digest),n=e??new Uint8Array;switch(t){case St.Ed25519:return rs(n);case St.secp256k1:return Ds(n);default:throw new Ze}}function Vr(r){return Je.encode({Type:St[r.type],Data:r.raw})}var Rs=Symbol.for("nodejs.util.inspect.custom"),Ru=114,rr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Rr]=!0;toString(){return this.string==null&&(this.string=$.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return tt.createV1(Ru,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return Nt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return Nt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Rs](){return`PeerId(${this.toString()})`}},jr=class extends rr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},tn=class extends rr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},en=class extends rr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Uu=2336,rn=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=_t.digest(Zt(this.url))}[Rs](){return`PeerId(${this.url})`}[Rr]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return tt.createV1(Uu,this.toMultihash())}toBytes(){return this.toCID().bytes}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=Y(t)),t.toString()===this.toString())}};function Ft(r){if(Mu(r))return new jr({multihash:r});if(_u(r))try{let t=Os(r);if(t.type==="Ed25519")return new tn({multihash:r,publicKey:t});if(t.type==="secp256k1")return new en({multihash:r,publicKey:t})}catch{let e=Y(r.digest);return new rn(new URL(e))}throw new _r("Supplied PeerID Multihash is invalid")}function _u(r){return r.code===_t.code}function Mu(r){return r.code===Jn.code}var ac=pt(Z("net"),1);var nn=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let i=0,s=0,c=this.peekChar();if(c===void 0)return;let a=c==="0",d=2**(8*o)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let g=Number.parseInt(u,t);if(!Number.isNaN(g))return g});if(l===void 0)break;if(i*=t,i+=l,i>d||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&a&&s>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;ethis.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;nthis.readIPv4Addr());if(s!==void 0)return e[o]=s[0],e[o+1]=s[1],e[o+2]=s[2],e[o+3]=s[3],[o+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[o,!1];e[o]=i>>8,e[o+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),s=16-(n+2),[c]=t(i.subarray(0,s));return e.set(i.subarray(0,c),16-c),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Em=new nn;var Cm=parseInt("0xFFFF",16),Pm=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var At=Z("node:net");function on(r){return!!(0,At.isIP)(r)}var Ms=At.isIPv4,zu=At.isIPv6,Ro=function(r){let t=0;if(r=r.toString().trim(),Ms(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(zu(r)){let e=r.split(":",8),n;for(n=0;n0;n--)i.push("0");e.splice.apply(e,i)}let o=new Uint8Array(t+16);for(n=0;n>8&255,o[t++]=i&255}return o}throw new Error("invalid ip address")},Ks=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let o=[];for(let i=0;i{let t=Wu(...r);Uo[t.code]=t,_e[t.name]=t});function Wu(r,t,e,n,o){return{code:r,size:t,name:e,resolvable:!!n,path:!!o}}function U(r){if(typeof r=="number"){if(Uo[r]!=null)return Uo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(_e[r]!=null)return _e[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var pg=U("ip4"),mg=U("ip6"),gg=U("ipcidr");function $o(r,t){switch(U(r).code){case 4:case 41:return Zu(t);case 42:return Ko(t);case 6:case 273:case 33:case 132:return Fs(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ko(t);case 421:return ju(t);case 444:return Vs(t);case 445:return Vs(t);case 466:return Qu(t);case 481:return globalThis.encodeURIComponent(Ko(t));default:return Y(t,"base16")}}function Vo(r,t){switch(U(r).code){case 4:return $s(t);case 41:return $s(t);case 42:return Mo(t);case 6:case 273:case 33:case 132:return Fo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Mo(t);case 421:return Xu(t);case 444:return tl(t);case 445:return el(t);case 466:return Ju(t);case 481:return Mo(globalThis.decodeURIComponent(t));default:return Zt(t,"base16")}}var _o=Object.values(Ge).map(r=>r.decoder),Yu=function(){let r=_o[0].or(_o[1]);return _o.slice(2).forEach(t=>r=r.or(t)),r}();function $s(r){if(!on(r))throw new Error("invalid ip address");return Ro(r)}function Zu(r){let t=Ks(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!on(t))throw new Error("invalid ip address");return t}function Fo(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Fs(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Mo(r){let t=Zt(r),e=Uint8Array.from(qt(t.length));return yt([e,t],e.length+t.length)}function Ko(r){let t=Ut(r);if(r=r.slice(it(t)),r.length!==t)throw new Error("inconsistent lengths");return Y(r)}function Xu(r){let t;r[0]==="Q"||r[0]==="1"?t=ft($.decode(`z${r}`)).bytes:t=tt.parse(r).multihash.bytes;let e=Uint8Array.from(qt(t.length));return yt([e,t],e.length+t.length)}function Ju(r){let t=Yu.decode(r),e=Uint8Array.from(qt(t.length));return yt([e,t],e.length+t.length)}function Qu(r){let t=Ut(r),e=r.slice(it(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+Y(e,"base64url")}function ju(r){let t=Ut(r),e=r.slice(it(t));if(e.length!==t)throw new Error("inconsistent lengths");return Y(e,"base58btc")}function tl(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Bt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Fo(n);return yt([e,o],e.length+o.length)}function el(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Bt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Fo(n);return yt([e,o],e.length+o.length)}function Vs(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=Y(t,"base32"),o=Fs(e);return`${n}:${o}`}function Gs(r){r=Go(r);let t=[],e=[],n=null,o=r.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i=o.length)throw Hs("invalid address: "+r);if(c.path===!0){n=Go(o.slice(i).join("/")),t.push([c.code,Vo(c.code,n)]),e.push([c.code,n]);break}let a=Vo(c.code,o[i]);t.push([c.code,a]),e.push([c.code,$o(c.code,a)])}return{string:zs(e),bytes:Ho(t),tuples:t,stringTuples:e,path:n}}function zo(r){let t=[],e=[],n=null,o=0;for(;or.length)throw Hs("Invalid address Uint8Array: "+Y(r,"base16"));t.push([i,d]);let l=$o(i,d);if(e.push([i,l]),c.path===!0){n=l;break}}return{bytes:Uint8Array.from(r),string:zs(e),tuples:t,stringTuples:e,path:n}}function zs(r){let t=[];return r.map(e=>{let n=U(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),Go(t.join("/"))}function Ho(r){return yt(r.map(t=>{let e=U(t[0]),n=Uint8Array.from(qt(e.code));return t.length>1&&t[1]!=null&&(n=yt([n,t[1]])),n}))}function rl(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Ut(t instanceof Uint8Array?t:Uint8Array.from(t));return e+it(e)}}function Go(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Hs(r){return new Error("Error parsing address: "+r)}var nl=Symbol.for("nodejs.util.inspect.custom"),qo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ol=[U("dns").code,U("dns4").code,U("dns6").code,U("dnsaddr").code],sn=class r{bytes;#t;#e;#r;#n;[qo]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=zo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=Gs(t)}else if(cn(t))e=zo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,o,i="",s=U("tcp"),c=U("udp"),a=U("ip4"),d=U("ip6"),l=U("dns6"),u=U("ip6zone");for(let[y,h]of this.stringTuples())y===u.code&&(i=`%${h??""}`),ol.includes(y)&&(e=s.name,o=443,n=`${h??""}${i}`,t=y===l.code?6:4),(y===s.code||y===c.code)&&(e=U(y).name,o=parseInt(h??"")),(y===a.code||y===d.code)&&(e=U(y).name,n=`${h??""}${i}`,t=y===d.code?6:4);if(t==null||e==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:o}}protos(){return this.#e.map(([t])=>Object.assign({},U(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>U(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,o))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(Ho(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,o])=>{n===_e.p2p.code&&t.push([n,o]),n===_e["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?Y($.decode(`z${n}`),"base58btc"):Y(tt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Nt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=qs.get(e.name);if(n==null)throw new X(`no available resolver for ${e.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(i=>nt(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[nl](){return`Multiaddr(${this.#t})`}};var qs=new Map;function cn(r){return!!r?.[qo]}function nt(r){return new sn(r)}var il=b("dns4"),sl=b("dns6"),cl=b("dnsaddr"),be=W(b("dns"),cl,il,sl),ln=W(b("ip4"),b("ip6")),ie=W(A(ln,b("tcp")),A(be,b("tcp"))),fn=A(ln,b("udp")),al=A(fn,b("utp")),ul=A(fn,b("quic")),ll=A(fn,b("quic-v1")),Wo=W(A(ie,b("ws")),A(be,b("ws"))),an=W(A(Wo,b("p2p")),Wo),Yo=W(A(ie,b("wss")),A(be,b("wss")),A(ie,b("tls"),b("ws")),A(be,b("tls"),b("ws"))),un=W(A(Yo,b("p2p")),Yo),Zo=W(A(ie,b("http")),A(ln,b("http")),A(be,b("http"))),Xo=W(A(ie,b("https")),A(ln,b("https")),A(be,b("https"))),Ws=A(fn,b("webrtc-direct"),b("certhash")),Xs=W(A(Ws,b("p2p")),Ws),Ys=A(ll,b("webtransport"),b("certhash"),b("certhash")),Js=W(A(Ys,b("p2p")),Ys),Qs=W(A(an,b("p2p-webrtc-star"),b("p2p")),A(un,b("p2p-webrtc-star"),b("p2p")),A(an,b("p2p-webrtc-star")),A(un,b("p2p-webrtc-star"))),Fg=W(A(an,b("p2p-websocket-star"),b("p2p")),A(un,b("p2p-websocket-star"),b("p2p")),A(an,b("p2p-websocket-star")),A(un,b("p2p-websocket-star"))),js=W(A(Zo,b("p2p-webrtc-direct"),b("p2p")),A(Xo,b("p2p-webrtc-direct"),b("p2p")),A(Zo,b("p2p-webrtc-direct")),A(Xo,b("p2p-webrtc-direct"))),we=W(Wo,Yo,Zo,Xo,Qs,js,ie,al,ul,be,Xs,Js),Gg=W(A(we,b("p2p-stardust"),b("p2p")),A(we,b("p2p-stardust"))),oe=W(A(we,b("p2p")),Qs,js,Xs,Js,b("p2p")),Zs=W(A(oe,b("p2p-circuit"),oe),A(oe,b("p2p-circuit")),A(b("p2p-circuit"),oe),A(we,b("p2p-circuit")),A(b("p2p-circuit"),we),b("p2p-circuit")),tc=()=>W(A(Zs,tc),Zs),ye=tc(),zg=W(A(ye,oe,ye),A(oe,ye),A(ye,oe),ye,oe);var Hg=W(A(ye,b("webrtc"),b("p2p")),A(ye,b("webrtc")),A(we,b("webrtc"),b("p2p")),A(we,b("webrtc")),b("webrtc"));function ec(r){function t(e){let n;try{n=nt(e)}catch{return!1}let o=r(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return t}function A(...r){function t(e){if(e.length(n=typeof o=="function"?o().partialMatch(e):o.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:ec(t),partialMatch:t}}function W(...r){function t(n){let o=null;return r.some(i=>{let s=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return s!=null?(o=s,!0):!1}),o}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:ec(t),partialMatch:t}}function b(r){let t=r;function e(o){let i;try{i=nt(o)}catch{return!1}let s=i.protoNames();return s.length===1&&s[0]===t}function n(o){return o.length===0?null:o[0]===t?o.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var dn=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var cc=pt(Z("net"),1);var Jo={ERR_INVALID_IP_PARAMETER:"ERR_INVALID_IP_PARAMETER",ERR_INVALID_PORT_PARAMETER:"ERR_INVALID_PORT_PARAMETER",ERR_INVALID_IP:"ERR_INVALID_IP"};function rc(r,t){if(typeof r!="string")throw new X(`invalid ip provided: ${r}`,Jo.ERR_INVALID_IP_PARAMETER);if(typeof t=="string"&&(t=parseInt(t)),isNaN(t))throw new X(`invalid port provided: ${t}`,Jo.ERR_INVALID_PORT_PARAMETER);if((0,At.isIPv4)(r))return nt(`/ip4/${r}/tcp/${t}`);if((0,At.isIPv6)(r))return nt(`/ip6/${r}/tcp/${t}`);throw new X(`invalid ip:port for creating a multiaddr: ${r}:${t}`,Jo.ERR_INVALID_IP)}function nc(r){if(hl(r))return async function*(){let t=r.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}();if(dl(r))return r;throw new Error("unknown stream")}function dl(r){return r[Symbol.asyncIterator]!=null}function hl(r){return typeof r?.getReader=="function"}function oc(r){return async t=>{let e=async()=>{pl(t)&&await t.return(void 0)},n,o,i=m=>{n=m,e().catch(w=>{w=new AggregateError([n,w],"The Writable emitted an error, additionally an error occurred while ending the Source")}).finally(()=>{o?.(m)})},s,c=!1,a=()=>{c=!0,s?.()},d,l=!1,u=()=>{l=!0,d?.()},g,y=()=>{g?.()},h=async()=>new Promise((m,w)=>{s=g=m,o=w,r.once("drain",y)}),f=async()=>(await e(),new Promise((m,w)=>{if(c||l||n!=null){m();return}d=s=m,o=w})),p=()=>{r.removeListener("error",i),r.removeListener("close",a),r.removeListener("finish",u),r.removeListener("drain",y)};r.once("error",i),r.once("close",a),r.once("finish",u);try{for await(let m of t){if(!r.writable||r.destroyed||n!=null)break;r.write(m)||await h()}}catch(m){n==null&&r.destroy(m),n=m}try{if(r.writable&&r.end(),await f(),n!=null)throw n}finally{p()}}}function pl(r){return r.return!=null}function Qo(r){return{sink:oc(r),source:nc(r)}}var jo=pt(Z("os"),1),ic=pt(Z("path"),1);var ml={ip4:"IPv4",ip6:"IPv6"};function Me(r,t={}){let e=r.getPath();return e!=null?jo.default.platform()==="win32"?{path:ic.default.join("\\\\.\\pipe\\",e)}:{path:e}:{...t,...r.toOptions()}}function ti(r,t,e){let n=o=>nt(`/${r}/${o}/tcp/${e}`);return(gl(t)?bl(ml[r]):[t]).map(n)}function gl(r){return["0.0.0.0","::"].includes(r)}var yl=jo.default.networkInterfaces();function bl(r){let t=[];for(let[,e]of Object.entries(yl))if(e!=null)for(let n of e)n.family===r&&t.push(n.address);return t}var hn=(r,t)=>{let e=null,n=t.logger.forComponent("libp2p:tcp:socket"),o=t.metrics,i=t.metricPrefix??"",s=t.socketInactivityTimeout??3e5,c=t.socketCloseTimeout??500;t.listeningAddr?.getPath()!=null&&(t.remoteAddr=t.listeningAddr),t.remoteAddr?.getPath()!=null&&(t.localAddr=t.remoteAddr);let a;if(t.remoteAddr!=null)a=t.remoteAddr;else{if(r.remoteAddress==null||r.remotePort==null)throw new X("Could not determine remote address or port","ERR_NO_REMOTE_ADDRESS");a=rc(r.remoteAddress,r.remotePort)}let d=Me(a),l=d.path??`${d.host??""}:${d.port??""}`,{sink:u,source:g}=Qo(r);r.setTimeout(s,()=>{n("%s socket read timeout",l),o?.increment({[`${i}timeout`]:!0});let h;r.readable&&(h=new X("Socket read timeout","ERR_SOCKET_READ_TIMEOUT")),r.destroy(h)}),r.once("close",()=>{n("%s socket close",l),o?.increment({[`${i}close`]:!0}),y.timeline.close==null&&(y.timeline.close=Date.now())}),r.once("end",()=>{n("%s socket end",l),o?.increment({[`${i}end`]:!0})});let y={async sink(h){try{await u(async function*(){for await(let f of h)f instanceof Uint8Array?yield f:yield f.subarray()}())}catch(f){f.type!=="aborted"&&n.error("%s error in sink",l,f)}r.end()},source:g,remoteAddr:a,timeline:{open:Date.now()},async close(h={}){if(r.destroyed){n("The %s socket is destroyed",l);return}if(e!=null)return n("The %s socket is closed or closing",l),e;if(h.signal==null){let p=AbortSignal.timeout(c);h={...h,signal:p}}let f=()=>{r.destroy(new X("Destroying socket after timeout","ERR_CLOSE_TIMEOUT"))};h.signal?.addEventListener("abort",f);try{n("%s closing socket",l),e=new Promise((p,m)=>{r.once("close",()=>{n("%s socket closed",l),p()}),r.once("error",w=>{n("%s socket error",l,w),y.timeline.close==null&&(y.timeline.close=Date.now()),r.destroyed||m(w)}),r.setTimeout(c),r.end(),r.writableLength>0?r.once("drain",()=>{n("%s socket drained",l),r.destroy()}):r.destroy()}),await e}catch(p){this.abort(p)}finally{h.signal?.removeEventListener("abort",f)}},abort:h=>{n("%s socket abort due to error",l,h),r.destroyed||r.destroy(h),y.timeline.close==null&&(y.timeline.close=Date.now())},log:n};return y};async function sc(r,t){try{await r.close()}catch(e){t.log.error("an error occurred closing the connection",e),r.abort(e)}}var rt;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(rt||(rt={}));var pn=class extends Mr{context;server;connections=new Set;status={code:rt.INACTIVE};metrics;addr;log;constructor(t){if(super(),this.context=t,t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,this.log=t.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=cc.default.createServer(t,this.onSocket.bind(this)),t.maxConnections!==void 0&&(this.server.maxConnections=t.maxConnections),t.closeServerOnMaxConnections!=null&&t.closeServerOnMaxConnections.closeAbove= listenBelow","ERR_CONNECTION_LIMITS");this.server.on("listening",()=>{if(t.metrics!=null){let e=this.server.address();e==null?this.addr="unknown":typeof e=="string"?this.addr=e:this.addr=`${e.address}:${e.port}`,t.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.connections.size})}),this.metrics={status:t.metrics.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:t.metrics.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:t.metrics.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.metrics?.status.update({[this.addr]:rt.ACTIVE})}this.safeDispatchEvent("listening")}).on("error",e=>{this.metrics?.errors.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:e})}).on("close",()=>{this.metrics?.status.update({[this.addr]:this.status.code}),this.status.code!==rt.PAUSED&&this.safeDispatchEvent("close")})}onSocket(t){if(this.status.code!==rt.ACTIVE)throw new X("Server is not listening yet","ERR_SERVER_NOT_RUNNING");t.on("error",n=>{this.log("socket error",n),this.metrics?.events.increment({[`${this.addr} error`]:!0})});let e;try{e=hn(t,{listeningAddr:this.status.listeningAddr,socketInactivityTimeout:this.context.socketInactivityTimeout,socketCloseTimeout:this.context.socketCloseTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,logger:this.context.logger})}catch(n){this.log.error("inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_to_connection`]:!0});return}this.log("new inbound connection %s",e.remoteAddr);try{this.context.upgrader.upgradeInbound(e).then(n=>{this.log("inbound connection upgraded %s",e.remoteAddr),this.connections.add(e),t.once("close",()=>{this.connections.delete(e),this.context.closeServerOnMaxConnections!=null&&this.connections.size{this.log.error("error attempting to listen server once connection count under limit",o),this.context.closeServerOnMaxConnections?.onListenError?.(o)})}),this.context.handler!=null&&this.context.handler(n),this.context.closeServerOnMaxConnections!=null&&this.connections.size>=this.context.closeServerOnMaxConnections.closeAbove&&this.pause(!1).catch(o=>{this.log.error("error attempting to close server once connection count over limit",o)}),this.safeDispatchEvent("connection",{detail:n})}).catch(async n=>{this.log.error("inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_upgrade`]:!0}),await sc(e,{log:this.log})}).catch(n=>{this.log.error("closing inbound connection failed",n)})}catch(n){this.log.error("inbound connection failed",n),sc(e,{log:this.log}).catch(o=>{this.log.error("closing inbound connection failed",o),this.metrics?.errors.increment({[`${this.addr} inbound_closing_failed`]:!0})})}}getAddrs(){if(this.status.code===rt.INACTIVE)return[];let t=[],e=this.server.address(),{listeningAddr:n,peerId:o}=this.status;if(e==null)return[];if(typeof e=="string")t=[n];else try{n.toString().startsWith("/ip4")?t=t.concat(ti("ip4",e.address,e.port)):e.family==="IPv6"&&(t=t.concat(ti("ip6",e.address,e.port)))}catch(i){this.log.error("could not turn %s:%s into multiaddr",e.address,e.port,i)}return t.map(i=>o!=null?i.encapsulate(`/p2p/${o}`):i)}async listen(t){if(this.status.code===rt.ACTIVE||this.status.code===rt.PAUSED)throw new X("server is already listening","ERR_SERVER_ALREADY_LISTENING");let e=t.getPeerId(),n=e==null?t.decapsulateCode(421):t,{backlog:o}=this.context;try{this.status={code:rt.ACTIVE,listeningAddr:n,peerId:e,netConfig:Me(n,{backlog:o})},await this.resume()}catch(i){throw this.status={code:rt.INACTIVE},i}}async close(){let t=new X("Listener is closing","ERR_LISTENER_CLOSING");this.connections.forEach(e=>{e.abort(t)}),await this.pause(!0)}async resume(){if(this.server.listening||this.status.code===rt.INACTIVE)return;let t=this.status.netConfig;await new Promise((e,n)=>{this.server.once("error",n),this.server.listen(t,e)}),this.status={...this.status,code:rt.ACTIVE},this.log("listening on %s",this.server.address())}async pause(t){if(!this.server.listening&&this.status.code===rt.PAUSED&&t){this.status={code:rt.INACTIVE};return}!this.server.listening||this.status.code!==rt.ACTIVE||(this.log("closing server on %s",this.server.address()),this.status=t?{code:rt.INACTIVE}:{...this.status,code:rt.PAUSED},await new Promise((e,n)=>{this.server.close(o=>{if(o!=null){n(o);return}e()})}))}};var ei=class{opts;metrics;components;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:tcp"),this.opts=e,this.components=t,t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[Zi]=!0;[Symbol.toStringTag]="@libp2p/tcp";[Qi]=["@libp2p/transport"];async dial(t,e){e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0;let n=await this._connect(t,e);n.on("error",c=>{this.log("socket error",c)});let o=hn(n,{remoteAddr:t,socketInactivityTimeout:this.opts.outboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.metrics?.dialerEvents,logger:this.components.logger}),i=()=>{o.close().catch(c=>{this.log.error("Error closing maConn after abort",c)})};e.signal?.addEventListener("abort",i,{once:!0}),this.log("new outbound connection %s",o.remoteAddr);let s=await e.upgrader.upgradeOutbound(o);if(this.log("outbound connection %s upgraded",o.remoteAddr),e.signal?.removeEventListener("abort",i),e.signal?.aborted===!0)throw s.close().catch(c=>{this.log.error("Error closing conn after abort",c)}),new qe;return s}async _connect(t,e){return e.signal?.throwIfAborted(),e.onProgress?.(new dn("tcp:open-connection")),new Promise((n,o)=>{let i=Date.now(),s=Me(t,{...this.opts.dialOpts??{},...e});this.log("dialing %a",t);let c=ac.default.connect(s),a=y=>{let h=s.path??`${s.host??""}:${s.port}`;y.message=`connection error ${h}: ${y.message}`,this.metrics?.dialerEvents.increment({error:!0}),g(y)},d=()=>{this.log("connection timeout %a",t),this.metrics?.dialerEvents.increment({timeout:!0});let y=new X(`connection timeout after ${Date.now()-i}ms`,"ERR_CONNECT_TIMEOUT");c.emit("error",y)},l=()=>{this.log("connection opened %a",t),this.metrics?.dialerEvents.increment({connect:!0}),g()},u=()=>{this.log("connection aborted %a",t),this.metrics?.dialerEvents.increment({abort:!0}),c.destroy(),g(new qe)},g=y=>{if(c.removeListener("error",a),c.removeListener("timeout",d),c.removeListener("connect",l),e.signal!=null&&e.signal.removeEventListener("abort",u),y!=null){o(y);return}n(c)};c.on("error",a),c.on("timeout",d),c.on("connect",l),e.signal!=null&&e.signal.addEventListener("abort",u)})}createListener(t){return new pn({...this.opts.listenOpts??{},...t,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,socketInactivityTimeout:this.opts.inboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>e.protoCodes().includes(290)?!1:e.protoCodes().includes(400)?!0:ie.matches(e.decapsulateCode(421)))}dialFilter(t){return this.listenFilter(t)}};function uc(r={}){return t=>new ei(t,r)}function lc(r,t){let e=Dr(r,t),n={read:async(o,i)=>{let s=await e.read(i);return o.decode(s)},write:async(o,i,s)=>{await e.write(i.encode(o),s)},writeV:async(o,i,s)=>{await e.writeV(o.map(c=>i.encode(c)),s)},pb:o=>({read:async i=>n.read(o,i),write:async(i,s)=>n.write(i,o,s),writeV:async(i,s)=>n.writeV(i,o,s),unwrap:()=>n}),unwrap:()=>e.unwrap()};return n}var xl=fe("libp2p:daemon-client:dht"),mn=class{client;constructor(t){this.client=t}async put(t,e){if(!(t instanceof Uint8Array))throw new D("invalid key received");if(!(e instanceof Uint8Array))throw new D("value received is not a Uint8Array");let n=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.PUT_VALUE,key:t,value:e}}),o=await n.read(P);if(xl("read",o),await n.unwrap().close(),o.type!==P.Type.OK)throw new Ye(o.error?.msg??"DHT put failed")}async get(t){if(!(t instanceof Uint8Array))throw new D("invalid key received");let e=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.GET_VALUE,key:t}}),n=await e.read(P);if(await e.unwrap().close(),n.type!==P.Type.OK)throw new O(n.error?.msg??"DHT get failed");if(n.dht?.value==null)throw new O("Invalid DHT get response");return n.dht.value}async findPeer(t){if(!Pe(t))throw new D("invalid peer id received");let e=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.FIND_PEER,peer:t.toMultihash().bytes}}),n=await e.read(P);if(await e.unwrap().close(),n.type!==P.Type.OK)throw new O(n.error?.msg??"DHT find peer failed");if(n.dht?.peer?.addrs==null)throw new O("Invalid response");return{id:Ft(ft(n.dht.peer.id)),multiaddrs:n.dht.peer.addrs.map(o=>nt(o))}}async provide(t){if(t==null||tt.asCID(t)==null)throw new D("invalid cid received");let e=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.PROVIDE,cid:t.bytes}}),n=await e.read(P);if(await e.unwrap().close(),n.type!==P.Type.OK)throw new O(n.error?.msg??"DHT provide failed")}async*findProviders(t,e=1){if(t==null||tt.asCID(t)==null)throw new D("invalid cid received");let n=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.FIND_PROVIDERS,cid:t.bytes,count:e}}),o=await n.read(P);if(o.type!==P.Type.OK)throw await n.unwrap().close(),new O(o.error?.msg??"DHT find providers failed");for(;;){let i=await n.read(Pt);if(i.type===Pt.Type.END){await n.unwrap().close();return}if(i.type===Pt.Type.VALUE&&i.peer?.addrs!=null)yield{id:Ft(ft(i.peer.id)),multiaddrs:i.peer.addrs.map(s=>nt(s))};else throw await n.unwrap().close(),new Ye("unexpected message received")}}async*getClosestPeers(t){if(!(t instanceof Uint8Array))throw new D("invalid key received");let e=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.GET_CLOSEST_PEERS,key:t}}),n=await e.read(P);if(n.type!==P.Type.OK)throw await e.unwrap().close(),new O(n.error?.msg??"DHT find providers failed");for(;;){let o=await e.read(Pt);if(o.type===Pt.Type.END){await e.unwrap().close();return}if(o.type===Pt.Type.VALUE&&o.value!=null)yield{id:Ft(ft(o.value)),multiaddrs:[]};else throw await e.unwrap().close(),new We("unexpected message received")}}async getPublicKey(t){if(!Pe(t))throw new D("invalid peer id received");let e=await this.client.send({type:H.Type.DHT,dht:{type:vt.Type.GET_PUBLIC_KEY,peer:t.toMultihash().bytes}}),n=await e.read(P);if(await e.unwrap().close(),n.type!==P.Type.OK)throw new O(n.error?.msg??"DHT get public key failed");if(n.dht==null)throw new We("Invalid response");return n.dht.value}};var gn=class{client;constructor(t){this.client=t}async getTopics(){let t=await this.client.send({type:H.Type.PUBSUB,pubsub:{type:Mt.Type.GET_TOPICS}}),e=await t.read(P);if(await t.unwrap().close(),e.type!==P.Type.OK)throw new O(e.error?.msg??"Pubsub get topics failed");if(e.pubsub?.topics==null)throw new O("Invalid response");return e.pubsub.topics}async publish(t,e){if(typeof t!="string")throw new D("invalid topic received");if(!(e instanceof Uint8Array))throw new D("data received is not a Uint8Array");let n=await this.client.send({type:H.Type.PUBSUB,pubsub:{type:Mt.Type.PUBLISH,topic:t,data:e}}),o=await n.read(P);if(await n.unwrap().close(),o.type!==P.Type.OK)throw new O(o.error?.msg??"Pubsub publish failed")}async subscribe(t){if(typeof t!="string")throw new D("invalid topic received");let e=await this.client.send({type:H.Type.PUBSUB,pubsub:{type:Mt.Type.SUBSCRIBE,topic:t}}),n=await e.read(P);if(n.type!==P.Type.OK)throw new O(n.error?.msg??"Pubsub publish failed");let o=!0;return{async*messages(){for(;o;)yield await e.read(yr)},async cancel(){o=!1,await e.unwrap().close()}}}async getSubscribers(t){if(typeof t!="string")throw new D("invalid topic received");let e=await this.client.send({type:H.Type.PUBSUB,pubsub:{type:Mt.Type.LIST_PEERS,topic:t}}),n=await e.read(P);if(await e.unwrap().close(),n.type!==P.Type.OK)throw new O(n.error?.msg??"Pubsub get subscribers failed");if(n.pubsub?.topics==null)throw new O("Invalid response");return n.pubsub.peerIDs.map(o=>Ft(ft(o)))}};var ri=fe("libp2p:daemon-client"),O=class extends Error{constructor(t="Operation failed"){super(t),this.name="OperationFailedError"}},ni=class{multiaddr;dht;pubsub;tcp;constructor(t){this.multiaddr=t,this.tcp=uc()({logger:Vi()}),this.dht=new mn(this),this.pubsub=new gn(this)}async connectDaemon(){return this.tcp.dial(this.multiaddr,{upgrader:po})}async send(t){let e=await this.connectDaemon(),n=t.pubsub?.type??t.dht?.type??t.peerStore?.type??"";ri("send",t.type,n);let o=lc(e);return await o.write(t,H),o}async connect(t,e){if(!Pe(t))throw new D("invalid peer id received");if(!Array.isArray(e))throw new D("addrs received are not in an array");e.forEach(i=>{if(!cn(i))throw new D("received an address that is not a multiaddr")});let n=await this.send({type:H.Type.CONNECT,connect:{peer:t.toMultihash().bytes,addrs:e.map(i=>i.bytes)}}),o=await n.read(P);if(o.type!==P.Type.OK){let i=o.error??{msg:"unspecified"};throw new O(i.msg??"unspecified")}await n.unwrap().close()}async identify(){let t=await this.send({type:H.Type.IDENTIFY}),e=await t.read(P);if(e.type!==P.Type.OK)throw new O(e.error?.msg??"Identify failed");if(e.identify?.addrs==null)throw new O("Invalid response");let n=Ft(ft(e.identify?.id)),o=e.identify.addrs.map(i=>nt(i));return await t.unwrap().close(),{peerId:n,addrs:o}}async listPeers(){let t=await this.send({type:H.Type.LIST_PEERS}),e=await t.read(P);if(e.type!==P.Type.OK)throw new O(e.error?.msg??"List peers failed");return await t.unwrap().close(),e.peers.map(n=>Ft(ft(n.id)))}async openStream(t,e){if(!Pe(t))throw new D("invalid peer id received");if(typeof e!="string")throw new D("invalid protocol received");let n=await this.send({type:H.Type.STREAM_OPEN,streamOpen:{peer:t.toMultihash().bytes,proto:[e]}}),o=await n.read(P);if(o.type!==P.Type.OK)throw await n.unwrap().close(),new O(o.error?.msg??"Open stream failed");return n.unwrap()}async registerStreamHandler(t,e){if(typeof t!="string")throw new D("invalid protocol received");let n=this.tcp.createListener({upgrader:po,handler:c=>{Promise.resolve().then(async()=>{let a=new Or({stream:c}),d=await a.read();if(d==null)throw new O("Could not read open stream response");if(Le.decode(d).proto!==t)throw new O("Incorrect protocol");await e(a.rest())}).catch(a=>{c.abort(a)}).finally(()=>{c.close().catch(a=>{ri.error(a)}),n.close().catch(a=>{ri.error(a)})})}});await n.listen(nt("/ip4/127.0.0.1/tcp/0"));let o=n.getAddrs()[0];if(o==null)throw new O("Could not listen on port");let i=await this.send({type:H.Type.STREAM_HANDLER,streamHandler:{addr:o.bytes,proto:[t]}}),s=await i.read(P);if(await i.unwrap().close(),s.type!==P.Type.OK)throw new O(s.error?.msg??"Register stream handler failed")}};function El(r){return new ni(r)}return gc(vl);})(); -+/*! Bundled license information: -+ -+@noble/hashes/esm/utils.js: -+ (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/utils.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/modular.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/curve.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/weierstrass.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/_shortw_utils.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/secp256k1.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+*/ - return Libp2PDaemonClient})); -diff --git a/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts b/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts -index 00b3625..1b69d43 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts -+++ b/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts -@@ -1,6 +1,6 @@ - import { type PeerId, type PeerInfo } from '@libp2p/interface'; - import { CID } from 'multiformats/cid'; --import type { DaemonClient } from './index.js'; -+import { type DaemonClient } from './index.js'; - export declare class DHT { - private readonly client; - constructor(client: DaemonClient); -diff --git a/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts.map b/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts.map -index 8de3e2e..1903691 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/dht.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIxE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9C,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7D;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BhD;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+BlD;;OAEG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvC;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA6C5E;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA8ClE;;OAEG;IACG,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA2BrE"} -\ No newline at end of file -+{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIxE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAIpE,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7D;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BhD;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+BlD;;OAEG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvC;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA6C5E;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA8ClE;;OAEG;IACG,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA2BrE"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/dht.js b/node_modules/@libp2p/daemon-client/dist/src/dht.js -index 8f82e99..45ad01e 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/dht.js -+++ b/node_modules/@libp2p/daemon-client/dist/src/dht.js -@@ -1,10 +1,12 @@ - import { Request, Response, DHTRequest, DHTResponse } from '@libp2p/daemon-protocol'; --import { CodeError } from '@libp2p/interface'; -+import { InvalidMessageError, InvalidParametersError, ProtocolError } from '@libp2p/interface'; - import { isPeerId } from '@libp2p/interface'; - import { logger } from '@libp2p/logger'; --import { peerIdFromBytes } from '@libp2p/peer-id'; -+import { peerIdFromMultihash } from '@libp2p/peer-id'; - import { multiaddr } from '@multiformats/multiaddr'; - import { CID } from 'multiformats/cid'; -+import * as Digest from 'multiformats/hashes/digest'; -+import { OperationFailedError } from './index.js'; - const log = logger('libp2p:daemon-client:dht'); - export class DHT { - client; -@@ -16,10 +18,10 @@ export class DHT { - */ - async put(key, value) { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY'); -+ throw new InvalidParametersError('invalid key received'); - } - if (!(value instanceof Uint8Array)) { -- throw new CodeError('value received is not a Uint8Array', 'ERR_INVALID_VALUE'); -+ throw new InvalidParametersError('value received is not a Uint8Array'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, -@@ -33,7 +35,7 @@ export class DHT { - log('read', response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT put failed', 'ERR_DHT_PUT_FAILED'); -+ throw new ProtocolError(response.error?.msg ?? 'DHT put failed'); - } - } - /** -@@ -41,7 +43,7 @@ export class DHT { - */ - async get(key) { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY'); -+ throw new InvalidParametersError('invalid key received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, -@@ -53,10 +55,10 @@ export class DHT { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT get failed', 'ERR_DHT_GET_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT get failed'); - } -- if (response.dht == null || response.dht.value == null) { -- throw new CodeError('Invalid DHT get response', 'ERR_DHT_GET_FAILED'); -+ if (response.dht?.value == null) { -+ throw new OperationFailedError('Invalid DHT get response'); - } - return response.dht.value; - } -@@ -65,25 +67,25 @@ export class DHT { - */ - async findPeer(peerId) { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID'); -+ throw new InvalidParametersError('invalid peer id received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, - dht: { - type: DHTRequest.Type.FIND_PEER, -- peer: peerId.toBytes() -+ peer: peerId.toMultihash().bytes - } - }); - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT find peer failed', 'ERR_DHT_FIND_PEER_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find peer failed'); - } -- if (response.dht == null || response.dht.peer == null || response.dht.peer.addrs == null) { -- throw new CodeError('Invalid response', 'ERR_DHT_FIND_PEER_FAILED'); -+ if (response.dht?.peer?.addrs == null) { -+ throw new OperationFailedError('Invalid response'); - } - return { -- id: peerIdFromBytes(response.dht.peer.id), -+ id: peerIdFromMultihash(Digest.decode(response.dht.peer.id)), - multiaddrs: response.dht.peer.addrs.map((a) => multiaddr(a)) - }; - } -@@ -92,7 +94,7 @@ export class DHT { - */ - async provide(cid) { - if (cid == null || CID.asCID(cid) == null) { -- throw new CodeError('invalid cid received', 'ERR_INVALID_CID'); -+ throw new InvalidParametersError('invalid cid received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, -@@ -104,7 +106,7 @@ export class DHT { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT provide failed', 'ERR_DHT_PROVIDE_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT provide failed'); - } - } - /** -@@ -112,7 +114,7 @@ export class DHT { - */ - async *findProviders(cid, count = 1) { - if (cid == null || CID.asCID(cid) == null) { -- throw new CodeError('invalid cid received', 'ERR_INVALID_CID'); -+ throw new InvalidParametersError('invalid cid received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, -@@ -126,7 +128,7 @@ export class DHT { - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { - await sh.unwrap().close(); -- throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find providers failed'); - } - while (true) { - const dhtResponse = await sh.read(DHTResponse); -@@ -136,16 +138,16 @@ export class DHT { - return; - } - // Stream values -- if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.peer != null && dhtResponse.peer?.addrs != null) { -+ if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.peer?.addrs != null) { - yield { -- id: peerIdFromBytes(dhtResponse.peer.id), -+ id: peerIdFromMultihash(Digest.decode(dhtResponse.peer.id)), - multiaddrs: dhtResponse.peer.addrs.map((a) => multiaddr(a)) - }; - } - else { - // Unexpected message received - await sh.unwrap().close(); -- throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED'); -+ throw new ProtocolError('unexpected message received'); - } - } - } -@@ -154,7 +156,7 @@ export class DHT { - */ - async *getClosestPeers(key) { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY'); -+ throw new InvalidParametersError('invalid key received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, -@@ -167,7 +169,7 @@ export class DHT { - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { - await sh.unwrap().close(); -- throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find providers failed'); - } - while (true) { - const dhtResponse = await sh.read(DHTResponse); -@@ -178,7 +180,7 @@ export class DHT { - } - // Stream values - if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.value != null) { -- const peerId = peerIdFromBytes(dhtResponse.value); -+ const peerId = peerIdFromMultihash(Digest.decode(dhtResponse.value)); - yield { - id: peerId, - multiaddrs: [] -@@ -187,7 +189,7 @@ export class DHT { - else { - // Unexpected message received - await sh.unwrap().close(); -- throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED'); -+ throw new InvalidMessageError('unexpected message received'); - } - } - } -@@ -196,22 +198,22 @@ export class DHT { - */ - async getPublicKey(peerId) { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID'); -+ throw new InvalidParametersError('invalid peer id received'); - } - const sh = await this.client.send({ - type: Request.Type.DHT, - dht: { - type: DHTRequest.Type.GET_PUBLIC_KEY, -- peer: peerId.toBytes() -+ peer: peerId.toMultihash().bytes - } - }); - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT get public key failed', 'ERR_DHT_GET_PUBLIC_KEY_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'DHT get public key failed'); - } - if (response.dht == null) { -- throw new CodeError('Invalid response', 'ERR_DHT_GET_PUBLIC_KEY_FAILED'); -+ throw new InvalidMessageError('Invalid response'); - } - return response.dht.value; - } -diff --git a/node_modules/@libp2p/daemon-client/dist/src/dht.js.map b/node_modules/@libp2p/daemon-client/dist/src/dht.js.map -index 9e36562..c4c4cfe 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/dht.js.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/dht.js.map -@@ -1 +1 @@ --{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/index.d.ts b/node_modules/@libp2p/daemon-client/dist/src/index.d.ts -index 949c8e6..b657509 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/index.d.ts -+++ b/node_modules/@libp2p/daemon-client/dist/src/index.d.ts -@@ -3,6 +3,9 @@ import { type ProtobufStream } from 'it-protobuf-stream'; - import type { Stream, PeerId, MultiaddrConnection, PeerInfo } from '@libp2p/interface'; - import type { Multiaddr } from '@multiformats/multiaddr'; - import type { CID } from 'multiformats/cid'; -+export declare class OperationFailedError extends Error { -+ constructor(message?: string); -+} - export interface IdentifyResult { - peerId: PeerId; - addrs: Multiaddr[]; -diff --git a/node_modules/@libp2p/daemon-client/dist/src/index.d.ts.map b/node_modules/@libp2p/daemon-client/dist/src/index.d.ts.map -index 82a7e50..625b51e 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/index.d.ts.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAwB,MAAM,yBAAyB,CAAA;AAQvF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AA6O3C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/C,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IACnC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IAEpB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACpE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED,wBAAgB,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAEhE"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAwB,MAAM,yBAAyB,CAAA;AAQvF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAI3C,qBAAa,oBAAqB,SAAQ,KAAK;gBAChC,OAAO,SAAqB;CAI1C;AA8OD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/C,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IACnC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IAEpB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACpE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED,wBAAgB,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAEhE"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/index.js b/node_modules/@libp2p/daemon-client/dist/src/index.js -index 19585b1..0c1ae7c 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/index.js -+++ b/node_modules/@libp2p/daemon-client/dist/src/index.js -@@ -1,15 +1,22 @@ - import { Request, Response, StreamInfo } from '@libp2p/daemon-protocol'; - import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler'; - import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader'; --import { CodeError, isPeerId } from '@libp2p/interface'; -+import { InvalidParametersError, isPeerId } from '@libp2p/interface'; - import { defaultLogger, logger } from '@libp2p/logger'; --import { peerIdFromBytes } from '@libp2p/peer-id'; -+import { peerIdFromMultihash } from '@libp2p/peer-id'; - import { tcp } from '@libp2p/tcp'; - import { multiaddr, isMultiaddr } from '@multiformats/multiaddr'; - import { pbStream } from 'it-protobuf-stream'; -+import * as Digest from 'multiformats/hashes/digest'; - import { DHT } from './dht.js'; - import { Pubsub } from './pubsub.js'; - const log = logger('libp2p:daemon-client'); -+export class OperationFailedError extends Error { -+ constructor(message = 'Operation failed') { -+ super(message); -+ this.name = 'OperationFailedError'; -+ } -+} - class Client { - multiaddr; - dht; -@@ -54,27 +61,27 @@ class Client { - */ - async connect(peerId, addrs) { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID'); -+ throw new InvalidParametersError('invalid peer id received'); - } - if (!Array.isArray(addrs)) { -- throw new CodeError('addrs received are not in an array', 'ERR_INVALID_ADDRS_TYPE'); -+ throw new InvalidParametersError('addrs received are not in an array'); - } - addrs.forEach((addr) => { - if (!isMultiaddr(addr)) { -- throw new CodeError('received an address that is not a multiaddr', 'ERR_NO_MULTIADDR_RECEIVED'); -+ throw new InvalidParametersError('received an address that is not a multiaddr'); - } - }); - const sh = await this.send({ - type: Request.Type.CONNECT, - connect: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - addrs: addrs.map((a) => a.bytes) - } - }); - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { - const errResponse = response.error ?? { msg: 'unspecified' }; -- throw new CodeError(errResponse.msg ?? 'unspecified', 'ERR_CONNECT_FAILED'); -+ throw new OperationFailedError(errResponse.msg ?? 'unspecified'); - } - await sh.unwrap().close(); - } -@@ -92,12 +99,12 @@ class Client { - }); - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Identify failed', 'ERR_IDENTIFY_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Identify failed'); - } -- if (response.identify == null || response.identify.addrs == null) { -- throw new CodeError('Invalid response', 'ERR_IDENTIFY_FAILED'); -+ if (response.identify?.addrs == null) { -+ throw new OperationFailedError('Invalid response'); - } -- const peerId = peerIdFromBytes(response.identify?.id); -+ const peerId = peerIdFromMultihash(Digest.decode(response.identify?.id)); - const addrs = response.identify.addrs.map((a) => multiaddr(a)); - await sh.unwrap().close(); - return ({ peerId, addrs }); -@@ -111,32 +118,32 @@ class Client { - }); - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'List peers failed', 'ERR_LIST_PEERS_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'List peers failed'); - } - await sh.unwrap().close(); -- return response.peers.map((peer) => peerIdFromBytes(peer.id)); -+ return response.peers.map((peer) => peerIdFromMultihash(Digest.decode(peer.id))); - } - /** - * Initiate an outbound stream to a peer on one of a set of protocols. - */ - async openStream(peerId, protocol) { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID'); -+ throw new InvalidParametersError('invalid peer id received'); - } - if (typeof protocol !== 'string') { -- throw new CodeError('invalid protocol received', 'ERR_INVALID_PROTOCOL'); -+ throw new InvalidParametersError('invalid protocol received'); - } - const sh = await this.send({ - type: Request.Type.STREAM_OPEN, - streamOpen: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - proto: [protocol] - } - }); - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { - await sh.unwrap().close(); -- throw new CodeError(response.error?.msg ?? 'Open stream failed', 'ERR_OPEN_STREAM_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Open stream failed'); - } - return sh.unwrap(); - } -@@ -145,7 +152,7 @@ class Client { - */ - async registerStreamHandler(protocol, handler) { - if (typeof protocol !== 'string') { -- throw new CodeError('invalid protocol received', 'ERR_INVALID_PROTOCOL'); -+ throw new InvalidParametersError('invalid protocol received'); - } - // open a tcp port, pipe any data from it to the handler function - const listener = this.tcp.createListener({ -@@ -159,14 +166,17 @@ class Client { - }); - const message = await sh.read(); - if (message == null) { -- throw new CodeError('Could not read open stream response', 'ERR_OPEN_STREAM_FAILED'); -+ throw new OperationFailedError('Could not read open stream response'); - } - const response = StreamInfo.decode(message); - if (response.proto !== protocol) { -- throw new CodeError('Incorrect protocol', 'ERR_OPEN_STREAM_FAILED'); -+ throw new OperationFailedError('Incorrect protocol'); - } - // @ts-expect-error because we are using a passthrough upgrader, this is a MultiaddrConnection - await handler(sh.rest()); -+ }) -+ .catch(err => { -+ connection.abort(err); - }) - .finally(() => { - connection.close() -@@ -183,7 +193,7 @@ class Client { - await listener.listen(multiaddr('/ip4/127.0.0.1/tcp/0')); - const address = listener.getAddrs()[0]; - if (address == null) { -- throw new CodeError('Could not listen on port', 'ERR_REGISTER_STREAM_HANDLER_FAILED'); -+ throw new OperationFailedError('Could not listen on port'); - } - const sh = await this.send({ - type: Request.Type.STREAM_HANDLER, -@@ -195,7 +205,7 @@ class Client { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Register stream handler failed', 'ERR_REGISTER_STREAM_HANDLER_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Register stream handler failed'); - } - } - } -diff --git a/node_modules/@libp2p/daemon-client/dist/src/index.js.map b/node_modules/@libp2p/daemon-client/dist/src/index.js.map -index c18b9de..97d91a0 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/index.js.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts b/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts -index 7d4e6ae..7647ffb 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts -+++ b/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts -@@ -1,4 +1,4 @@ --import type { DaemonClient, Subscription } from './index.js'; -+import { type DaemonClient, type Subscription } from './index.js'; - import type { PeerId } from '@libp2p/interface'; - export declare class Pubsub { - private readonly client; -diff --git a/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts.map b/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts.map -index 54b3f22..da440d0 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/pubsub.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;;;OAIG;IACG,SAAS,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBrC;;OAEG;IACG,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9D;;OAEG;IACG,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoChD,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA2BxD"} -\ No newline at end of file -+{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AASA,OAAO,EAAwB,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;;;OAIG;IACG,SAAS,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBrC;;OAEG;IACG,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9D;;OAEG;IACG,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoChD,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA2BxD"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/pubsub.js b/node_modules/@libp2p/daemon-client/dist/src/pubsub.js -index bb7db1c..bf1b287 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/pubsub.js -+++ b/node_modules/@libp2p/daemon-client/dist/src/pubsub.js -@@ -1,6 +1,8 @@ - import { Request, Response, PSRequest, PSMessage } from '@libp2p/daemon-protocol'; --import { CodeError } from '@libp2p/interface'; --import { peerIdFromBytes } from '@libp2p/peer-id'; -+import { InvalidParametersError } from '@libp2p/interface'; -+import { peerIdFromMultihash } from '@libp2p/peer-id'; -+import * as Digest from 'multiformats/hashes/digest'; -+import { OperationFailedError } from './index.js'; - export class Pubsub { - client; - constructor(client) { -@@ -21,10 +23,10 @@ export class Pubsub { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub get topics failed', 'ERR_PUBSUB_GET_TOPICS_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub get topics failed'); - } -- if (response.pubsub == null || response.pubsub.topics == null) { -- throw new CodeError('Invalid response', 'ERR_PUBSUB_GET_TOPICS_FAILED'); -+ if (response.pubsub?.topics == null) { -+ throw new OperationFailedError('Invalid response'); - } - return response.pubsub.topics; - } -@@ -33,10 +35,10 @@ export class Pubsub { - */ - async publish(topic, data) { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC'); -+ throw new InvalidParametersError('invalid topic received'); - } - if (!(data instanceof Uint8Array)) { -- throw new CodeError('data received is not a Uint8Array', 'ERR_INVALID_DATA'); -+ throw new InvalidParametersError('data received is not a Uint8Array'); - } - const sh = await this.client.send({ - type: Request.Type.PUBSUB, -@@ -49,7 +51,7 @@ export class Pubsub { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub publish failed'); - } - } - /** -@@ -57,7 +59,7 @@ export class Pubsub { - */ - async subscribe(topic) { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC'); -+ throw new InvalidParametersError('invalid topic received'); - } - const sh = await this.client.send({ - type: Request.Type.PUBSUB, -@@ -68,7 +70,7 @@ export class Pubsub { - }); - const response = await sh.read(Response); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub publish failed'); - } - let subscribed = true; - const subscription = { -@@ -86,7 +88,7 @@ export class Pubsub { - } - async getSubscribers(topic) { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC'); -+ throw new InvalidParametersError('invalid topic received'); - } - const sh = await this.client.send({ - type: Request.Type.PUBSUB, -@@ -98,12 +100,12 @@ export class Pubsub { - const response = await sh.read(Response); - await sh.unwrap().close(); - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub get subscribers failed', 'ERR_PUBSUB_GET_SUBSCRIBERS_FAILED'); -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub get subscribers failed'); - } -- if (response.pubsub == null || response.pubsub.topics == null) { -- throw new CodeError('Invalid response', 'ERR_PUBSUB_GET_SUBSCRIBERS_FAILED'); -+ if (response.pubsub?.topics == null) { -+ throw new OperationFailedError('Invalid response'); - } -- return response.pubsub.peerIDs.map(buf => peerIdFromBytes(buf)); -+ return response.pubsub.peerIDs.map(buf => peerIdFromMultihash(Digest.decode(buf))); - } - } - //# sourceMappingURL=pubsub.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/src/pubsub.js.map b/node_modules/@libp2p/daemon-client/dist/src/pubsub.js.map -index 4b8210e..9eb6f36 100644 ---- a/node_modules/@libp2p/daemon-client/dist/src/pubsub.js.map -+++ b/node_modules/@libp2p/daemon-client/dist/src/pubsub.js.map -@@ -1 +1 @@ --{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts -new file mode 100644 -index 0000000..a423a4e ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=dht.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts.map b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts.map -new file mode 100644 -index 0000000..13981f1 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"dht.spec.d.ts","sourceRoot":"","sources":["../../test/dht.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js -new file mode 100644 -index 0000000..567ebe2 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js -@@ -0,0 +1,183 @@ -+/* eslint-env mocha */ -+import { createServer } from '@libp2p/daemon-server'; -+import { MessageType, EventTypes } from '@libp2p/kad-dht'; -+import { peerIdFromString } from '@libp2p/peer-id'; -+import { multiaddr } from '@multiformats/multiaddr'; -+import { expect } from 'aegir/chai'; -+import all from 'it-all'; -+import { CID } from 'multiformats/cid'; -+import sinon from 'sinon'; -+import { stubInterface } from 'sinon-ts'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { createClient } from '../src/index.js'; -+import { matchBytes } from './fixtures/match-bytes.js'; -+const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/12345'); -+function matchCid(cid) { -+ return sinon.match((c) => c.toString() === cid.toString(), 'cid'); -+} -+describe('daemon dht client', function () { -+ this.timeout(30e3); -+ let libp2p; -+ let server; -+ let client; -+ let dht; -+ beforeEach(async function () { -+ dht = stubInterface(); -+ libp2p = stubInterface(); -+ libp2p.services.dht = dht; -+ server = createServer(defaultMultiaddr, libp2p); -+ await server.start(); -+ client = createClient(server.getMultiaddr()); -+ }); -+ afterEach(async () => { -+ if (server != null) { -+ await server.stop(); -+ } -+ sinon.restore(); -+ }); -+ describe('put', () => { -+ const key = uint8ArrayFromString('/key'); -+ const value = uint8ArrayFromString('oh hello there'); -+ it('should be able to put a value to the dht', async function () { -+ dht.put.returns(async function* () { }()); -+ await client.dht.put(key, value); -+ expect(dht.put.calledWith(matchBytes(key), matchBytes(value))).to.be.true(); -+ }); -+ it('should error if receive an error message', async () => { -+ dht.put.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(client.dht.put(key, value)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('get', () => { -+ it('should be able to get a value from the dht', async function () { -+ const key = uint8ArrayFromString('/key'); -+ const value = uint8ArrayFromString('oh hello there'); -+ dht.get.withArgs(matchBytes(key)).returns(async function* () { -+ const event = { -+ name: 'VALUE', -+ type: EventTypes.VALUE, -+ value, -+ from: peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa') -+ }; -+ yield event; -+ }()); -+ const result = await client.dht.get(key); -+ expect(result).to.equalBytes(value); -+ }); -+ it('should error if receive an error message', async function () { -+ const key = uint8ArrayFromString('/key'); -+ dht.get.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(client.dht.get(key)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('findPeer', () => { -+ it('should be able to find a peer', async () => { -+ const id = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ dht.findPeer.withArgs(id).returns(async function* () { -+ const event = { -+ name: 'FINAL_PEER', -+ type: EventTypes.FINAL_PEER, -+ peer: { -+ id, -+ multiaddrs: [] -+ }, -+ from: peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa') -+ }; -+ yield event; -+ }()); -+ const result = await client.dht.findPeer(id); -+ expect(result.id.equals(id)).to.be.true(); -+ }); -+ it('should error if receive an error message', async () => { -+ const id = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ dht.findPeer.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(client.dht.findPeer(id)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('provide', () => { -+ it('should be able to provide', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ dht.provide.returns(async function* () { }()); -+ await client.dht.provide(cid); -+ expect(dht.provide.calledWith(matchCid(cid))).to.be.true(); -+ }); -+ it('should error if receive an error message', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ dht.provide.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(client.dht.provide(cid)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('findProviders', () => { -+ it('should be able to find providers', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ const id = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ dht.findProviders.withArgs(matchCid(cid)).returns(async function* () { -+ const event = { -+ name: 'PEER_RESPONSE', -+ type: EventTypes.PEER_RESPONSE, -+ providers: [{ -+ id, -+ multiaddrs: [] -+ }], -+ closer: [], -+ from: id, -+ messageName: 'GET_PROVIDERS', -+ messageType: MessageType.GET_PROVIDERS -+ }; -+ yield event; -+ }()); -+ const result = await all(client.dht.findProviders(cid)); -+ expect(result).to.have.lengthOf(1); -+ expect(result[0].id.equals(id)).to.be.true(); -+ }); -+ // skipped because the protocol doesn't handle streaming errors -+ it.skip('should error if receive an error message', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ dht.findProviders.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(all(client.dht.findProviders(cid))).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('getClosestPeers', () => { -+ it('should be able to get the closest peers', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ const id = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ dht.getClosestPeers.returns(async function* () { -+ const event = { -+ name: 'PEER_RESPONSE', -+ type: EventTypes.PEER_RESPONSE, -+ providers: [], -+ closer: [{ -+ id, -+ multiaddrs: [] -+ }], -+ from: id, -+ messageName: 'GET_PROVIDERS', -+ messageType: MessageType.GET_PROVIDERS -+ }; -+ yield event; -+ }()); -+ const result = await all(client.dht.getClosestPeers(cid.bytes)); -+ expect(result).to.have.lengthOf(1); -+ expect(result[0].id.equals(id)).to.be.true(); -+ }); -+ // skipped because the protocol doesn't handle streaming errors -+ it.skip('should error if it gets an invalid key', async () => { -+ const cid = CID.parse('QmVzw6MPsF96TyXBSRs1ptLoVMWRv5FCYJZZGJSVB2Hp38'); -+ dht.getClosestPeers.returns(async function* () { -+ throw new Error('Urk!'); -+ }()); -+ await expect(all(client.dht.getClosestPeers(cid.bytes))).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+}); -+//# sourceMappingURL=dht.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js.map b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js.map -new file mode 100644 -index 0000000..e8673fe ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/dht.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"dht.spec.js","sourceRoot":"","sources":["../../test/dht.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts -new file mode 100644 -index 0000000..accfd6a ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts -@@ -0,0 +1,4 @@ -+import type { SinonMatcher } from 'sinon'; -+import type { Uint8ArrayList } from 'uint8arraylist'; -+export declare function matchBytes(bytes: Uint8Array | Uint8ArrayList): SinonMatcher; -+//# sourceMappingURL=match-bytes.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts.map b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts.map -new file mode 100644 -index 0000000..0894b65 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"match-bytes.d.ts","sourceRoot":"","sources":["../../../test/fixtures/match-bytes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,wBAAgB,UAAU,CAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,YAAY,CAI5E"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js -new file mode 100644 -index 0000000..ccb4c2e ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js -@@ -0,0 +1,8 @@ -+import Sinon from 'sinon'; -+import { equals as uint8ArrayEquals } from 'uint8arrays/equals'; -+export function matchBytes(bytes) { -+ return Sinon.match((val) => { -+ return uint8ArrayEquals(val.subarray(), bytes.subarray()); -+ }); -+} -+//# sourceMappingURL=match-bytes.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js.map b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js.map -new file mode 100644 -index 0000000..e4ef380 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/fixtures/match-bytes.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"match-bytes.js","sourceRoot":"","sources":["../../../test/fixtures/match-bytes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAI/D,MAAM,UAAU,UAAU,CAAE,KAAkC;IAC5D,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,GAAgC,EAAE,EAAE;QACtD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;AACJ,CAAC"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts b/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts -new file mode 100644 -index 0000000..b37c2d2 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=index.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts.map b/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts.map -new file mode 100644 -index 0000000..5c89780 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/index.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../test/index.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/index.spec.js b/node_modules/@libp2p/daemon-client/dist/test/index.spec.js -new file mode 100644 -index 0000000..ae6b501 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/index.spec.js -@@ -0,0 +1,78 @@ -+/* eslint-env mocha */ -+import { createServer } from '@libp2p/daemon-server'; -+import { isPeerId } from '@libp2p/interface'; -+import { mockConnection, mockDuplex, mockMultiaddrConnection } from '@libp2p/interface-compliance-tests/mocks'; -+import { peerIdFromString } from '@libp2p/peer-id'; -+import { multiaddr } from '@multiformats/multiaddr'; -+import { expect } from 'aegir/chai'; -+import sinon from 'sinon'; -+import { stubInterface } from 'sinon-ts'; -+import { createClient } from '../src/index.js'; -+const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/0'); -+describe('daemon client', function () { -+ this.timeout(30e3); -+ let libp2p; -+ let server; -+ let client; -+ beforeEach(async function () { -+ libp2p = stubInterface(); -+ libp2p.peerStore = stubInterface(); -+ server = createServer(defaultMultiaddr, libp2p); -+ await server.start(); -+ client = createClient(server.getMultiaddr()); -+ }); -+ afterEach(async () => { -+ if (server != null) { -+ await server.stop(); -+ } -+ sinon.restore(); -+ }); -+ describe('identify', () => { -+ it('should be able to identify', async () => { -+ libp2p.peerId = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ libp2p.getMultiaddrs.returns([ -+ multiaddr('/ip4/0.0.0.0/tcp/1234/p2p/12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa') -+ ]); -+ const identify = await client.identify(); -+ expect(identify).to.exist(); -+ expect(identify.peerId).to.exist(); -+ expect(identify.addrs).to.exist(); -+ expect(isPeerId(identify.peerId)); -+ }); -+ it('should error if receive an error message', async () => { -+ libp2p.peerId = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ libp2p.getMultiaddrs.throws(new Error('Urk!')); -+ await expect(client.identify()).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('listPeers', () => { -+ it('should be able to listPeers', async () => { -+ const remotePeer = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ libp2p.getConnections.returns([ -+ mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeer)) -+ ]); -+ const peers = await client.listPeers(); -+ expect(peers).to.have.lengthOf(1); -+ expect(peers[0].equals(remotePeer)).to.be.true(); -+ }); -+ it('should error if receive an error message', async () => { -+ libp2p.getConnections.throws(new Error('Urk!')); -+ await expect(client.listPeers()).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('connect', () => { -+ it('should be able to connect', async () => { -+ const remotePeer = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ const ma = multiaddr('/ip4/1.2.3.4/tcp/1234'); -+ await client.connect(remotePeer, [ma]); -+ expect(libp2p.dial.calledWith(remotePeer)).to.be.true(); -+ }); -+ it('should error if receive an error message', async () => { -+ const remotePeer = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ const ma = multiaddr('/ip4/1.2.3.4/tcp/1234'); -+ libp2p.dial.rejects(new Error('Urk!')); -+ await expect(client.connect(remotePeer, [ma])).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+}); -+//# sourceMappingURL=index.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/index.spec.js.map b/node_modules/@libp2p/daemon-client/dist/test/index.spec.js.map -new file mode 100644 -index 0000000..c4fe3b2 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/index.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../test/index.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts -new file mode 100644 -index 0000000..89ef0a9 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=pubsub.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts.map b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts.map -new file mode 100644 -index 0000000..1a66b20 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"pubsub.spec.d.ts","sourceRoot":"","sources":["../../test/pubsub.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js -new file mode 100644 -index 0000000..5907e3a ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js -@@ -0,0 +1,88 @@ -+/* eslint-env mocha */ -+import { createServer } from '@libp2p/daemon-server'; -+import { peerIdFromString } from '@libp2p/peer-id'; -+import { multiaddr } from '@multiformats/multiaddr'; -+import { expect } from 'aegir/chai'; -+import sinon from 'sinon'; -+import { stubInterface } from 'sinon-ts'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { createClient } from '../src/index.js'; -+const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/12345'); -+describe('daemon pubsub client', function () { -+ this.timeout(30e3); -+ let libp2p; -+ let server; -+ let client; -+ let pubsub; -+ beforeEach(async function () { -+ pubsub = stubInterface(); -+ libp2p = stubInterface(); -+ libp2p.services.pubsub = pubsub; -+ server = createServer(defaultMultiaddr, libp2p); -+ await server.start(); -+ client = createClient(server.getMultiaddr()); -+ }); -+ afterEach(async () => { -+ if (server != null) { -+ await server.stop(); -+ } -+ sinon.restore(); -+ }); -+ describe('getTopics', () => { -+ it('should get empty list of topics when no subscriptions exist', async () => { -+ pubsub.getTopics.returns([]); -+ const topics = await client.pubsub.getTopics(); -+ expect(topics).to.have.lengthOf(0); -+ }); -+ it('should get a list with a topic when subscribed', async () => { -+ const topic = 'test-topic'; -+ pubsub.getTopics.returns([topic]); -+ const topics = await client.pubsub.getTopics(); -+ expect(topics).to.have.lengthOf(1); -+ expect(topics[0]).to.equal(topic); -+ }); -+ it('should error if receive an error message', async () => { -+ pubsub.getTopics.throws(new Error('Urk!')); -+ await expect(client.pubsub.getTopics()).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('publish', () => { -+ it('should publish an event', async () => { -+ const topic = 'test-topic'; -+ const data = uint8ArrayFromString('hello world'); -+ await client.pubsub.publish(topic, data); -+ expect(pubsub.publish.called).to.be.true(); -+ const call = pubsub.publish.getCall(0); -+ expect(call).to.have.nested.property('args[0]', topic); -+ expect(call).to.have.deep.nested.property('args[1]', data); -+ }); -+ it('should error if receive an error message', async () => { -+ const topic = 'test-topic'; -+ const data = uint8ArrayFromString('hello world'); -+ pubsub.publish.throws(new Error('Urk!')); -+ await expect(client.pubsub.publish(topic, data)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+ describe('getSubscribers', () => { -+ it('should get empty list of topics when no subscriptions exist', async () => { -+ pubsub.getSubscribers.returns([]); -+ const topic = 'test-topic'; -+ const topics = await client.pubsub.getSubscribers(topic); -+ expect(topics).to.have.lengthOf(0); -+ }); -+ it('should get a list with a peer when subscribed', async () => { -+ const topic = 'test-topic'; -+ const peer = peerIdFromString('12D3KooWKnQbfH5t1XxJW5FBoMGNjmC9LTSbDdRJxtYj2bJV5XfP'); -+ pubsub.getSubscribers.withArgs(topic).returns([peer]); -+ const peers = await client.pubsub.getSubscribers(topic); -+ expect(peers).to.have.lengthOf(1); -+ expect(peers[0].toString()).to.equal(peer.toString()); -+ }); -+ it('should error if receive an error message', async () => { -+ const topic = 'test-topic'; -+ pubsub.getSubscribers.throws(new Error('Urk!')); -+ await expect(client.pubsub.getSubscribers(topic)).to.eventually.be.rejectedWith(/Urk!/); -+ }); -+ }); -+}); -+//# sourceMappingURL=pubsub.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js.map b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js.map -new file mode 100644 -index 0000000..47e87fa ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/pubsub.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"pubsub.spec.js","sourceRoot":"","sources":["../../test/pubsub.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts -new file mode 100644 -index 0000000..2ce8297 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=stream.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts.map b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts.map -new file mode 100644 -index 0000000..77bed14 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"stream.spec.d.ts","sourceRoot":"","sources":["../../test/stream.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js -new file mode 100644 -index 0000000..6f62fbb ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js -@@ -0,0 +1,61 @@ -+/* eslint-env mocha */ -+import { createServer } from '@libp2p/daemon-server'; -+import { mockRegistrar, connectionPair } from '@libp2p/interface-compliance-tests/mocks'; -+import { peerIdFromString } from '@libp2p/peer-id'; -+import { multiaddr } from '@multiformats/multiaddr'; -+import { expect } from 'aegir/chai'; -+import all from 'it-all'; -+import { pipe } from 'it-pipe'; -+import sinon from 'sinon'; -+import { stubInterface } from 'sinon-ts'; -+import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -+import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; -+import { createClient } from '../src/index.js'; -+const defaultMultiaddr = multiaddr('/ip4/0.0.0.0/tcp/0'); -+describe('daemon stream client', function () { -+ this.timeout(50e3); -+ let libp2p; -+ let server; -+ let client; -+ beforeEach(async function () { -+ libp2p = stubInterface(); -+ libp2p.peerStore = stubInterface(); -+ server = createServer(defaultMultiaddr, libp2p); -+ await server.start(); -+ client = createClient(server.getMultiaddr()); -+ }); -+ afterEach(async () => { -+ if (server != null) { -+ await server.stop(); -+ } -+ sinon.restore(); -+ }); -+ it('should be able to open a stream, write to it and a stream handler, should handle the message', async () => { -+ const protocol = '/echo/1.0.0'; -+ const peerA = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsa'); -+ const registrarA = mockRegistrar(); -+ await registrarA.handle(protocol, (data) => { -+ void pipe(data.stream, data.stream); -+ }); -+ const peerB = peerIdFromString('12D3KooWJKCJW8Y26pRFNv78TCMGLNTfyN8oKaFswMRYXTzSbSsb'); -+ const registrarB = mockRegistrar(); -+ await registrarB.handle(protocol, (data) => { -+ void pipe(data.stream, data.stream); -+ }); -+ const [peerAtoPeerB] = connectionPair({ -+ peerId: peerA, -+ registrar: registrarA -+ }, { -+ peerId: peerB, -+ registrar: registrarB -+ }); -+ libp2p.dial.withArgs(peerB).resolves(peerAtoPeerB); -+ const stream = await client.openStream(peerB, protocol); -+ const data = await pipe(async function* () { -+ yield uint8ArrayFromString('hello world'); -+ }, stream, async (source) => all(source)); -+ expect(data).to.have.lengthOf(1); -+ expect(uint8ArrayToString(data[0].subarray())).to.equal('hello world'); -+ }); -+}); -+//# sourceMappingURL=stream.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js.map b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js.map -new file mode 100644 -index 0000000..16ecfbb ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/test/stream.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"stream.spec.js","sourceRoot":"","sources":["../../test/stream.spec.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/tsconfig.tsbuildinfo b/node_modules/@libp2p/daemon-client/dist/tsconfig.tsbuildinfo -new file mode 100644 -index 0000000..d005fb1 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-client/dist/tsconfig.tsbuildinfo -@@ -0,0 +1 @@ -+{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/protons-runtime/dist/src/codec.d.ts","../../../node_modules/uint8arraylist/dist/src/index.d.ts","../../../node_modules/protons-runtime/dist/src/decode.d.ts","../../../node_modules/protons-runtime/dist/src/encode.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/message.d.ts","../../../node_modules/protons-runtime/dist/src/utils/reader.d.ts","../../../node_modules/protons-runtime/dist/src/utils/writer.d.ts","../../../node_modules/protons-runtime/dist/src/index.d.ts","../../libp2p-daemon-protocol/dist/src/index.d.ts","../../../node_modules/multiformats/dist/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/src/block/interface.d.ts","../../../node_modules/multiformats/dist/src/hashes/interface.d.ts","../../../node_modules/multiformats/dist/src/link/interface.d.ts","../../../node_modules/multiformats/dist/src/cid.d.ts","../../../node_modules/@libp2p/interface/dist/src/keys/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-id/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/dns-over-https.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/dns-json-over-https.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/index.d.ts","../../../node_modules/progress-events/dist/src/index.d.ts","../../../node_modules/@multiformats/dns/dist/src/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/resolvers/dnsaddr.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/resolvers/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../../../node_modules/it-stream-types/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-info/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/content-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/event-target.d.ts","../../../node_modules/@libp2p/interface/dist/src/metrics/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-store/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/startable.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-handler/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/topology/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-muxer/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/transport/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-encrypter/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-gater/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-discovery/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-store/tags.d.ts","../../../node_modules/it-pushable/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/pubsub/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/record/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/errors.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/events.d.ts","../../../node_modules/@libp2p/interface/dist/src/index.d.ts","../../../node_modules/@libp2p/logger/dist/src/index.d.ts","../../../node_modules/@libp2p/peer-id/dist/src/index.d.ts","../../../node_modules/multiformats/dist/src/hashes/digest.d.ts","../../libp2p-daemon-protocol/dist/src/stream-handler.d.ts","../../libp2p-daemon-protocol/dist/src/upgrader.d.ts","../../../node_modules/@libp2p/tcp/dist/src/listener.d.ts","../../../node_modules/@libp2p/tcp/dist/src/index.d.ts","../../../node_modules/it-byte-stream/dist/src/index.d.ts","../../../node_modules/it-length-prefixed-stream/dist/src/index.d.ts","../../../node_modules/it-protobuf-stream/dist/src/index.d.ts","../src/pubsub.ts","../src/index.ts","../src/dht.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/decoderpc.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codec.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/decode.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/encode.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codecs/message.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/utils/reader.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/utils/writer.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/types.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message-cache.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/metrics.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/set.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-stats.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/compute-score.d.ts","../../../node_modules/denque/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/message-deliveries.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/stream.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/tracer.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/config.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/address-manager/index.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/map.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/set.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/list.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/filter.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-map.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-set.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-list.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/connection-manager/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/random-walk/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/record/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/registrar/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/transport-manager/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/message/dht.d.ts","../../../node_modules/multiformats/dist/src/codecs/interface.d.ts","../../../node_modules/multiformats/dist/src/codecs/json.d.ts","../../../node_modules/multiformats/dist/src/codecs/raw.d.ts","../../../node_modules/multiformats/dist/src/bytes.d.ts","../../../node_modules/multiformats/dist/src/hashes/hasher.d.ts","../../../node_modules/multiformats/dist/src/varint.d.ts","../../../node_modules/multiformats/dist/src/interface.d.ts","../../../node_modules/multiformats/dist/src/index.d.ts","../../../node_modules/multiformats/dist/src/bases/base.d.ts","../../../node_modules/multiformats/dist/src/basics.d.ts","../../../node_modules/uint8arrays/dist/src/util/bases.d.ts","../../../node_modules/uint8arrays/dist/src/to-string.d.ts","../../../node_modules/interface-datastore/dist/src/key.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/utils.d.ts","../../../node_modules/interface-store/dist/src/errors.d.ts","../../../node_modules/interface-store/dist/src/index.d.ts","../../../node_modules/interface-datastore/dist/src/index.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/providers.d.ts","../../../node_modules/any-signal/dist/src/index.d.ts","../../../node_modules/@libp2p/utils/dist/src/adaptive-timeout.d.ts","../../../node_modules/@libp2p/record/dist/src/record.d.ts","../../../node_modules/@libp2p/record/dist/src/index.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/index.d.ts","../../libp2p-daemon-server/dist/src/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts","../../../node_modules/chai-parentheses/index.d.ts","../../../node_modules/@types/chai-subset/index.d.ts","../../../node_modules/chai-bites/index.d.ts","../../../node_modules/@types/chai-string/index.d.ts","../../../node_modules/aegir/dist/utils/chai.d.ts","../../../node_modules/it-all/dist/src/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/sinon-ts/dist/src/index.d.ts","../../../node_modules/uint8arrays/dist/src/from-string.d.ts","../../../node_modules/uint8arrays/dist/src/equals.d.ts","../test/fixtures/match-bytes.ts","../test/dht.spec.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection-gater.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection-manager.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/connection.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/multiaddr-connection.d.ts","../../../node_modules/@libp2p/utils/dist/src/abstract-stream.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/muxer.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/registrar.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/upgrader.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/duplex.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/metrics.d.ts","../../../node_modules/@libp2p/interface-compliance-tests/dist/src/mocks/index.d.ts","../test/index.spec.ts","../test/pubsub.spec.ts","../../../node_modules/it-pipe/dist/src/index.d.ts","../test/stream.spec.ts","../../../node_modules/keyv/src/index.d.ts","../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../../../node_modules/@types/cacheable-request/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/dns-packet/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/keyv/index.d.ts","../../../node_modules/@types/linkify-it/build/index.cjs.d.ts","../../../node_modules/@types/linkify-it/index.d.ts","../../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../../node_modules/@types/mdurl/index.d.ts","../../../node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../../node_modules/@types/markdown-it/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/murmurhash3js-revisited/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/retry/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/strip-bom/index.d.ts","../../../node_modules/@types/strip-json-comments/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"db88e2781075c7bca86634724f38a132de718ddf3a470a3a2cdb182f4364af9e","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"6d268309f0e15dd820b2df9806234166554cb4e2fe00d11737adcb4e5489f700","d35b5db21a04a45ae6323c4d4b25acc983dfe2870fc670fd05249eb19d839a5e","58cf96187feb10cc8ad3bb080871cd30888ef63bc5db131f11458850ef8f6245","9102986ff52326a2016e8cddc1cf3092f0808ac916dcc8dc2d2c7195cd181987","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","01f20dac9dc14f0d306e5d1215c5c1c3b4d1805905e60ae92fabac4031eae7da","9ceec2a882368c0160a8a3879aa0efce0fb985751fc23ff6191006030969cfa4","cad5d6451789234434c28dd2d6a8267b0d64c479b1ad267321faa31ba90d570b","6516fc98fa10b0cb22c7e332bacea4a7ea80257e113f6cdddd924d03bfde218e","be8d072f400254824429edab10acbe595299b702c97b99cc47f8e8018b7102ff","4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","370079895f1acdd4bb5194a403c85bf60cfbb2654bced9430a6c7210e7246be8","90240231e730deed31569f6c686766a538e4a024bbc33ea1738fe924f477ba61","552223520e823223ee13c5764e9b69b1819c985818a8bcda435d8d1dbd909bee","49b7c3ddd683c09aa437dd92681699387441f522524b14d2331ce494a9bf2f27","637b97f727f21c07a73f09130dc7bf5ac94d04511b179b5eb3e9a4d85a16147a","fb69a046d9f55e2c182c07e793017518b002859497084c0f69f3ee74edd0c4b9","5212dd78d1d63ab33332c8846a0ea5ce248159e74033cde16de48373036b4704","954b3c04ee9f94ca1e262f3e5a6e833b0da0066514b3d4b97b92b7f0c85f8700","a2fc9ce1ae5bed7068d701d8aeebf13321de0f42c217dc2e10f1622dcaa53a7f","8e81f220cb935d551e88cff11541d5e89d3a3494a52fe6247e98016a9dbd4c2d","6b2576a04253626ba41b7dc7ec5977bec07f3b6952b16249d9fa8a3a0d79901c","9de17491f2bfbccea92500e174079d53bdedae34dbebe5d4a12a06ab09814710","e88481085a8576fa52efc913e631c1a833d16179486469b8538d8c4fab2f7381","aec68502c8f4ffaecb4440b37363473582fec0bfee4fb8668a87daa7f700f708","d71577e78c7a4257074aaf82f595724175210c89e8b467ef82f949a6cbd891bc","cf548af8b03cbbc79fdc4f357b5560f618c6d2f68c8688e6eb759c3c11d962c3","c84146dbc9d2e5f43d2cbf15485a4eabf90219dbb66c0d481f20f12d3851bffc","9dc5a1d8f09f9faf21207253a92b461190d59c81ee12c9ac612630e699749990","99c24f331c9f4e75a779b9a988e942442db3cf29923ceb820d3bdd4ed1edfef2","25b1f20d5868ef9ef18132f7dd76b40b7038688ff7c56c58930537a8dff9f231","4105fa0ecfaffb578c8051c3de22e8c984191aac8de14641ee99beed9c5e5bd9","9bba18dcac8cc9bdce65a4e34122d90474617cdf857feddeeba1e7a3638097d4","8c92080253bac0506d82b83d555a029582595f0944abb349954ea732322baa5c","45d4c8d63a67224af62bebff18da32bb2817e306c9fd9e5d1dac6ef8d2da7ead","230eb449f719119cab1728252f20ecdd36d7a20cef659e4a51ada1a232a8aaad","5f264ca312dfcbf23917febc8d7a73ef5be9c248af605939de1c7c4129aa65f2","c1c7b50665ce0b8aa4b95f3843167ac7ac25d1f724d77c2a07b597abb9cf394c","1bf687d978bdd6d5aff10b9eb0ff0695179f8594d4446946fd0182d6d25fa433","ec26029e3a4eccf8ee79d5c76093fbe928cedc83d813fca9be4f055d61530013","e0ff6a627dfbfb9d32e49f34879a763680e37758c509ddd809cb316b96f34390","2113d72680c7ddad6d3b6f70a29432a35c074c94ec6823a7c16ccd69847d965c","c8ffd61bf2db2e7bccb996dd70c9499805cb338f1b1c781987e38ba99dd5b296","55e5a976b594dc02f054860fb59a5299872a5b3c8c90e96733a5c9c9d4ed1fb8","fac83d4c6898d5bf90c508cc84409ded40fdc14611cf42d7fb750fb2c7847979","1668310e691181966c371fce881c88cb1c2e65ac832ef5470434ad926998da2f","4f1eb6b9c2b666278e09019281953fc4ecadad3b2ba2781b2602445743eaaeca","cd4a19200e7e4b235f85c3a15176f84b68bca0a171e802df091553e679238621","2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"9d8f6e55f5a038f4dca0cacd6566f9b82c576eee35c694b89230e9dec1895a77","affectsGlobalScope":true},"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"f85c06e750743acf31f0cfd3be284a364d469761649e29547d0dd6be48875150","affectsGlobalScope":true},"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true},"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"452e8a437aa57fe832dece2a5d3ea8dd0ab1de03ca778d09798c56ece0a29e80","affectsGlobalScope":true},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"a321f588d51d742955993766d2969ed19006110a080572bfd24054178a5be640","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"21fcdcb618236f0feaca7e511e2da10c19970f86e09c934cef2d45b340ad92b5","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true},"b33379077284c9e55d2410d814b71b15522c5f71f9e93e15a8c3c41d463b00f6",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","c663a7e4ee2cb54d99cf095479a5bcf1dd18d762ffdfa038aa1b2d79b070b0d7","5463c98206a890ea7a759fbcc97b0c042ab1a740b3e24037f7fbf40bae70a3c5","841f7ca2af7f4d9cca1f9fa2288a4849fc9d49ca15b47336892efd06a14dd1d8","5bccd6ffc11fed820a432ac819200e6af38f8c3625e6eae0cf0f07ca85856392","8510595d2ca2660e6407be65d8bf95f0c53877dbb812e269cdd980fc34de5f78","b73dc0d8185876891831a04b36b0c97fc950b82dd747adaa1fe2d001be8f2a03","82f507498b118e727c99b2b24b66fe95e475db73959a5af372526e2aabeba2bd","a014705f62ab3731cd6e83cc0d47055301bda50e883a7c5b308c5fc294384f00","c123e41196eb293cd30ff19b31d55192d3a3ffbbab8409d5c4b328844c5e93fc","4729c40012c9b4ae235cdeb76bc9cf5c127e09eb08ecf5b1b51b8d03d58e5555","38aaec0cd25bec1bec8511430fcfc6a7ce53ec44fa7e4e68717c551d0c786ef0","ec6adf14f44d63199b70a1117f13d380dfd0b1e1f0a6357b0ecf04cf0c56ab68",{"version":"76e5960564db42c66dd27a08a63517b8b25e2c5ae7ab9299c2e90ef0862d2b7f","signature":"4bf10276abb7b9ef6ab6a169077f7613a63855513aa1b9573e6cbd036041c6a3"},{"version":"813b443e19cfb702984f5bafb80567c27ae4074f2a48e38ee12b8769ce13bafa","signature":"06803634d9730f5fe5f4d2003e59ed8bc4463a87cdd1da074a45bcde21339695"},{"version":"272572fe069ea7baa5d358631289fcedbca8c7e9f8917e9824dfb8a867e10b04","signature":"03de2b57205c09f67df158eeb63e321a39aacb35f4afd1e207cdf62fc3854cab"},"7ad3e0aaeb840047fa4711306188cac803514091f251b6baecb9b2aacf15b976","6d268309f0e15dd820b2df9806234166554cb4e2fe00d11737adcb4e5489f700","58cf96187feb10cc8ad3bb080871cd30888ef63bc5db131f11458850ef8f6245","9102986ff52326a2016e8cddc1cf3092f0808ac916dcc8dc2d2c7195cd181987","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","01f20dac9dc14f0d306e5d1215c5c1c3b4d1805905e60ae92fabac4031eae7da","9ceec2a882368c0160a8a3879aa0efce0fb985751fc23ff6191006030969cfa4","cad5d6451789234434c28dd2d6a8267b0d64c479b1ad267321faa31ba90d570b","d5197053be441d40f4d074185a40d461137c8fa8db9e00cceedf2d9ca6583157","3cd33c37432c2de7bdd9f1d48b3ea4fd03afad4969cfc5ba88d81e6ed03f432c","6db29cf7af1d68c8194d98f1c444cea3b30a2c65deda3428452efaa05717b81d","561ef05d7e369040c28800d878d7e6461af62e459460263e911d508f319c8d5d","a1b60bd2328318dcbec30bdf529dad31a13315ff2df60c8bd71630c58a575b06","a399dd9b73e4bbfbed2ad1c1259d707f5f147f40dc5e3eeb541bf0bf2da42b25","8cc6a35806cd10d448b0f2ab01fe0b6194ca57fdaced2d71781b68e83c55bd88","8f364fec0ef20506aa9cf00b5cd8b620c1c0389687b11a3a32b0b5d4716ad894","5d11703e2c5d4dbe00bbe79f3bc864d178cf8d6ebccc2d1448ea29e93654f029","f4e82c91aac3b61f3ad04f11a44c5b79f724ff8a09281d0afa24a6624633ff25","ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202","7b8b9017156ef8bf3bbe42785fac8956e5c9869f4a494536d7f548a7c1c7d98a","07c34d1f83dfc5746de4229e01f0cb4d388a9f128eab6beadb4ae1621ebb87c6","763bb8df872cbb8783e29e19bd7a1dea0f88f7fd7398343af38be8509a65df82","372b3681eb9618821c0e0e10bcc775b838e45b51912b8998bc5ba035100dc9e5","c286b410193495d067668bcdbd13ea3f3a39001edff02edee248babf2652e563","87c73268165bf20f01c101ac785e8a9d1d95ff203d05d3548a6c49952597e321","af89ab13b40dd28cd91818fc6329914d2b9663591831f032ff0f0cb4a028d4a5","63007f1618ada5041fb3b47630b64a9987d268bf740dd72334c38b5d23f5239b","3395f90467d2bb9db039a5c22ed6659ca2ff6f0b4f7ee5f223b0f77288f54ea7","20df2907d398e369d49e8906d6e0f096c465501e9ceff9d61293bf0f4e9020f1","302aa8248dab7c689c103162e542224aa7f3b0db46e29d0fb468fac721cf1c41","ea0a3bb69845621165c21e80ebb0d2b28dad22cd9920564516ce8e927a828f79","6a81475a67505af60be3242841c65ce4bf6d0b624d8b3fada646ba459a3eaad8","6834dd6cc060648604278cdb920a9316fa916e9116134b17dfad90e42800ca47","19fba62f1aab90f0110738261ed8bc1da82c89433fc43265f14870d4380d10b8","fbb2df54f4778b4d691bbc7c0a6e1e241dfffaca19f443cc9f230f450458bf89","da98d8109f379be48d459a6821ebd7cc728af62557e1c44f864e04360686af93","ef6e6d838cc600162626a53167046484f38e9a4bab9454e72350bed76c497228","8adf9a02b0c2508f81516b561a6c8080ea2169126f166e39767bcb5389b9cfbc","c8b50ecedc9ff1b0e83c96f0a334d022874199f7c2d00d182ca6672176b0ea9d","b66ede73039e8751e06e3cab843e5a4265c1124a3285c3d854092c37a966b1f5","580ac7757b426f045be01f7e47fff9910b922442b45266fd3fe39c44b53ef5ad","94432b8ce4402dd579be8dbf8d798dd64b57d9df617b9dfe4f10f93c1540540f","1447d46bff9e7c5c77da14515a7456ea5e919ce6e28f5e6746edf99818e4be47","ba3f6f0ee47f46cdce55620aec5726de80e92a930982634afe9918c114c38f0b","6f38045547cdfd54ec19abcd943cace72c775fde739c5e0e1d917cf3030c16b5","929fc31f7523aaa1d19735b77e637af06e58d76007648ec088ecfbec1521cbfe","a6eb23f2a83113ce0ab7203bfda2be0888720f8d694a20abaef83b9f62832061","363dca5004ac5a3d9c2bba12812b97a64461911762f0b8f9320a8856ec53bcad","557b8c7481296f4b7ed362320f3bbb40bb87404edf880c81224f365a8d1e17f3","283ed3d075bf7d3e8793f63b2a52f475ed84d95b7b6351c5d5bcc6c49d4b845b","6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","bd4c741820ec3574b7ed3b782c8d78034d6e4631d11997e701e6b955b86a87c1","e2dd36a524ea5b13de1ed104ede9cea79696588175c1df1940d6a29113a4aee0","a878d4c7237a7af50e96534295fcf723134d70cbb1e9bfd8365266b912aee6ec","a1f708ddf34053065f8f53682123421af299cee37ae110a86ba07851adf940da","913fbbd374393d3473dcae4b64a5eff2dea93306bb065ae7111be724a8ca57e1","395e6fa1fc8f46f827a5f7d3b7dabc836627ae57e41338f93c221b88d4978f15","749effab6d7e72df8d126868c82b8166cdde84d48453e44f65cbad42ad900b06","11705a4aad6e2e724b82ffee6c4fa271d798f0fb68806ace4b1c425c266f8d98","b81972aff48d9f08543cb19cc5d73f50eb9901d25daecabc46a53866f99d27b2","ca027df9fd496a200d99ca0db4b0077463ce4926a6c8e05cfae522c5971ccbc0","e043a9288022e8d802117e5e9e718443296f9c69a5eab7ed89b2fb76128a0140","1834770fc1d5e5240fe8f3de72205c9e79b1c321224fb4af8bd2529202a6960c","3b1901191af5f232f0a950a914649749c3447c445cae6b896e74fe987b379701","3641a97eab56e401bc6ab265ef34e54d926017181e2cbbd8ee36d87b7e19345b","1e84b75e59ed7fff2883625dc3d3d8a6828c878a1b7e4e9ea54fa67ab574eb1e",{"version":"6a9eb9c5d3f7474937973fe4b0a9e53025634c2e39118eda436d89f3e9df976f","affectsGlobalScope":true},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true},{"version":"c1f79c6d85cd84518fd7349588b3c61bdc189f58e3866f925cbf4631c81e31f9","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},{"version":"42f28f4cfca4a70bd89c1d55d76c7978275030b894f6793f36890265c11a83a4","affectsGlobalScope":true},{"version":"7cf1027da9599f056355b46bbea31dbf7f715f797dffb9cbb3402d4490c503e5","affectsGlobalScope":true},"96dbd0787b57ae02981d26d5f2441f0f8444fb46d7578c56527eab89cff13a7d","5ccc3c7f73ef48c223635cd4506f21133560de7abc4c09c623327bb1b54386dc","7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","8e87660f5170c195ade218937e360484775be6a4e75a098665d9ba5a2e4cdc15","8d16e3ff29dd0650435766702b01c2f7e9d1f289a48fcbf8e93687d6ecf33f26","ac63a01fcac70315fc9b416e9a57e568b18032c7cfcaa314e1751f03ef71286f","66336b5a5d5e897e932cbf1e306ff8ac8a9929971409a8049c8c8a249cd8b57c",{"version":"e1873a754ad26cfb66157fc3f87e339dbb7204dba5fb3b6805c8637862fed98d","signature":"a1a78d01e5f4686fc589b88ed8e965667e2144af0af21b1c6a153de86acb32b8"},{"version":"12b7221ba57d081fb4ed1f5af21ed57b84e2cb47f5443f29a71af9d861aa880f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"1f63ac6272e4d2d43cb25552b4ed8a89ffc86244ea655f685e8e3685433c7b23","2d2bccc77a578611c2aef535a8d131d4ec98aa7c644119b0d88d83bb68ebc947","094be99dc9410d3cb517ba523ae031864c5e258a3904ed8058773672768c2c6c","fafe1e5b2114bc57a6da341cad2bb44298543caa3fd7680e6bb0f29215048aa2","796eea44840b57d4c6741d119d767c5ea294fdf610151158fd0a2f236cf21367","309ab701fcc8aa7f3c9b53fe84cb5ef7cbd579888de19423c8fc54402be9e8d9","5ad6d882be6f8e602795bc0bd0fac7806b16ba7715be494fe0279e2c5e3e23c0","596ab45ef67fa8dae4996a2a61dc5055ae2b3dc5102cf3b43ee7965a7088943b","a3f9f52ce73700565c8d9ba2aa75823ab8fc8e7258a27ecb828cd4257b8f918d","5f4884638ab10b753ec0c7406916fc746bb99cc0044b9a4a67b2006b7e57e8af","4b5603a1ccca455500cfb39517d41ec011f31ba84bb6de44473344a237d89168",{"version":"48065d9ccf3c6ee5a00bfcc4dca34927e477759a6e603ea20673d9285427081a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6c507d6c49c34dc31a5dcc96ca0ac806beb36d37a33f71cb34077fcac8f12145","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"56558ae167446acf230ea2cc072a835309a37ae63d286b484308afd8c504c2d6",{"version":"5b193c198a20fd0215e7a144ddddbc6570f5a155e6c7386da9df5a1d98118712","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","8718fa41d7cf4aa91de4e8f164c90f88e0bf343aa92a1b9b725a9c675c64e16b","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","bc222163edcb8df6ba9b506d053d6c5afcae50e85695151cf4636a3107deaba9","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","8a7219b41d3c1c93f3f3b779146f313efade2404eeece88dcd366df7e2364977","a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318",{"version":"90ebf5865e27d8966ef44b073e6e83b0ddd45058bab1d58b1e4b5a47d36396c4","affectsGlobalScope":true},"cb482592bfcbdfcefa8d155590399e8bff66277e60e17bfada7c2f31322e7b87","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","510616459e6edd01acbce333fb256e06bdffdad43ca233a9090164bf8bb83912","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","4006c872e38a2c4e09c593bc0cdd32b7b4f5c4843910bea0def631c483fff6c5","ab6aa3a65d473871ee093e3b7b71ed0f9c69e07d1d4295f45c9efd91a771241d","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185"],"root":[[218,220],300,301,313,314,316],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"module":7,"noEmitOnError":true,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":9},"fileIdsList":[[207,221,230,231,232,234,242,243,244,245,260],[230,231],[66,229],[207,230,231,233],[235,237],[233,235,241],[239],[207,231,234,235,236,237,238,240],[231],[66,207],[231,234],[91,207,230],[229],[222],[66,222],[222,223,224,225,226,227,228],[207],[91,207,260],[66,92,207,260],[66,92],[302,303,304,305,307,308,309,310,311],[66,91,92,207],[109,207,306],[207,260],[91],[86,91,207,254],[246,255,256,257,258,259],[86,91,207],[66,81,92,93,207],[81,91,93],[66,81,91,92,207],[79,94,207],[167,205],[80,81,86,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,206],[66,77,79],[93],[94,96],[77,79,80],[81,91],[81,94,207],[80,81,91],[66,80,81,93,96,109],[66,80],[66,92,93,207],[81,93],[86,91,93,96,103,207],[79,86,207,260,262,276,279,280,282,284],[66,73],[207,270,279],[91,207,275],[247,248,249,250,251,252,253],[207,249],[207,247],[207,248],[77,79,207],[66,283],[86,91,207,213],[91,207,214],[66,92,207,208],[207,281],[85,86],[85],[83,84,87],[82,87,89,90],[87,89,91],[88,91],[167,170,197,205,317,318,319],[287],[321],[205],[328],[329,331],[332],[334],[330],[113],[154],[155,160,189],[156,161,167,168,175,186,197],[156,157,167,175],[158,198],[159,160,168,176],[160,186,194],[161,163,167,175],[154,162],[163,164],[167],[165,167],[154,167],[167,168,169,186,197],[167,168,169,182,186,189],[152,155,202],[163,167,170,175,186,197],[167,168,170,171,175,186,194,197],[170,172,186,194,197],[113,114,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204],[167,173],[174,197,202],[163,167,175,186],[176],[177],[154,178],[113,114,154,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[180],[181],[167,182,183],[182,184,198,200],[155,167,186,187,188,189],[155,186,188],[186,187],[189],[190],[113,186],[167,192,193],[192,193],[160,175,186,194],[195],[175,196],[155,170,181,197],[160,198],[186,199],[174,200],[201],[155,160,167,169,178,186,197,200,202],[186,203],[170,186,205],[343,382],[343,367,382],[382],[343],[343,368,382],[343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381],[368,382],[295],[385],[167,186,205],[287,288,289,290,291,292],[287,288],[275,278],[274],[277],[66,92,215],[92],[66,92,216],[75],[264,265,270,271],[78,79],[78],[76],[263],[77],[77,210],[79,210,266,267,268,269],[75,76,77,78,263],[75,76,77],[73],[65],[65,66],[65,67,68,69,70,71,72],[296],[273],[270,272],[124,128,197],[124,186,197],[119],[121,124,194,197],[175,194],[119,205],[121,124,175,197],[116,117,120,123,155,167,186,197],[124,131],[116,122],[124,145,146],[120,124,155,189,197,205],[155,205],[145,155,205],[118,119,205],[124],[118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,147,148,149,150,151],[124,139],[124,131,132],[122,124,132,133],[123],[116,119,124],[124,128,132,133],[128],[122,124,127,197],[116,121,124,131],[155,186],[119,124,145,155,202,205],[74,79,91,207,208,209,210,219],[74,79,91,207,208,209,210,211,212,214,217,218,220],[74,207,209,210,219],[79,91,207,209,219,261,285,286,293,294,296,297,298,300],[66,296,299],[91,207,209,219,261,285,286,293,296,297,312],[91,207,209,219,261,285,286,293,296,297,298],[91,207,209,219,261,274,285,286,293,294,296,297,298,312,315],[74,91,207,261,285],[79,207,219],[74,79,91,207,217],[207,219],[66,296]],"referencedMap":[[261,1],[232,2],[230,3],[234,4],[238,5],[242,6],[240,7],[241,8],[237,9],[243,10],[244,11],[231,12],[222,13],[225,14],[226,14],[223,15],[224,14],[229,16],[227,3],[228,13],[302,17],[303,18],[304,19],[310,20],[312,21],[311,17],[305,22],[307,23],[308,24],[309,24],[246,25],[255,26],[260,27],[256,17],[257,10],[258,17],[259,28],[105,29],[106,30],[93,31],[95,32],[206,33],[207,34],[80,35],[97,36],[107,37],[81,38],[94,39],[98,40],[99,41],[110,42],[111,43],[101,36],[103,44],[102,45],[104,46],[285,47],[262,48],[280,49],[276,50],[208,17],[250,17],[254,51],[249,17],[247,17],[248,17],[253,52],[251,53],[252,54],[209,55],[284,56],[283,48],[214,57],[213,58],[306,59],[282,60],[87,61],[84,62],[83,62],[85,63],[90,25],[91,64],[82,25],[88,65],[89,66],[320,67],[288,68],[292,68],[290,68],[322,69],[323,70],[327,33],[329,71],[332,72],[333,73],[335,74],[331,75],[113,76],[114,76],[154,77],[155,78],[156,79],[157,80],[158,81],[159,82],[160,83],[161,84],[162,85],[163,86],[164,86],[166,87],[165,88],[167,89],[168,90],[169,91],[153,92],[170,93],[171,94],[172,95],[205,96],[173,97],[174,98],[175,99],[176,100],[177,101],[178,102],[179,103],[180,104],[181,105],[182,106],[183,106],[184,107],[186,108],[188,109],[187,110],[189,111],[190,112],[191,113],[192,114],[193,115],[194,116],[195,117],[196,118],[197,119],[198,120],[199,121],[200,122],[201,123],[202,124],[203,125],[319,126],[367,127],[368,128],[343,129],[346,129],[365,127],[366,127],[356,127],[355,130],[353,127],[348,127],[361,127],[359,127],[363,127],[347,127],[360,127],[364,127],[349,127],[350,127],[362,127],[344,127],[351,127],[352,127],[354,127],[358,127],[369,131],[357,127],[345,127],[382,132],[376,131],[378,133],[377,131],[370,131],[371,131],[373,131],[375,131],[379,133],[380,133],[372,133],[374,133],[296,134],[386,135],[387,136],[293,137],[291,68],[289,138],[279,139],[275,140],[278,141],[215,20],[216,142],[315,143],[217,144],[317,87],[271,145],[272,146],[76,147],[79,148],[263,149],[264,150],[265,150],[210,151],[267,152],[270,153],[269,154],[78,155],[65,156],[69,157],[70,157],[67,158],[68,157],[73,159],[71,48],[72,156],[297,160],[298,161],[274,161],[273,162],[131,163],[141,164],[130,163],[151,165],[122,166],[121,167],[150,70],[144,168],[149,169],[124,170],[138,171],[123,172],[147,173],[119,174],[118,175],[148,176],[120,177],[125,178],[129,178],[152,179],[142,180],[133,181],[134,182],[136,183],[132,184],[135,185],[145,70],[127,186],[128,187],[137,188],[117,189],[140,180],[139,178],[146,190],[220,191],[219,192],[218,193],[301,194],[300,195],[313,196],[314,197],[316,198],[74,48],[211,10],[212,17],[286,199]],"exportedModulesMap":[[261,1],[232,2],[230,3],[234,4],[238,5],[242,6],[240,7],[241,8],[237,9],[243,10],[244,11],[231,12],[222,13],[225,14],[226,14],[223,15],[224,14],[229,16],[227,3],[228,13],[302,17],[303,18],[304,19],[310,20],[312,21],[311,17],[305,22],[307,23],[308,24],[309,24],[246,25],[255,26],[260,27],[256,17],[257,10],[258,17],[259,28],[105,29],[106,30],[93,31],[95,32],[206,33],[207,34],[80,35],[97,36],[107,37],[81,38],[94,39],[98,40],[99,41],[110,42],[111,43],[101,36],[103,44],[102,45],[104,46],[285,47],[262,48],[280,49],[276,50],[208,17],[250,17],[254,51],[249,17],[247,17],[248,17],[253,52],[251,53],[252,54],[209,55],[284,56],[283,48],[214,57],[213,58],[306,59],[282,60],[87,61],[84,62],[83,62],[85,63],[90,25],[91,64],[82,25],[88,65],[89,66],[320,67],[288,68],[292,68],[290,68],[322,69],[323,70],[327,33],[329,71],[332,72],[333,73],[335,74],[331,75],[113,76],[114,76],[154,77],[155,78],[156,79],[157,80],[158,81],[159,82],[160,83],[161,84],[162,85],[163,86],[164,86],[166,87],[165,88],[167,89],[168,90],[169,91],[153,92],[170,93],[171,94],[172,95],[205,96],[173,97],[174,98],[175,99],[176,100],[177,101],[178,102],[179,103],[180,104],[181,105],[182,106],[183,106],[184,107],[186,108],[188,109],[187,110],[189,111],[190,112],[191,113],[192,114],[193,115],[194,116],[195,117],[196,118],[197,119],[198,120],[199,121],[200,122],[201,123],[202,124],[203,125],[319,126],[367,127],[368,128],[343,129],[346,129],[365,127],[366,127],[356,127],[355,130],[353,127],[348,127],[361,127],[359,127],[363,127],[347,127],[360,127],[364,127],[349,127],[350,127],[362,127],[344,127],[351,127],[352,127],[354,127],[358,127],[369,131],[357,127],[345,127],[382,132],[376,131],[378,133],[377,131],[370,131],[371,131],[373,131],[375,131],[379,133],[380,133],[372,133],[374,133],[296,134],[386,135],[387,136],[293,137],[291,68],[289,138],[279,139],[275,140],[278,141],[215,20],[216,142],[315,143],[217,144],[317,87],[271,145],[272,146],[76,147],[79,148],[263,149],[264,150],[265,150],[210,151],[267,152],[270,153],[269,154],[78,155],[65,156],[69,157],[70,157],[67,158],[68,157],[73,159],[71,48],[72,156],[297,160],[298,161],[274,161],[273,162],[131,163],[141,164],[130,163],[151,165],[122,166],[121,167],[150,70],[144,168],[149,169],[124,170],[138,171],[123,172],[147,173],[119,174],[118,175],[148,176],[120,177],[125,178],[129,178],[152,179],[142,180],[133,181],[134,182],[136,183],[132,184],[135,185],[145,70],[127,186],[128,187],[137,188],[117,189],[140,180],[139,178],[146,190],[220,200],[219,201],[218,202],[300,203],[74,48],[211,10],[212,17],[286,199]],"semanticDiagnosticsPerFile":[245,261,232,221,230,234,238,242,240,235,233,241,237,243,244,231,236,222,225,226,223,224,229,227,228,302,303,304,310,312,311,305,307,308,309,246,255,260,256,257,258,259,105,106,93,95,112,96,206,207,80,97,107,81,94,98,99,108,110,111,100,101,103,102,104,285,262,280,276,208,250,254,249,247,248,253,251,252,209,284,283,214,213,306,282,87,84,83,85,90,91,82,88,89,320,288,292,290,287,322,323,318,324,325,326,327,328,329,332,333,335,330,331,336,337,338,321,339,113,114,154,155,156,157,158,159,160,161,162,163,164,166,165,167,168,169,153,204,170,171,172,205,173,174,175,176,177,178,179,180,181,182,183,184,185,186,188,187,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,340,341,319,342,367,368,343,346,365,366,356,355,353,348,361,359,363,347,360,364,349,350,362,344,351,352,354,358,369,357,345,382,381,376,378,377,370,371,373,375,379,380,372,374,296,295,383,384,334,385,386,387,293,281,115,291,289,239,279,275,277,278,294,215,216,315,217,109,92,317,271,75,272,76,266,79,263,264,265,210,267,77,270,269,78,268,86,65,69,70,67,68,73,71,72,297,63,64,11,12,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,13,66,299,298,274,273,131,141,130,151,122,121,150,144,149,124,138,123,147,119,118,148,120,125,126,129,116,152,142,133,134,136,132,135,145,127,128,137,117,140,139,143,146,220,219,218,301,300,313,314,316,74,211,212,286],"latestChangedDtsFile":"./src/dht.d.ts"},"version":"5.4.5"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/dist/typedoc-urls.json b/node_modules/@libp2p/daemon-client/dist/typedoc-urls.json -deleted file mode 100644 -index 594d455..0000000 ---- a/node_modules/@libp2p/daemon-client/dist/typedoc-urls.json -+++ /dev/null -@@ -1,16 +0,0 @@ --{ -- "DHTClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.DHTClient.html", -- ".:DHTClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.DHTClient.html", -- "DaemonClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.DaemonClient.html", -- ".:DaemonClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.DaemonClient.html", -- "IdentifyResult": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.IdentifyResult.html", -- ".:IdentifyResult": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.IdentifyResult.html", -- "PubSubClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.PubSubClient.html", -- ".:PubSubClient": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.PubSubClient.html", -- "StreamHandlerFunction": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.StreamHandlerFunction.html", -- ".:StreamHandlerFunction": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.StreamHandlerFunction.html", -- "Subscription": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.Subscription.html", -- ".:Subscription": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_client.Subscription.html", -- "createClient": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon_client.createClient.html", -- ".:createClient": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon_client.createClient.html" --} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-client/src/dht.ts b/node_modules/@libp2p/daemon-client/src/dht.ts -index 83f46f7..bbf041b 100644 ---- a/node_modules/@libp2p/daemon-client/src/dht.ts -+++ b/node_modules/@libp2p/daemon-client/src/dht.ts -@@ -4,13 +4,14 @@ import { - DHTRequest, - DHTResponse - } from '@libp2p/daemon-protocol' --import { CodeError } from '@libp2p/interface' -+import { InvalidMessageError, InvalidParametersError, ProtocolError } from '@libp2p/interface' - import { isPeerId, type PeerId, type PeerInfo } from '@libp2p/interface' - import { logger } from '@libp2p/logger' --import { peerIdFromBytes } from '@libp2p/peer-id' -+import { peerIdFromMultihash } from '@libp2p/peer-id' - import { multiaddr } from '@multiformats/multiaddr' - import { CID } from 'multiformats/cid' --import type { DaemonClient } from './index.js' -+import * as Digest from 'multiformats/hashes/digest' -+import { OperationFailedError, type DaemonClient } from './index.js' - - const log = logger('libp2p:daemon-client:dht') - -@@ -26,11 +27,11 @@ export class DHT { - */ - async put (key: Uint8Array, value: Uint8Array): Promise { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY') -+ throw new InvalidParametersError('invalid key received') - } - - if (!(value instanceof Uint8Array)) { -- throw new CodeError('value received is not a Uint8Array', 'ERR_INVALID_VALUE') -+ throw new InvalidParametersError('value received is not a Uint8Array') - } - - const sh = await this.client.send({ -@@ -49,7 +50,7 @@ export class DHT { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT put failed', 'ERR_DHT_PUT_FAILED') -+ throw new ProtocolError(response.error?.msg ?? 'DHT put failed') - } - } - -@@ -58,7 +59,7 @@ export class DHT { - */ - async get (key: Uint8Array): Promise { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY') -+ throw new InvalidParametersError('invalid key received') - } - - const sh = await this.client.send({ -@@ -74,11 +75,11 @@ export class DHT { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT get failed', 'ERR_DHT_GET_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT get failed') - } - -- if (response.dht == null || response.dht.value == null) { -- throw new CodeError('Invalid DHT get response', 'ERR_DHT_GET_FAILED') -+ if (response.dht?.value == null) { -+ throw new OperationFailedError('Invalid DHT get response') - } - - return response.dht.value -@@ -89,14 +90,14 @@ export class DHT { - */ - async findPeer (peerId: PeerId): Promise { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID') -+ throw new InvalidParametersError('invalid peer id received') - } - - const sh = await this.client.send({ - type: Request.Type.DHT, - dht: { - type: DHTRequest.Type.FIND_PEER, -- peer: peerId.toBytes() -+ peer: peerId.toMultihash().bytes - } - }) - -@@ -105,15 +106,15 @@ export class DHT { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT find peer failed', 'ERR_DHT_FIND_PEER_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find peer failed') - } - -- if (response.dht == null || response.dht.peer == null || response.dht.peer.addrs == null) { -- throw new CodeError('Invalid response', 'ERR_DHT_FIND_PEER_FAILED') -+ if (response.dht?.peer?.addrs == null) { -+ throw new OperationFailedError('Invalid response') - } - - return { -- id: peerIdFromBytes(response.dht.peer.id), -+ id: peerIdFromMultihash(Digest.decode(response.dht.peer.id)), - multiaddrs: response.dht.peer.addrs.map((a) => multiaddr(a)) - } - } -@@ -123,7 +124,7 @@ export class DHT { - */ - async provide (cid: CID): Promise { - if (cid == null || CID.asCID(cid) == null) { -- throw new CodeError('invalid cid received', 'ERR_INVALID_CID') -+ throw new InvalidParametersError('invalid cid received') - } - - const sh = await this.client.send({ -@@ -139,7 +140,7 @@ export class DHT { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT provide failed', 'ERR_DHT_PROVIDE_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT provide failed') - } - } - -@@ -148,7 +149,7 @@ export class DHT { - */ - async * findProviders (cid: CID, count: number = 1): AsyncIterable { - if (cid == null || CID.asCID(cid) == null) { -- throw new CodeError('invalid cid received', 'ERR_INVALID_CID') -+ throw new InvalidParametersError('invalid cid received') - } - - const sh = await this.client.send({ -@@ -165,7 +166,7 @@ export class DHT { - - if (response.type !== Response.Type.OK) { - await sh.unwrap().close() -- throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find providers failed') - } - - while (true) { -@@ -178,15 +179,15 @@ export class DHT { - } - - // Stream values -- if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.peer != null && dhtResponse.peer?.addrs != null) { -+ if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.peer?.addrs != null) { - yield { -- id: peerIdFromBytes(dhtResponse.peer.id), -+ id: peerIdFromMultihash(Digest.decode(dhtResponse.peer.id)), - multiaddrs: dhtResponse.peer.addrs.map((a) => multiaddr(a)) - } - } else { - // Unexpected message received - await sh.unwrap().close() -- throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED') -+ throw new ProtocolError('unexpected message received') - } - } - } -@@ -196,7 +197,7 @@ export class DHT { - */ - async * getClosestPeers (key: Uint8Array): AsyncIterable { - if (!(key instanceof Uint8Array)) { -- throw new CodeError('invalid key received', 'ERR_INVALID_KEY') -+ throw new InvalidParametersError('invalid key received') - } - - const sh = await this.client.send({ -@@ -212,7 +213,7 @@ export class DHT { - - if (response.type !== Response.Type.OK) { - await sh.unwrap().close() -- throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT find providers failed') - } - - while (true) { -@@ -226,7 +227,7 @@ export class DHT { - - // Stream values - if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.value != null) { -- const peerId = peerIdFromBytes(dhtResponse.value) -+ const peerId = peerIdFromMultihash(Digest.decode(dhtResponse.value)) - - yield { - id: peerId, -@@ -235,7 +236,7 @@ export class DHT { - } else { - // Unexpected message received - await sh.unwrap().close() -- throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED') -+ throw new InvalidMessageError('unexpected message received') - } - } - } -@@ -245,14 +246,14 @@ export class DHT { - */ - async getPublicKey (peerId: PeerId): Promise { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID') -+ throw new InvalidParametersError('invalid peer id received') - } - - const sh = await this.client.send({ - type: Request.Type.DHT, - dht: { - type: DHTRequest.Type.GET_PUBLIC_KEY, -- peer: peerId.toBytes() -+ peer: peerId.toMultihash().bytes - } - }) - -@@ -261,11 +262,11 @@ export class DHT { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'DHT get public key failed', 'ERR_DHT_GET_PUBLIC_KEY_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'DHT get public key failed') - } - - if (response.dht == null) { -- throw new CodeError('Invalid response', 'ERR_DHT_GET_PUBLIC_KEY_FAILED') -+ throw new InvalidMessageError('Invalid response') - } - - return response.dht.value -diff --git a/node_modules/@libp2p/daemon-client/src/index.ts b/node_modules/@libp2p/daemon-client/src/index.ts -index d7b3e15..200a044 100644 ---- a/node_modules/@libp2p/daemon-client/src/index.ts -+++ b/node_modules/@libp2p/daemon-client/src/index.ts -@@ -1,12 +1,13 @@ - import { type PSMessage, Request, Response, StreamInfo } from '@libp2p/daemon-protocol' - import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler' - import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader' --import { CodeError, isPeerId } from '@libp2p/interface' -+import { InvalidParametersError, isPeerId } from '@libp2p/interface' - import { defaultLogger, logger } from '@libp2p/logger' --import { peerIdFromBytes } from '@libp2p/peer-id' -+import { peerIdFromMultihash } from '@libp2p/peer-id' - import { tcp } from '@libp2p/tcp' - import { multiaddr, isMultiaddr } from '@multiformats/multiaddr' - import { pbStream, type ProtobufStream } from 'it-protobuf-stream' -+import * as Digest from 'multiformats/hashes/digest' - import { DHT } from './dht.js' - import { Pubsub } from './pubsub.js' - import type { Stream, PeerId, MultiaddrConnection, PeerInfo, Transport } from '@libp2p/interface' -@@ -15,6 +16,13 @@ import type { CID } from 'multiformats/cid' - - const log = logger('libp2p:daemon-client') - -+export class OperationFailedError extends Error { -+ constructor (message = 'Operation failed') { -+ super(message) -+ this.name = 'OperationFailedError' -+ } -+} -+ - class Client implements DaemonClient { - private readonly multiaddr: Multiaddr - public dht: DHT -@@ -66,23 +74,23 @@ class Client implements DaemonClient { - */ - async connect (peerId: PeerId, addrs: Multiaddr[]): Promise { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID') -+ throw new InvalidParametersError('invalid peer id received') - } - - if (!Array.isArray(addrs)) { -- throw new CodeError('addrs received are not in an array', 'ERR_INVALID_ADDRS_TYPE') -+ throw new InvalidParametersError('addrs received are not in an array') - } - - addrs.forEach((addr) => { - if (!isMultiaddr(addr)) { -- throw new CodeError('received an address that is not a multiaddr', 'ERR_NO_MULTIADDR_RECEIVED') -+ throw new InvalidParametersError('received an address that is not a multiaddr') - } - }) - - const sh = await this.send({ - type: Request.Type.CONNECT, - connect: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - addrs: addrs.map((a) => a.bytes) - } - }) -@@ -91,7 +99,7 @@ class Client implements DaemonClient { - - if (response.type !== Response.Type.OK) { - const errResponse = response.error ?? { msg: 'unspecified' } -- throw new CodeError(errResponse.msg ?? 'unspecified', 'ERR_CONNECT_FAILED') -+ throw new OperationFailedError(errResponse.msg ?? 'unspecified') - } - - await sh.unwrap().close() -@@ -114,14 +122,14 @@ class Client implements DaemonClient { - const response = await sh.read(Response) - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Identify failed', 'ERR_IDENTIFY_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Identify failed') - } - -- if (response.identify == null || response.identify.addrs == null) { -- throw new CodeError('Invalid response', 'ERR_IDENTIFY_FAILED') -+ if (response.identify?.addrs == null) { -+ throw new OperationFailedError('Invalid response') - } - -- const peerId = peerIdFromBytes(response.identify?.id) -+ const peerId = peerIdFromMultihash(Digest.decode(response.identify?.id)) - const addrs = response.identify.addrs.map((a) => multiaddr(a)) - - await sh.unwrap().close() -@@ -140,12 +148,12 @@ class Client implements DaemonClient { - const response = await sh.read(Response) - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'List peers failed', 'ERR_LIST_PEERS_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'List peers failed') - } - - await sh.unwrap().close() - -- return response.peers.map((peer) => peerIdFromBytes(peer.id)) -+ return response.peers.map((peer) => peerIdFromMultihash(Digest.decode(peer.id))) - } - - /** -@@ -153,17 +161,17 @@ class Client implements DaemonClient { - */ - async openStream (peerId: PeerId, protocol: string): Promise { - if (!isPeerId(peerId)) { -- throw new CodeError('invalid peer id received', 'ERR_INVALID_PEER_ID') -+ throw new InvalidParametersError('invalid peer id received') - } - - if (typeof protocol !== 'string') { -- throw new CodeError('invalid protocol received', 'ERR_INVALID_PROTOCOL') -+ throw new InvalidParametersError('invalid protocol received') - } - - const sh = await this.send({ - type: Request.Type.STREAM_OPEN, - streamOpen: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - proto: [protocol] - } - }) -@@ -172,7 +180,7 @@ class Client implements DaemonClient { - - if (response.type !== Response.Type.OK) { - await sh.unwrap().close() -- throw new CodeError(response.error?.msg ?? 'Open stream failed', 'ERR_OPEN_STREAM_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Open stream failed') - } - - return sh.unwrap() -@@ -183,7 +191,7 @@ class Client implements DaemonClient { - */ - async registerStreamHandler (protocol: string, handler: StreamHandlerFunction): Promise { - if (typeof protocol !== 'string') { -- throw new CodeError('invalid protocol received', 'ERR_INVALID_PROTOCOL') -+ throw new InvalidParametersError('invalid protocol received') - } - - // open a tcp port, pipe any data from it to the handler function -@@ -199,18 +207,21 @@ class Client implements DaemonClient { - const message = await sh.read() - - if (message == null) { -- throw new CodeError('Could not read open stream response', 'ERR_OPEN_STREAM_FAILED') -+ throw new OperationFailedError('Could not read open stream response') - } - - const response = StreamInfo.decode(message) - - if (response.proto !== protocol) { -- throw new CodeError('Incorrect protocol', 'ERR_OPEN_STREAM_FAILED') -+ throw new OperationFailedError('Incorrect protocol') - } - - // @ts-expect-error because we are using a passthrough upgrader, this is a MultiaddrConnection - await handler(sh.rest()) - }) -+ .catch(err => { -+ connection.abort(err) -+ }) - .finally(() => { - connection.close() - .catch(err => { -@@ -227,7 +238,7 @@ class Client implements DaemonClient { - const address = listener.getAddrs()[0] - - if (address == null) { -- throw new CodeError('Could not listen on port', 'ERR_REGISTER_STREAM_HANDLER_FAILED') -+ throw new OperationFailedError('Could not listen on port') - } - - const sh = await this.send({ -@@ -243,7 +254,7 @@ class Client implements DaemonClient { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Register stream handler failed', 'ERR_REGISTER_STREAM_HANDLER_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Register stream handler failed') - } - } - } -diff --git a/node_modules/@libp2p/daemon-client/src/pubsub.ts b/node_modules/@libp2p/daemon-client/src/pubsub.ts -index df5f96c..2685d7f 100644 ---- a/node_modules/@libp2p/daemon-client/src/pubsub.ts -+++ b/node_modules/@libp2p/daemon-client/src/pubsub.ts -@@ -4,9 +4,10 @@ import { - PSRequest, - PSMessage - } from '@libp2p/daemon-protocol' --import { CodeError } from '@libp2p/interface' --import { peerIdFromBytes } from '@libp2p/peer-id' --import type { DaemonClient, Subscription } from './index.js' -+import { InvalidParametersError } from '@libp2p/interface' -+import { peerIdFromMultihash } from '@libp2p/peer-id' -+import * as Digest from 'multiformats/hashes/digest' -+import { OperationFailedError, type DaemonClient, type Subscription } from './index.js' - import type { PeerId } from '@libp2p/interface' - - export class Pubsub { -@@ -34,11 +35,11 @@ export class Pubsub { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub get topics failed', 'ERR_PUBSUB_GET_TOPICS_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub get topics failed') - } - -- if (response.pubsub == null || response.pubsub.topics == null) { -- throw new CodeError('Invalid response', 'ERR_PUBSUB_GET_TOPICS_FAILED') -+ if (response.pubsub?.topics == null) { -+ throw new OperationFailedError('Invalid response') - } - - return response.pubsub.topics -@@ -49,11 +50,11 @@ export class Pubsub { - */ - async publish (topic: string, data: Uint8Array): Promise { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC') -+ throw new InvalidParametersError('invalid topic received') - } - - if (!(data instanceof Uint8Array)) { -- throw new CodeError('data received is not a Uint8Array', 'ERR_INVALID_DATA') -+ throw new InvalidParametersError('data received is not a Uint8Array') - } - - const sh = await this.client.send({ -@@ -70,7 +71,7 @@ export class Pubsub { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub publish failed') - } - } - -@@ -79,7 +80,7 @@ export class Pubsub { - */ - async subscribe (topic: string): Promise { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC') -+ throw new InvalidParametersError('invalid topic received') - } - - const sh = await this.client.send({ -@@ -93,7 +94,7 @@ export class Pubsub { - const response = await sh.read(Response) - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub publish failed') - } - - let subscribed = true -@@ -115,7 +116,7 @@ export class Pubsub { - - async getSubscribers (topic: string): Promise { - if (typeof topic !== 'string') { -- throw new CodeError('invalid topic received', 'ERR_INVALID_TOPIC') -+ throw new InvalidParametersError('invalid topic received') - } - - const sh = await this.client.send({ -@@ -131,13 +132,13 @@ export class Pubsub { - await sh.unwrap().close() - - if (response.type !== Response.Type.OK) { -- throw new CodeError(response.error?.msg ?? 'Pubsub get subscribers failed', 'ERR_PUBSUB_GET_SUBSCRIBERS_FAILED') -+ throw new OperationFailedError(response.error?.msg ?? 'Pubsub get subscribers failed') - } - -- if (response.pubsub == null || response.pubsub.topics == null) { -- throw new CodeError('Invalid response', 'ERR_PUBSUB_GET_SUBSCRIBERS_FAILED') -+ if (response.pubsub?.topics == null) { -+ throw new OperationFailedError('Invalid response') - } - -- return response.pubsub.peerIDs.map(buf => peerIdFromBytes(buf)) -+ return response.pubsub.peerIDs.map(buf => peerIdFromMultihash(Digest.decode(buf))) - } - } diff --git a/patches/@libp2p+daemon-server+7.0.6.patch b/patches/@libp2p+daemon-server+7.0.6.patch deleted file mode 100644 index 3ba0508e21..0000000000 --- a/patches/@libp2p+daemon-server+7.0.6.patch +++ /dev/null @@ -1,580 +0,0 @@ -diff --git a/node_modules/@libp2p/daemon-server/dist/index.min.js b/node_modules/@libp2p/daemon-server/dist/index.min.js -index a1d8ce1..7c3804c 100644 ---- a/node_modules/@libp2p/daemon-server/dist/index.min.js -+++ b/node_modules/@libp2p/daemon-server/dist/index.min.js -@@ -1,7 +1,30 @@ - (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PDaemonServer = factory()}(typeof self !== 'undefined' ? self : this, function () { --"use strict";var Libp2PDaemonServer=(()=>{var wi=Object.create;var ye=Object.defineProperty;var Ei=Object.getOwnPropertyDescriptor;var xi=Object.getOwnPropertyNames;var Ii=Object.getPrototypeOf,Ai=Object.prototype.hasOwnProperty;var H=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var bt=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),J=(r,t)=>{for(var e in t)ye(r,e,{get:t[e],enumerable:!0})},Pn=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of xi(t))!Ai.call(r,n)&&n!==e&&ye(r,n,{get:()=>t[n],enumerable:!(o=Ei(t,n))||o.enumerable});return r};var St=(r,t,e)=>(e=r!=null?wi(Ii(r)):{},Pn(t||!r||!r.__esModule?ye(e,"default",{value:r,enumerable:!0}):e,r)),Ci=r=>Pn(ye({},"__esModule",{value:!0}),r);var ao=bt((zu,co)=>{var Yt=1e3,Qt=Yt*60,Jt=Qt*60,kt=Jt*24,zs=kt*7,Hs=kt*365.25;co.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return Ws(r);if(e==="number"&&isFinite(r))return t.long?Xs(r):Ks(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Ws(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),o=(t[2]||"ms").toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return e*Hs;case"weeks":case"week":case"w":return e*zs;case"days":case"day":case"d":return e*kt;case"hours":case"hour":case"hrs":case"hr":case"h":return e*Jt;case"minutes":case"minute":case"mins":case"min":case"m":return e*Qt;case"seconds":case"second":case"secs":case"sec":case"s":return e*Yt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function Ks(r){var t=Math.abs(r);return t>=kt?Math.round(r/kt)+"d":t>=Jt?Math.round(r/Jt)+"h":t>=Qt?Math.round(r/Qt)+"m":t>=Yt?Math.round(r/Yt)+"s":r+"ms"}function Xs(r){var t=Math.abs(r);return t>=kt?ke(r,t,kt,"day"):t>=Jt?ke(r,t,Jt,"hour"):t>=Qt?ke(r,t,Qt,"minute"):t>=Yt?ke(r,t,Yt,"second"):r+" ms"}function ke(r,t,e,o){var n=t>=e*1.5;return Math.round(r/e)+" "+o+(n?"s":"")}});var Qr=bt((Hu,uo)=>{function Ys(r){e.debug=e,e.default=e,e.coerce=a,e.disable=i,e.enable=n,e.enabled=s,e.humanize=ao(),e.destroy=f,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let l=0;for(let g=0;g{if(et==="%%")return"%";k++;let rt=e.formatters[Q];if(typeof rt=="function"){let Vt=h[k];et=rt.call(w,Vt),h.splice(k,1),k--}return et}),e.formatArgs.call(w,h),(w.log||e.log).apply(w,h)}return y.namespace=u,y.useColors=e.useColors(),y.color=e.selectColor(u),y.extend=o,y.destroy=e.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(b!==e.namespaces&&(b=e.namespaces,p=e.enabled(u)),p),set:h=>{g=h}}),typeof e.init=="function"&&e.init(y),y}function o(u,l){let g=e(this.namespace+(typeof l>"u"?":":l)+u);return g.log=this.log,g}function n(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let l,g=(typeof u=="string"?u:"").split(/[\s,]+/),b=g.length;for(l=0;l"-"+l)].join(",");return e.enable(""),u}function s(u){if(u[u.length-1]==="*")return!0;let l,g;for(l=0,g=e.skips.length;l{q.formatArgs=Js;q.save=Zs;q.load=qs;q.useColors=Qs;q.storage=js();q.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();q.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Qs(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let r;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Js(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Oe.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,o=0;r[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(e++,n==="%c"&&(o=e))}),r.splice(o,0,t)}q.log=console.debug||console.log||(()=>{});function Zs(r){try{r?q.storage.setItem("debug",r):q.storage.removeItem("debug")}catch{}}function qs(){let r;try{r=q.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function js(){try{return localStorage}catch{}}Oe.exports=Qr()(q);var{formatters:tc}=Oe.exports;tc.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var ho=bt((Wu,fo)=>{"use strict";fo.exports=(r,t)=>{t=t||process.argv;let e=r.startsWith("-")?"":r.length===1?"-":"--",o=t.indexOf(e+r),n=t.indexOf("--");return o!==-1&&(n===-1?!0:o{"use strict";var ec=H("os"),dt=ho(),G=process.env,Zt;dt("no-color")||dt("no-colors")||dt("color=false")?Zt=!1:(dt("color")||dt("colors")||dt("color=true")||dt("color=always"))&&(Zt=!0);"FORCE_COLOR"in G&&(Zt=G.FORCE_COLOR.length===0||parseInt(G.FORCE_COLOR,10)!==0);function rc(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function nc(r){if(Zt===!1)return 0;if(dt("color=16m")||dt("color=full")||dt("color=truecolor"))return 3;if(dt("color=256"))return 2;if(r&&!r.isTTY&&Zt!==!0)return 0;let t=Zt?1:0;if(process.platform==="win32"){let e=ec.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in G)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in G)||G.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in G)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION)?1:0;if(G.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in G){let e=parseInt((G.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(G.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(G.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM)||"COLORTERM"in G?1:(G.TERM==="dumb",t)}function Jr(r){let t=nc(r);return rc(t)}po.exports={supportsColor:Jr,stdout:Jr(process.stdout),stderr:Jr(process.stderr)}});var yo=bt((O,Ue)=>{var oc=H("tty"),_e=H("util");O.init=dc;O.log=ac;O.formatArgs=sc;O.save=uc;O.load=lc;O.useColors=ic;O.destroy=_e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");O.colors=[6,2,3,4,5,1];try{let r=mo();r&&(r.stderr||r).level>=2&&(O.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}O.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,t)=>{let e=t.substring(6).toLowerCase().replace(/_([a-z])/g,(n,i)=>i.toUpperCase()),o=process.env[t];return/^(yes|on|true|enabled)$/i.test(o)?o=!0:/^(no|off|false|disabled)$/i.test(o)?o=!1:o==="null"?o=null:o=Number(o),r[e]=o,r},{});function ic(){return"colors"in O.inspectOpts?!!O.inspectOpts.colors:oc.isatty(process.stderr.fd)}function sc(r){let{namespace:t,useColors:e}=this;if(e){let o=this.color,n="\x1B[3"+(o<8?o:"8;5;"+o),i=` ${n};1m${t} \x1B[0m`;r[0]=i+r[0].split(` -+"use strict";var Libp2PDaemonServer=(()=>{var Pc=Object.create;var dr=Object.defineProperty;var kc=Object.getOwnPropertyDescriptor;var Rc=Object.getOwnPropertyNames;var Bc=Object.getPrototypeOf,Cc=Object.prototype.hasOwnProperty;var W=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var ut=(r,t)=>{for(var e in t)dr(r,e,{get:t[e],enumerable:!0})},Ei=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Rc(t))!Cc.call(r,o)&&o!==e&&dr(r,o,{get:()=>t[o],enumerable:!(n=kc(t,o))||n.enumerable});return r};var mt=(r,t,e)=>(e=r!=null?Pc(Bc(r)):{},Ei(t||!r||!r.__esModule?dr(e,"default",{value:r,enumerable:!0}):e,r)),Oc=r=>Ei(dr({},"__esModule",{value:!0}),r);var Xl={};ut(Xl,{Server:()=>Ln,createServer:()=>Zl});var Pn=W("node:buffer");function ae(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Kt(r=0){return ae(Pn.Buffer.alloc(r))}function lt(r=0){return ae(Pn.Buffer.allocUnsafe(r))}var Dc=Math.pow(2,7),_c=Math.pow(2,14),Uc=Math.pow(2,21),kn=Math.pow(2,28),Rn=Math.pow(2,35),Bn=Math.pow(2,42),Cn=Math.pow(2,49),k=128,rt=127;function z(r){if(rNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function On(r,t,e=0){switch(z(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 Mc(r,t,e=0){switch(z(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 Dn(r,t){let e=r[t],n=0;if(n+=e&rt,e>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return ue;if(t<$c&&t>Vc)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>Ti&&(o=0n,++n>Ti&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return ue;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):ue}},ue=new yt(0,0);ue.toBigInt=function(){return 0n};ue.zzEncode=ue.zzDecode=function(){return this};ue.length=function(){return 1};var Ti=4294967296n;function Li(r){let t=0,e=0;for(let n=0;n191&&c<224?i[s++]=(c&31)<<6|r[t++]&63:c>239&&c<365?(c=((c&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,i[s++]=55296+(c>>10),i[s++]=56320+(c&1023)):i[s++]=(c&15)<<12|(r[t++]&63)<<6|r[t++]&63,s>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,i)),s=0);return o!=null?(s>0&&o.push(String.fromCharCode.apply(String,i.slice(0,s))),o.join("")):String.fromCharCode.apply(String,i.slice(0,s))}function Mn(r,t,e){let n=e,o,i;for(let s=0;s>6|192,t[e++]=o&63|128):(o&64512)===55296&&((i=r.charCodeAt(s+1))&64512)===56320?(o=65536+((o&1023)<<10)+(i&1023),++s,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function kt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function hr(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Kn=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,kt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw kt(this,4);return hr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw kt(this,4);return hr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw kt(this,4);let t=Ii(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw kt(this,4);let t=Ai(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw kt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Ni(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw kt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw kt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new yt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw kt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw kt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw kt(this,8);let t=hr(this.buf,this.pos+=4),e=hr(this.buf,this.pos+=4);return new yt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Dn(this.buf,this.pos);return this.pos+=z(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function $n(r){return new Kn(r instanceof Uint8Array?r:r.subarray())}function _(r,t,e){let n=$n(r);return t.decode(n,void 0,e)}var Zi=W("node:buffer");var Hn={};ut(Hn,{base10:()=>Wc});var ff=new Uint8Array(0);function ki(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n>>0,P=new Uint8Array(v);m!==b;){for(var T=p[m],E=0,S=v-1;(T!==0||E>>0,P[S]=T%c>>>0,T=T/c>>>0;if(T!==0)throw new Error("Non-zero carry");h=E,m++}for(var L=v-h;L!==v&&P[L]===0;)L++;for(var X=a.repeat(f);L>>0,v=new Uint8Array(b);p[f];){var P=e[p.charCodeAt(f)];if(P===255)return;for(var T=0,E=b-1;(P!==0||T>>0,v[E]=P%256>>>0,P=P/256>>>0;if(P!==0)throw new Error("Non-zero carry");m=T,f++}if(p[f]!==" "){for(var S=b-m;S!==b&&v[S]===0;)S++;for(var L=new Uint8Array(h+(b-S)),X=h;S!==b;)L[X++]=v[S++];return L}}}function g(p){var f=y(p);if(f)return f;throw new Error(`Non-${t} character`)}return{encode:u,decodeUnsafe:y,decode:g}}var Fc=Gc,zc=Fc,Oi=zc;var Vn=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")}},Gn=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),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 Di(this,t)}},Fn=class{decoders;constructor(t){this.decoders=t}or(t){return Di(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 Di(r,t){return new Fn({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var zn=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Vn(t,e,n),this.decoder=new Gn(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Te({name:r,prefix:t,encode:e,decode:n}){return new zn(r,t,e,n)}function Zt({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=Oi(e,r);return Te({prefix:t,name:r,encode:n,decode:i=>vt(o(i))})}function Hc(r,t,e,n){let o={};for(let d=0;d=8&&(c-=8,s[l++]=255&a>>c)}if(c>=e||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s}function qc(r,t,e){let n=t[t.length-1]==="=",o=(1<e;)s-=e,i+=t[o&c>>s];if(s!==0&&(i+=t[o&c<Yc,base16upper:()=>Zc});var Yc=V({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Zc=V({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Wn={};ut(Wn,{base2:()=>Xc});var Xc=V({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Yn={};ut(Yn,{base256emoji:()=>ea});var _i=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Qc=_i.reduce((r,t,e)=>(r[e]=t,r),[]),Jc=_i.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function jc(r){return r.reduce((t,e)=>(t+=Qc[e],t),"")}function ta(r){let t=[];for(let e of r){let n=Jc[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var ea=Te({prefix:"\u{1F680}",name:"base256emoji",encode:jc,decode:ta});var Zn={};ut(Zn,{base32:()=>Rt,base32hex:()=>ia,base32hexpad:()=>ca,base32hexpadupper:()=>aa,base32hexupper:()=>sa,base32pad:()=>na,base32padupper:()=>oa,base32upper:()=>ra,base32z:()=>ua});var Rt=V({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ra=V({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),na=V({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),oa=V({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ia=V({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),sa=V({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ca=V({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),aa=V({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ua=V({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Xn={};ut(Xn,{base36:()=>la,base36upper:()=>fa});var la=Zt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),fa=Zt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Qn={};ut(Qn,{base58btc:()=>U,base58flickr:()=>da});var U=Zt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),da=Zt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var jn={};ut(jn,{base64:()=>Jn,base64pad:()=>ha,base64url:()=>pa,base64urlpad:()=>ma});var Jn=V({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ha=V({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),pa=V({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ma=V({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var to={};ut(to,{base8:()=>ya});var ya=V({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var eo={};ut(eo,{identity:()=>ga});var ga=Te({prefix:"\0",name:"identity",encode:r=>Bi(r),decode:r=>Ri(r)});var Lf=new TextEncoder,Nf=new TextDecoder;var no={};ut(no,{identity:()=>$t});var xa=Ki,Ui=128,Ea=127,va=~Ea,Ia=Math.pow(2,31);function Ki(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Ia;)t[e++]=r&255|Ui,r/=128;for(;r&va;)t[e++]=r&255|Ui,r>>>=7;return t[e]=r|0,Ki.bytes=e-n+1,t}var Sa=ro,Aa=128,Mi=127;function ro(r,n){var e=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw ro.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=o<28?(s&Mi)<=Aa);return ro.bytes=i-n,e}var Ta=Math.pow(2,7),La=Math.pow(2,14),Na=Math.pow(2,21),Pa=Math.pow(2,28),ka=Math.pow(2,35),Ra=Math.pow(2,42),Ba=Math.pow(2,49),Ca=Math.pow(2,56),Oa=Math.pow(2,63),Da=function(r){return rco,sha512:()=>$a});var so=mt(W("crypto"),1);function io({name:r,code:t,encode:e}){return new oo(r,t,e)}var oo=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?le(this.code,e):e.then(n=>le(this.code,n))}else throw Error("Unknown type, must be binary type")}};var co=io({name:"sha2-256",code:18,encode:r=>vt(so.default.createHash("sha256").update(r).digest())}),$a=io({name:"sha2-512",code:19,encode:r=>vt(so.default.createHash("sha512").update(r).digest())});function zi(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return Ga(e,uo(r),t??U.encoder);default:return Fa(e,uo(r),t??Rt.encoder)}}var Hi=new WeakMap;function uo(r){let t=Hi.get(r);if(t==null){let e=new Map;return Hi.set(r,e),e}return t}var J=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==Xe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==za)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=le(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&&$i(t.multihash,n.multihash)}toString(t){return zi(this,t)}toJSON(){return{"/":zi(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:o,multihash:i,bytes:s}=e;return new r(n,o,i,s??qi(n,o,i.bytes))}else if(e[Ha]===!0){let{version:n,multihash:o,code:i}=e,s=Bt(o);return r.create(n,i,s)}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!==Xe)throw new Error(`Version 0 CID must use dag-pb (code: ${Xe}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=qi(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Xe,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,o=vt(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=o.subarray(e.multihashSize-e.digestSize),s=new Pe(e.multihashCode,e.digestSize,i,o);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[u,y]=Ze(t.subarray(e));return e+=y,u},o=n(),i=Xe;if(o===18?(o=0,e=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=e,c=n(),a=n(),l=e+a,d=l-s;return{version:o,codec:i,multihashCode:c,digestSize:a,multihashSize:d,size:l}}static parse(t,e){let[n,o]=Va(t,e),i=r.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return uo(i).set(n,t),i}};function Va(r,t){switch(r[0]){case"Q":{let e=t??U;return[U.prefix,e.decode(`${U.prefix}${r}`)]}case U.prefix:{let e=t??U;return[U.prefix,e.decode(r)]}case Rt.prefix:{let e=t??Rt;return[Rt.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Ga(r,t,e){let{prefix:n}=e;if(n!==U.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return o}function Fa(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let i=e.encode(r);return t.set(n,i),i}else return o}var Xe=112,za=18;function qi(r,t,e){let n=Ne(r),o=n+Ne(t),i=new Uint8Array(o+e.byteLength);return Le(r,i,0),Le(t,i,n),i.set(e,o),i}var Ha=Symbol.for("@ipld/js-cid/CID");var Qe={...eo,...Wn,...to,...Hn,...qn,...Zn,...Xn,...Qn,...jn,...Yn},Xf={...ao,...no};function Yi(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Wi=Yi("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),lo=Yi("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=lt(r.length);for(let e=0;e>>1,n,o=t;return function(s){if(s<1||s>e)return lt(s);o+s>t&&(n=lt(t),o=0);let c=n.subarray(o,o+=s);return o&7&&(o=(o|7)+1),c}}var fe=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function ho(){}var mo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Wa=fo();function Ya(r){return globalThis.Buffer!=null?lt(r):Wa(r)}var je=class{len;head;tail;states;constructor(){this.len=0,this.head=new fe(ho,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new fe(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new yo((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(yr,10,yt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=yt.fromBigInt(t);return this._push(yr,e.length(),e)}uint64Number(t){return this._push(On,z(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=yt.fromBigInt(t).zzEncode();return this._push(yr,e.length(),e)}sint64Number(t){let e=yt.fromNumber(t).zzEncode();return this._push(yr,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(po,1,t?1:0)}fixed32(t){return this._push(Je,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=yt.fromBigInt(t);return this._push(Je,4,e.lo)._push(Je,4,e.hi)}fixed64Number(t){let e=yt.fromNumber(t);return this._push(Je,4,e.lo)._push(Je,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(vi,4,t)}double(t){return this._push(Si,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(po,1,0):this.uint32(e)._push(Xa,e,t)}string(t){let e=Li(t);return e!==0?this.uint32(e)._push(Mn,e,t):this._push(po,1,0)}fork(){return this.states=new mo(this),this.head=this.tail=new fe(ho,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new fe(ho,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Ya(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function po(r,t,e){t[e]=r&255}function Za(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var yo=class extends fe{next;constructor(t,e){super(Za,t,e),this.next=void 0}};function yr(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Je(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Xa(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(je.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Qa,t,r),this},je.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Ja,t,r),this});function Qa(r,t,e){t.set(r,e)}function Ja(r,t,e){r.length<40?Mn(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(Mt(r),e)}function go(){return new je}function M(r,t){let e=go();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var ke;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(ke||(ke={}));function gr(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ct(r){function t(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let e=function(i,s){let c=t(i);s.int32(c)},n=function(i){let s=i.int32();return t(s)};return gr("enum",ke.VARINT,e,n)}function K(r,t){return gr("message",ke.LENGTH_DELIMITED,r,t)}var It;(function(r){let t;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.connect!=null&&(i.uint32(18),wr.codec().encode(o.connect,i)),o.streamOpen!=null&&(i.uint32(26),xr.codec().encode(o.streamOpen,i)),o.streamHandler!=null&&(i.uint32(34),Er.codec().encode(o.streamHandler,i)),o.dht!=null&&(i.uint32(42),St.codec().encode(o.dht,i)),o.connManager!=null&&(i.uint32(50),Ir.codec().encode(o.connManager,i)),o.disconnect!=null&&(i.uint32(58),Sr.codec().encode(o.disconnect,i)),o.pubsub!=null&&(i.uint32(66),Vt.codec().encode(o.pubsub,i)),o.peerStore!=null&&(i.uint32(74),de.codec().encode(o.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.connect=wr.codec().decode(o,o.uint32());break;case 3:s.streamOpen=xr.codec().decode(o,o.uint32());break;case 4:s.streamHandler=Er.codec().decode(o,o.uint32());break;case 5:s.dht=St.codec().decode(o,o.uint32());break;case 6:s.connManager=Ir.codec().decode(o,o.uint32());break;case 7:s.disconnect=Sr.codec().decode(o,o.uint32());break;case 8:s.pubsub=Vt.codec().decode(o,o.uint32());break;case 9:s.peerStore=de.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(It||(It={}));var H;(function(r){let t;(function(o){o.OK="OK",o.ERROR="ERROR"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.error!=null&&(i.uint32(18),vr.codec().encode(o.error,i)),o.streamInfo!=null&&(i.uint32(26),Re.codec().encode(o.streamInfo,i)),o.identify!=null&&(i.uint32(34),br.codec().encode(o.identify,i)),o.dht!=null&&(i.uint32(42),et.codec().encode(o.dht,i)),o.peers!=null)for(let c of o.peers)i.uint32(50),Qt.codec().encode(c,i);o.pubsub!=null&&(i.uint32(58),Ar.codec().encode(o.pubsub,i)),o.peerStore!=null&&(i.uint32(66),Tr.codec().encode(o.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={peers:[]},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.error=vr.codec().decode(o,o.uint32());break;case 3:s.streamInfo=Re.codec().decode(o,o.uint32());break;case 4:s.identify=br.codec().decode(o,o.uint32());break;case 5:s.dht=et.codec().decode(o,o.uint32());break;case 6:s.peers.push(Qt.codec().decode(o,o.uint32()));break;case 7:s.pubsub=Ar.codec().decode(o,o.uint32());break;case 8:s.peerStore=Tr.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(H||(H={}));var br;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={id:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.id=e.bytes();break;case 2:o.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(br||(br={}));var wr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);e.timeout!=null&&(n.uint32(24),n.int64(e.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.addrs.push(e.bytes());break;case 3:o.timeout=e.int64();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(wr||(wr={}));var xr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.proto!=null)for(let i of e.proto)n.uint32(18),n.string(i);e.timeout!=null&&(n.uint32(24),n.int64(e.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),proto:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.proto.push(e.string());break;case 3:o.timeout=e.int64();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(xr||(xr={}));var Er;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.addr!=null&&e.addr.byteLength>0&&(n.uint32(10),n.bytes(e.addr)),e.proto!=null)for(let i of e.proto)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={addr:new Uint8Array(0),proto:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.addr=e.bytes();break;case 2:o.proto.push(e.string());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Er||(Er={}));var vr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.msg!=null&&e.msg!==""&&(n.uint32(10),n.string(e.msg)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={msg:""},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.msg=e.string();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(vr||(vr={}));var Re;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),e.addr!=null&&e.addr.byteLength>0&&(n.uint32(18),n.bytes(e.addr)),e.proto!=null&&e.proto!==""&&(n.uint32(26),n.string(e.proto)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;case 2:o.addr=e.bytes();break;case 3:o.proto=e.string();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Re||(Re={}));var St;(function(r){let t;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),i.bytes(o.peer)),o.cid!=null&&(i.uint32(26),i.bytes(o.cid)),o.key!=null&&(i.uint32(34),i.bytes(o.key)),o.value!=null&&(i.uint32(42),i.bytes(o.value)),o.count!=null&&(i.uint32(48),i.int32(o.count)),o.timeout!=null&&(i.uint32(56),i.int64(o.timeout)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=o.bytes();break;case 3:s.cid=o.bytes();break;case 4:s.key=o.bytes();break;case 5:s.value=o.bytes();break;case 6:s.count=o.int32();break;case 7:s.timeout=o.int64();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(St||(St={}));var et;(function(r){let t;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),Qt.codec().encode(o.peer,i)),o.value!=null&&(i.uint32(26),i.bytes(o.value)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=Qt.codec().decode(o,o.uint32());break;case 3:s.value=o.bytes();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(et||(et={}));var Qt;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={id:new Uint8Array(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.id=e.bytes();break;case 2:o.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Qt||(Qt={}));var Ir;(function(r){let t;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.peer!=null&&(i.uint32(18),i.bytes(o.peer)),o.tag!=null&&(i.uint32(26),i.string(o.tag)),o.weight!=null&&(i.uint32(32),i.int64(o.weight)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.peer=o.bytes();break;case 3:s.tag=o.string();break;case 4:s.weight=o.int64();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(Ir||(Ir={}));var Sr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(10),n.bytes(e.peer)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={peer:new Uint8Array(0)},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=e.bytes();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Sr||(Sr={}));var Vt;(function(r){let t;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.topic!=null&&(i.uint32(18),i.string(o.topic)),o.data!=null&&(i.uint32(26),i.bytes(o.data)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.topic=o.string();break;case 3:s.data=o.bytes();break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(Vt||(Vt={}));var tr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.from!=null&&(n.uint32(10),n.bytes(e.from)),e.data!=null&&(n.uint32(18),n.bytes(e.data)),e.seqno!=null&&(n.uint32(26),n.bytes(e.seqno)),e.topicIDs!=null)for(let i of e.topicIDs)n.uint32(34),n.string(i);e.signature!=null&&(n.uint32(42),n.bytes(e.signature)),e.key!=null&&(n.uint32(50),n.bytes(e.key)),o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={topicIDs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.from=e.bytes();break;case 2:o.data=e.bytes();break;case 3:o.seqno=e.bytes();break;case 4:o.topicIDs.push(e.string());break;case 5:o.signature=e.bytes();break;case 6:o.key=e.bytes();break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(tr||(tr={}));var Ar;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.topics!=null)for(let i of e.topics)n.uint32(10),n.string(i);if(e.peerIDs!=null)for(let i of e.peerIDs)n.uint32(18),n.bytes(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={topics:[],peerIDs:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.topics.push(e.string());break;case 2:o.peerIDs.push(e.bytes());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Ar||(Ar={}));var de;(function(r){let t;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(t=r.Type||(r.Type={}));let e;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(e||(e={})),function(o){o.codec=()=>Ct(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=K((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.type!=null&&(i.uint32(8),r.Type.codec().encode(o.type,i)),o.id!=null&&(i.uint32(18),i.bytes(o.id)),o.protos!=null)for(let c of o.protos)i.uint32(26),i.string(c);s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={protos:[]},c=i==null?o.len:o.pos+i;for(;o.pos>>3){case 1:s.type=r.Type.codec().decode(o);break;case 2:s.id=o.bytes();break;case 3:s.protos.push(o.string());break;default:o.skipType(a&7);break}}return s})),n),r.encode=o=>M(o,r.codec()),r.decode=o=>_(o,r.codec())})(de||(de={}));var Tr;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.peer!=null&&(n.uint32(10),Qt.codec().encode(e.peer,n)),e.protos!=null)for(let i of e.protos)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let o={protos:[]},i=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:o.peer=Qt.codec().decode(e,e.uint32());break;case 2:o.protos.push(e.string());break;default:e.skipType(s&7);break}}return o})),t),r.encode=e=>M(e,r.codec()),r.decode=e=>_(e,r.codec())})(Tr||(Tr={}));var bo={upgradeInbound:async r=>r,upgradeOutbound:async r=>r};var Ji=mt(W("node:tty"),1),Br=mt(W("node:util"),1);function ja(r,t){try{if(typeof r=="string"&&r.length>0)return tu(r);if(typeof r=="number"&&isFinite(r))return t?.long?ru(r):eu(r);throw new Error("Value is not a string or number.")}catch(e){let n=nu(e)?`${e.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function tu(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!t)return NaN;let e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*315576e5;case"weeks":case"week":case"w":return e*6048e5;case"days":case"day":case"d":return e*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return e*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return e*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return e*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var Nr=ja;function eu(r){let t=Math.abs(r);return t>=864e5?`${Math.round(r/864e5)}d`:t>=36e5?`${Math.round(r/36e5)}h`:t>=6e4?`${Math.round(r/6e4)}m`:t>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function ru(r){let t=Math.abs(r);return t>=864e5?Lr(r,t,864e5,"day"):t>=36e5?Lr(r,t,36e5,"hour"):t>=6e4?Lr(r,t,6e4,"minute"):t>=1e3?Lr(r,t,1e3,"second"):`${r} ms`}function Lr(r,t,e,n){let o=t>=e*1.5;return`${Math.round(r/e)} ${n}${o?"s":""}`}function nu(r){return typeof r=="object"&&r!==null&&"message"in r}var kr=mt(W("node:process"),1),Qi=mt(W("node:os"),1),wo=mt(W("node:tty"),1);function At(r,t=globalThis.Deno?globalThis.Deno.args:kr.default.argv){let e=r.startsWith("-")?"":r.length===1?"-":"--",n=t.indexOf(e+r),o=t.indexOf("--");return n!==-1&&(o===-1||n=2,has16m:r>=3}}function su(r,{streamIsTTY:t,sniffFlags:e=!0}={}){let n=ou();n!==void 0&&(Pr=n);let o=e?Pr:n;if(o===0)return 0;if(e){if(At("color=16m")||At("color=full")||At("color=truecolor"))return 3;if(At("color=256"))return 2}if("TF_BUILD"in $&&"AGENT_NAME"in $)return 1;if(r&&!t&&o===void 0)return 0;let i=o||0;if($.TERM==="dumb")return i;if(kr.default.platform==="win32"){let s=Qi.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in $)return"GITHUB_ACTIONS"in $||"GITEA_ACTIONS"in $?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in $)||$.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in $)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($.TEAMCITY_VERSION)?1:0;if($.COLORTERM==="truecolor"||$.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in $){let s=Number.parseInt(($.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch($.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test($.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($.TERM)||"COLORTERM"in $?1:i}function Xi(r,t={}){let e=su(r,{streamIsTTY:r&&r.isTTY,...t});return iu(e)}var cu={stdout:Xi({isTTY:wo.default.isatty(1)}),stderr:Xi({isTTY:wo.default.isatty(2)})},Rr=cu;function xo(r){e.debug=e,e.default=e,e.coerce=a,e.disable=i,e.enable=o,e.enabled=s,e.humanize=Nr,e.destroy=l,Object.keys(r).forEach(d=>{e[d]=r[d]}),e.names=[],e.skips=[],e.formatters={};function t(d){let u=0;for(let y=0;y{if(E==="%%")return"%";P++;let L=e.formatters[S];if(typeof L=="function"){let X=h[P];E=L.call(m,X),h.splice(P,1),P--}return E}),e.formatArgs.call(m,h),(m.log||e.log).apply(m,h)}return f.namespace=d,f.useColors=e.useColors(),f.color=e.selectColor(d),f.extend=n,f.destroy=e.destroy,Object.defineProperty(f,"enabled",{enumerable:!0,configurable:!1,get:()=>y!==null?y:(g!==e.namespaces&&(g=e.namespaces,p=e.enabled(d)),p),set:h=>{y=h}}),typeof e.init=="function"&&e.init(f),f}function n(d,u){let y=e(this.namespace+(typeof u>"u"?":":u)+d);return y.log=this.log,y}function o(d){e.save(d),e.namespaces=d,e.names=[],e.skips=[];let u,y=(typeof d=="string"?d:"").split(/[\s,]+/),g=y.length;for(u=0;u"-"+u)].join(",");return e.enable(""),d}function s(d){if(d[d.length-1]==="*")return!0;let u,y;for(u=0,y=e.skips.length;u=2&&(ji=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]);var Be=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,t)=>{let e=t.substring(6).toLowerCase().replace(/_([a-z])/g,(o,i)=>i.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[e]=n,r},{});function au(){return"colors"in Be?!!Be.colors:Ji.default.isatty(process.stderr.fd)}function uu(r){let{namespace:t,useColors:e}=this;if(e!=null){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),i=` ${o};1m${t} \x1B[0m`;r[0]=i+r[0].split(` - `).join(` --`+i),r.push(n+"m+"+Ue.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=cc()+t+" "+r[0]}function cc(){return O.inspectOpts.hideDate?"":new Date().toISOString()+" "}function ac(...r){return process.stderr.write(_e.formatWithOptions(O.inspectOpts,...r)+` --`)}function uc(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function lc(){return process.env.DEBUG}function dc(r){r.inspectOpts={};let t=Object.keys(O.inspectOpts);for(let e=0;et.trim()).join(" ")};go.O=function(r){return this.inspectOpts.colors=this.useColors,_e.inspect(r,this.inspectOpts)}});var bo=bt((Xu,Zr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Zr.exports=lo():Zr.exports=yo()});var di=bt((ih,li)=>{"use strict";function ui(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function Zc(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return ui(r,e)}catch{e.message=r.message,e.stack=r.stack;let n=function(){};return n.prototype=Object.create(Object.getPrototypeOf(r)),ui(new n,e)}}li.exports=Zc});var la={};J(la,{Server:()=>sr,createServer:()=>ua});var cr=H("node:buffer");function Tt(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function ht(r=0){return Tt(cr.Buffer.alloc(r))}function W(r=0){return Tt(cr.Buffer.allocUnsafe(r))}var vi=Math.pow(2,7),Si=Math.pow(2,14),Ti=Math.pow(2,21),ar=Math.pow(2,28),ur=Math.pow(2,35),lr=Math.pow(2,42),dr=Math.pow(2,49),x=128,M=127;function v(r){if(rNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function fr(r,t,e=0){switch(v(r)){case 8:t[e++]=r&255|x,r/=128;case 7:t[e++]=r&255|x,r/=128;case 6:t[e++]=r&255|x,r/=128;case 5:t[e++]=r&255|x,r/=128;case 4:t[e++]=r&255|x,r>>>=7;case 3:t[e++]=r&255|x,r>>>=7;case 2:t[e++]=r&255|x,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Li(r,t,e=0){switch(v(r)){case 8:t.set(e++,r&255|x),r/=128;case 7:t.set(e++,r&255|x),r/=128;case 6:t.set(e++,r&255|x),r/=128;case 5:t.set(e++,r&255|x),r/=128;case 4:t.set(e++,r&255|x),r>>>=7;case 3:t.set(e++,r&255|x),r>>>=7;case 2:t.set(e++,r&255|x),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function hr(r,t){let e=r[t],o=0;if(o+=e&M,e>>31>0){let e=~this.lo+1>>>0,o=~this.hi>>>0;return e===0&&(o=o+1>>>0),-(e+o*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,o=~this.hi>>>0;return e===0&&(o=o+1>>>0),-(BigInt(e)+(BigInt(o)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,o=this.hi>>>24;return o===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:o<128?9:10}static fromBigInt(t){if(t===0n)return Lt;if(tDi)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let o=t>>32n,n=t-(o<<32n);return e&&(o=~o|0n,n=~n|0n,++n>Fn&&(n=0n,++o>Fn&&(o=0n))),new r(Number(n),Number(o))}static fromNumber(t){if(t===0)return Lt;let e=t<0;e&&(t=-t);let o=t>>>0,n=(t-o)/4294967296>>>0;return e&&(n=~n>>>0,o=~o>>>0,++o>4294967295&&(o=0,++n>4294967295&&(n=0))),new r(o,n)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):Lt}},Lt=new Z(0,0);Lt.toBigInt=function(){return 0n};Lt.zzEncode=Lt.zzDecode=function(){return this};Lt.length=function(){return 1};var Fn=4294967296n;function Mn(r){let t=0,e=0;for(let o=0;o191&&c<224?i[s++]=(c&31)<<6|r[t++]&63:c>239&&c<365?(c=((c&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,i[s++]=55296+(c>>10),i[s++]=56320+(c&1023)):i[s++]=(c&15)<<12|(r[t++]&63)<<6|r[t++]&63,s>8191&&((n??(n=[])).push(String.fromCharCode.apply(String,i)),s=0);return n!=null?(s>0&&n.push(String.fromCharCode.apply(String,i.slice(0,s))),n.join("")):String.fromCharCode.apply(String,i.slice(0,s))}function gr(r,t,e){let o=e,n,i;for(let s=0;s>6|192,t[e++]=n&63|128):(n&64512)===55296&&((i=r.charCodeAt(s+1))&64512)===56320?(n=65536+((n&1023)<<10)+(i&1023),++s,t[e++]=n>>18|240,t[e++]=n>>12&63|128,t[e++]=n>>6&63|128,t[e++]=n&63|128):(t[e++]=n>>12|224,t[e++]=n>>6&63|128,t[e++]=n&63|128);return e-o}function ut(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function be(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var yr=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,ut(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw ut(this,4);return be(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ut(this,4);return be(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ut(this,4);let t=On(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw ut(this,4);let t=Un(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,o=this.pos+t;if(o>this.len)throw ut(this,t);return this.pos+=t,e===o?new Uint8Array(0):this.buf.subarray(e,o)}string(){let t=this.bytes();return Bn(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw ut(this,t);this.pos+=t}else do if(this.pos>=this.len)throw ut(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Z(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw ut(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw ut(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw ut(this,8);let t=be(this.buf,this.pos+=4),e=be(this.buf,this.pos+=4);return new Z(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=hr(this.buf,this.pos);return this.pos+=v(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function br(r){return new yr(r instanceof Uint8Array?r:r.subarray())}function S(r,t,e){let o=br(r);return t.decode(o,void 0,e)}var so=H("node:buffer");var Ar={};J(Ar,{base10:()=>Fi});var Ca=new Uint8Array(0);function Vn(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),o=0;o>>0,k=new Uint8Array(R);w!==E;){for(var Y=p[w],et=0,Q=R-1;(Y!==0||et>>0,k[Q]=Y%c>>>0,Y=Y/c>>>0;if(Y!==0)throw new Error("Non-zero carry");h=et,w++}for(var rt=R-h;rt!==R&&k[rt]===0;)rt++;for(var Vt=a.repeat(y);rt>>0,R=new Uint8Array(E);p[y];){var k=e[p.charCodeAt(y)];if(k===255)return;for(var Y=0,et=E-1;(k!==0||Y>>0,R[et]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");w=Y,y++}if(p[y]!==" "){for(var Q=E-w;Q!==E&&R[Q]===0;)Q++;for(var rt=new Uint8Array(h+(E-Q)),Vt=h;Q!==E;)rt[Vt++]=R[Q++];return rt}}}function b(p){var y=g(p);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:g,decode:b}}var ki=Pi,Oi=ki,Wn=Oi;var wr=class{name;prefix;baseEncode;constructor(t,e,o){this.name=t,this.prefix=e,this.baseEncode=o}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Er=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,o){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=o}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 Kn(this,t)}},xr=class{decoders;constructor(t){this.decoders=t}or(t){return Kn(this,t)}decode(t){let e=t[0],o=this.decoders[e];if(o!=null)return o.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Kn(r,t){return new xr({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Ir=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,o,n){this.name=t,this.prefix=e,this.baseEncode=o,this.baseDecode=n,this.encoder=new wr(t,e,o),this.decoder=new Er(t,e,n)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function $t({name:r,prefix:t,encode:e,decode:o}){return new Ir(r,t,e,o)}function Et({name:r,prefix:t,alphabet:e}){let{encode:o,decode:n}=Wn(e,r);return $t({prefix:t,name:r,encode:o,decode:i=>nt(n(i))})}function _i(r,t,e,o){let n={};for(let u=0;u=8&&(c-=8,s[f++]=255&a>>c)}if(c>=e||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s}function Ui(r,t,e){let o=t[t.length-1]==="=",n=(1<e;)s-=e,i+=t[n&c>>s];if(s!==0&&(i+=t[n&c<Mi,base16upper:()=>Bi});var Mi=A({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Bi=A({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var vr={};J(vr,{base2:()=>Gi});var Gi=A({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Sr={};J(Sr,{base256emoji:()=>Wi});var Xn=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Vi=Xn.reduce((r,t,e)=>(r[e]=t,r),[]),$i=Xn.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function zi(r){return r.reduce((t,e)=>(t+=Vi[e],t),"")}function Hi(r){let t=[];for(let e of r){let o=$i[e.codePointAt(0)];if(o===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var Wi=$t({prefix:"\u{1F680}",name:"base256emoji",encode:zi,decode:Hi});var Tr={};J(Tr,{base32:()=>lt,base32hex:()=>Qi,base32hexpad:()=>Zi,base32hexpadupper:()=>qi,base32hexupper:()=>Ji,base32pad:()=>Xi,base32padupper:()=>Yi,base32upper:()=>Ki,base32z:()=>ji});var lt=A({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ki=A({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Xi=A({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Yi=A({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Qi=A({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ji=A({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Zi=A({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),qi=A({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ji=A({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Lr={};J(Lr,{base36:()=>ts,base36upper:()=>es});var ts=Et({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),es=Et({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Nr={};J(Nr,{base58btc:()=>D,base58flickr:()=>rs});var D=Et({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),rs=Et({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Dr={};J(Dr,{base64:()=>Rr,base64pad:()=>ns,base64url:()=>os,base64urlpad:()=>is});var Rr=A({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ns=A({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),os=A({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),is=A({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Pr={};J(Pr,{base8:()=>ss});var ss=A({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var kr={};J(kr,{identity:()=>cs});var cs=$t({prefix:"\0",name:"identity",encode:r=>zn(r),decode:r=>$n(r)});var Ga=new TextEncoder,Va=new TextDecoder;var _r={};J(_r,{identity:()=>ce});var ls=Jn,Yn=128,ds=127,fs=~ds,hs=Math.pow(2,31);function Jn(r,t,e){t=t||[],e=e||0;for(var o=e;r>=hs;)t[e++]=r&255|Yn,r/=128;for(;r&fs;)t[e++]=r&255|Yn,r>>>=7;return t[e]=r|0,Jn.bytes=e-o+1,t}var ps=Or,ms=128,Qn=127;function Or(r,o){var e=0,o=o||0,n=0,i=o,s,c=r.length;do{if(i>=c)throw Or.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=n<28?(s&Qn)<=ms);return Or.bytes=i-o,e}var gs=Math.pow(2,7),ys=Math.pow(2,14),bs=Math.pow(2,21),ws=Math.pow(2,28),Es=Math.pow(2,35),xs=Math.pow(2,42),Is=Math.pow(2,49),As=Math.pow(2,56),Cs=Math.pow(2,63),vs=function(r){return rEe,sha512:()=>Rs});var Mr=St(H("crypto"),1);function Fr({name:r,code:t,encode:e}){return new Ur(r,t,e)}var Ur=class{name;code;encode;constructor(t,e,o){this.name=t,this.code=e,this.encode=o}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?xt(this.code,e):e.then(o=>xt(this.code,o))}else throw Error("Unknown type, must be binary type")}};var Ee=Fr({name:"sha2-256",code:18,encode:r=>nt(Mr.default.createHash("sha256").update(r).digest())}),Rs=Fr({name:"sha2-512",code:19,encode:r=>nt(Mr.default.createHash("sha512").update(r).digest())});function eo(r,t){let{bytes:e,version:o}=r;switch(o){case 0:return Ps(e,Gr(r),t??D.encoder);default:return ks(e,Gr(r),t??lt.encoder)}}var ro=new WeakMap;function Gr(r){let t=ro.get(r);if(t==null){let e=new Map;return ro.set(r,e),e}return t}var $=class r{code;version;multihash;bytes;"/";constructor(t,e,o,n){this.code=e,this.version=t,this.multihash=o,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:t,multihash:e}=this;if(t!==ae)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Os)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,o=xt(t,e);return r.createV1(this.code,o)}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 o=e;return o!=null&&t.code===o.code&&t.version===o.version&&Zn(t.multihash,o.multihash)}toString(t){return eo(this,t)}toJSON(){return{"/":eo(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:o,code:n,multihash:i,bytes:s}=e;return new r(o,n,i,s??no(o,n,i.bytes))}else if(e[_s]===!0){let{version:o,multihash:n,code:i}=e,s=Nt(n);return r.create(o,i,s)}else return null}static create(t,e,o){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(o.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==ae)throw new Error(`Version 0 CID must use dag-pb (code: ${ae}) block encoding`);return new r(t,e,o,o.bytes)}case 1:{let n=no(t,e,o.bytes);return new r(t,e,o,n)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,ae,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,o]=r.decodeFirst(t);if(o.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),o=e.size-e.multihashSize,n=nt(t.subarray(o,o+e.multihashSize));if(n.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=n.subarray(e.multihashSize-e.digestSize),s=new Wt(e.multihashCode,e.digestSize,i,n);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,o=()=>{let[l,g]=se(t.subarray(e));return e+=g,l},n=o(),i=ae;if(n===18?(n=0,e=0):i=o(),n!==0&&n!==1)throw new RangeError(`Invalid CID version ${n}`);let s=e,c=o(),a=o(),f=e+a,u=f-s;return{version:n,codec:i,multihashCode:c,digestSize:a,multihashSize:u,size:f}}static parse(t,e){let[o,n]=Ds(t,e),i=r.decode(n);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Gr(i).set(o,t),i}};function Ds(r,t){switch(r[0]){case"Q":{let e=t??D;return[D.prefix,e.decode(`${D.prefix}${r}`)]}case D.prefix:{let e=t??D;return[D.prefix,e.decode(r)]}case lt.prefix:{let e=t??lt;return[lt.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Ps(r,t,e){let{prefix:o}=e;if(o!==D.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let n=t.get(o);if(n==null){let i=e.encode(r).slice(1);return t.set(o,i),i}else return n}function ks(r,t,e){let{prefix:o}=e,n=t.get(o);if(n==null){let i=e.encode(r);return t.set(o,i),i}else return n}var ae=112,Os=18;function no(r,t,e){let o=Ht(r),n=o+Ht(t),i=new Uint8Array(n+e.byteLength);return zt(r,i,0),zt(t,i,o),i.set(e,n),i}var _s=Symbol.for("@ipld/js-cid/CID");var It={...kr,...vr,...Pr,...Ar,...Cr,...Tr,...Lr,...Nr,...Dr,...Sr},uu={...Br,..._r};function io(r,t,e,o){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:o}}}var oo=io("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Vr=io("ascii","a",r=>{let t="a";for(let e=0;e{r=r.substring(1);let t=W(r.length);for(let e=0;e>>1,o,n=t;return function(s){if(s<1||s>e)return W(s);n+s>t&&(o=W(t),n=0);let c=o.subarray(n,n+=s);return n&7&&(n=(n|7)+1),c}}var Dt=class{fn;len;next;val;constructor(t,e,o){this.fn=t,this.len=e,this.next=void 0,this.val=o}};function zr(){}var Wr=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Fs=$r();function Ms(r){return globalThis.Buffer!=null?W(r):Fs(r)}var le=class{len;head;tail;states;constructor(){this.len=0,this.head=new Dt(zr,0,0),this.tail=this.head,this.states=null}_push(t,e,o){return this.tail=this.tail.next=new Dt(t,e,o),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Kr((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Ie,10,Z.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Z.fromBigInt(t);return this._push(Ie,e.length(),e)}uint64Number(t){return this._push(fr,v(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Z.fromBigInt(t).zzEncode();return this._push(Ie,e.length(),e)}sint64Number(t){let e=Z.fromNumber(t).zzEncode();return this._push(Ie,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Hr,1,t?1:0)}fixed32(t){return this._push(ue,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Z.fromBigInt(t);return this._push(ue,4,e.lo)._push(ue,4,e.hi)}fixed64Number(t){let e=Z.fromNumber(t);return this._push(ue,4,e.lo)._push(ue,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(kn,4,t)}double(t){return this._push(_n,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Hr,1,0):this.uint32(e)._push(Gs,e,t)}string(t){let e=Mn(t);return e!==0?this.uint32(e)._push(gr,e,t):this._push(Hr,1,0)}fork(){return this.states=new Wr(this),this.head=this.tail=new Dt(zr,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Dt(zr,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,o=this.len;return this.reset().uint32(o),o!==0&&(this.tail.next=t.next,this.tail=e,this.len+=o),this}finish(){let t=this.head.next,e=Ms(this.len),o=0;for(;t!=null;)t.fn(t.val,e,o),o+=t.len,t=t.next;return e}};function Hr(r,t,e){t[e]=r&255}function Bs(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Kr=class extends Dt{next;constructor(t,e){super(Bs,t,e),this.next=void 0}};function Ie(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function ue(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Gs(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(le.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Vs,t,r),this},le.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push($s,t,r),this});function Vs(r,t,e){t.set(r,e)}function $s(r,t,e){r.length<40?gr(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(pt(r),e)}function Xr(){return new le}function T(r,t){let e=Xr();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Kt;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Kt||(Kt={}));function Ae(r,t,e,o){return{name:r,type:t,encode:e,decode:o}}function mt(r){function t(n){if(r[n.toString()]==null)throw new Error("Invalid enum value");return r[n]}let e=function(i,s){let c=t(i);s.int32(c)},o=function(i){let s=i.int32();return t(s)};return Ae("enum",Kt.VARINT,e,o)}function L(r,t){return Ae("message",Kt.LENGTH_DELIMITED,r,t)}var ot;(function(r){let t;(function(n){n.IDENTIFY="IDENTIFY",n.CONNECT="CONNECT",n.STREAM_OPEN="STREAM_OPEN",n.STREAM_HANDLER="STREAM_HANDLER",n.DHT="DHT",n.LIST_PEERS="LIST_PEERS",n.CONNMANAGER="CONNMANAGER",n.DISCONNECT="DISCONNECT",n.PUBSUB="PUBSUB",n.PEERSTORE="PEERSTORE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.IDENTIFY=0]="IDENTIFY",n[n.CONNECT=1]="CONNECT",n[n.STREAM_OPEN=2]="STREAM_OPEN",n[n.STREAM_HANDLER=3]="STREAM_HANDLER",n[n.DHT=4]="DHT",n[n.LIST_PEERS=5]="LIST_PEERS",n[n.CONNMANAGER=6]="CONNMANAGER",n[n.DISCONNECT=7]="DISCONNECT",n[n.PUBSUB=8]="PUBSUB",n[n.PEERSTORE=9]="PEERSTORE"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.connect!=null&&(i.uint32(18),ve.codec().encode(n.connect,i)),n.streamOpen!=null&&(i.uint32(26),Se.codec().encode(n.streamOpen,i)),n.streamHandler!=null&&(i.uint32(34),Te.codec().encode(n.streamHandler,i)),n.dht!=null&&(i.uint32(42),it.codec().encode(n.dht,i)),n.connManager!=null&&(i.uint32(50),Ne.codec().encode(n.connManager,i)),n.disconnect!=null&&(i.uint32(58),Re.codec().encode(n.disconnect,i)),n.pubsub!=null&&(i.uint32(66),gt.codec().encode(n.pubsub,i)),n.peerStore!=null&&(i.uint32(74),Pt.codec().encode(n.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.connect=ve.codec().decode(n,n.uint32());break;case 3:s.streamOpen=Se.codec().decode(n,n.uint32());break;case 4:s.streamHandler=Te.codec().decode(n,n.uint32());break;case 5:s.dht=it.codec().decode(n,n.uint32());break;case 6:s.connManager=Ne.codec().decode(n,n.uint32());break;case 7:s.disconnect=Re.codec().decode(n,n.uint32());break;case 8:s.pubsub=gt.codec().decode(n,n.uint32());break;case 9:s.peerStore=Pt.codec().decode(n,n.uint32());break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(ot||(ot={}));var N;(function(r){let t;(function(n){n.OK="OK",n.ERROR="ERROR"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.OK=0]="OK",n[n.ERROR=1]="ERROR"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.error!=null&&(i.uint32(18),Le.codec().encode(n.error,i)),n.streamInfo!=null&&(i.uint32(26),Xt.codec().encode(n.streamInfo,i)),n.identify!=null&&(i.uint32(34),Ce.codec().encode(n.identify,i)),n.dht!=null&&(i.uint32(42),U.codec().encode(n.dht,i)),n.peers!=null)for(let c of n.peers)i.uint32(50),At.codec().encode(c,i);n.pubsub!=null&&(i.uint32(58),De.codec().encode(n.pubsub,i)),n.peerStore!=null&&(i.uint32(66),Pe.codec().encode(n.peerStore,i)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peers:[]},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.error=Le.codec().decode(n,n.uint32());break;case 3:s.streamInfo=Xt.codec().decode(n,n.uint32());break;case 4:s.identify=Ce.codec().decode(n,n.uint32());break;case 5:s.dht=U.codec().decode(n,n.uint32());break;case 6:s.peers.push(At.codec().decode(n,n.uint32()));break;case 7:s.pubsub=De.codec().decode(n,n.uint32());break;case 8:s.peerStore=Pe.codec().decode(n,n.uint32());break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(N||(N={}));var Ce;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.id!=null&&e.id.byteLength>0&&(o.uint32(10),o.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)o.uint32(18),o.bytes(i);n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={id:new Uint8Array(0),addrs:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.id=e.bytes();break;case 2:n.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Ce||(Ce={}));var ve;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.peer!=null&&e.peer.byteLength>0&&(o.uint32(10),o.bytes(e.peer)),e.addrs!=null)for(let i of e.addrs)o.uint32(18),o.bytes(i);e.timeout!=null&&(o.uint32(24),o.int64(e.timeout)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={peer:new Uint8Array(0),addrs:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.addrs.push(e.bytes());break;case 3:n.timeout=e.int64();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(ve||(ve={}));var Se;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.peer!=null&&e.peer.byteLength>0&&(o.uint32(10),o.bytes(e.peer)),e.proto!=null)for(let i of e.proto)o.uint32(18),o.string(i);e.timeout!=null&&(o.uint32(24),o.int64(e.timeout)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={peer:new Uint8Array(0),proto:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.proto.push(e.string());break;case 3:n.timeout=e.int64();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Se||(Se={}));var Te;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.addr!=null&&e.addr.byteLength>0&&(o.uint32(10),o.bytes(e.addr)),e.proto!=null)for(let i of e.proto)o.uint32(18),o.string(i);n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={addr:new Uint8Array(0),proto:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.addr=e.bytes();break;case 2:n.proto.push(e.string());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Te||(Te={}));var Le;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{n.lengthDelimited!==!1&&o.fork(),e.msg!=null&&e.msg!==""&&(o.uint32(10),o.string(e.msg)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={msg:""},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.msg=e.string();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Le||(Le={}));var Xt;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{n.lengthDelimited!==!1&&o.fork(),e.peer!=null&&e.peer.byteLength>0&&(o.uint32(10),o.bytes(e.peer)),e.addr!=null&&e.addr.byteLength>0&&(o.uint32(18),o.bytes(e.addr)),e.proto!=null&&e.proto!==""&&(o.uint32(26),o.string(e.proto)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.peer=e.bytes();break;case 2:n.addr=e.bytes();break;case 3:n.proto=e.string();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Xt||(Xt={}));var it;(function(r){let t;(function(n){n.FIND_PEER="FIND_PEER",n.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",n.FIND_PROVIDERS="FIND_PROVIDERS",n.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",n.GET_PUBLIC_KEY="GET_PUBLIC_KEY",n.GET_VALUE="GET_VALUE",n.SEARCH_VALUE="SEARCH_VALUE",n.PUT_VALUE="PUT_VALUE",n.PROVIDE="PROVIDE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.FIND_PEER=0]="FIND_PEER",n[n.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",n[n.FIND_PROVIDERS=2]="FIND_PROVIDERS",n[n.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",n[n.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",n[n.GET_VALUE=5]="GET_VALUE",n[n.SEARCH_VALUE=6]="SEARCH_VALUE",n[n.PUT_VALUE=7]="PUT_VALUE",n[n.PROVIDE=8]="PROVIDE"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.peer!=null&&(i.uint32(18),i.bytes(n.peer)),n.cid!=null&&(i.uint32(26),i.bytes(n.cid)),n.key!=null&&(i.uint32(34),i.bytes(n.key)),n.value!=null&&(i.uint32(42),i.bytes(n.value)),n.count!=null&&(i.uint32(48),i.int32(n.count)),n.timeout!=null&&(i.uint32(56),i.int64(n.timeout)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.cid=n.bytes();break;case 4:s.key=n.bytes();break;case 5:s.value=n.bytes();break;case 6:s.count=n.int32();break;case 7:s.timeout=n.int64();break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(it||(it={}));var U;(function(r){let t;(function(n){n.BEGIN="BEGIN",n.VALUE="VALUE",n.END="END"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.BEGIN=0]="BEGIN",n[n.VALUE=1]="VALUE",n[n.END=2]="END"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.peer!=null&&(i.uint32(18),At.codec().encode(n.peer,i)),n.value!=null&&(i.uint32(26),i.bytes(n.value)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=At.codec().decode(n,n.uint32());break;case 3:s.value=n.bytes();break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(U||(U={}));var At;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.id!=null&&e.id.byteLength>0&&(o.uint32(10),o.bytes(e.id)),e.addrs!=null)for(let i of e.addrs)o.uint32(18),o.bytes(i);n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={id:new Uint8Array(0),addrs:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.id=e.bytes();break;case 2:n.addrs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(At||(At={}));var Ne;(function(r){let t;(function(n){n.TAG_PEER="TAG_PEER",n.UNTAG_PEER="UNTAG_PEER",n.TRIM="TRIM"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.TAG_PEER=0]="TAG_PEER",n[n.UNTAG_PEER=1]="UNTAG_PEER",n[n.TRIM=2]="TRIM"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.peer!=null&&(i.uint32(18),i.bytes(n.peer)),n.tag!=null&&(i.uint32(26),i.string(n.tag)),n.weight!=null&&(i.uint32(32),i.int64(n.weight)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.peer=n.bytes();break;case 3:s.tag=n.string();break;case 4:s.weight=n.int64();break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(Ne||(Ne={}));var Re;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{n.lengthDelimited!==!1&&o.fork(),e.peer!=null&&e.peer.byteLength>0&&(o.uint32(10),o.bytes(e.peer)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={peer:new Uint8Array(0)},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.peer=e.bytes();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Re||(Re={}));var gt;(function(r){let t;(function(n){n.GET_TOPICS="GET_TOPICS",n.LIST_PEERS="LIST_PEERS",n.PUBLISH="PUBLISH",n.SUBSCRIBE="SUBSCRIBE"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.GET_TOPICS=0]="GET_TOPICS",n[n.LIST_PEERS=1]="LIST_PEERS",n[n.PUBLISH=2]="PUBLISH",n[n.SUBSCRIBE=3]="SUBSCRIBE"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.topic!=null&&(i.uint32(18),i.string(n.topic)),n.data!=null&&(i.uint32(26),i.bytes(n.data)),s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.topic=n.string();break;case 3:s.data=n.bytes();break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(gt||(gt={}));var de;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.from!=null&&(o.uint32(10),o.bytes(e.from)),e.data!=null&&(o.uint32(18),o.bytes(e.data)),e.seqno!=null&&(o.uint32(26),o.bytes(e.seqno)),e.topicIDs!=null)for(let i of e.topicIDs)o.uint32(34),o.string(i);e.signature!=null&&(o.uint32(42),o.bytes(e.signature)),e.key!=null&&(o.uint32(50),o.bytes(e.key)),n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={topicIDs:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.from=e.bytes();break;case 2:n.data=e.bytes();break;case 3:n.seqno=e.bytes();break;case 4:n.topicIDs.push(e.string());break;case 5:n.signature=e.bytes();break;case 6:n.key=e.bytes();break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(de||(de={}));var De;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.topics!=null)for(let i of e.topics)o.uint32(10),o.string(i);if(e.peerIDs!=null)for(let i of e.peerIDs)o.uint32(18),o.bytes(i);n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={topics:[],peerIDs:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.topics.push(e.string());break;case 2:n.peerIDs.push(e.bytes());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(De||(De={}));var Pt;(function(r){let t;(function(n){n.UNSPECIFIED="UNSPECIFIED",n.GET_PROTOCOLS="GET_PROTOCOLS",n.GET_PEER_INFO="GET_PEER_INFO"})(t=r.Type||(r.Type={}));let e;(function(n){n[n.UNSPECIFIED=0]="UNSPECIFIED",n[n.GET_PROTOCOLS=1]="GET_PROTOCOLS",n[n.GET_PEER_INFO=2]="GET_PEER_INFO"})(e||(e={})),function(n){n.codec=()=>mt(e)}(t=r.Type||(r.Type={}));let o;r.codec=()=>(o==null&&(o=L((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.type!=null&&(i.uint32(8),r.Type.codec().encode(n.type,i)),n.id!=null&&(i.uint32(18),i.bytes(n.id)),n.protos!=null)for(let c of n.protos)i.uint32(26),i.string(c);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={protos:[]},c=i==null?n.len:n.pos+i;for(;n.pos>>3){case 1:s.type=r.Type.codec().decode(n);break;case 2:s.id=n.bytes();break;case 3:s.protos.push(n.string());break;default:n.skipType(a&7);break}}return s})),o),r.encode=n=>T(n,r.codec()),r.decode=n=>S(n,r.codec())})(Pt||(Pt={}));var Pe;(function(r){let t;r.codec=()=>(t==null&&(t=L((e,o,n={})=>{if(n.lengthDelimited!==!1&&o.fork(),e.peer!=null&&(o.uint32(10),At.codec().encode(e.peer,o)),e.protos!=null)for(let i of e.protos)o.uint32(18),o.string(i);n.lengthDelimited!==!1&&o.ldelim()},(e,o)=>{let n={protos:[]},i=o==null?e.len:e.pos+o;for(;e.pos>>3){case 1:n.peer=At.codec().decode(e,e.uint32());break;case 2:n.protos.push(e.string());break;default:e.skipType(s&7);break}}return n})),t),r.encode=e=>T(e,r.codec()),r.decode=e=>S(e,r.codec())})(Pe||(Pe={}));var Yr={upgradeInbound:async r=>r,upgradeOutbound:async r=>r};var j=St(bo(),1);j.default.formatters.b=r=>r==null?"undefined":D.baseEncode(r);j.default.formatters.t=r=>r==null?"undefined":lt.baseEncode(r);j.default.formatters.m=r=>r==null?"undefined":Rr.baseEncode(r);j.default.formatters.p=r=>r==null?"undefined":r.toString();j.default.formatters.c=r=>r==null?"undefined":r.toString();j.default.formatters.k=r=>r==null?"undefined":r.toString();j.default.formatters.a=r=>r==null?"undefined":r.toString();function fc(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function wo(){return{forComponent(r){return Ot(r)}}}function Ot(r){let t=fc(`${r}:trace`);return j.default.enabled(`${r}:trace`)&&j.default.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=(0,j.default)(`${r}:trace`)),Object.assign((0,j.default)(r),{error:(0,j.default)(`${r}:error`),trace:t})}var qr=Symbol.for("@libp2p/peer-id");var xo=Symbol.for("@libp2p/transport");var Eo;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Eo||(Eo={}));var fe=class r extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},P=class extends Error{code;props;constructor(t,e,o){super(t),this.code=e,this.name=o?.name??"CodeError",this.props=o??{}}};var Io=H("events"),Ao=(r,...t)=>{try{(0,Io.setMaxListeners)(r,...t)}catch{}};var Fe=class extends EventTarget{#t=new Map;constructor(){super(),Ao(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,o){super.addEventListener(t,e,o);let n=this.#t.get(t);n==null&&(n=[],this.#t.set(t,n)),n.push({callback:e,once:(o!==!0&&o!==!1&&o?.once)??!1})}removeEventListener(t,e,o){super.removeEventListener(t.toString(),e??null,o);let n=this.#t.get(t);n!=null&&(n=n.filter(({callback:i})=>i!==e),this.#t.set(t,n))}dispatchEvent(t){let e=super.dispatchEvent(t),o=this.#t.get(t.type);return o==null||(o=o.filter(({once:n})=>!n),this.#t.set(t.type,o)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new hc(t,e))}},jr=class extends Event{detail;constructor(t,e){super(t,e),this.detail=e?.detail}},hc=globalThis.CustomEvent??jr;var Co=Symbol.for("@libp2p/service-capabilities"),ol=Symbol.for("@libp2p/service-dependencies");function _t(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;er.decoder).reduce((r,t)=>r.or(t),It.identity.decoder),Lo=114,No=36,Ro=37,he=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[qr]=!0;toString(){return this.string==null&&(this.string=D.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return $.createV1(Lo,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return _t(this.multihash.bytes,t);if(typeof t=="string")return pc(t).equals(this);if(t?.multihash?.bytes!=null)return _t(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[To](){return`PeerId(${this.toString()})`}},pe=class extends he{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},me=class extends he{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},ge=class extends he{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}},tn=2336,en=class{type="url";multihash;privateKey;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=ce.digest(pt(this.url))}[To](){return`PeerId(${this.url})`}[qr]=!0;toString(){return this.toCID().toString()}toCID(){return $.createV1(tn,this.multihash)}toBytes(){return this.toCID().bytes}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=F(t)),t.toString()===this.toString())}};function pc(r,t){if(t=t??So,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=Nt(D.decode(`z${r}`));return r.startsWith("12D")?new me({multihash:e}):r.startsWith("16U")?new ge({multihash:e}):new pe({multihash:e})}return Ut(So.decode(r))}function Ut(r){try{let t=Nt(r);if(t.code===ce.code){if(t.digest.length===No)return new me({multihash:t});if(t.digest.length===Ro)return new ge({multihash:t})}if(t.code===Ee.code)return new pe({multihash:t})}catch{return mc($.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function mc(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==Lo&&r.code!==tn)throw new Error("Supplied PeerID CID is invalid");if(r.code===tn){let e=F(r.multihash.digest);return new en(new URL(e))}let t=r.multihash;if(t.code===Ee.code)return new pe({multihash:r.multihash});if(t.code===ce.code){if(t.digest.length===No)return new me({multihash:r.multihash});if(t.digest.length===Ro)return new ge({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}var ii=St(H("net"),1);var Do=H("node:buffer");function st(r,t){return Tt(Do.Buffer.concat(r,t))}var Me=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,o=t();return o===void 0&&(this.index=e),o}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,o){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return o()})}readNumber(t,e,o,n){return this.readAtomically(()=>{let i=0,s=0,c=this.peekChar();if(c===void 0)return;let a=c==="0",f=2**(8*n)-1;for(;;){let u=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let g=Number.parseInt(l,t);if(!Number.isNaN(g))return g});if(u===void 0)break;if(i*=t,i+=u,i>f||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!o&&a&&s>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;ethis.readNumber(10,3,!1,1));if(o===void 0)return;t[e]=o}return t})}readIPv6Addr(){let t=e=>{for(let o=0;othis.readIPv4Addr());if(s!==void 0)return e[n]=s[0],e[n+1]=s[1],e[n+2]=s[2],e[n+3]=s[3],[n+4,!0]}let i=this.readSeparator(":",o,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[n,!1];e[n]=i>>8,e[n+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[o,n]=t(e);if(o===16)return e;if(n||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),s=16-(o+2),[c]=t(i.subarray(0,s));return e.set(i.subarray(0,c),16-c),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Wl=new Me;var jl=parseInt("0xFFFF",16),td=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var ct=H("node:net");function Be(r){return!!(0,ct.isIP)(r)}var Oo=ct.isIPv4,xc=ct.isIPv6,rn=function(r){let t=0;if(r=r.toString().trim(),Oo(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(o=>{e[t++]=parseInt(o,10)&255}),e}if(xc(r)){let e=r.split(":",8),o;for(o=0;o0;o--)i.push("0");e.splice.apply(e,i)}let n=new Uint8Array(t+16);for(o=0;o>8&255,n[t++]=i&255}return n}throw new Error("invalid ip address")},_o=function(r,t=0,e){t=~~t,e=e??r.length-t;let o=new DataView(r.buffer);if(e===4){let n=[];for(let i=0;i{let t=Cc(...r);nn[t.code]=t,qt[t.name]=t});function Cc(r,t,e,o,n){return{code:r,size:t,name:e,resolvable:!!o,path:!!n}}function I(r){if(typeof r=="number"){if(nn[r]!=null)return nn[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(qt[r]!=null)return qt[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var Md=I("ip4"),Bd=I("ip6"),Gd=I("ipcidr");function an(r,t){switch(I(r).code){case 4:case 41:return Sc(t);case 42:return cn(t);case 6:case 273:case 33:case 132:return Mo(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return cn(t);case 421:return Rc(t);case 444:return Fo(t);case 445:return Fo(t);case 466:return Nc(t);case 481:return globalThis.encodeURIComponent(cn(t));default:return F(t,"base16")}}function un(r,t){switch(I(r).code){case 4:return Uo(t);case 41:return Uo(t);case 42:return sn(t);case 6:case 273:case 33:case 132:return ln(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sn(t);case 421:return Tc(t);case 444:return Dc(t);case 445:return Pc(t);case 466:return Lc(t);case 481:return sn(globalThis.decodeURIComponent(t));default:return pt(t,"base16")}}var on=Object.values(It).map(r=>r.decoder),vc=function(){let r=on[0].or(on[1]);return on.slice(2).forEach(t=>r=r.or(t)),r}();function Uo(r){if(!Be(r))throw new Error("invalid ip address");return rn(r)}function Sc(r){let t=_o(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Be(t))throw new Error("invalid ip address");return t}function ln(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Mo(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function sn(r){let t=pt(r),e=Uint8Array.from(ft(t.length));return st([e,t],e.length+t.length)}function cn(r){let t=at(r);if(r=r.slice(v(t)),r.length!==t)throw new Error("inconsistent lengths");return F(r)}function Tc(r){let t;r[0]==="Q"||r[0]==="1"?t=Nt(D.decode(`z${r}`)).bytes:t=$.parse(r).multihash.bytes;let e=Uint8Array.from(ft(t.length));return st([e,t],e.length+t.length)}function Lc(r){let t=vc.decode(r),e=Uint8Array.from(ft(t.length));return st([e,t],e.length+t.length)}function Nc(r){let t=at(r),e=r.slice(v(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+F(e,"base64url")}function Rc(r){let t=at(r),e=r.slice(v(t));if(e.length!==t)throw new Error("inconsistent lengths");return F(e,"base58btc")}function Dc(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=lt.decode("b"+t[0]),o=parseInt(t[1],10);if(o<1||o>65536)throw new Error("Port number is not in range(1, 65536)");let n=ln(o);return st([e,n],e.length+n.length)}function Pc(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=lt.decode(`b${t[0]}`),o=parseInt(t[1],10);if(o<1||o>65536)throw new Error("Port number is not in range(1, 65536)");let n=ln(o);return st([e,n],e.length+n.length)}function Fo(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),o=F(t,"base32"),n=Mo(e);return`${o}:${n}`}function Bo(r){r=dn(r);let t=[],e=[],o=null,n=r.split("/").slice(1);if(n.length===1&&n[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i=n.length)throw Vo("invalid address: "+r);if(c.path===!0){o=dn(n.slice(i).join("/")),t.push([c.code,un(c.code,o)]),e.push([c.code,o]);break}let a=un(c.code,n[i]);t.push([c.code,a]),e.push([c.code,an(c.code,a)])}return{string:Go(e),bytes:hn(t),tuples:t,stringTuples:e,path:o}}function fn(r){let t=[],e=[],o=null,n=0;for(;nr.length)throw Vo("Invalid address Uint8Array: "+F(r,"base16"));t.push([i,f]);let u=an(i,f);if(e.push([i,u]),c.path===!0){o=u;break}}return{bytes:Uint8Array.from(r),string:Go(e),tuples:t,stringTuples:e,path:o}}function Go(r){let t=[];return r.map(e=>{let o=I(e[0]);return t.push(o.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),dn(t.join("/"))}function hn(r){return st(r.map(t=>{let e=I(t[0]),o=Uint8Array.from(ft(e.code));return t.length>1&&t[1]!=null&&(o=st([o,t[1]])),o}))}function kc(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=at(t instanceof Uint8Array?t:Uint8Array.from(t));return e+v(e)}}function dn(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Vo(r){return new Error("Error parsing address: "+r)}var Oc=Symbol.for("nodejs.util.inspect.custom"),pn=Symbol.for("@multiformats/js-multiaddr/multiaddr"),_c=[I("dns").code,I("dns4").code,I("dns6").code,I("dnsaddr").code],Ge=class r{bytes;#t;#e;#r;#n;[pn]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=fn(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=Bo(t)}else if(zo(t))e=fn(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,o,n,i="",s=I("tcp"),c=I("udp"),a=I("ip4"),f=I("ip6"),u=I("dns6"),l=I("ip6zone");for(let[b,p]of this.stringTuples())b===l.code&&(i=`%${p??""}`),_c.includes(b)&&(e=s.name,n=443,o=`${p??""}${i}`,t=b===u.code?6:4),(b===s.code||b===c.code)&&(e=I(b).name,n=parseInt(p??"")),(b===a.code||b===f.code)&&(e=I(b).name,o=`${p??""}${i}`,t=b===f.code?6:4);if(t==null||e==null||o==null||n==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:o,transport:e,port:n}}protos(){return this.#e.map(([t])=>Object.assign({},I(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>I(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),o=this.toString(),n=o.lastIndexOf(e);if(n<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(o.slice(0,n))}decapsulateCode(t){let e=this.tuples();for(let o=e.length-1;o>=0;o--)if(e[o][0]===t)return new r(hn(e.slice(0,o)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([o,n])=>{o===qt.p2p.code&&t.push([o,n]),o===qt["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let o=e[1];return o[0]==="Q"||o[0]==="1"?F(D.decode(`z${o}`),"base58btc"):F($.parse(o).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return _t(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let o=$o.get(e.name);if(o==null)throw new P(`no available resolver for ${e.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await o(this,t)).map(i=>K(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[Oc](){return`Multiaddr(${this.#t})`}};var $o=new Map;function zo(r){return!!r?.[pn]}function K(r){return new Ge(r)}var Uc=d("dns4"),Fc=d("dns6"),Mc=d("dnsaddr"),Mt=C(d("dns"),Mc,Uc,Fc),ze=C(d("ip4"),d("ip6")),vt=C(m(ze,d("tcp")),m(Mt,d("tcp"))),He=m(ze,d("udp")),Bc=m(He,d("utp")),Gc=m(He,d("quic")),Vc=m(He,d("quic-v1")),mn=C(m(vt,d("ws")),m(Mt,d("ws"))),Ve=C(m(mn,d("p2p")),mn),gn=C(m(vt,d("wss")),m(Mt,d("wss")),m(vt,d("tls"),d("ws")),m(Mt,d("tls"),d("ws"))),$e=C(m(gn,d("p2p")),gn),yn=C(m(vt,d("http")),m(ze,d("http")),m(Mt,d("http"))),bn=C(m(vt,d("https")),m(ze,d("https")),m(Mt,d("https"))),Ho=m(He,d("webrtc-direct"),d("certhash")),Xo=C(m(Ho,d("p2p")),Ho),Wo=m(Vc,d("webtransport"),d("certhash"),d("certhash")),Yo=C(m(Wo,d("p2p")),Wo),Qo=C(m(Ve,d("p2p-webrtc-star"),d("p2p")),m($e,d("p2p-webrtc-star"),d("p2p")),m(Ve,d("p2p-webrtc-star")),m($e,d("p2p-webrtc-star"))),hf=C(m(Ve,d("p2p-websocket-star"),d("p2p")),m($e,d("p2p-websocket-star"),d("p2p")),m(Ve,d("p2p-websocket-star")),m($e,d("p2p-websocket-star"))),Jo=C(m(yn,d("p2p-webrtc-direct"),d("p2p")),m(bn,d("p2p-webrtc-direct"),d("p2p")),m(yn,d("p2p-webrtc-direct")),m(bn,d("p2p-webrtc-direct"))),Bt=C(mn,gn,yn,bn,Qo,Jo,vt,Bc,Gc,Mt,Xo,Yo),pf=C(m(Bt,d("p2p-stardust"),d("p2p")),m(Bt,d("p2p-stardust"))),Ct=C(m(Bt,d("p2p")),Qo,Jo,Xo,Yo,d("p2p")),Ko=C(m(Ct,d("p2p-circuit"),Ct),m(Ct,d("p2p-circuit")),m(d("p2p-circuit"),Ct),m(Bt,d("p2p-circuit")),m(d("p2p-circuit"),Bt),d("p2p-circuit")),Zo=()=>C(m(Ko,Zo),Ko),Ft=Zo(),mf=C(m(Ft,Ct,Ft),m(Ct,Ft),m(Ft,Ct),Ft,Ct);var gf=C(m(Ft,d("webrtc"),d("p2p")),m(Ft,d("webrtc")),m(Bt,d("webrtc"),d("p2p")),m(Bt,d("webrtc")),d("webrtc"));function qo(r){function t(e){let o;try{o=K(e)}catch{return!1}let n=r(o.protoNames());return n===null?!1:n===!0||n===!1?n:n.length===0}return t}function m(...r){function t(e){if(e.length(o=typeof n=="function"?n().partialMatch(e):n.partialMatch(e),Array.isArray(o)&&(e=o),o===null)),o}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:qo(t),partialMatch:t}}function C(...r){function t(o){let n=null;return r.some(i=>{let s=typeof i=="function"?i().partialMatch(o):i.partialMatch(o);return s!=null?(n=s,!0):!1}),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:qo(t),partialMatch:t}}function d(r){let t=r;function e(n){let i;try{i=K(n)}catch{return!1}let s=i.protoNames();return s.length===1&&s[0]===t}function o(n){return n.length===0?null:n[0]===t?n.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:o}}var We=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var oi=St(H("net"),1);var wn={ERR_INVALID_IP_PARAMETER:"ERR_INVALID_IP_PARAMETER",ERR_INVALID_PORT_PARAMETER:"ERR_INVALID_PORT_PARAMETER",ERR_INVALID_IP:"ERR_INVALID_IP"};function jo(r,t){if(typeof r!="string")throw new P(`invalid ip provided: ${r}`,wn.ERR_INVALID_IP_PARAMETER);if(typeof t=="string"&&(t=parseInt(t)),isNaN(t))throw new P(`invalid port provided: ${t}`,wn.ERR_INVALID_PORT_PARAMETER);if((0,ct.isIPv4)(r))return K(`/ip4/${r}/tcp/${t}`);if((0,ct.isIPv6)(r))return K(`/ip6/${r}/tcp/${t}`);throw new P(`invalid ip:port for creating a multiaddr: ${r}:${t}`,wn.ERR_INVALID_IP)}function ti(r){if(Hc(r))return async function*(){let t=r.getReader();try{for(;;){let{done:e,value:o}=await t.read();if(e)return;yield o}}finally{t.releaseLock()}}();if(zc(r))return r;throw new Error("unknown stream")}function zc(r){return r[Symbol.asyncIterator]!=null}function Hc(r){return typeof r?.getReader=="function"}function ei(r){return async t=>{let e=async()=>{Wc(t)&&await t.return(void 0)},o,n,i=w=>{o=w,e().catch(E=>{E=new AggregateError([o,E],"The Writable emitted an error, additionally an error occurred while ending the Source")}).finally(()=>{n?.(w)})},s,c=!1,a=()=>{c=!0,s?.()},f,u=!1,l=()=>{u=!0,f?.()},g,b=()=>{g?.()},p=async()=>new Promise((w,E)=>{s=g=w,n=E,r.once("drain",b)}),y=async()=>(await e(),new Promise((w,E)=>{if(c||u||o!=null){w();return}f=s=w,n=E})),h=()=>{r.removeListener("error",i),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("drain",b)};r.once("error",i),r.once("close",a),r.once("finish",l);try{for await(let w of t){if(!r.writable||r.destroyed||o!=null)break;r.write(w)||await p()}}catch(w){o==null&&r.destroy(w),o=w}try{if(r.writable&&r.end(),await y(),o!=null)throw o}finally{h()}}}function Wc(r){return r.return!=null}function En(r){return{sink:ei(r),source:ti(r)}}var xn=St(H("os"),1),ri=St(H("path"),1);var Kc={ip4:"IPv4",ip6:"IPv6"};function jt(r,t={}){let e=r.getPath();return e!=null?xn.default.platform()==="win32"?{path:ri.default.join("\\\\.\\pipe\\",e)}:{path:e}:{...t,...r.toOptions()}}function In(r,t,e){let o=n=>K(`/${r}/${n}/tcp/${e}`);return(Xc(t)?Qc(Kc[r]):[t]).map(o)}function Xc(r){return["0.0.0.0","::"].includes(r)}var Yc=xn.default.networkInterfaces();function Qc(r){let t=[];for(let[,e]of Object.entries(Yc))if(e!=null)for(let o of e)o.family===r&&t.push(o.address);return t}var Ke=(r,t)=>{let e=null,o=t.logger.forComponent("libp2p:tcp:socket"),n=t.metrics,i=t.metricPrefix??"",s=t.socketInactivityTimeout??3e5,c=t.socketCloseTimeout??500;t.listeningAddr?.getPath()!=null&&(t.remoteAddr=t.listeningAddr),t.remoteAddr?.getPath()!=null&&(t.localAddr=t.remoteAddr);let a;if(t.remoteAddr!=null)a=t.remoteAddr;else{if(r.remoteAddress==null||r.remotePort==null)throw new P("Could not determine remote address or port","ERR_NO_REMOTE_ADDRESS");a=jo(r.remoteAddress,r.remotePort)}let f=jt(a),u=f.path??`${f.host??""}:${f.port??""}`,{sink:l,source:g}=En(r);r.setTimeout(s,()=>{o("%s socket read timeout",u),n?.increment({[`${i}timeout`]:!0});let p;r.readable&&(p=new P("Socket read timeout","ERR_SOCKET_READ_TIMEOUT")),r.destroy(p)}),r.once("close",()=>{o("%s socket close",u),n?.increment({[`${i}close`]:!0}),b.timeline.close==null&&(b.timeline.close=Date.now())}),r.once("end",()=>{o("%s socket end",u),n?.increment({[`${i}end`]:!0})});let b={async sink(p){try{await l(async function*(){for await(let y of p)y instanceof Uint8Array?yield y:yield y.subarray()}())}catch(y){y.type!=="aborted"&&o.error("%s error in sink",u,y)}r.end()},source:g,remoteAddr:a,timeline:{open:Date.now()},async close(p={}){if(r.destroyed){o("The %s socket is destroyed",u);return}if(e!=null)return o("The %s socket is closed or closing",u),e;if(p.signal==null){let h=AbortSignal.timeout(c);p={...p,signal:h}}let y=()=>{r.destroy(new P("Destroying socket after timeout","ERR_CLOSE_TIMEOUT"))};p.signal?.addEventListener("abort",y);try{o("%s closing socket",u),e=new Promise((h,w)=>{r.once("close",()=>{o("%s socket closed",u),h()}),r.once("error",E=>{o("%s socket error",u,E),b.timeline.close==null&&(b.timeline.close=Date.now()),r.destroyed||w(E)}),r.setTimeout(c),r.end(),r.writableLength>0?r.once("drain",()=>{o("%s socket drained",u),r.destroy()}):r.destroy()}),await e}catch(h){this.abort(h)}finally{p.signal?.removeEventListener("abort",y)}},abort:p=>{o("%s socket abort due to error",u,p),r.destroyed||r.destroy(p),b.timeline.close==null&&(b.timeline.close=Date.now())},log:o};return b};async function ni(r,t){try{await r.close()}catch(e){t.log.error("an error occurred closing the connection",e),r.abort(e)}}var _;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(_||(_={}));var Xe=class extends Fe{context;server;connections=new Set;status={code:_.INACTIVE};metrics;addr;log;constructor(t){if(super(),this.context=t,t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,this.log=t.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=oi.default.createServer(t,this.onSocket.bind(this)),t.maxConnections!==void 0&&(this.server.maxConnections=t.maxConnections),t.closeServerOnMaxConnections!=null&&t.closeServerOnMaxConnections.closeAbove= listenBelow","ERR_CONNECTION_LIMITS");this.server.on("listening",()=>{if(t.metrics!=null){let e=this.server.address();e==null?this.addr="unknown":typeof e=="string"?this.addr=e:this.addr=`${e.address}:${e.port}`,t.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.connections.size})}),this.metrics={status:t.metrics.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:t.metrics.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:t.metrics.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.metrics?.status.update({[this.addr]:_.ACTIVE})}this.safeDispatchEvent("listening")}).on("error",e=>{this.metrics?.errors.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:e})}).on("close",()=>{this.metrics?.status.update({[this.addr]:this.status.code}),this.status.code!==_.PAUSED&&this.safeDispatchEvent("close")})}onSocket(t){if(this.status.code!==_.ACTIVE)throw new P("Server is not listening yet","ERR_SERVER_NOT_RUNNING");t.on("error",o=>{this.log("socket error",o),this.metrics?.events.increment({[`${this.addr} error`]:!0})});let e;try{e=Ke(t,{listeningAddr:this.status.listeningAddr,socketInactivityTimeout:this.context.socketInactivityTimeout,socketCloseTimeout:this.context.socketCloseTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,logger:this.context.logger})}catch(o){this.log.error("inbound connection failed",o),this.metrics?.errors.increment({[`${this.addr} inbound_to_connection`]:!0});return}this.log("new inbound connection %s",e.remoteAddr);try{this.context.upgrader.upgradeInbound(e).then(o=>{this.log("inbound connection upgraded %s",e.remoteAddr),this.connections.add(e),t.once("close",()=>{this.connections.delete(e),this.context.closeServerOnMaxConnections!=null&&this.connections.size{this.log.error("error attempting to listen server once connection count under limit",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.handler!=null&&this.context.handler(o),this.context.closeServerOnMaxConnections!=null&&this.connections.size>=this.context.closeServerOnMaxConnections.closeAbove&&this.pause(!1).catch(n=>{this.log.error("error attempting to close server once connection count over limit",n)}),this.safeDispatchEvent("connection",{detail:o})}).catch(async o=>{this.log.error("inbound connection failed",o),this.metrics?.errors.increment({[`${this.addr} inbound_upgrade`]:!0}),await ni(e,{log:this.log})}).catch(o=>{this.log.error("closing inbound connection failed",o)})}catch(o){this.log.error("inbound connection failed",o),ni(e,{log:this.log}).catch(n=>{this.log.error("closing inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_closing_failed`]:!0})})}}getAddrs(){if(this.status.code===_.INACTIVE)return[];let t=[],e=this.server.address(),{listeningAddr:o,peerId:n}=this.status;if(e==null)return[];if(typeof e=="string")t=[o];else try{o.toString().startsWith("/ip4")?t=t.concat(In("ip4",e.address,e.port)):e.family==="IPv6"&&(t=t.concat(In("ip6",e.address,e.port)))}catch(i){this.log.error("could not turn %s:%s into multiaddr",e.address,e.port,i)}return t.map(i=>n!=null?i.encapsulate(`/p2p/${n}`):i)}async listen(t){if(this.status.code===_.ACTIVE||this.status.code===_.PAUSED)throw new P("server is already listening","ERR_SERVER_ALREADY_LISTENING");let e=t.getPeerId(),o=e==null?t.decapsulateCode(421):t,{backlog:n}=this.context;try{this.status={code:_.ACTIVE,listeningAddr:o,peerId:e,netConfig:jt(o,{backlog:n})},await this.resume()}catch(i){throw this.status={code:_.INACTIVE},i}}async close(){let t=new P("Listener is closing","ERR_LISTENER_CLOSING");this.connections.forEach(e=>{e.abort(t)}),await this.pause(!0)}async resume(){if(this.server.listening||this.status.code===_.INACTIVE)return;let t=this.status.netConfig;await new Promise((e,o)=>{this.server.once("error",o),this.server.listen(t,e)}),this.status={...this.status,code:_.ACTIVE},this.log("listening on %s",this.server.address())}async pause(t){if(!this.server.listening&&this.status.code===_.PAUSED&&t){this.status={code:_.INACTIVE};return}!this.server.listening||this.status.code!==_.ACTIVE||(this.log("closing server on %s",this.server.address()),this.status=t?{code:_.INACTIVE}:{...this.status,code:_.PAUSED},await new Promise((e,o)=>{this.server.close(n=>{if(n!=null){o(n);return}e()})}))}};var An=class{opts;metrics;components;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:tcp"),this.opts=e,this.components=t,t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[xo]=!0;[Symbol.toStringTag]="@libp2p/tcp";[Co]=["@libp2p/transport"];async dial(t,e){e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0;let o=await this._connect(t,e);o.on("error",c=>{this.log("socket error",c)});let n=Ke(o,{remoteAddr:t,socketInactivityTimeout:this.opts.outboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.metrics?.dialerEvents,logger:this.components.logger}),i=()=>{n.close().catch(c=>{this.log.error("Error closing maConn after abort",c)})};e.signal?.addEventListener("abort",i,{once:!0}),this.log("new outbound connection %s",n.remoteAddr);let s=await e.upgrader.upgradeOutbound(n);if(this.log("outbound connection %s upgraded",n.remoteAddr),e.signal?.removeEventListener("abort",i),e.signal?.aborted===!0)throw s.close().catch(c=>{this.log.error("Error closing conn after abort",c)}),new fe;return s}async _connect(t,e){return e.signal?.throwIfAborted(),e.onProgress?.(new We("tcp:open-connection")),new Promise((o,n)=>{let i=Date.now(),s=jt(t,{...this.opts.dialOpts??{},...e});this.log("dialing %a",t);let c=ii.default.connect(s),a=b=>{let p=s.path??`${s.host??""}:${s.port}`;b.message=`connection error ${p}: ${b.message}`,this.metrics?.dialerEvents.increment({error:!0}),g(b)},f=()=>{this.log("connection timeout %a",t),this.metrics?.dialerEvents.increment({timeout:!0});let b=new P(`connection timeout after ${Date.now()-i}ms`,"ERR_CONNECT_TIMEOUT");c.emit("error",b)},u=()=>{this.log("connection opened %a",t),this.metrics?.dialerEvents.increment({connect:!0}),g()},l=()=>{this.log("connection aborted %a",t),this.metrics?.dialerEvents.increment({abort:!0}),c.destroy(),g(new fe)},g=b=>{if(c.removeListener("error",a),c.removeListener("timeout",f),c.removeListener("connect",u),e.signal!=null&&e.signal.removeEventListener("abort",l),b!=null){n(b);return}o(c)};c.on("error",a),c.on("timeout",f),c.on("connect",u),e.signal!=null&&e.signal.addEventListener("abort",l)})}createListener(t){return new Xe({...this.opts.listenOpts??{},...t,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,socketInactivityTimeout:this.opts.inboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>e.protoCodes().includes(290)?!1:e.protoCodes().includes(400)?!0:vt.matches(e.decapsulateCode(421)))}dialFilter(t){return this.listenFilter(t)}};function si(r={}){return t=>new An(t,r)}var ai=Symbol.for("@achingbrain/uint8arraylist");function ci(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let o of r){let n=e+o.byteLength;if(t0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let o of t)if(o instanceof Uint8Array)e+=o.byteLength,this.bufs.push(o);else if(Ye(o))e+=o.byteLength,this.bufs.push(...o.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let o of t.reverse())if(o instanceof Uint8Array)e+=o.byteLength,this.bufs.unshift(o);else if(Ye(o))e+=o.byteLength,this.bufs.unshift(...o.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=ci(this.bufs,t);return e.buf[e.index]}set(t,e){let o=ci(this.bufs,t);o.buf[o.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let o=0;o0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:o,length:n}=this._subList(t,e);return st(o,n)}subarray(t,e){let{bufs:o,length:n}=this._subList(t,e);return o.length===1?o[0]:st(o,n)}sublist(t,e){let{bufs:o,length:n}=this._subList(t,e),i=new r;return i.length=n,i.bufs=[...o],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let o=[],n=0;for(let i=0;i=a)continue;let f=t>=c&&tc&&e<=a;if(f&&u){if(t===c&&e===a){o.push(s);break}let l=t-c;o.push(s.subarray(l,l+(e-t)));break}if(f){if(t===0){o.push(s);continue}o.push(s.subarray(t-c));continue}if(u){if(e===a){o.push(s);break}o.push(s.subarray(0,e-c));break}o.push(s)}return{bufs:o,length:e-t}}indexOf(t,e=0){if(!Ye(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let o=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let n=o.byteLength;if(n===0)throw new TypeError("search must be at least 1 byte long");let i=256,s=new Int32Array(i);for(let l=0;l=0;g--){let b=this.get(l+g);if(o[g]!==b){u=Math.max(1,g-c[b]);break}}if(u===0)return l}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let o=W(1);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt8(0,e),this.write(o,t)}getInt16(t,e){let o=this.subarray(t,t+2);return new DataView(o.buffer,o.byteOffset,o.byteLength).getInt16(0,e)}setInt16(t,e,o){let n=ht(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt16(0,e,o),this.write(n,t)}getInt32(t,e){let o=this.subarray(t,t+4);return new DataView(o.buffer,o.byteOffset,o.byteLength).getInt32(0,e)}setInt32(t,e,o){let n=ht(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt32(0,e,o),this.write(n,t)}getBigInt64(t,e){let o=this.subarray(t,t+8);return new DataView(o.buffer,o.byteOffset,o.byteLength).getBigInt64(0,e)}setBigInt64(t,e,o){let n=ht(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigInt64(0,e,o),this.write(n,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let o=W(1);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint8(0,e),this.write(o,t)}getUint16(t,e){let o=this.subarray(t,t+2);return new DataView(o.buffer,o.byteOffset,o.byteLength).getUint16(0,e)}setUint16(t,e,o){let n=ht(2);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint16(0,e,o),this.write(n,t)}getUint32(t,e){let o=this.subarray(t,t+4);return new DataView(o.buffer,o.byteOffset,o.byteLength).getUint32(0,e)}setUint32(t,e,o){let n=ht(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(0,e,o),this.write(n,t)}getBigUint64(t,e){let o=this.subarray(t,t+8);return new DataView(o.buffer,o.byteOffset,o.byteLength).getBigUint64(0,e)}setBigUint64(t,e,o){let n=ht(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setBigUint64(0,e,o),this.write(n,t)}getFloat32(t,e){let o=this.subarray(t,t+4);return new DataView(o.buffer,o.byteOffset,o.byteLength).getFloat32(0,e)}setFloat32(t,e,o){let n=ht(4);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat32(0,e,o),this.write(n,t)}getFloat64(t,e){let o=this.subarray(t,t+8);return new DataView(o.buffer,o.byteOffset,o.byteLength).getFloat64(0,e)}setFloat64(t,e,o){let n=ht(8);new DataView(n.buffer,n.byteOffset,n.byteLength).setFloat64(0,e,o),this.write(n,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;en+i.byteLength,0)),o.length=e,o}};function Qe(r){return r[Symbol.asyncIterator]!=null}var Je=r=>{let t=v(r),e=W(t);return ft(r,e),Je.bytes=t,e};Je.bytes=0;function Ze(r,t){t=t??{};let e=t.lengthEncoder??Je;function*o(n){let i=e(n.byteLength);i instanceof Uint8Array?yield i:yield*i,n instanceof Uint8Array?yield n:yield*n}return Qe(r)?async function*(){for await(let n of r)yield*o(n)}():function*(){for(let n of r)yield*o(n)}()}Ze.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Je;return new tt(e(r.byteLength),r)};var te=St(di(),1);var qc=8,jc=1024*1024*4,Gt;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Gt||(Gt={}));var vn=r=>{let t=at(r);return vn.bytes=v(t),t};vn.bytes=0;function Cn(r,t){let e=new tt,o=Gt.LENGTH,n=-1,i=t?.lengthDecoder??vn,s=t?.maxLengthLength??qc,c=t?.maxDataLength??jc;function*a(){for(;e.byteLength>0;){if(o===Gt.LENGTH)try{if(n=i(e),n<0)throw(0,te.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(n>c)throw(0,te.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let f=i.bytes;e.consume(f),t?.onLength!=null&&t.onLength(n),o=Gt.DATA}catch(f){if(f instanceof RangeError){if(e.byteLength>s)throw(0,te.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw f}if(o===Gt.DATA){if(e.byteLength0)throw(0,te.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let f of r)e.append(f),yield*a();if(e.byteLength>0)throw(0,te.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Cn.fromReader=(r,t)=>{let e=1,o=async function*(){for(;;)try{let{done:i,value:s}=await r.next(e);if(i===!0)return;s!=null&&(yield s)}catch(i){if(i.code==="ERR_UNDER_READ")return{done:!0,value:null};throw i}finally{e=1}}();return Cn(o,{...t??{},onLength:i=>{e=i}})};function yt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var qe=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function fi(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new qe(e?.errorMessage,e?.errorCode));let o,n=new qe(e?.errorMessage,e?.errorCode);try{return await Promise.race([r,new Promise((i,s)=>{o=()=>{s(n)},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var Sn=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=yt(),this.haveNext=yt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=yt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=yt(),await fi(this.readNext.promise,e?.signal,e)}};function hi(){return new Sn}var je=class extends Error{code;constructor(t,e){super(t),this.code=e}},Tn=class extends je{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function pi(r,t){let e=hi();r.sink(e).catch(async s=>{await e.end(s)}),r.sink=async s=>{for await(let c of s)await e.push(c);await e.end()};let o=r.source;r.source[Symbol.iterator]!=null?o=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(o=r.source[Symbol.asyncIterator]());let n=new tt;return{read:async(s,c)=>{c?.signal?.throwIfAborted();let a,f=new Promise((u,l)=>{a=()=>{l(new Tn("Read aborted"))},c?.signal?.addEventListener("abort",a)});try{if(s==null){let{done:l,value:g}=await Promise.race([o.next(),f]);return l===!0?new tt:g}for(;n.byteLength{c?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,c):await e.push(s.subarray(),c)},unwrap:()=>{if(n.byteLength>0){let s=r.source;r.source=async function*(){t?.yieldBytes===!1?yield n:yield*n,yield*s}()}return r}}}var tr=class extends Error{code;constructor(t,e){super(t),this.code=e}};function ee(r,t={}){let e=pi(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=v(t.maxDataLength));let o=t?.lengthDecoder??at,n=t?.lengthEncoder??ft;return{read:async s=>{let c=-1,a=new tt;for(;;){a.append(await e.read(1,s));try{c=o(a)}catch(f){if(f instanceof RangeError)continue;throw f}if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new tr("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(c>-1)break}if(t?.maxDataLength!=null&&c>t.maxDataLength)throw new tr("message length too long","ERR_MSG_DATA_TOO_LONG");return e.read(c,s)},write:async(s,c)=>{await e.write(new tt(n(s.byteLength),s),c)},writeV:async(s,c)=>{let a=new tt(...s.flatMap(f=>[n(f.byteLength),f]));await e.write(a,c)},unwrap:()=>e.unwrap()}}var er=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},re=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new er(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new er(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Ln=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function ne(r={}){return ea(e=>{let o=e.shift();if(o==null)return{done:!0};if(o.error!=null)throw o.error;return{done:o.done===!0,value:o.value}},r)}function ea(r,t){t=t??{};let e=t.onEnd,o=new re,n,i,s,c=yt(),a=async()=>{try{return o.isEmpty()?s?{done:!0}:await new Promise((h,w)=>{i=E=>{i=null,o.push(E);try{h(r(o))}catch(R){w(R)}return n}}):r(o)}finally{o.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=yt()})}},f=h=>i!=null?i(h):(o.push(h),n),u=h=>(o=new re,i!=null?i({error:h}):(o.push({error:h}),n)),l=h=>{if(s)return n;if(t?.objectMode!==!0&&h?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:h})},g=h=>s?n:(s=!0,h!=null?u(h):f({done:!0})),b=()=>(o=new re,g(),{done:!0}),p=h=>(g(h),{done:!0});if(n={[Symbol.asyncIterator](){return this},next:a,return:b,throw:p,push:l,end:g,get readableLength(){return o.size},onEmpty:async h=>{let w=h?.signal;if(w?.throwIfAborted(),o.isEmpty())return;let E,R;w!=null&&(E=new Promise((k,Y)=>{R=()=>{Y(new Ln)},w.addEventListener("abort",R)}));try{await Promise.race([c.promise,E])}finally{R!=null&&w!=null&&w?.removeEventListener("abort",R)}}},e==null)return n;let y=n;return n={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(h){return y.throw(h),e!=null&&(e(h),e=void 0),{done:!0}},return(){return y.return(),e!=null&&(e(),e=void 0),{done:!0}},push:l,end(h){return y.end(h),e!=null&&(e(h),e=void 0),n},get readableLength(){return y.readableLength},onEmpty:h=>y.onEmpty(h)},n}function ra(r){return r[Symbol.asyncIterator]!=null}function na(...r){let t=[];for(let e of r)ra(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=ne({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async o=>{for await(let n of o)e.push(n)})),e.end()}catch(o){e.end(o)}}),yield*e}()}var mi=na;function Rn(r,...t){if(r==null)throw new Error("Empty pipeline");if(Nn(r)){let o=r;r=()=>o.source}else if(yi(r)||gi(r)){let o=r;r=()=>o}let e=[r,...t];if(e.length>1&&Nn(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let o=1;o{let t;for(;r.length>0;)t=r.shift()(t);return t},gi=r=>r?.[Symbol.asyncIterator]!=null,yi=r=>r?.[Symbol.iterator]!=null,Nn=r=>r==null?!1:r.sink!=null&&r.source!=null,ia=r=>t=>{let e=r.sink(t);if(e?.then!=null){let o=ne({objectMode:!0});e.then(()=>{o.end()},s=>{o.end(s)});let n,i=r.source;if(gi(i))n=async function*(){yield*i,o.end()};else if(yi(i))n=function*(){yield*i,o.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return mi(o,n())}return r.source};function bi(r,t){let e=ee(r,t),o={read:async(n,i)=>{let s=await e.read(i);return n.decode(s)},write:async(n,i,s)=>{await e.write(i.encode(n),s)},writeV:async(n,i,s)=>{await e.writeV(n.map(c=>i.encode(c)),s)},pb:n=>({read:async i=>o.read(n,i),write:async(i,s)=>o.write(i,n,s),writeV:async(i,s)=>o.writeV(i,n,s),unwrap:()=>o}),unwrap:()=>e.unwrap()};return o}function sa(r){return r[Symbol.asyncIterator]!=null}function ca(r){if(sa(r))return(async()=>{for await(let t of r);})();for(let t of r);}var Dn=ca;function X(r){return N.encode({type:N.Type.OK,peers:[],...r}).subarray()}function V(r){return N.encode({type:N.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var rr=Ot("libp2p:daemon-server:dht"),nr=class{dht;constructor(t){let{dht:e}=t;this.dht=e}async*provide(t){try{await Dn(this.dht.provide(t)),yield X()}catch(e){rr.error(e),yield V(e)}}async*getClosestPeers(t){yield X({dht:{type:U.Type.BEGIN}});for await(let e of this.dht.getClosestPeers(t))e.name==="PEER_RESPONSE"&&(yield*e.closer.map(o=>U.encode({type:U.Type.VALUE,value:o.id.toBytes()})));yield U.encode({type:U.Type.END})}async*getPublicKey(t){yield V(new Error("FIX ME: not implemented"))}async*getValue(t){try{for await(let e of this.dht.get(t))e.name==="VALUE"&&(yield X({dht:{type:U.Type.VALUE,value:e.value}}))}catch(e){rr.error(e),yield V(e)}}async*putValue(t,e){try{await Dn(this.dht.put(t,e)),yield X()}catch(o){rr.error(o),yield V(o)}}async*findPeer(t){try{for await(let e of this.dht.findPeer(t))e.name==="FINAL_PEER"&&(yield X({dht:{type:U.Type.VALUE,peer:{id:e.peer.id.toBytes(),addrs:e.peer.multiaddrs.map(o=>o.bytes)}}}));throw new Error("Peer not found")}catch(e){rr.error(e),yield V(e)}}async*findProviders(t,e){yield X({dht:{type:U.Type.BEGIN}});try{let o=e,n=0;for await(let i of this.dht.findProviders(t))if(i.name==="PEER_RESPONSE"){for(let s of i.providers)n++,yield U.encode({type:U.Type.VALUE,peer:{id:s.id.toBytes(),addrs:(s.multiaddrs??[]).map(c=>c.bytes)}});if(o===n)break}}catch(o){yield V(o)}yield U.encode({type:U.Type.END})}};var or=Ot("libp2p:daemon-server:pubsub"),ir=class{pubsub;constructor(t){let{pubsub:e}=t;this.pubsub=e}async*getTopics(){try{yield X({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(t){or.error(t),yield V(t)}}async*subscribe(t){try{let e=ne();this.pubsub.subscribe(t),this.pubsub.addEventListener("message",o=>{let n=o.detail;n.topic===t&&(n.type==="signed"?e.push(de.encode({from:n.from.toBytes(),data:n.data,seqno:n.sequenceNumber==null?void 0:pt(n.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[n.topic],signature:n.signature,key:n.key}).subarray()):e.push(de.encode({data:n.data,topicIDs:[n.topic]}).subarray()))}),yield X(),yield*e}catch(e){or.error(e),yield V(e)}}async*publish(t,e){try{await this.pubsub.publish(t,e),yield X()}catch(o){or.error(o),yield V(o)}}async*listPeers(t){try{yield X({pubsub:{topics:[t],peerIDs:this.pubsub.getSubscribers(t).map(e=>e.toBytes())}})}catch(e){or.error(e),yield V(e)}}};var aa=1<<22,z=Ot("libp2p:daemon-server"),sr=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(t){let{multiaddr:e,libp2pNode:o}=t;this.multiaddr=e,this.libp2p=o,this.tcp=si()({logger:wo()}),this.listener=this.tcp.createListener({handler:this.handleConnection.bind(this),upgrader:Yr}),this._onExit=this._onExit.bind(this),o.services.dht!=null&&(this.dhtOperations=new nr({dht:o.services.dht})),o.services.pubsub!=null&&(this.pubsubOperations=new ir({pubsub:o.services.pubsub}))}async connect(t){if(t.connect==null||t.connect.addrs==null)throw new Error("Invalid request");let e=t.connect.peer,o=t.connect.addrs.map(i=>K(i)),n=Ut(e);return z("connect - adding multiaddrs %a to peer %p",o,n),await this.libp2p.peerStore.merge(n,{multiaddrs:o}),z("connect - dial %p",n),this.libp2p.dial(n)}async openStream(t){if(t.streamOpen==null||t.streamOpen.proto==null)throw new Error("Invalid request");let{peer:e,proto:o}=t.streamOpen,n=Ut(e);z("openStream - dial %p",n);let i=await this.libp2p.dial(n);z("openStream - open stream for protocol %s",o);let s=await i.newStream(o,{runOnTransientConnection:!0,runOnLimitedConnection:!0});return{streamInfo:{peer:n.toBytes(),addr:i.remoteAddr.bytes,proto:s.protocol??""},connection:s}}async registerStreamHandler(t){if(t.streamHandler==null||t.streamHandler.proto==null)throw new Error("Invalid request");let e=t.streamHandler.proto,o=K(t.streamHandler.addr),n;z("registerStreamHandler - handle %s",e),await this.libp2p.handle(e,({connection:i,stream:s})=>{Promise.resolve().then(async()=>{n=await this.tcp.dial(o,{upgrader:Yr});let c=Xt.encode({peer:i.remotePeer.toBytes(),addr:i.remoteAddr.bytes,proto:s.protocol??""}),a=Ze.single(c);await Rn(async function*(){yield a,yield*s.source}(),async function*(f){for await(let u of f)yield*u},n,s.sink)}).catch(async c=>{z.error(c),n!=null&&await n.close(c)}).finally(()=>{n?.close().catch(c=>{z.error(c)})})},{runOnTransientConnection:!0,runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(t=>{z.error(t)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let t=this.listener.getAddrs();if(t.length>0)return t[0];throw new Error("Not started")}async stop(t={exit:!1}){await this.libp2p.stop(),await this.listener.close(),t.exit&&z("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(t){try{switch(t.type){case Pt.Type.GET_PROTOCOLS:if(t.id==null)throw new Error("Invalid request");let e=Ut(t.id),n=(await this.libp2p.peerStore.get(e)).protocols;yield X({peerStore:{protos:n}});return;case Pt.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){z.error(e),yield V(e)}}async*handlePubsubRequest(t){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(t.type){case gt.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case gt.Type.SUBSCRIBE:if(t.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(t.topic);return;case gt.Type.PUBLISH:if(t.topic==null||t.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(t.topic,t.data);return;case gt.Type.LIST_PEERS:if(t.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(t.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){z.error(e),yield V(e)}}async*handleDHTRequest(t){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(t.type){case it.Type.FIND_PEER:if(t.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer(Ut(t.peer));return;case it.Type.FIND_PROVIDERS:if(t.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders($.decode(t.cid),t.count??20);return;case it.Type.PROVIDE:if(t.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide($.decode(t.cid));return;case it.Type.GET_CLOSEST_PEERS:if(t.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(t.key);return;case it.Type.GET_PUBLIC_KEY:if(t.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey(Ut(t.peer));return;case it.Type.GET_VALUE:if(t.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(t.key);return;case it.Type.PUT_VALUE:if(t.key==null||t.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(t.key,t.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){z.error(e),yield V(e)}}handleConnection(t){Promise.resolve().then(async()=>{let e=this,o=bi(t,{maxDataLength:aa}),n=await o.read(ot);z("read",n);try{switch(n.type){case ot.Type.CONNECT:{await e.connect(n),await o.write({type:N.Type.OK},N);break}case ot.Type.IDENTIFY:{await o.write({type:N.Type.OK,identify:{id:e.libp2p.peerId.toBytes(),addrs:e.libp2p.getMultiaddrs().map(i=>i.decapsulateCode(I("p2p").code)).map(i=>i.bytes)}},N);break}case ot.Type.LIST_PEERS:{let i=[],s=new Set;for(let c of e.libp2p.getConnections()){let a=c.remotePeer.toString();s.has(a)||(s.add(a),i.push({id:c.remotePeer.toBytes(),addrs:[c.remoteAddr.bytes]}))}await o.write({type:N.Type.OK,peers:i},N);break}case ot.Type.STREAM_OPEN:{let i=await e.openStream(n);await o.write({type:N.Type.OK,streamInfo:i.streamInfo},N);let s=o.unwrap();await Rn(s,i.connection,s);break}case ot.Type.STREAM_HANDLER:{await e.registerStreamHandler(n),await o.write({type:N.Type.OK},N);break}case ot.Type.PEERSTORE:{if(n.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let i=o.unwrap(),s=ee(i);for await(let c of e.handlePeerStoreRequest(n.peerStore))await s.write(c);break}case ot.Type.PUBSUB:{if(n.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let i=o.unwrap(),s=ee(i);for await(let c of e.handlePubsubRequest(n.pubsub))await s.write(c);break}case ot.Type.DHT:{if(n.dht==null)throw new Error("ERR_INVALID_REQUEST");let i=o.unwrap(),s=ee(i);for await(let c of e.handleDHTRequest(n.dht))await s.write(c);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(i){z.error(i),await o.write({type:N.Type.ERROR,error:{msg:i.message},peers:[]},N)}finally{await o.unwrap().close()}}).catch(e=>{z.error("error handling incoming connection",e)})}},ua=(r,t)=>new sr({multiaddr:r,libp2pNode:t});return Ci(la);})(); -+`+i),r.push(o+"m+"+Nr(this.diff)+"\x1B[0m")}else r[0]=lu()+t+" "+r[0]}function lu(){return Be.hideDate!=null?"":new Date().toISOString()+" "}function fu(...r){return process.stderr.write(Br.default.format(...r)+` -+`)}function du(r){r!=null?process.env.DEBUG=r:delete process.env.DEBUG}function hu(){return process.env.DEBUG}function pu(r){r.inspectOpts={};let t=Object.keys(Be);for(let e=0;ee.trim()).join(" ")},r.O=function(t){return this.inspectOpts.colors=this.useColors,Br.default.inspect(t,this.inspectOpts)}}var ts=xo({init:pu,log:fu,formatArgs:uu,save:du,load:hu,useColors:au,setupFormatters:mu,colors:ji,inspectOpts:Be});var gt=ts;gt.formatters.b=r=>r==null?"undefined":U.baseEncode(r);gt.formatters.t=r=>r==null?"undefined":Rt.baseEncode(r);gt.formatters.m=r=>r==null?"undefined":Jn.baseEncode(r);gt.formatters.p=r=>r==null?"undefined":r.toString();gt.formatters.c=r=>r==null?"undefined":r.toString();gt.formatters.k=r=>r==null?"undefined":r.toString();gt.formatters.a=r=>r==null?"undefined":r.toString();function yu(r){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=r,t.destroy=()=>!0,t.extend=()=>t,t}function es(){return{forComponent(r){return he(r)}}}function he(r){let t=yu(`${r}:trace`);return gt.enabled(`${r}:trace`)&>.names.map(e=>e.toString()).find(e=>e.includes(":trace"))!=null&&(t=gt(`${r}:trace`)),Object.assign(gt(r),{error:gt(`${r}:error`),trace:t})}var Eo=Symbol.for("@libp2p/peer-id");var ns=Symbol.for("@libp2p/transport");var rs;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(rs||(rs={}));var er=class extends Error{constructor(t="The operation was aborted"){super(t),this.name="AbortError"}},Y=class extends Error{code;props;constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var pe=class extends Error{constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},Cr=class extends Error{constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var Or=class extends Error{constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var rr=class extends Error{constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var os=W("events"),is=(r,...t)=>{try{(0,os.setMaxListeners)(r,...t)}catch{}};var Dr=class extends EventTarget{#t=new Map;constructor(){super(),is(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 o=this.#t.get(t);o==null&&(o=[],this.#t.set(t,o)),o.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:i})=>i!==e),this.#t.set(t,o))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:o})=>!o),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var ss=Symbol.for("@libp2p/service-capabilities"),Qd=Symbol.for("@libp2p/service-dependencies");function Ot(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;eCt(Io)})(Tt||(Tt={}));var or;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{i.Type=Tt.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(c&7);break}}}return i})),t),r.encode=e=>M(e,r.codec()),r.decode=(e,n)=>_(e,r.codec(),n)})(or||(or={}));var So;(function(r){let t;r.codec=()=>(t==null&&(t=K((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos>>3){case 1:{i.Type=Tt.codec().decode(e);break}case 2:{i.Data=e.bytes();break}default:{e.skipType(c&7);break}}}return i})),t),r.encode=e=>M(e,r.codec()),r.decode=(e,n)=>_(e,r.codec(),n)})(So||(So={}));function ds(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function xu(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Oe(r,...t){if(!xu(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function hs(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ds(r.outputLen),ds(r.blockLen)}function De(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 ps(r,t){Oe(r);let e=t.outputLen;if(r.lengthnew DataView(r.buffer,r.byteOffset,r.byteLength),Dt=(r,t)=>r<<32-t|r>>>t;var Xh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Eu(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function sr(r){return typeof r=="string"&&(r=Eu(r)),Oe(r),r}function ms(...r){let t=0;for(let n=0;nr().update(sr(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function gs(r=32){if(Mr&&typeof Mr.getRandomValues=="function")return Mr.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}var $r=class extends _e{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,hs(t);let n=sr(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,i=new Uint8Array(o);i.set(n.length>o?t.create().update(n).digest():n);for(let s=0;snew $r(r,t).update(e).digest();Ao.create=(r,t)=>new $r(r,t);function vu(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let o=BigInt(32),i=BigInt(4294967295),s=Number(e>>o&i),c=Number(e&i),a=n?4:0,l=n?0:4;r.setUint32(t+a,s,n),r.setUint32(t+l,c,n)}var bs=(r,t,e)=>r&t^~r&e,ws=(r,t,e)=>r&t^r&e^t&e,Vr=class extends _e{constructor(t,e,n,o){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Kr(this.buffer)}update(t){De(this);let{view:e,buffer:n,blockLen:o}=this;t=sr(t);let i=t.length;for(let s=0;so-s&&(this.process(n,0),s=0);for(let u=s;ud.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u>>3,f=Dt(g,17)^Dt(g,19)^g>>>10;jt[u]=f+jt[u-7]+p+jt[u-16]|0}let{A:n,B:o,C:i,D:s,E:c,F:a,G:l,H:d}=this;for(let u=0;u<64;u++){let y=Dt(c,6)^Dt(c,11)^Dt(c,25),g=d+y+bs(c,a,l)+Iu[u]+jt[u]|0,f=(Dt(n,2)^Dt(n,13)^Dt(n,22))+ws(n,o,i)|0;d=l,l=a,a=c,c=s+g|0,s=i,i=o,o=n,n=g+f|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,c=c+this.E|0,a=a+this.F|0,l=l+this.G|0,d=d+this.H|0,this.set(n,o,i,s,c,a,l,d)}roundClean(){jt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var xs=ys(()=>new To);var Bo={};ut(Bo,{aInRange:()=>re,abool:()=>me,abytes:()=>Ue,bitGet:()=>ku,bitLen:()=>Pu,bitMask:()=>ar,bitSet:()=>Ru,bytesToHex:()=>ye,bytesToNumberBE:()=>Ft,bytesToNumberLE:()=>Fr,concatBytes:()=>Me,createHmacDrbg:()=>Ro,ensureBytes:()=>wt,equalBytes:()=>Lu,hexToBytes:()=>ge,hexToNumber:()=>ko,inRange:()=>cr,isBytes:()=>te,memoized:()=>Hr,notImplemented:()=>Cu,numberToBytesBE:()=>ee,numberToBytesLE:()=>zr,numberToHexUnpadded:()=>Is,numberToVarBytesBE:()=>Tu,utf8ToBytes:()=>Nu,validateObject:()=>ne});var Po=BigInt(0),Gr=BigInt(1),Su=BigInt(2);function te(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Ue(r){if(!te(r))throw new Error("Uint8Array expected")}function me(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var Au=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function ye(r){Ue(r);let t="";for(let e=0;e=Gt._0&&r<=Gt._9)return r-Gt._0;if(r>=Gt._A&&r<=Gt._F)return r-(Gt._A-10);if(r>=Gt._a&&r<=Gt._f)return r-(Gt._a-10)}function ge(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("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,i=0;otypeof r=="bigint"&&Po<=r;function cr(r,t,e){return Lo(r)&&Lo(t)&&Lo(e)&&t<=r&&rPo;r>>=Gr,t+=1);return t}function ku(r,t){return r>>BigInt(t)&Gr}function Ru(r,t,e){return r|(e?Gr:Po)<(Su<new Uint8Array(r),vs=r=>Uint8Array.from(r);function Ro(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=No(r),o=No(r),i=0,s=()=>{n.fill(1),o.fill(0),i=0},c=(...u)=>e(o,n,...u),a=(u=No())=>{o=c(vs([0]),u),n=c(),u.length!==0&&(o=c(vs([1]),u),n=c())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,y=[];for(;u{s(),a(u);let g;for(;!(g=y(l()));)a();return s(),g}}var Bu={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"||te(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 ne(r,t,e={}){let n=(o,i,s)=>{let c=Bu[i];if(typeof c!="function")throw new Error(`Invalid validator "${i}", expected function`);let a=r[o];if(!(s&&a===void 0)&&!c(a,r))throw new Error(`Invalid param ${String(o)}=${a} (${typeof a}), expected ${i}`)};for(let[o,i]of Object.entries(t))n(o,i,!1);for(let[o,i]of Object.entries(e))n(o,i,!0);return r}var Cu=()=>{throw new Error("not implemented")};function Hr(r){let t=new WeakMap;return(e,...n)=>{let o=t.get(e);if(o!==void 0)return o;let i=r(e,...n);return t.set(e,i),i}}var Z=BigInt(0),G=BigInt(1),be=BigInt(2),Ou=BigInt(3),Co=BigInt(4),Ss=BigInt(5),As=BigInt(8),Du=BigInt(9),_u=BigInt(16);function ot(r,t){let e=r%t;return e>=Z?e:t+e}function Uu(r,t,e){if(e<=Z||t 0");if(e===G)return Z;let n=G;for(;t>Z;)t&G&&(n=n*r%e),r=r*r%e,t>>=G;return n}function xt(r,t,e){let n=r;for(;t-- >Z;)n*=n,n%=e;return n}function qr(r,t){if(r===Z||t<=Z)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=ot(r,t),n=t,o=Z,i=G,s=G,c=Z;for(;e!==Z;){let l=n/e,d=n%e,u=o-s*l,y=i-c*l;n=e,e=d,o=s,i=c,s=u,c=y}if(n!==G)throw new Error("invert: does not exist");return ot(o,t)}function Mu(r){let t=(r-G)/be,e,n,o;for(e=r-G,n=0;e%be===Z;e/=be,n++);for(o=be;o(n[o]="function",n),t);return ne(r,e)}function Vu(r,t,e){if(e 0");if(e===Z)return r.ONE;if(e===G)return t;let n=r.ONE,o=t;for(;e>Z;)e&G&&(n=r.mul(n,o)),o=r.sqr(o),e>>=G;return n}function Gu(r,t){let e=new Array(t.length),n=t.reduce((i,s,c)=>r.is0(s)?i:(e[c]=i,r.mul(i,s)),r.ONE),o=r.inv(n);return t.reduceRight((i,s,c)=>r.is0(s)?i:(e[c]=r.mul(i,e[c]),r.mul(i,s)),o),e}function Do(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Ts(r,t,e=!1,n={}){if(r<=Z)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:o,nByteLength:i}=Do(r,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=Ku(r),c=Object.freeze({ORDER:r,BITS:o,BYTES:i,MASK:ar(o),ZERO:Z,ONE:G,create:a=>ot(a,r),isValid:a=>{if(typeof a!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof a}`);return Z<=a&&aa===Z,isOdd:a=>(a&G)===G,neg:a=>ot(-a,r),eql:(a,l)=>a===l,sqr:a=>ot(a*a,r),add:(a,l)=>ot(a+l,r),sub:(a,l)=>ot(a-l,r),mul:(a,l)=>ot(a*l,r),pow:(a,l)=>Vu(c,a,l),div:(a,l)=>ot(a*qr(l,r),r),sqrN:a=>a*a,addN:(a,l)=>a+l,subN:(a,l)=>a-l,mulN:(a,l)=>a*l,inv:a=>qr(a,r),sqrt:n.sqrt||(a=>s(c,a)),invertBatch:a=>Gu(c,a),cmov:(a,l,d)=>d?l:a,toBytes:a=>e?zr(a,i):ee(a,i),fromBytes:a=>{if(a.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${a.length}`);return e?Fr(a):Ft(a)}});return Object.freeze(c)}function Ls(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 _o(r){let t=Ls(r);return t+Math.ceil(t/2)}function Ns(r,t,e=!1){let n=r.length,o=Ls(t),i=_o(t);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let s=e?Ft(r):Fr(r),c=ot(s,t-G)+G;return e?zr(c,o):ee(c,o)}var zu=BigInt(0),Uo=BigInt(1),Mo=new WeakMap,Ps=new WeakMap;function ks(r,t){let e=(i,s)=>{let c=s.negate();return i?c:s},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>t)throw new Error(`Wrong window size=${i}, should be [1..${t}]`)},o=i=>{n(i);let s=Math.ceil(t/i)+1,c=2**(i-1);return{windows:s,windowSize:c}};return{constTimeNegate:e,unsafeLadder(i,s){let c=r.ZERO,a=i;for(;s>zu;)s&Uo&&(c=c.add(a)),a=a.double(),s>>=Uo;return c},precomputeWindow(i,s){let{windows:c,windowSize:a}=o(s),l=[],d=i,u=d;for(let y=0;y>=p,m>l&&(m-=g,c+=Uo);let b=h,v=h+Math.abs(m)-1,P=f%2!==0,T=m<0;m===0?u=u.add(e(P,s[b])):d=d.add(e(T,s[v]))}return{p:d,f:u}},wNAFCached(i,s,c){let a=Ps.get(i)||1,l=Mo.get(i);return l||(l=this.precomputeWindow(i,a),a!==1&&Mo.set(i,c(l))),this.wNAF(a,l,s)},setWindowSize(i,s){n(s),Ps.set(i,s),Mo.delete(i)}}}function Ko(r){return Oo(r.Fp),ne(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Do(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}function Rs(r){r.lowS!==void 0&&me("lowS",r.lowS),r.prehash!==void 0&&me("prehash",r.prehash)}function Hu(r){let t=Ko(r);ne(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:o}=t;if(e){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:qu,hexToBytes:Wu}=Bo,we={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(r){let{Err:t}=we;if(r.length<2||r[0]!==2)throw new t("Invalid signature integer tag");let e=r[1],n=r.subarray(2,e+2);if(!e||n.length!==e)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:qu(n),l:r.subarray(e+2)}},toSig(r){let{Err:t}=we,e=typeof r=="string"?Wu(r):r;Ue(e);let n=e.length;if(n<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:o,l:i}=we._parseInt(e.subarray(2)),{d:s,l:c}=we._parseInt(i);if(c.length)throw new t("Invalid signature: left bytes after parsing");return{r:o,s}},hexFromSig(r){let t=l=>Number.parseInt(l[0],16)&8?"00"+l:l,e=l=>{let d=l.toString(16);return d.length&1?`0${d}`:d},n=t(e(r.s)),o=t(e(r.r)),i=n.length/2,s=o.length/2,c=e(i),a=e(s);return`30${e(s+i+4)}02${a}${o}02${c}${n}`}},oe=BigInt(0),j=BigInt(1),mp=BigInt(2),Bs=BigInt(3),yp=BigInt(4);function Yu(r){let t=Hu(r),{Fp:e}=t,n=t.toBytes||((p,f,h)=>{let m=f.toAffine();return Me(Uint8Array.from([4]),e.toBytes(m.x),e.toBytes(m.y))}),o=t.fromBytes||(p=>{let f=p.subarray(1),h=e.fromBytes(f.subarray(0,e.BYTES)),m=e.fromBytes(f.subarray(e.BYTES,2*e.BYTES));return{x:h,y:m}});function i(p){let{a:f,b:h}=t,m=e.sqr(p),b=e.mul(m,p);return e.add(e.add(b,e.mul(p,f)),h)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(p){return cr(p,j,t.n)}function c(p){let{allowedPrivateKeyLengths:f,nByteLength:h,wrapPrivateKey:m,n:b}=t;if(f&&typeof p!="bigint"){if(te(p)&&(p=ye(p)),typeof p!="string"||!f.includes(p.length))throw new Error("Invalid key");p=p.padStart(h*2,"0")}let v;try{v=typeof p=="bigint"?p:Ft(wt("private key",p,h))}catch{throw new Error(`private key must be ${h} bytes, hex or bigint, not ${typeof p}`)}return m&&(v=ot(v,b)),re("private key",v,j,b),v}function a(p){if(!(p instanceof u))throw new Error("ProjectivePoint expected")}let l=Hr((p,f)=>{let{px:h,py:m,pz:b}=p;if(e.eql(b,e.ONE))return{x:h,y:m};let v=p.is0();f==null&&(f=v?e.ONE:e.inv(b));let P=e.mul(h,f),T=e.mul(m,f),E=e.mul(b,f);if(v)return{x:e.ZERO,y:e.ZERO};if(!e.eql(E,e.ONE))throw new Error("invZ was invalid");return{x:P,y:T}}),d=Hr(p=>{if(p.is0()){if(t.allowInfinityPoint&&!e.is0(p.py))return;throw new Error("bad point: ZERO")}let{x:f,y:h}=p.toAffine();if(!e.isValid(f)||!e.isValid(h))throw new Error("bad point: x or y not FE");let m=e.sqr(h),b=i(f);if(!e.eql(m,b))throw new Error("bad point: equation left != right");if(!p.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class u{constructor(f,h,m){if(this.px=f,this.py=h,this.pz=m,f==null||!e.isValid(f))throw new Error("x required");if(h==null||!e.isValid(h))throw new Error("y required");if(m==null||!e.isValid(m))throw new Error("z required");Object.freeze(this)}static fromAffine(f){let{x:h,y:m}=f||{};if(!f||!e.isValid(h)||!e.isValid(m))throw new Error("invalid affine point");if(f instanceof u)throw new Error("projective point not allowed");let b=v=>e.eql(v,e.ZERO);return b(h)&&b(m)?u.ZERO:new u(h,m,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(f){let h=e.invertBatch(f.map(m=>m.pz));return f.map((m,b)=>m.toAffine(h[b])).map(u.fromAffine)}static fromHex(f){let h=u.fromAffine(o(wt("pointHex",f)));return h.assertValidity(),h}static fromPrivateKey(f){return u.BASE.multiply(c(f))}_setWindowSize(f){g.setWindowSize(this,f)}assertValidity(){d(this)}hasEvenY(){let{y:f}=this.toAffine();if(e.isOdd)return!e.isOdd(f);throw new Error("Field doesn't support isOdd")}equals(f){a(f);let{px:h,py:m,pz:b}=this,{px:v,py:P,pz:T}=f,E=e.eql(e.mul(h,T),e.mul(v,b)),S=e.eql(e.mul(m,T),e.mul(P,b));return E&&S}negate(){return new u(this.px,e.neg(this.py),this.pz)}double(){let{a:f,b:h}=t,m=e.mul(h,Bs),{px:b,py:v,pz:P}=this,T=e.ZERO,E=e.ZERO,S=e.ZERO,L=e.mul(b,b),X=e.mul(v,v),D=e.mul(P,P),B=e.mul(b,v);return B=e.add(B,B),S=e.mul(b,P),S=e.add(S,S),T=e.mul(f,S),E=e.mul(m,D),E=e.add(T,E),T=e.sub(X,E),E=e.add(X,E),E=e.mul(T,E),T=e.mul(B,T),S=e.mul(m,S),D=e.mul(f,D),B=e.sub(L,D),B=e.mul(f,B),B=e.add(B,S),S=e.add(L,L),L=e.add(S,L),L=e.add(L,D),L=e.mul(L,B),E=e.add(E,L),D=e.mul(v,P),D=e.add(D,D),L=e.mul(D,B),T=e.sub(T,L),S=e.mul(D,X),S=e.add(S,S),S=e.add(S,S),new u(T,E,S)}add(f){a(f);let{px:h,py:m,pz:b}=this,{px:v,py:P,pz:T}=f,E=e.ZERO,S=e.ZERO,L=e.ZERO,X=t.a,D=e.mul(t.b,Bs),B=e.mul(h,v),ht=e.mul(m,P),pt=e.mul(b,T),I=e.add(h,m),x=e.add(v,P);I=e.mul(I,x),x=e.add(B,ht),I=e.sub(I,x),x=e.add(h,b);let N=e.add(v,T);return x=e.mul(x,N),N=e.add(B,pt),x=e.sub(x,N),N=e.add(m,b),E=e.add(P,T),N=e.mul(N,E),E=e.add(ht,pt),N=e.sub(N,E),L=e.mul(X,x),E=e.mul(D,pt),L=e.add(E,L),E=e.sub(ht,L),L=e.add(ht,L),S=e.mul(E,L),ht=e.add(B,B),ht=e.add(ht,B),pt=e.mul(X,pt),x=e.mul(D,x),ht=e.add(ht,pt),pt=e.sub(B,pt),pt=e.mul(X,pt),x=e.add(x,pt),B=e.mul(ht,x),S=e.add(S,B),B=e.mul(N,x),E=e.mul(I,E),E=e.sub(E,B),B=e.mul(I,ht),L=e.mul(N,L),L=e.add(L,B),new u(E,S,L)}subtract(f){return this.add(f.negate())}is0(){return this.equals(u.ZERO)}wNAF(f){return g.wNAFCached(this,f,u.normalizeZ)}multiplyUnsafe(f){re("scalar",f,oe,t.n);let h=u.ZERO;if(f===oe)return h;if(f===j)return this;let{endo:m}=t;if(!m)return g.unsafeLadder(this,f);let{k1neg:b,k1:v,k2neg:P,k2:T}=m.splitScalar(f),E=h,S=h,L=this;for(;v>oe||T>oe;)v&j&&(E=E.add(L)),T&j&&(S=S.add(L)),L=L.double(),v>>=j,T>>=j;return b&&(E=E.negate()),P&&(S=S.negate()),S=new u(e.mul(S.px,m.beta),S.py,S.pz),E.add(S)}multiply(f){let{endo:h,n:m}=t;re("scalar",f,j,m);let b,v;if(h){let{k1neg:P,k1:T,k2neg:E,k2:S}=h.splitScalar(f),{p:L,f:X}=this.wNAF(T),{p:D,f:B}=this.wNAF(S);L=g.constTimeNegate(P,L),D=g.constTimeNegate(E,D),D=new u(e.mul(D.px,h.beta),D.py,D.pz),b=L.add(D),v=X.add(B)}else{let{p:P,f:T}=this.wNAF(f);b=P,v=T}return u.normalizeZ([b,v])[0]}multiplyAndAddUnsafe(f,h,m){let b=u.BASE,v=(T,E)=>E===oe||E===j||!T.equals(b)?T.multiplyUnsafe(E):T.multiply(E),P=v(this,h).add(v(f,m));return P.is0()?void 0:P}toAffine(f){return l(this,f)}isTorsionFree(){let{h:f,isTorsionFree:h}=t;if(f===j)return!0;if(h)return h(u,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:f,clearCofactor:h}=t;return f===j?this:h?h(u,this):this.multiplyUnsafe(t.h)}toRawBytes(f=!0){return me("isCompressed",f),this.assertValidity(),n(u,this,f)}toHex(f=!0){return me("isCompressed",f),ye(this.toRawBytes(f))}}u.BASE=new u(t.Gx,t.Gy,e.ONE),u.ZERO=new u(e.ZERO,e.ONE,e.ZERO);let y=t.nBitLength,g=ks(u,t.endo?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function Zu(r){let t=Ko(r);return ne(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Cs(r){let t=Zu(r),{Fp:e,n}=t,o=e.BYTES+1,i=2*e.BYTES+1;function s(I){return ot(I,n)}function c(I){return qr(I,n)}let{ProjectivePoint:a,normPrivateKeyToScalar:l,weierstrassEquation:d,isWithinCurveOrder:u}=Yu({...t,toBytes(I,x,N){let O=x.toAffine(),C=e.toBytes(O.x),Q=Me;return me("isCompressed",N),N?Q(Uint8Array.from([x.hasEvenY()?2:3]),C):Q(Uint8Array.from([4]),C,e.toBytes(O.y))},fromBytes(I){let x=I.length,N=I[0],O=I.subarray(1);if(x===o&&(N===2||N===3)){let C=Ft(O);if(!cr(C,j,e.ORDER))throw new Error("Point is not on curve");let Q=d(C),ct;try{ct=e.sqrt(Q)}catch(Nt){let qt=Nt instanceof Error?": "+Nt.message:"";throw new Error("Point is not on curve"+qt)}let at=(ct&j)===j;return(N&1)===1!==at&&(ct=e.neg(ct)),{x:C,y:ct}}else if(x===i&&N===4){let C=e.fromBytes(O.subarray(0,e.BYTES)),Q=e.fromBytes(O.subarray(e.BYTES,2*e.BYTES));return{x:C,y:Q}}else throw new Error(`Point of length ${x} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}}),y=I=>ye(ee(I,t.nByteLength));function g(I){let x=n>>j;return I>x}function p(I){return g(I)?s(-I):I}let f=(I,x,N)=>Ft(I.slice(x,N));class h{constructor(x,N,O){this.r=x,this.s=N,this.recovery=O,this.assertValidity()}static fromCompact(x){let N=t.nByteLength;return x=wt("compactSignature",x,N*2),new h(f(x,0,N),f(x,N,2*N))}static fromDER(x){let{r:N,s:O}=we.toSig(wt("DER",x));return new h(N,O)}assertValidity(){re("r",this.r,j,n),re("s",this.s,j,n)}addRecoveryBit(x){return new h(this.r,this.s,x)}recoverPublicKey(x){let{r:N,s:O,recovery:C}=this,Q=E(wt("msgHash",x));if(C==null||![0,1,2,3].includes(C))throw new Error("recovery id invalid");let ct=C===2||C===3?N+t.n:N;if(ct>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let at=C&1?"03":"02",Ht=a.fromHex(at+y(ct)),Nt=c(ct),qt=s(-Q*Nt),qe=s(O*Nt),Wt=a.BASE.multiplyAndAddUnsafe(Ht,qt,qe);if(!Wt)throw new Error("point at infinify");return Wt.assertValidity(),Wt}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new h(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return ge(this.toDERHex())}toDERHex(){return we.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ge(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}let m={isValidPrivateKey(I){try{return l(I),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let I=_o(t.n);return Ns(t.randomBytes(I),t.n)},precompute(I=8,x=a.BASE){return x._setWindowSize(I),x.multiply(BigInt(3)),x}};function b(I,x=!0){return a.fromPrivateKey(I).toRawBytes(x)}function v(I){let x=te(I),N=typeof I=="string",O=(x||N)&&I.length;return x?O===o||O===i:N?O===2*o||O===2*i:I instanceof a}function P(I,x,N=!0){if(v(I))throw new Error("first arg must be private key");if(!v(x))throw new Error("second arg must be public key");return a.fromHex(x).multiply(l(I)).toRawBytes(N)}let T=t.bits2int||function(I){let x=Ft(I),N=I.length*8-t.nBitLength;return N>0?x>>BigInt(N):x},E=t.bits2int_modN||function(I){return s(T(I))},S=ar(t.nBitLength);function L(I){return re(`num < 2^${t.nBitLength}`,I,oe,S),ee(I,t.nByteLength)}function X(I,x,N=D){if(["recovered","canonical"].some(ce=>ce in N))throw new Error("sign() legacy options not supported");let{hash:O,randomBytes:C}=t,{lowS:Q,prehash:ct,extraEntropy:at}=N;Q==null&&(Q=!0),I=wt("msgHash",I),Rs(N),ct&&(I=wt("prehashed msgHash",O(I)));let Ht=E(I),Nt=l(x),qt=[L(Nt),L(Ht)];if(at!=null&&at!==!1){let ce=at===!0?C(e.BYTES):at;qt.push(wt("extraEntropy",ce))}let qe=Me(...qt),Wt=Ht;function Nn(ce){let Se=T(ce);if(!u(Se))return;let bi=c(Se),_t=a.BASE.multiply(Se).toAffine(),Ae=s(_t.x);if(Ae===oe)return;let fr=s(bi*s(Wt+Ae*Nt));if(fr===oe)return;let wi=(_t.x===Ae?0:2)|Number(_t.y&j),xi=fr;return Q&&g(fr)&&(xi=p(fr),wi^=1),new h(Ae,xi,wi)}return{seed:qe,k2sig:Nn}}let D={lowS:t.lowS,prehash:!1},B={lowS:t.lowS,prehash:!1};function ht(I,x,N=D){let{seed:O,k2sig:C}=X(I,x,N),Q=t;return Ro(Q.hash.outputLen,Q.nByteLength,Q.hmac)(O,C)}a.BASE._setWindowSize(8);function pt(I,x,N,O=B){let C=I;if(x=wt("msgHash",x),N=wt("publicKey",N),"strict"in O)throw new Error("options.strict was renamed to lowS");Rs(O);let{lowS:Q,prehash:ct}=O,at,Ht;try{if(typeof C=="string"||te(C))try{at=h.fromDER(C)}catch(_t){if(!(_t instanceof we.Err))throw _t;at=h.fromCompact(C)}else if(typeof C=="object"&&typeof C.r=="bigint"&&typeof C.s=="bigint"){let{r:_t,s:Ae}=C;at=new h(_t,Ae)}else throw new Error("PARSE");Ht=a.fromHex(N)}catch(_t){if(_t.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(Q&&at.hasHighS())return!1;ct&&(x=t.hash(x));let{r:Nt,s:qt}=at,qe=E(x),Wt=c(qt),Nn=s(qe*Wt),ce=s(Nt*Wt),Se=a.BASE.multiplyAndAddUnsafe(Ht,Nn,ce)?.toAffine();return Se?s(Se.x)===Nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:P,sign:ht,verify:pt,ProjectivePoint:a,Signature:h,utils:m}}function Xu(r){return{hash:r,hmac:(t,...e)=>Ao(r,t,ms(...e)),randomBytes:gs}}function Os(r,t){let e=n=>Cs({...r,...Xu(n)});return Object.freeze({...e(t),create:e})}var Us=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ds=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Qu=BigInt(1),$o=BigInt(2),_s=(r,t)=>(r+t/$o)/t;function Ju(r){let t=Us,e=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),c=BigInt(44),a=BigInt(88),l=r*r*r%t,d=l*l*r%t,u=xt(d,e,t)*d%t,y=xt(u,e,t)*d%t,g=xt(y,$o,t)*l%t,p=xt(g,o,t)*g%t,f=xt(p,i,t)*p%t,h=xt(f,c,t)*f%t,m=xt(h,a,t)*h%t,b=xt(m,c,t)*f%t,v=xt(b,e,t)*d%t,P=xt(v,s,t)*p%t,T=xt(P,n,t)*l%t,E=xt(T,$o,t);if(!Vo.eql(Vo.sqr(E),r))throw new Error("Cannot find square root");return E}var Vo=Ts(Us,void 0,void 0,{sqrt:Ju}),Ke=Os({a:BigInt(0),b:BigInt(7),Fp:Vo,n:Ds,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Ds,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Qu*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,s=BigInt("0x100000000000000000000000000000000"),c=_s(i*r,t),a=_s(-n*r,t),l=ot(r-c*e-a*o,t),d=ot(-c*n-a*i,t),u=l>s,y=d>s;if(u&&(l=t-l),y&&(d=t-d),l>s||d>s)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:l,k2neg:y,k2:d}}}},xs),Ap=BigInt(0);var Tp=Ke.ProjectivePoint;var Ms=mt(W("node:crypto"),1);var Wr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}};function Ks(r,t,e){let n=Ms.default.createHash("sha256");if(e instanceof Uint8Array)n.update(e);else for(let i of e)n.update(i);let o=n.digest();try{return Ke.verify(t,o,r)}catch(i){throw new Wr(String(i))}}var Yr=class{type="secp256k1";raw;_key;constructor(t){this._key=Vs(t),this.raw=$s(this._key)}toMultihash(){return $t.digest(Ce(this))}toCID(){return J.createV1(114,this.toMultihash())}toString(){return U.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Ot(this.raw,t.raw)}verify(t,e){return Ks(this._key,e,t)}};function Gs(r){return new Yr(r)}function $s(r){return Ke.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Vs(r){try{return Ke.ProjectivePoint.fromHex(r),r}catch(t){throw new Cr(String(t))}}function Fs(r){let{Type:t,Data:e}=or.decode(r.digest),n=e??new Uint8Array;switch(t){case Tt.Ed25519:return fs(n);case Tt.secp256k1:return Gs(n);default:throw new rr}}function Ce(r){return or.encode({Type:Tt[r.type],Data:r.raw})}var zs=Symbol.for("nodejs.util.inspect.custom"),ju=114,ur=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Eo]=!0;toString(){return this.string==null&&(this.string=U.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return J.createV1(ju,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return Ot(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return Ot(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[zs](){return`PeerId(${this.toString()})`}},Zr=class extends ur{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Xr=class extends ur{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Qr=class extends ur{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},tl=2336,Jr=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=$t.digest(Mt(this.url))}[zs](){return`PeerId(${this.url})`}[Eo]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return J.createV1(tl,this.toMultihash())}toBytes(){return this.toCID().bytes}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=q(t)),t.toString()===this.toString())}};function $e(r){if(rl(r))return new Zr({multihash:r});if(el(r))try{let t=Fs(r);if(t.type==="Ed25519")return new Xr({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Qr({multihash:r,publicKey:t})}catch{let e=q(r.digest);return new Jr(new URL(e))}throw new Or("Supplied PeerID Multihash is invalid")}function el(r){return r.code===$t.code}function rl(r){return r.code===co.code}var bc=mt(W("net"),1);var jr=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let i=0,s=0,c=this.peekChar();if(c===void 0)return;let a=c==="0",l=2**(8*o)-1;for(;;){let d=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let y=Number.parseInt(u,t);if(!Number.isNaN(y))return y});if(d===void 0)break;if(i*=t,i+=d,i>l||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&a&&s>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;ethis.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;nthis.readIPv4Addr());if(s!==void 0)return e[o]=s[0],e[o+1]=s[1],e[o+2]=s[2],e[o+3]=s[3],[o+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[o,!1];e[o]=i>>8,e[o+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),s=16-(n+2),[c]=t(i.subarray(0,s));return e.set(i.subarray(0,c),16-c),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Lm=new jr;var Dm=parseInt("0xFFFF",16),_m=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var Lt=W("node:net");function tn(r){return!!(0,Lt.isIP)(r)}var Ws=Lt.isIPv4,al=Lt.isIPv6,Go=function(r){let t=0;if(r=r.toString().trim(),Ws(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(al(r)){let e=r.split(":",8),n;for(n=0;n0;n--)i.push("0");e.splice.apply(e,i)}let o=new Uint8Array(t+16);for(n=0;n>8&255,o[t++]=i&255}return o}throw new Error("invalid ip address")},Ys=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let o=[];for(let i=0;i{let t=fl(...r);Fo[t.code]=t,Ve[t.name]=t});function fl(r,t,e,n,o){return{code:r,size:t,name:e,resolvable:!!n,path:!!o}}function R(r){if(typeof r=="number"){if(Fo[r]!=null)return Fo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Ve[r]!=null)return Ve[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var xy=R("ip4"),Ey=R("ip6"),vy=R("ipcidr");function Wo(r,t){switch(R(r).code){case 4:case 41:return hl(t);case 42:return qo(t);case 6:case 273:case 33:case 132:return Qs(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return qo(t);case 421:return gl(t);case 444:return Xs(t);case 445:return Xs(t);case 466:return yl(t);case 481:return globalThis.encodeURIComponent(qo(t));default:return q(t,"base16")}}function Yo(r,t){switch(R(r).code){case 4:return Zs(t);case 41:return Zs(t);case 42:return Ho(t);case 6:case 273:case 33:case 132:return Zo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ho(t);case 421:return pl(t);case 444:return bl(t);case 445:return wl(t);case 466:return ml(t);case 481:return Ho(globalThis.decodeURIComponent(t));default:return Mt(t,"base16")}}var zo=Object.values(Qe).map(r=>r.decoder),dl=function(){let r=zo[0].or(zo[1]);return zo.slice(2).forEach(t=>r=r.or(t)),r}();function Zs(r){if(!tn(r))throw new Error("invalid ip address");return Go(r)}function hl(r){let t=Ys(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!tn(t))throw new Error("invalid ip address");return t}function Zo(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Qs(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Ho(r){let t=Mt(r),e=Uint8Array.from(Ut(t.length));return bt([e,t],e.length+t.length)}function qo(r){let t=Pt(r);if(r=r.slice(z(t)),r.length!==t)throw new Error("inconsistent lengths");return q(r)}function pl(r){let t;r[0]==="Q"||r[0]==="1"?t=Bt(U.decode(`z${r}`)).bytes:t=J.parse(r).multihash.bytes;let e=Uint8Array.from(Ut(t.length));return bt([e,t],e.length+t.length)}function ml(r){let t=dl.decode(r),e=Uint8Array.from(Ut(t.length));return bt([e,t],e.length+t.length)}function yl(r){let t=Pt(r),e=r.slice(z(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+q(e,"base64url")}function gl(r){let t=Pt(r),e=r.slice(z(t));if(e.length!==t)throw new Error("inconsistent lengths");return q(e,"base58btc")}function bl(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Rt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Zo(n);return bt([e,o],e.length+o.length)}function wl(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Rt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Zo(n);return bt([e,o],e.length+o.length)}function Xs(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=q(t,"base32"),o=Qs(e);return`${n}:${o}`}function Js(r){r=Xo(r);let t=[],e=[],n=null,o=r.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i=o.length)throw tc("invalid address: "+r);if(c.path===!0){n=Xo(o.slice(i).join("/")),t.push([c.code,Yo(c.code,n)]),e.push([c.code,n]);break}let a=Yo(c.code,o[i]);t.push([c.code,a]),e.push([c.code,Wo(c.code,a)])}return{string:js(e),bytes:Jo(t),tuples:t,stringTuples:e,path:n}}function Qo(r){let t=[],e=[],n=null,o=0;for(;or.length)throw tc("Invalid address Uint8Array: "+q(r,"base16"));t.push([i,l]);let d=Wo(i,l);if(e.push([i,d]),c.path===!0){n=d;break}}return{bytes:Uint8Array.from(r),string:js(e),tuples:t,stringTuples:e,path:n}}function js(r){let t=[];return r.map(e=>{let n=R(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),Xo(t.join("/"))}function Jo(r){return bt(r.map(t=>{let e=R(t[0]),n=Uint8Array.from(Ut(e.code));return t.length>1&&t[1]!=null&&(n=bt([n,t[1]])),n}))}function xl(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Pt(t instanceof Uint8Array?t:Uint8Array.from(t));return e+z(e)}}function Xo(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function tc(r){return new Error("Error parsing address: "+r)}var El=Symbol.for("nodejs.util.inspect.custom"),jo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),vl=[R("dns").code,R("dns4").code,R("dns6").code,R("dnsaddr").code],en=class r{bytes;#t;#e;#r;#n;[jo]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=Qo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=Js(t)}else if(rc(t))e=Qo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,o,i="",s=R("tcp"),c=R("udp"),a=R("ip4"),l=R("ip6"),d=R("dns6"),u=R("ip6zone");for(let[g,p]of this.stringTuples())g===u.code&&(i=`%${p??""}`),vl.includes(g)&&(e=s.name,o=443,n=`${p??""}${i}`,t=g===d.code?6:4),(g===s.code||g===c.code)&&(e=R(g).name,o=parseInt(p??"")),(g===a.code||g===l.code)&&(e=R(g).name,n=`${p??""}${i}`,t=g===l.code?6:4);if(t==null||e==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:o}}protos(){return this.#e.map(([t])=>Object.assign({},R(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>R(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,o))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(Jo(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,o])=>{n===Ve.p2p.code&&t.push([n,o]),n===Ve["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?q(U.decode(`z${n}`),"base58btc"):q(J.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Ot(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=ec.get(e.name);if(n==null)throw new Y(`no available resolver for ${e.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(i=>ft(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[El](){return`Multiaddr(${this.#t})`}};var ec=new Map;function rc(r){return!!r?.[jo]}function ft(r){return new en(r)}var Il=w("dns4"),Sl=w("dns6"),Al=w("dnsaddr"),Ee=F(w("dns"),Al,Il,Sl),on=F(w("ip4"),w("ip6")),se=F(A(on,w("tcp")),A(Ee,w("tcp"))),sn=A(on,w("udp")),Tl=A(sn,w("utp")),Ll=A(sn,w("quic")),Nl=A(sn,w("quic-v1")),ti=F(A(se,w("ws")),A(Ee,w("ws"))),rn=F(A(ti,w("p2p")),ti),ei=F(A(se,w("wss")),A(Ee,w("wss")),A(se,w("tls"),w("ws")),A(Ee,w("tls"),w("ws"))),nn=F(A(ei,w("p2p")),ei),ri=F(A(se,w("http")),A(on,w("http")),A(Ee,w("http"))),ni=F(A(se,w("https")),A(on,w("https")),A(Ee,w("https"))),nc=A(sn,w("webrtc-direct"),w("certhash")),sc=F(A(nc,w("p2p")),nc),oc=A(Nl,w("webtransport"),w("certhash"),w("certhash")),cc=F(A(oc,w("p2p")),oc),ac=F(A(rn,w("p2p-webrtc-star"),w("p2p")),A(nn,w("p2p-webrtc-star"),w("p2p")),A(rn,w("p2p-webrtc-star")),A(nn,w("p2p-webrtc-star"))),Yy=F(A(rn,w("p2p-websocket-star"),w("p2p")),A(nn,w("p2p-websocket-star"),w("p2p")),A(rn,w("p2p-websocket-star")),A(nn,w("p2p-websocket-star"))),uc=F(A(ri,w("p2p-webrtc-direct"),w("p2p")),A(ni,w("p2p-webrtc-direct"),w("p2p")),A(ri,w("p2p-webrtc-direct")),A(ni,w("p2p-webrtc-direct"))),ve=F(ti,ei,ri,ni,ac,uc,se,Tl,Ll,Ee,sc,cc),Zy=F(A(ve,w("p2p-stardust"),w("p2p")),A(ve,w("p2p-stardust"))),ie=F(A(ve,w("p2p")),ac,uc,sc,cc,w("p2p")),ic=F(A(ie,w("p2p-circuit"),ie),A(ie,w("p2p-circuit")),A(w("p2p-circuit"),ie),A(ve,w("p2p-circuit")),A(w("p2p-circuit"),ve),w("p2p-circuit")),lc=()=>F(A(ic,lc),ic),xe=lc(),Xy=F(A(xe,ie,xe),A(ie,xe),A(xe,ie),xe,ie);var Qy=F(A(xe,w("webrtc"),w("p2p")),A(xe,w("webrtc")),A(ve,w("webrtc"),w("p2p")),A(ve,w("webrtc")),w("webrtc"));function fc(r){function t(e){let n;try{n=ft(e)}catch{return!1}let o=r(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return t}function A(...r){function t(e){if(e.length(n=typeof o=="function"?o().partialMatch(e):o.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:fc(t),partialMatch:t}}function F(...r){function t(n){let o=null;return r.some(i=>{let s=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return s!=null?(o=s,!0):!1}),o}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:fc(t),partialMatch:t}}function w(r){let t=r;function e(o){let i;try{i=ft(o)}catch{return!1}let s=i.protoNames();return s.length===1&&s[0]===t}function n(o){return o.length===0?null:o[0]===t?o.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var cn=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var gc=mt(W("net"),1);var oi={ERR_INVALID_IP_PARAMETER:"ERR_INVALID_IP_PARAMETER",ERR_INVALID_PORT_PARAMETER:"ERR_INVALID_PORT_PARAMETER",ERR_INVALID_IP:"ERR_INVALID_IP"};function dc(r,t){if(typeof r!="string")throw new Y(`invalid ip provided: ${r}`,oi.ERR_INVALID_IP_PARAMETER);if(typeof t=="string"&&(t=parseInt(t)),isNaN(t))throw new Y(`invalid port provided: ${t}`,oi.ERR_INVALID_PORT_PARAMETER);if((0,Lt.isIPv4)(r))return ft(`/ip4/${r}/tcp/${t}`);if((0,Lt.isIPv6)(r))return ft(`/ip6/${r}/tcp/${t}`);throw new Y(`invalid ip:port for creating a multiaddr: ${r}:${t}`,oi.ERR_INVALID_IP)}function hc(r){if(Rl(r))return async function*(){let t=r.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)return;yield n}}finally{t.releaseLock()}}();if(kl(r))return r;throw new Error("unknown stream")}function kl(r){return r[Symbol.asyncIterator]!=null}function Rl(r){return typeof r?.getReader=="function"}function pc(r){return async t=>{let e=async()=>{Bl(t)&&await t.return(void 0)},n,o,i=m=>{n=m,e().catch(b=>{b=new AggregateError([n,b],"The Writable emitted an error, additionally an error occurred while ending the Source")}).finally(()=>{o?.(m)})},s,c=!1,a=()=>{c=!0,s?.()},l,d=!1,u=()=>{d=!0,l?.()},y,g=()=>{y?.()},p=async()=>new Promise((m,b)=>{s=y=m,o=b,r.once("drain",g)}),f=async()=>(await e(),new Promise((m,b)=>{if(c||d||n!=null){m();return}l=s=m,o=b})),h=()=>{r.removeListener("error",i),r.removeListener("close",a),r.removeListener("finish",u),r.removeListener("drain",g)};r.once("error",i),r.once("close",a),r.once("finish",u);try{for await(let m of t){if(!r.writable||r.destroyed||n!=null)break;r.write(m)||await p()}}catch(m){n==null&&r.destroy(m),n=m}try{if(r.writable&&r.end(),await f(),n!=null)throw n}finally{h()}}}function Bl(r){return r.return!=null}function ii(r){return{sink:pc(r),source:hc(r)}}var si=mt(W("os"),1),mc=mt(W("path"),1);var Cl={ip4:"IPv4",ip6:"IPv6"};function Ge(r,t={}){let e=r.getPath();return e!=null?si.default.platform()==="win32"?{path:mc.default.join("\\\\.\\pipe\\",e)}:{path:e}:{...t,...r.toOptions()}}function ci(r,t,e){let n=o=>ft(`/${r}/${o}/tcp/${e}`);return(Ol(t)?_l(Cl[r]):[t]).map(n)}function Ol(r){return["0.0.0.0","::"].includes(r)}var Dl=si.default.networkInterfaces();function _l(r){let t=[];for(let[,e]of Object.entries(Dl))if(e!=null)for(let n of e)n.family===r&&t.push(n.address);return t}var an=(r,t)=>{let e=null,n=t.logger.forComponent("libp2p:tcp:socket"),o=t.metrics,i=t.metricPrefix??"",s=t.socketInactivityTimeout??3e5,c=t.socketCloseTimeout??500;t.listeningAddr?.getPath()!=null&&(t.remoteAddr=t.listeningAddr),t.remoteAddr?.getPath()!=null&&(t.localAddr=t.remoteAddr);let a;if(t.remoteAddr!=null)a=t.remoteAddr;else{if(r.remoteAddress==null||r.remotePort==null)throw new Y("Could not determine remote address or port","ERR_NO_REMOTE_ADDRESS");a=dc(r.remoteAddress,r.remotePort)}let l=Ge(a),d=l.path??`${l.host??""}:${l.port??""}`,{sink:u,source:y}=ii(r);r.setTimeout(s,()=>{n("%s socket read timeout",d),o?.increment({[`${i}timeout`]:!0});let p;r.readable&&(p=new Y("Socket read timeout","ERR_SOCKET_READ_TIMEOUT")),r.destroy(p)}),r.once("close",()=>{n("%s socket close",d),o?.increment({[`${i}close`]:!0}),g.timeline.close==null&&(g.timeline.close=Date.now())}),r.once("end",()=>{n("%s socket end",d),o?.increment({[`${i}end`]:!0})});let g={async sink(p){try{await u(async function*(){for await(let f of p)f instanceof Uint8Array?yield f:yield f.subarray()}())}catch(f){f.type!=="aborted"&&n.error("%s error in sink",d,f)}r.end()},source:y,remoteAddr:a,timeline:{open:Date.now()},async close(p={}){if(r.destroyed){n("The %s socket is destroyed",d);return}if(e!=null)return n("The %s socket is closed or closing",d),e;if(p.signal==null){let h=AbortSignal.timeout(c);p={...p,signal:h}}let f=()=>{r.destroy(new Y("Destroying socket after timeout","ERR_CLOSE_TIMEOUT"))};p.signal?.addEventListener("abort",f);try{n("%s closing socket",d),e=new Promise((h,m)=>{r.once("close",()=>{n("%s socket closed",d),h()}),r.once("error",b=>{n("%s socket error",d,b),g.timeline.close==null&&(g.timeline.close=Date.now()),r.destroyed||m(b)}),r.setTimeout(c),r.end(),r.writableLength>0?r.once("drain",()=>{n("%s socket drained",d),r.destroy()}):r.destroy()}),await e}catch(h){this.abort(h)}finally{p.signal?.removeEventListener("abort",f)}},abort:p=>{n("%s socket abort due to error",d,p),r.destroyed||r.destroy(p),g.timeline.close==null&&(g.timeline.close=Date.now())},log:n};return g};async function yc(r,t){try{await r.close()}catch(e){t.log.error("an error occurred closing the connection",e),r.abort(e)}}var tt;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(tt||(tt={}));var un=class extends Dr{context;server;connections=new Set;status={code:tt.INACTIVE};metrics;addr;log;constructor(t){if(super(),this.context=t,t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,this.log=t.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=gc.default.createServer(t,this.onSocket.bind(this)),t.maxConnections!==void 0&&(this.server.maxConnections=t.maxConnections),t.closeServerOnMaxConnections!=null&&t.closeServerOnMaxConnections.closeAbove= listenBelow","ERR_CONNECTION_LIMITS");this.server.on("listening",()=>{if(t.metrics!=null){let e=this.server.address();e==null?this.addr="unknown":typeof e=="string"?this.addr=e:this.addr=`${e.address}:${e.port}`,t.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.connections.size})}),this.metrics={status:t.metrics.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:t.metrics.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:t.metrics.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.metrics?.status.update({[this.addr]:tt.ACTIVE})}this.safeDispatchEvent("listening")}).on("error",e=>{this.metrics?.errors.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:e})}).on("close",()=>{this.metrics?.status.update({[this.addr]:this.status.code}),this.status.code!==tt.PAUSED&&this.safeDispatchEvent("close")})}onSocket(t){if(this.status.code!==tt.ACTIVE)throw new Y("Server is not listening yet","ERR_SERVER_NOT_RUNNING");t.on("error",n=>{this.log("socket error",n),this.metrics?.events.increment({[`${this.addr} error`]:!0})});let e;try{e=an(t,{listeningAddr:this.status.listeningAddr,socketInactivityTimeout:this.context.socketInactivityTimeout,socketCloseTimeout:this.context.socketCloseTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,logger:this.context.logger})}catch(n){this.log.error("inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_to_connection`]:!0});return}this.log("new inbound connection %s",e.remoteAddr);try{this.context.upgrader.upgradeInbound(e).then(n=>{this.log("inbound connection upgraded %s",e.remoteAddr),this.connections.add(e),t.once("close",()=>{this.connections.delete(e),this.context.closeServerOnMaxConnections!=null&&this.connections.size{this.log.error("error attempting to listen server once connection count under limit",o),this.context.closeServerOnMaxConnections?.onListenError?.(o)})}),this.context.handler!=null&&this.context.handler(n),this.context.closeServerOnMaxConnections!=null&&this.connections.size>=this.context.closeServerOnMaxConnections.closeAbove&&this.pause(!1).catch(o=>{this.log.error("error attempting to close server once connection count over limit",o)}),this.safeDispatchEvent("connection",{detail:n})}).catch(async n=>{this.log.error("inbound connection failed",n),this.metrics?.errors.increment({[`${this.addr} inbound_upgrade`]:!0}),await yc(e,{log:this.log})}).catch(n=>{this.log.error("closing inbound connection failed",n)})}catch(n){this.log.error("inbound connection failed",n),yc(e,{log:this.log}).catch(o=>{this.log.error("closing inbound connection failed",o),this.metrics?.errors.increment({[`${this.addr} inbound_closing_failed`]:!0})})}}getAddrs(){if(this.status.code===tt.INACTIVE)return[];let t=[],e=this.server.address(),{listeningAddr:n,peerId:o}=this.status;if(e==null)return[];if(typeof e=="string")t=[n];else try{n.toString().startsWith("/ip4")?t=t.concat(ci("ip4",e.address,e.port)):e.family==="IPv6"&&(t=t.concat(ci("ip6",e.address,e.port)))}catch(i){this.log.error("could not turn %s:%s into multiaddr",e.address,e.port,i)}return t.map(i=>o!=null?i.encapsulate(`/p2p/${o}`):i)}async listen(t){if(this.status.code===tt.ACTIVE||this.status.code===tt.PAUSED)throw new Y("server is already listening","ERR_SERVER_ALREADY_LISTENING");let e=t.getPeerId(),n=e==null?t.decapsulateCode(421):t,{backlog:o}=this.context;try{this.status={code:tt.ACTIVE,listeningAddr:n,peerId:e,netConfig:Ge(n,{backlog:o})},await this.resume()}catch(i){throw this.status={code:tt.INACTIVE},i}}async close(){let t=new Y("Listener is closing","ERR_LISTENER_CLOSING");this.connections.forEach(e=>{e.abort(t)}),await this.pause(!0)}async resume(){if(this.server.listening||this.status.code===tt.INACTIVE)return;let t=this.status.netConfig;await new Promise((e,n)=>{this.server.once("error",n),this.server.listen(t,e)}),this.status={...this.status,code:tt.ACTIVE},this.log("listening on %s",this.server.address())}async pause(t){if(!this.server.listening&&this.status.code===tt.PAUSED&&t){this.status={code:tt.INACTIVE};return}!this.server.listening||this.status.code!==tt.ACTIVE||(this.log("closing server on %s",this.server.address()),this.status=t?{code:tt.INACTIVE}:{...this.status,code:tt.PAUSED},await new Promise((e,n)=>{this.server.close(o=>{if(o!=null){n(o);return}e()})}))}};var ai=class{opts;metrics;components;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:tcp"),this.opts=e,this.components=t,t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[ns]=!0;[Symbol.toStringTag]="@libp2p/tcp";[ss]=["@libp2p/transport"];async dial(t,e){e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0;let n=await this._connect(t,e);n.on("error",c=>{this.log("socket error",c)});let o=an(n,{remoteAddr:t,socketInactivityTimeout:this.opts.outboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.metrics?.dialerEvents,logger:this.components.logger}),i=()=>{o.close().catch(c=>{this.log.error("Error closing maConn after abort",c)})};e.signal?.addEventListener("abort",i,{once:!0}),this.log("new outbound connection %s",o.remoteAddr);let s=await e.upgrader.upgradeOutbound(o);if(this.log("outbound connection %s upgraded",o.remoteAddr),e.signal?.removeEventListener("abort",i),e.signal?.aborted===!0)throw s.close().catch(c=>{this.log.error("Error closing conn after abort",c)}),new er;return s}async _connect(t,e){return e.signal?.throwIfAborted(),e.onProgress?.(new cn("tcp:open-connection")),new Promise((n,o)=>{let i=Date.now(),s=Ge(t,{...this.opts.dialOpts??{},...e});this.log("dialing %a",t);let c=bc.default.connect(s),a=g=>{let p=s.path??`${s.host??""}:${s.port}`;g.message=`connection error ${p}: ${g.message}`,this.metrics?.dialerEvents.increment({error:!0}),y(g)},l=()=>{this.log("connection timeout %a",t),this.metrics?.dialerEvents.increment({timeout:!0});let g=new Y(`connection timeout after ${Date.now()-i}ms`,"ERR_CONNECT_TIMEOUT");c.emit("error",g)},d=()=>{this.log("connection opened %a",t),this.metrics?.dialerEvents.increment({connect:!0}),y()},u=()=>{this.log("connection aborted %a",t),this.metrics?.dialerEvents.increment({abort:!0}),c.destroy(),y(new er)},y=g=>{if(c.removeListener("error",a),c.removeListener("timeout",l),c.removeListener("connect",d),e.signal!=null&&e.signal.removeEventListener("abort",u),g!=null){o(g);return}n(c)};c.on("error",a),c.on("timeout",l),c.on("connect",d),e.signal!=null&&e.signal.addEventListener("abort",u)})}createListener(t){return new un({...this.opts.listenOpts??{},...t,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,socketInactivityTimeout:this.opts.inboundSocketInactivityTimeout,socketCloseTimeout:this.opts.socketCloseTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>e.protoCodes().includes(290)?!1:e.protoCodes().includes(400)?!0:se.matches(e.decapsulateCode(421)))}dialFilter(t){return this.listenFilter(t)}};function wc(r={}){return t=>new ai(t,r)}var Ec=Symbol.for("@achingbrain/uint8arraylist");function xc(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ln(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ln(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=xc(this.bufs,t);return e.buf[e.index]}set(t,e){let n=xc(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return bt(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:bt(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),i=new r;return i.length=o,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let i=0;i=a)continue;let l=t>=c&&tc&&e<=a;if(l&&d){if(t===c&&e===a){n.push(s);break}let u=t-c;n.push(s.subarray(u,u+(e-t)));break}if(l){if(t===0){n.push(s);continue}n.push(s.subarray(t-c));continue}if(d){if(e===a){n.push(s);break}n.push(s.subarray(0,e-c));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ln(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let i=256,s=new Int32Array(i);for(let u=0;u=0;y--){let g=this.get(u+y);if(n[y]!==g){d=Math.max(1,y-c[g]);break}}if(d===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=lt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=Kt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=Kt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=Kt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=lt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=Kt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=Kt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=Kt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=Kt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=Kt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;eo+i.byteLength,0)),n.length=e,n}};function fn(r){return r[Symbol.asyncIterator]!=null}var dn=r=>{let t=z(r),e=lt(t);return Ut(r,e),dn.bytes=t,e};dn.bytes=0;function hn(r,t){t=t??{};let e=t.lengthEncoder??dn;function*n(o){let i=e(o.byteLength);i instanceof Uint8Array?yield i:yield*i,o instanceof Uint8Array?yield o:yield*o}return fn(r)?async function*(){for await(let o of r)yield*n(o)}():function*(){for(let o of r)yield*n(o)}()}hn.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??dn;return new Et(e(r.byteLength),r)};var pn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},mn=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},yn=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},lr=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var Ml=8,Kl=1024*1024*4,Ie;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Ie||(Ie={}));var li=r=>{let t=Pt(r);return li.bytes=z(t),t};li.bytes=0;function ui(r,t){let e=new Et,n=Ie.LENGTH,o=-1,i=t?.lengthDecoder??li,s=t?.maxLengthLength??Ml,c=t?.maxDataLength??Kl;function*a(){for(;e.byteLength>0;){if(n===Ie.LENGTH)try{if(o=i(e),o<0)throw new pn("Invalid message length");if(o>c)throw new mn("Message length too long");let l=i.bytes;e.consume(l),t?.onLength!=null&&t.onLength(o),n=Ie.DATA}catch(l){if(l instanceof RangeError){if(e.byteLength>s)throw new yn("Message length length too long");break}throw l}if(n===Ie.DATA){if(e.byteLength0)throw new lr("Unexpected end of input")}():function*(){for(let l of r)e.append(l),yield*a();if(e.byteLength>0)throw new lr("Unexpected end of input")}()}ui.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:i,value:s}=await r.next(e);if(i===!0)return;s!=null&&(yield s)}catch(i){if(i.code==="ERR_UNDER_READ")return{done:!0,value:null};throw i}finally{e=1}}();return ui(n,{...t??{},onLength:i=>{e=i}})};function zt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var gn=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function vc(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new gn(e?.errorMessage,e?.errorCode,e?.errorName));let n,o=new gn(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var fi=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=zt(),this.haveNext=zt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=zt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=zt(),await vc(this.readNext.promise,e?.signal,e)}};function Ic(){return new fi}var bn=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var di=class extends Error{code;constructor(t,e){super(t),this.code=e}},hi=class extends di{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Sc(r,t){let e=Ic();r.sink(e).catch(async s=>{await e.end(s)}),r.sink=async s=>{for await(let c of s)await e.push(c);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let o=new Et;return{read:async(s,c)=>{c?.signal?.throwIfAborted();let a,l=new Promise((d,u)=>{a=()=>{u(new hi("Read aborted"))},c?.signal?.addEventListener("abort",a)});try{if(s==null){let{done:u,value:y}=await Promise.race([n.next(),l]);return u===!0?new Et:y}for(;o.byteLength{c?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,c):await e.push(s.subarray(),c)},unwrap:()=>{if(o.byteLength>0){let s=r.source;r.source=async function*(){t?.yieldBytes===!1?yield o:yield*o,yield*s}()}return r}}}var wn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},xn=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},En=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Fe(r,t={}){let e=Sc(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=z(t.maxDataLength));let n=t?.lengthDecoder??Pt,o=t?.lengthEncoder??Ut;return{read:async s=>{let c=-1,a=new Et;for(;;){a.append(await e.read(1,s));try{c=n(a)}catch(l){if(l instanceof RangeError)continue;throw l}if(c<0)throw new wn("Invalid message length");if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new En("message length length too long");if(c>-1)break}if(t?.maxDataLength!=null&&c>t.maxDataLength)throw new xn("message length too long");return e.read(c,s)},write:async(s,c)=>{await e.write(new Et(o(s.byteLength),s),c)},writeV:async(s,c)=>{let a=new Et(...s.flatMap(l=>[o(l.byteLength),l]));await e.write(a,c)},unwrap:()=>e.unwrap()}}var vn=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},ze=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new vn(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new vn(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var pi=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function He(r={}){return Vl(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Vl(r,t){t=t??{};let e=t.onEnd,n=new ze,o,i,s,c=zt(),a=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((h,m)=>{i=b=>{i=null,n.push(b);try{h(r(n))}catch(v){m(v)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=zt()})}},l=h=>i!=null?i(h):(n.push(h),o),d=h=>(n=new ze,i!=null?i({error:h}):(n.push({error:h}),o)),u=h=>{if(s)return o;if(t?.objectMode!==!0&&h?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:h})},y=h=>s?o:(s=!0,h!=null?d(h):l({done:!0})),g=()=>(n=new ze,y(),{done:!0}),p=h=>(y(h),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:a,return:g,throw:p,push:u,end:y,get readableLength(){return n.size},onEmpty:async h=>{let m=h?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let b,v;m!=null&&(b=new Promise((P,T)=>{v=()=>{T(new pi)},m.addEventListener("abort",v)}));try{await Promise.race([c.promise,b])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},e==null)return o;let f=o;return o={[Symbol.asyncIterator](){return this},next(){return f.next()},throw(h){return f.throw(h),e!=null&&(e(h),e=void 0),{done:!0}},return(){return f.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(h){return f.end(h),e!=null&&(e(h),e=void 0),o},get readableLength(){return f.readableLength},onEmpty:h=>f.onEmpty(h)},o}function Gl(r){return r[Symbol.asyncIterator]!=null}function Fl(...r){let t=[];for(let e of r)Gl(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=He({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)e.push(o)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var Ac=Fl;function yi(r,...t){if(r==null)throw new Error("Empty pipeline");if(mi(r)){let n=r;r=()=>n.source}else if(Lc(r)||Tc(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&mi(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n{let t;for(;r.length>0;)t=r.shift()(t);return t},Tc=r=>r?.[Symbol.asyncIterator]!=null,Lc=r=>r?.[Symbol.iterator]!=null,mi=r=>r==null?!1:r.sink!=null&&r.source!=null,Hl=r=>t=>{let e=r.sink(t);if(e?.then!=null){let n=He({objectMode:!0});e.then(()=>{n.end()},s=>{n.end(s)});let o,i=r.source;if(Tc(i))o=async function*(){yield*i,n.end()};else if(Lc(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Ac(n,o())}return r.source};function Nc(r,t){let e=Fe(r,t),n={read:async(o,i)=>{let s=await e.read(i);return o.decode(s)},write:async(o,i,s)=>{await e.write(i.encode(o),s)},writeV:async(o,i,s)=>{await e.writeV(o.map(c=>i.encode(c)),s)},pb:o=>({read:async i=>n.read(o,i),write:async(i,s)=>n.write(i,o,s),writeV:async(i,s)=>n.writeV(i,o,s),unwrap:()=>n}),unwrap:()=>e.unwrap()};return n}function ql(r){return r[Symbol.asyncIterator]!=null}function Wl(r){if(ql(r))return(async()=>{for await(let t of r);})();for(let t of r);}var gi=Wl;function dt(r){return H.encode({type:H.Type.OK,peers:[],...r}).subarray()}function it(r){return H.encode({type:H.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var In=he("libp2p:daemon-server:dht"),Sn=class{dht;constructor(t){let{dht:e}=t;this.dht=e}async*provide(t){try{await gi(this.dht.provide(t)),yield dt()}catch(e){In.error(e),yield it(e)}}async*getClosestPeers(t){yield dt({dht:{type:et.Type.BEGIN}});for await(let e of this.dht.getClosestPeers(t))e.name==="PEER_RESPONSE"&&(yield*e.closer.map(n=>et.encode({type:et.Type.VALUE,value:n.id.toMultihash().bytes})));yield et.encode({type:et.Type.END})}async*getPublicKey(t){yield it(new Error("FIX ME: not implemented"))}async*getValue(t){try{for await(let e of this.dht.get(t))e.name==="VALUE"&&(yield dt({dht:{type:et.Type.VALUE,value:e.value}}))}catch(e){In.error(e),yield it(e)}}async*putValue(t,e){try{await gi(this.dht.put(t,e)),yield dt()}catch(n){In.error(n),yield it(n)}}async*findPeer(t){try{for await(let e of this.dht.findPeer(t))e.name==="FINAL_PEER"&&(yield dt({dht:{type:et.Type.VALUE,peer:{id:e.peer.id.toMultihash().bytes,addrs:e.peer.multiaddrs.map(n=>n.bytes)}}}));throw new Error("Peer not found")}catch(e){In.error(e),yield it(e)}}async*findProviders(t,e){yield dt({dht:{type:et.Type.BEGIN}});try{let n=e,o=0;for await(let i of this.dht.findProviders(t))if(i.name==="PEER_RESPONSE"){for(let s of i.providers)o++,yield et.encode({type:et.Type.VALUE,peer:{id:s.id.toMultihash().bytes,addrs:(s.multiaddrs??[]).map(c=>c.bytes)}});if(n===o)break}}catch(n){yield it(n)}yield et.encode({type:et.Type.END})}};var An=he("libp2p:daemon-server:pubsub"),Tn=class{pubsub;constructor(t){let{pubsub:e}=t;this.pubsub=e}async*getTopics(){try{yield dt({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(t){An.error(t),yield it(t)}}async*subscribe(t){try{let e=He();this.pubsub.subscribe(t),this.pubsub.addEventListener("message",n=>{let o=n.detail;o.topic===t&&(o.type==="signed"?e.push(tr.encode({from:o.from.toMultihash().bytes,data:o.data,seqno:o.sequenceNumber==null?void 0:Mt(o.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[o.topic],signature:o.signature,key:Ce(o.key)}).subarray()):e.push(tr.encode({data:o.data,topicIDs:[o.topic]}).subarray()))}),yield dt(),yield*e}catch(e){An.error(e),yield it(e)}}async*publish(t,e){try{await this.pubsub.publish(t,e),yield dt()}catch(n){An.error(n),yield it(n)}}async*listPeers(t){try{yield dt({pubsub:{topics:[t],peerIDs:this.pubsub.getSubscribers(t).map(e=>e.toMultihash().bytes)}})}catch(e){An.error(e),yield it(e)}}};var Yl=1<<22,st=he("libp2p:daemon-server"),Ln=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(t){let{multiaddr:e,libp2pNode:n}=t;this.multiaddr=e,this.libp2p=n,this.tcp=wc()({logger:es()}),this.listener=this.tcp.createListener({handler:this.handleConnection.bind(this),upgrader:bo}),this._onExit=this._onExit.bind(this),n.services.dht!=null&&(this.dhtOperations=new Sn({dht:n.services.dht})),n.services.pubsub!=null&&(this.pubsubOperations=new Tn({pubsub:n.services.pubsub}))}async connect(t){if(t.connect?.addrs==null)throw new Error("Invalid request");let e=t.connect.peer,n=t.connect.addrs.map(i=>ft(i)),o=$e(Bt(e));return st("connect - adding multiaddrs %a to peer %p",n,o),await this.libp2p.peerStore.merge(o,{multiaddrs:n}),st("connect - dial %p",o),this.libp2p.dial(o)}async openStream(t){if(t.streamOpen?.proto==null)throw new Error("Invalid request");let{peer:e,proto:n}=t.streamOpen,o=$e(Bt(e));st("openStream - dial %p",o);let i=await this.libp2p.dial(o);st("openStream - open stream for protocol %s",n);let s=await i.newStream(n,{runOnLimitedConnection:!0});return{streamInfo:{peer:o.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""},connection:s}}async registerStreamHandler(t){if(t.streamHandler?.proto==null)throw new Error("Invalid request");let e=t.streamHandler.proto,n=ft(t.streamHandler.addr),o;st("registerStreamHandler - handle %s",e),await this.libp2p.handle(e,({connection:i,stream:s})=>{Promise.resolve().then(async()=>{o=await this.tcp.dial(n,{upgrader:bo});let c=Re.encode({peer:i.remotePeer.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""}),a=hn.single(c);await yi(async function*(){yield a,yield*s.source}(),async function*(l){for await(let d of l)yield*d},o,s.sink)}).catch(async c=>{st.error(c),o!=null&&await o.close(c)}).finally(()=>{o?.close().catch(c=>{st.error(c)})})},{runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(t=>{st.error(t)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let t=this.listener.getAddrs();if(t.length>0)return t[0];throw new Error("Not started")}async stop(t={exit:!1}){await this.libp2p.stop(),await this.listener.close(),t.exit&&st("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(t){try{switch(t.type){case de.Type.GET_PROTOCOLS:if(t.id==null)throw new Error("Invalid request");let e=$e(Bt(t.id)),o=(await this.libp2p.peerStore.get(e)).protocols;yield dt({peerStore:{protos:o}});return;case de.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){st.error(e),yield it(e)}}async*handlePubsubRequest(t){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(t.type){case Vt.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case Vt.Type.SUBSCRIBE:if(t.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(t.topic);return;case Vt.Type.PUBLISH:if(t.topic==null||t.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(t.topic,t.data);return;case Vt.Type.LIST_PEERS:if(t.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(t.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){st.error(e),yield it(e)}}async*handleDHTRequest(t){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(t.type){case St.Type.FIND_PEER:if(t.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer($e(Bt(t.peer)));return;case St.Type.FIND_PROVIDERS:if(t.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders(J.decode(t.cid),t.count??20);return;case St.Type.PROVIDE:if(t.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide(J.decode(t.cid));return;case St.Type.GET_CLOSEST_PEERS:if(t.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(t.key);return;case St.Type.GET_PUBLIC_KEY:if(t.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey($e(Bt(t.peer)));return;case St.Type.GET_VALUE:if(t.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(t.key);return;case St.Type.PUT_VALUE:if(t.key==null||t.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(t.key,t.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(e){st.error(e),yield it(e)}}handleConnection(t){Promise.resolve().then(async()=>{let e=this,n=Nc(t,{maxDataLength:Yl}),o=await n.read(It);st("read",o);try{switch(o.type){case It.Type.CONNECT:{await e.connect(o),await n.write({type:H.Type.OK},H);break}case It.Type.IDENTIFY:{await n.write({type:H.Type.OK,identify:{id:e.libp2p.peerId.toMultihash().bytes,addrs:e.libp2p.getMultiaddrs().map(i=>i.decapsulateCode(R("p2p").code)).map(i=>i.bytes)}},H);break}case It.Type.LIST_PEERS:{let i=[],s=new Set;for(let c of e.libp2p.getConnections()){let a=c.remotePeer.toString();s.has(a)||(s.add(a),i.push({id:c.remotePeer.toMultihash().bytes,addrs:[c.remoteAddr.bytes]}))}await n.write({type:H.Type.OK,peers:i},H);break}case It.Type.STREAM_OPEN:{let i=await e.openStream(o);await n.write({type:H.Type.OK,streamInfo:i.streamInfo},H);let s=n.unwrap();await yi(s,i.connection,s);break}case It.Type.STREAM_HANDLER:{await e.registerStreamHandler(o),await n.write({type:H.Type.OK},H);break}case It.Type.PEERSTORE:{if(o.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let i=n.unwrap(),s=Fe(i);for await(let c of e.handlePeerStoreRequest(o.peerStore))await s.write(c);break}case It.Type.PUBSUB:{if(o.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let i=n.unwrap(),s=Fe(i);for await(let c of e.handlePubsubRequest(o.pubsub))await s.write(c);break}case It.Type.DHT:{if(o.dht==null)throw new Error("ERR_INVALID_REQUEST");let i=n.unwrap(),s=Fe(i);for await(let c of e.handleDHTRequest(o.dht))await s.write(c);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(i){st.error(i),await n.write({type:H.Type.ERROR,error:{msg:i.message},peers:[]},H)}finally{await n.unwrap().close()}}).catch(e=>{st.error("error handling incoming connection",e)})}},Zl=(r,t)=>new Ln({multiaddr:r,libp2pNode:t});return Oc(Xl);})(); -+/*! Bundled license information: -+ -+@noble/hashes/esm/utils.js: -+ (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/utils.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/modular.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/curve.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/abstract/weierstrass.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/_shortw_utils.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+ -+@noble/curves/esm/secp256k1.js: -+ (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) -+*/ - return Libp2PDaemonServer})); -diff --git a/node_modules/@libp2p/daemon-server/dist/src/dht.js b/node_modules/@libp2p/daemon-server/dist/src/dht.js -index f74795d..7664dcd 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/dht.js -+++ b/node_modules/@libp2p/daemon-server/dist/src/dht.js -@@ -30,7 +30,7 @@ export class DHTOperations { - if (event.name === 'PEER_RESPONSE') { - yield* event.closer.map(peer => DHTResponse.encode({ - type: DHTResponse.Type.VALUE, -- value: peer.id.toBytes() -+ value: peer.id.toMultihash().bytes - })); - } - } -@@ -77,7 +77,7 @@ export class DHTOperations { - dht: { - type: DHTResponse.Type.VALUE, - peer: { -- id: event.peer.id.toBytes(), -+ id: event.peer.id.toMultihash().bytes, - addrs: event.peer.multiaddrs.map(m => m.bytes) - } - } -@@ -107,7 +107,7 @@ export class DHTOperations { - yield DHTResponse.encode({ - type: DHTResponse.Type.VALUE, - peer: { -- id: provider.id.toBytes(), -+ id: provider.id.toMultihash().bytes, - addrs: (provider.multiaddrs ?? []).map(m => m.bytes) - } - }); -diff --git a/node_modules/@libp2p/daemon-server/dist/src/dht.js.map b/node_modules/@libp2p/daemon-server/dist/src/dht.js.map -index 44c6b82..f911c4b 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/dht.js.map -+++ b/node_modules/@libp2p/daemon-server/dist/src/dht.js.map -@@ -1 +1 @@ --{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/src/index.d.ts.map b/node_modules/@libp2p/daemon-server/dist/src/index.d.ts.map -index be91dc6..6a0cb63 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/index.d.ts.map -+++ b/node_modules/@libp2p/daemon-server/dist/src/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,yBAAyB,CAAA;AAchC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAuB,MAAM,mBAAmB,CAAA;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,YAAY,IAAI,SAAS,CAAA;CAC1B;AAED,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;gBAEvC,IAAI,EAAE,UAAU;IAwB7B;;OAEG;IACG,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBrD;;OAEG;IACG,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BxD;;;;OAIG;IACG,qBAAqB,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkE7D;;OAEG;IACH,OAAO,IAAK,IAAI;IAOhB,OAAO,IAAK,IAAI;IAMhB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAK,SAAS;IAU1B;;OAEG;IACG,IAAI,CAAE,OAAO;;KAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,sBAAsB,CAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwBvG;;OAEG;IACK,mBAAmB,CAAE,OAAO,EAAE,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwC7F;;OAEG;IACK,gBAAgB,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAiE3F;;OAEG;IACH,gBAAgB,CAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;CA2JrD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAe,SAAS,cAAc,OAAO;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,KAAG,YAO3G,CAAA"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,yBAAyB,CAAA;AAehC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAuB,MAAM,mBAAmB,CAAA;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,YAAY,IAAI,SAAS,CAAA;CAC1B;AAED,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;gBAEvC,IAAI,EAAE,UAAU;IAwB7B;;OAEG;IACG,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBrD;;OAEG;IACG,UAAU,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BxD;;;;OAIG;IACG,qBAAqB,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgE7D;;OAEG;IACH,OAAO,IAAK,IAAI;IAOhB,OAAO,IAAK,IAAI;IAMhB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAM7B,YAAY,IAAK,SAAS;IAU1B;;OAEG;IACG,IAAI,CAAE,OAAO;;KAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,sBAAsB,CAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwBvG;;OAEG;IACK,mBAAmB,CAAE,OAAO,EAAE,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAwC7F;;OAEG;IACK,gBAAgB,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAiE3F;;OAEG;IACH,gBAAgB,CAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;CA2JrD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAe,SAAS,cAAc,OAAO;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,KAAG,YAO3G,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/src/index.js b/node_modules/@libp2p/daemon-server/dist/src/index.js -index 11b832d..a34624f 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/index.js -+++ b/node_modules/@libp2p/daemon-server/dist/src/index.js -@@ -2,7 +2,7 @@ - import { Request, Response, DHTRequest, PeerstoreRequest, PSRequest, StreamInfo } from '@libp2p/daemon-protocol'; - import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader'; - import { defaultLogger, logger } from '@libp2p/logger'; --import { peerIdFromBytes } from '@libp2p/peer-id'; -+import { peerIdFromMultihash } from '@libp2p/peer-id'; - import { tcp } from '@libp2p/tcp'; - import { multiaddr, protocols } from '@multiformats/multiaddr'; - import * as lp from 'it-length-prefixed'; -@@ -10,6 +10,7 @@ import { lpStream } from 'it-length-prefixed-stream'; - import { pipe } from 'it-pipe'; - import { pbStream } from 'it-protobuf-stream'; - import { CID } from 'multiformats/cid'; -+import * as Digest from 'multiformats/hashes/digest'; - import { DHTOperations } from './dht.js'; - import { PubSubOperations } from './pubsub.js'; - import { ErrorResponse, OkResponse } from './responses.js'; -@@ -46,12 +47,12 @@ export class Server { - * Connects the daemons libp2p node to the peer provided - */ - async connect(request) { -- if (request.connect == null || request.connect.addrs == null) { -+ if (request.connect?.addrs == null) { - throw new Error('Invalid request'); - } - const peer = request.connect.peer; - const addrs = request.connect.addrs.map((a) => multiaddr(a)); -- const peerId = peerIdFromBytes(peer); -+ const peerId = peerIdFromMultihash(Digest.decode(peer)); - log('connect - adding multiaddrs %a to peer %p', addrs, peerId); - await this.libp2p.peerStore.merge(peerId, { - multiaddrs: addrs -@@ -63,22 +64,20 @@ export class Server { - * Opens a stream on one of the given protocols to the given peer - */ - async openStream(request) { -- if (request.streamOpen == null || request.streamOpen.proto == null) { -+ if (request.streamOpen?.proto == null) { - throw new Error('Invalid request'); - } - const { peer, proto } = request.streamOpen; -- const peerId = peerIdFromBytes(peer); -+ const peerId = peerIdFromMultihash(Digest.decode(peer)); - log('openStream - dial %p', peerId); - const connection = await this.libp2p.dial(peerId); - log('openStream - open stream for protocol %s', proto); - const stream = await connection.newStream(proto, { -- runOnTransientConnection: true, -- // @ts-expect-error this has not been released yet - runOnLimitedConnection: true - }); - return { - streamInfo: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - addr: connection.remoteAddr.bytes, - proto: stream.protocol ?? '' - }, -@@ -91,7 +90,7 @@ export class Server { - * is registered at the path, it will be overridden. - */ - async registerStreamHandler(request) { -- if (request.streamHandler == null || request.streamHandler.proto == null) { -+ if (request.streamHandler?.proto == null) { - throw new Error('Invalid request'); - } - const protocols = request.streamHandler.proto; -@@ -108,7 +107,7 @@ export class Server { - upgrader: passThroughUpgrader - }); - const message = StreamInfo.encode({ -- peer: connection.remotePeer.toBytes(), -+ peer: connection.remotePeer.toMultihash().bytes, - addr: connection.remoteAddr.bytes, - proto: stream.protocol ?? '' - }); -@@ -140,8 +139,6 @@ export class Server { - } - }); - }, { -- runOnTransientConnection: true, -- // @ts-expect-error this has not been released yet - runOnLimitedConnection: true - }); - } -@@ -194,7 +191,7 @@ export class Server { - if (request.id == null) { - throw new Error('Invalid request'); - } -- const peerId = peerIdFromBytes(request.id); // eslint-disable-line no-case-declarations -+ const peerId = peerIdFromMultihash(Digest.decode(request.id)); // eslint-disable-line no-case-declarations - const peer = await this.libp2p.peerStore.get(peerId); // eslint-disable-line no-case-declarations - const protos = peer.protocols; // eslint-disable-line no-case-declarations - yield OkResponse({ peerStore: { protos } }); -@@ -262,7 +259,7 @@ export class Server { - if (request.peer == null) { - throw new Error('Invalid request'); - } -- yield* this.dhtOperations.findPeer(peerIdFromBytes(request.peer)); -+ yield* this.dhtOperations.findPeer(peerIdFromMultihash(Digest.decode(request.peer))); - return; - case DHTRequest.Type.FIND_PROVIDERS: - if (request.cid == null) { -@@ -286,7 +283,7 @@ export class Server { - if (request.peer == null) { - throw new Error('Invalid request'); - } -- yield* this.dhtOperations.getPublicKey(peerIdFromBytes(request.peer)); -+ yield* this.dhtOperations.getPublicKey(peerIdFromMultihash(Digest.decode(request.peer))); - return; - case DHTRequest.Type.GET_VALUE: - if (request.key == null) { -@@ -335,7 +332,7 @@ export class Server { - await pb.write({ - type: Response.Type.OK, - identify: { -- id: daemon.libp2p.peerId.toBytes(), -+ id: daemon.libp2p.peerId.toMultihash().bytes, - addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(protocols('p2p').code)).map(m => m.bytes) - } - }, Response); -@@ -352,7 +349,7 @@ export class Server { - } - seen.add(peerId); - peers.push({ -- id: connection.remotePeer.toBytes(), -+ id: connection.remotePeer.toMultihash().bytes, - addrs: [connection.remoteAddr.bytes] - }); - } -diff --git a/node_modules/@libp2p/daemon-server/dist/src/index.js.map b/node_modules/@libp2p/daemon-server/dist/src/index.js.map -index 32f02e7..133761e 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/index.js.map -+++ b/node_modules/@libp2p/daemon-server/dist/src/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/src/pubsub.d.ts.map b/node_modules/@libp2p/daemon-server/dist/src/pubsub.d.ts.map -index e21e60d..6bd2c8a 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/pubsub.d.ts.map -+++ b/node_modules/@libp2p/daemon-server/dist/src/pubsub.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAI5D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAErB,IAAI,EAAE,oBAAoB;IAM/B,SAAS,IAAK,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAczD,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAqCtE,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAUtF,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;CAa/E"} -\ No newline at end of file -+{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAI5D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAErB,IAAI,EAAE,oBAAoB;IAM/B,SAAS,IAAK,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAczD,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAqCtE,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAUtF,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;CAa/E"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/src/pubsub.js b/node_modules/@libp2p/daemon-server/dist/src/pubsub.js -index 22888b6..9e2ef97 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/pubsub.js -+++ b/node_modules/@libp2p/daemon-server/dist/src/pubsub.js -@@ -1,4 +1,5 @@ - /* eslint max-depth: ["error", 6] */ -+import { publicKeyToProtobuf } from '@libp2p/crypto/keys'; - import { PSMessage } from '@libp2p/daemon-protocol'; - import { logger } from '@libp2p/logger'; - import { pushable } from 'it-pushable'; -@@ -36,12 +37,12 @@ export class PubSubOperations { - } - if (msg.type === 'signed') { - onMessage.push(PSMessage.encode({ -- from: msg.from.toBytes(), -+ from: msg.from.toMultihash().bytes, - data: msg.data, - seqno: msg.sequenceNumber == null ? undefined : uint8ArrayFromString(msg.sequenceNumber.toString(16).padStart(16, '0'), 'base16'), - topicIDs: [msg.topic], - signature: msg.signature, -- key: msg.key -+ key: publicKeyToProtobuf(msg.key) - }).subarray()); - } - else { -@@ -74,7 +75,7 @@ export class PubSubOperations { - yield OkResponse({ - pubsub: { - topics: [topic], -- peerIDs: this.pubsub.getSubscribers(topic).map(peer => peer.toBytes()) -+ peerIDs: this.pubsub.getSubscribers(topic).map(peer => peer.toMultihash().bytes) - } - }); - } -diff --git a/node_modules/@libp2p/daemon-server/dist/src/pubsub.js.map b/node_modules/@libp2p/daemon-server/dist/src/pubsub.js.map -index b9c48f5..9c2bb69 100644 ---- a/node_modules/@libp2p/daemon-server/dist/src/pubsub.js.map -+++ b/node_modules/@libp2p/daemon-server/dist/src/pubsub.js.map -@@ -1 +1 @@ --{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts b/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts -new file mode 100644 -index 0000000..b37c2d2 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=index.spec.d.ts.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts.map b/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts.map -new file mode 100644 -index 0000000..5c89780 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-server/dist/test/index.spec.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../test/index.spec.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/test/index.spec.js b/node_modules/@libp2p/daemon-server/dist/test/index.spec.js -new file mode 100644 -index 0000000..22ff926 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-server/dist/test/index.spec.js -@@ -0,0 +1,33 @@ -+/* eslint-env mocha */ -+/* eslint max-nested-callbacks: ["error", 5] */ -+import { multiaddr } from '@multiformats/multiaddr'; -+import { expect } from 'aegir/chai'; -+import { stubInterface } from 'sinon-ts'; -+import { createServer } from '../src/index.js'; -+const ma = multiaddr('/ip4/0.0.0.0/tcp/0'); -+describe('server', () => { -+ it('should start', async () => { -+ const libp2p = stubInterface(); -+ const server = createServer(ma, libp2p); -+ await server.start(); -+ expect(libp2p.start.called).to.be.true(); -+ await server.stop(); -+ }); -+ it('should stop', async () => { -+ const libp2p = stubInterface(); -+ const server = createServer(ma, libp2p); -+ await server.start(); -+ await server.stop(); -+ expect(libp2p.stop.called).to.be.true(); -+ }); -+ it('should return multiaddrs', async () => { -+ const libp2p = stubInterface(); -+ const server = createServer(ma, libp2p); -+ expect(() => server.getMultiaddr()).to.throw(/Not started/); -+ await server.start(); -+ expect(server.getMultiaddr()).to.be.ok(); -+ await server.stop(); -+ expect(() => server.getMultiaddr()).to.throw(/Not started/); -+ }); -+}); -+//# sourceMappingURL=index.spec.js.map -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/test/index.spec.js.map b/node_modules/@libp2p/daemon-server/dist/test/index.spec.js.map -new file mode 100644 -index 0000000..5ac16e9 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-server/dist/test/index.spec.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../test/index.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAK9C,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAA;AAE1C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,aAAa,EAA8C,CAAA;QAE1E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAEvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAEpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAExC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,MAAM,GAAG,aAAa,EAA8C,CAAA;QAE1E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAEvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAEnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,aAAa,EAA8C,CAAA;QAE1E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAEvC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAE3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAEpB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAA;QAExC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAEnB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/tsconfig.tsbuildinfo b/node_modules/@libp2p/daemon-server/dist/tsconfig.tsbuildinfo -new file mode 100644 -index 0000000..74fecc1 ---- /dev/null -+++ b/node_modules/@libp2p/daemon-server/dist/tsconfig.tsbuildinfo -@@ -0,0 +1 @@ -+{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/protons-runtime/dist/src/codec.d.ts","../../../node_modules/uint8arraylist/dist/src/index.d.ts","../../../node_modules/protons-runtime/dist/src/decode.d.ts","../../../node_modules/protons-runtime/dist/src/encode.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/message.d.ts","../../../node_modules/protons-runtime/dist/src/utils/reader.d.ts","../../../node_modules/protons-runtime/dist/src/utils/writer.d.ts","../../../node_modules/protons-runtime/dist/src/index.d.ts","../../libp2p-daemon-protocol/dist/src/index.d.ts","../../../node_modules/multiformats/dist/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/src/block/interface.d.ts","../../../node_modules/multiformats/dist/src/hashes/interface.d.ts","../../../node_modules/multiformats/dist/src/link/interface.d.ts","../../../node_modules/multiformats/dist/src/cid.d.ts","../../../node_modules/@libp2p/interface/dist/src/keys/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-id/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/dns-over-https.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/dns-json-over-https.d.ts","../../../node_modules/@multiformats/dns/dist/src/resolvers/index.d.ts","../../../node_modules/progress-events/dist/src/index.d.ts","../../../node_modules/@multiformats/dns/dist/src/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/resolvers/dnsaddr.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/resolvers/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../../../node_modules/it-stream-types/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-info/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/content-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/event-target.d.ts","../../../node_modules/@libp2p/interface/dist/src/metrics/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-store/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/startable.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-handler/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/topology/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-muxer/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/transport/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-encrypter/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-gater/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-discovery/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-store/tags.d.ts","../../../node_modules/it-pushable/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/pubsub/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/record/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/errors.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/events.d.ts","../../../node_modules/@libp2p/interface/dist/src/index.d.ts","../../../node_modules/@libp2p/logger/dist/src/index.d.ts","../../../node_modules/it-drain/dist/src/index.d.ts","../src/responses.ts","../../../node_modules/@libp2p/kad-dht/dist/src/message/dht.d.ts","../../../node_modules/multiformats/dist/src/codecs/interface.d.ts","../../../node_modules/multiformats/dist/src/codecs/json.d.ts","../../../node_modules/multiformats/dist/src/codecs/raw.d.ts","../../../node_modules/multiformats/dist/src/bytes.d.ts","../../../node_modules/multiformats/dist/src/hashes/digest.d.ts","../../../node_modules/multiformats/dist/src/hashes/hasher.d.ts","../../../node_modules/multiformats/dist/src/varint.d.ts","../../../node_modules/multiformats/dist/src/interface.d.ts","../../../node_modules/multiformats/dist/src/index.d.ts","../../../node_modules/multiformats/dist/src/bases/base.d.ts","../../../node_modules/multiformats/dist/src/basics.d.ts","../../../node_modules/uint8arrays/dist/src/util/bases.d.ts","../../../node_modules/uint8arrays/dist/src/to-string.d.ts","../../../node_modules/interface-datastore/dist/src/key.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/utils.d.ts","../../../node_modules/interface-store/dist/src/errors.d.ts","../../../node_modules/interface-store/dist/src/index.d.ts","../../../node_modules/interface-datastore/dist/src/index.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/providers.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/address-manager/index.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/map.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/set.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/list.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/filter.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-map.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-set.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/tracked-list.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/connection-manager/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/random-walk/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/record/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/registrar/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/transport-manager/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/index.d.ts","../../../node_modules/any-signal/dist/src/index.d.ts","../../../node_modules/@libp2p/utils/dist/src/adaptive-timeout.d.ts","../../../node_modules/@libp2p/record/dist/src/record.d.ts","../../../node_modules/@libp2p/record/dist/src/index.d.ts","../../../node_modules/@libp2p/kad-dht/dist/src/index.d.ts","../src/dht.ts","../../libp2p-daemon-protocol/dist/src/upgrader.d.ts","../../../node_modules/@libp2p/peer-id/dist/src/index.d.ts","../../../node_modules/@libp2p/tcp/dist/src/listener.d.ts","../../../node_modules/@libp2p/tcp/dist/src/index.d.ts","../../../node_modules/it-length-prefixed/dist/src/encode.d.ts","../../../node_modules/it-reader/dist/src/index.d.ts","../../../node_modules/it-length-prefixed/dist/src/decode.d.ts","../../../node_modules/it-length-prefixed/dist/src/index.d.ts","../../../node_modules/it-byte-stream/dist/src/index.d.ts","../../../node_modules/it-length-prefixed-stream/dist/src/index.d.ts","../../../node_modules/it-pipe/dist/src/index.d.ts","../../../node_modules/it-protobuf-stream/dist/src/index.d.ts","../../../node_modules/@libp2p/crypto/dist/src/keys/interface.d.ts","../../../node_modules/@libp2p/crypto/dist/src/keys/ecdh.d.ts","../../../node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.d.ts","../../../node_modules/@libp2p/crypto/dist/src/keys/index.d.ts","../../../node_modules/uint8arrays/dist/src/from-string.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/decoderpc.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codec.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/decode.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/encode.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/codecs/message.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/utils/reader.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/utils/writer.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime/dist/src/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/types.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message-cache.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/metrics.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/set.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-stats.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/compute-score.d.ts","../../../node_modules/denque/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/message-deliveries.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/stream.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/tracer.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/config.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts","../src/pubsub.ts","../src/index.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts","../../../node_modules/chai-parentheses/index.d.ts","../../../node_modules/@types/chai-subset/index.d.ts","../../../node_modules/chai-bites/index.d.ts","../../../node_modules/@types/chai-string/index.d.ts","../../../node_modules/aegir/dist/utils/chai.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/sinon-ts/dist/src/index.d.ts","../test/index.spec.ts","../../../node_modules/keyv/src/index.d.ts","../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../node_modules/@types/responselike/index.d.ts","../../../node_modules/@types/cacheable-request/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/dns-packet/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/keyv/index.d.ts","../../../node_modules/@types/linkify-it/build/index.cjs.d.ts","../../../node_modules/@types/linkify-it/index.d.ts","../../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../../node_modules/@types/mdurl/index.d.ts","../../../node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../../node_modules/@types/markdown-it/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/murmurhash3js-revisited/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/retry/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/strip-bom/index.d.ts","../../../node_modules/@types/strip-json-comments/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"db88e2781075c7bca86634724f38a132de718ddf3a470a3a2cdb182f4364af9e","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"6d268309f0e15dd820b2df9806234166554cb4e2fe00d11737adcb4e5489f700","d35b5db21a04a45ae6323c4d4b25acc983dfe2870fc670fd05249eb19d839a5e","58cf96187feb10cc8ad3bb080871cd30888ef63bc5db131f11458850ef8f6245","9102986ff52326a2016e8cddc1cf3092f0808ac916dcc8dc2d2c7195cd181987","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","01f20dac9dc14f0d306e5d1215c5c1c3b4d1805905e60ae92fabac4031eae7da","9ceec2a882368c0160a8a3879aa0efce0fb985751fc23ff6191006030969cfa4","cad5d6451789234434c28dd2d6a8267b0d64c479b1ad267321faa31ba90d570b","6516fc98fa10b0cb22c7e332bacea4a7ea80257e113f6cdddd924d03bfde218e","be8d072f400254824429edab10acbe595299b702c97b99cc47f8e8018b7102ff","4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","370079895f1acdd4bb5194a403c85bf60cfbb2654bced9430a6c7210e7246be8","90240231e730deed31569f6c686766a538e4a024bbc33ea1738fe924f477ba61","552223520e823223ee13c5764e9b69b1819c985818a8bcda435d8d1dbd909bee","49b7c3ddd683c09aa437dd92681699387441f522524b14d2331ce494a9bf2f27","637b97f727f21c07a73f09130dc7bf5ac94d04511b179b5eb3e9a4d85a16147a","fb69a046d9f55e2c182c07e793017518b002859497084c0f69f3ee74edd0c4b9","5212dd78d1d63ab33332c8846a0ea5ce248159e74033cde16de48373036b4704","954b3c04ee9f94ca1e262f3e5a6e833b0da0066514b3d4b97b92b7f0c85f8700","a2fc9ce1ae5bed7068d701d8aeebf13321de0f42c217dc2e10f1622dcaa53a7f","8e81f220cb935d551e88cff11541d5e89d3a3494a52fe6247e98016a9dbd4c2d","6b2576a04253626ba41b7dc7ec5977bec07f3b6952b16249d9fa8a3a0d79901c","9de17491f2bfbccea92500e174079d53bdedae34dbebe5d4a12a06ab09814710","e88481085a8576fa52efc913e631c1a833d16179486469b8538d8c4fab2f7381","aec68502c8f4ffaecb4440b37363473582fec0bfee4fb8668a87daa7f700f708","d71577e78c7a4257074aaf82f595724175210c89e8b467ef82f949a6cbd891bc","cf548af8b03cbbc79fdc4f357b5560f618c6d2f68c8688e6eb759c3c11d962c3","c84146dbc9d2e5f43d2cbf15485a4eabf90219dbb66c0d481f20f12d3851bffc","9dc5a1d8f09f9faf21207253a92b461190d59c81ee12c9ac612630e699749990","99c24f331c9f4e75a779b9a988e942442db3cf29923ceb820d3bdd4ed1edfef2","25b1f20d5868ef9ef18132f7dd76b40b7038688ff7c56c58930537a8dff9f231","4105fa0ecfaffb578c8051c3de22e8c984191aac8de14641ee99beed9c5e5bd9","9bba18dcac8cc9bdce65a4e34122d90474617cdf857feddeeba1e7a3638097d4","8c92080253bac0506d82b83d555a029582595f0944abb349954ea732322baa5c","45d4c8d63a67224af62bebff18da32bb2817e306c9fd9e5d1dac6ef8d2da7ead","230eb449f719119cab1728252f20ecdd36d7a20cef659e4a51ada1a232a8aaad","5f264ca312dfcbf23917febc8d7a73ef5be9c248af605939de1c7c4129aa65f2","c1c7b50665ce0b8aa4b95f3843167ac7ac25d1f724d77c2a07b597abb9cf394c","1bf687d978bdd6d5aff10b9eb0ff0695179f8594d4446946fd0182d6d25fa433","ec26029e3a4eccf8ee79d5c76093fbe928cedc83d813fca9be4f055d61530013","e0ff6a627dfbfb9d32e49f34879a763680e37758c509ddd809cb316b96f34390","2113d72680c7ddad6d3b6f70a29432a35c074c94ec6823a7c16ccd69847d965c","c8ffd61bf2db2e7bccb996dd70c9499805cb338f1b1c781987e38ba99dd5b296","55e5a976b594dc02f054860fb59a5299872a5b3c8c90e96733a5c9c9d4ed1fb8","fac83d4c6898d5bf90c508cc84409ded40fdc14611cf42d7fb750fb2c7847979","1668310e691181966c371fce881c88cb1c2e65ac832ef5470434ad926998da2f","4f1eb6b9c2b666278e09019281953fc4ecadad3b2ba2781b2602445743eaaeca","cd4a19200e7e4b235f85c3a15176f84b68bca0a171e802df091553e679238621","2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"9d8f6e55f5a038f4dca0cacd6566f9b82c576eee35c694b89230e9dec1895a77","affectsGlobalScope":true},"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"f85c06e750743acf31f0cfd3be284a364d469761649e29547d0dd6be48875150","affectsGlobalScope":true},"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true},"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","dccdf1677e531e33f8ac961a68bc537418c9a414797c1ea7e91307501cdc3f5e",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"452e8a437aa57fe832dece2a5d3ea8dd0ab1de03ca778d09798c56ece0a29e80","affectsGlobalScope":true},{"version":"a20f1e119615bf7632729fd89b6c0b5ffdc2df3b512d6304146294528e3ebe19","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"a321f588d51d742955993766d2969ed19006110a080572bfd24054178a5be640","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"21fcdcb618236f0feaca7e511e2da10c19970f86e09c934cef2d45b340ad92b5","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true},"b33379077284c9e55d2410d814b71b15522c5f71f9e93e15a8c3c41d463b00f6",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","c663a7e4ee2cb54d99cf095479a5bcf1dd18d762ffdfa038aa1b2d79b070b0d7","5463c98206a890ea7a759fbcc97b0c042ab1a740b3e24037f7fbf40bae70a3c5","841f7ca2af7f4d9cca1f9fa2288a4849fc9d49ca15b47336892efd06a14dd1d8","687ec53a7422d8cf80477fffa82a2db211f724039267931642befcd4907aec26",{"version":"ff9d62c9e30bd1a0318ec4bbde75ab0a22ee72c37c357746ed0f5460776067d8","signature":"32150c887f2cf017e1f433defc11cdb2798ba8a9244a4aa6e204b13ae8a5b894"},"94432b8ce4402dd579be8dbf8d798dd64b57d9df617b9dfe4f10f93c1540540f","1447d46bff9e7c5c77da14515a7456ea5e919ce6e28f5e6746edf99818e4be47","ba3f6f0ee47f46cdce55620aec5726de80e92a930982634afe9918c114c38f0b","6f38045547cdfd54ec19abcd943cace72c775fde739c5e0e1d917cf3030c16b5","929fc31f7523aaa1d19735b77e637af06e58d76007648ec088ecfbec1521cbfe","8510595d2ca2660e6407be65d8bf95f0c53877dbb812e269cdd980fc34de5f78","a6eb23f2a83113ce0ab7203bfda2be0888720f8d694a20abaef83b9f62832061","363dca5004ac5a3d9c2bba12812b97a64461911762f0b8f9320a8856ec53bcad","557b8c7481296f4b7ed362320f3bbb40bb87404edf880c81224f365a8d1e17f3","283ed3d075bf7d3e8793f63b2a52f475ed84d95b7b6351c5d5bcc6c49d4b845b","6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","bd4c741820ec3574b7ed3b782c8d78034d6e4631d11997e701e6b955b86a87c1","e2dd36a524ea5b13de1ed104ede9cea79696588175c1df1940d6a29113a4aee0","a878d4c7237a7af50e96534295fcf723134d70cbb1e9bfd8365266b912aee6ec","a1f708ddf34053065f8f53682123421af299cee37ae110a86ba07851adf940da","913fbbd374393d3473dcae4b64a5eff2dea93306bb065ae7111be724a8ca57e1","395e6fa1fc8f46f827a5f7d3b7dabc836627ae57e41338f93c221b88d4978f15","749effab6d7e72df8d126868c82b8166cdde84d48453e44f65cbad42ad900b06","11705a4aad6e2e724b82ffee6c4fa271d798f0fb68806ace4b1c425c266f8d98","b81972aff48d9f08543cb19cc5d73f50eb9901d25daecabc46a53866f99d27b2","af89ab13b40dd28cd91818fc6329914d2b9663591831f032ff0f0cb4a028d4a5","63007f1618ada5041fb3b47630b64a9987d268bf740dd72334c38b5d23f5239b","3395f90467d2bb9db039a5c22ed6659ca2ff6f0b4f7ee5f223b0f77288f54ea7","20df2907d398e369d49e8906d6e0f096c465501e9ceff9d61293bf0f4e9020f1","302aa8248dab7c689c103162e542224aa7f3b0db46e29d0fb468fac721cf1c41","ea0a3bb69845621165c21e80ebb0d2b28dad22cd9920564516ce8e927a828f79","6a81475a67505af60be3242841c65ce4bf6d0b624d8b3fada646ba459a3eaad8","6834dd6cc060648604278cdb920a9316fa916e9116134b17dfad90e42800ca47","19fba62f1aab90f0110738261ed8bc1da82c89433fc43265f14870d4380d10b8","fbb2df54f4778b4d691bbc7c0a6e1e241dfffaca19f443cc9f230f450458bf89","da98d8109f379be48d459a6821ebd7cc728af62557e1c44f864e04360686af93","ef6e6d838cc600162626a53167046484f38e9a4bab9454e72350bed76c497228","8adf9a02b0c2508f81516b561a6c8080ea2169126f166e39767bcb5389b9cfbc","c8b50ecedc9ff1b0e83c96f0a334d022874199f7c2d00d182ca6672176b0ea9d","b66ede73039e8751e06e3cab843e5a4265c1124a3285c3d854092c37a966b1f5","ca027df9fd496a200d99ca0db4b0077463ce4926a6c8e05cfae522c5971ccbc0","e043a9288022e8d802117e5e9e718443296f9c69a5eab7ed89b2fb76128a0140","1834770fc1d5e5240fe8f3de72205c9e79b1c321224fb4af8bd2529202a6960c","3b1901191af5f232f0a950a914649749c3447c445cae6b896e74fe987b379701","3641a97eab56e401bc6ab265ef34e54d926017181e2cbbd8ee36d87b7e19345b",{"version":"4aaeb015886c437ff30b027da32851eec8f75de4a3514a26a99508facb7c5142","signature":"70f20d06939449488f1d7456fce5202d6d03b8281e7f2dfc5f8a9bc6a52191fc"},"82f507498b118e727c99b2b24b66fe95e475db73959a5af372526e2aabeba2bd","5bccd6ffc11fed820a432ac819200e6af38f8c3625e6eae0cf0f07ca85856392","a014705f62ab3731cd6e83cc0d47055301bda50e883a7c5b308c5fc294384f00","c123e41196eb293cd30ff19b31d55192d3a3ffbbab8409d5c4b328844c5e93fc","f30cfcfff28ee8f87563225b47239bb07b9b11edd09dda0ea6499b18cca1a30e","0edb8a97ead1fefd337458449050857e80740e31a3f76cffa656262f4e651a50","6d2d14bb016a70a5ee1afb1cc7718d4369fb645979c725454c688f791ac7218f","8d7622e53b676dfd20828ba435649c217a5d9dee9cdc3713ee808fa2140513da","4729c40012c9b4ae235cdeb76bc9cf5c127e09eb08ecf5b1b51b8d03d58e5555","38aaec0cd25bec1bec8511430fcfc6a7ce53ec44fa7e4e68717c551d0c786ef0","56558ae167446acf230ea2cc072a835309a37ae63d286b484308afd8c504c2d6","ec6adf14f44d63199b70a1117f13d380dfd0b1e1f0a6357b0ecf04cf0c56ab68","7a6f74294b8fb90f5e3832be21e25898dd81b2a1adc36dda6929813ba4135311","89a5d8e15c48814223e8c3abc5dfc9cabbe36bce09d665dde5091729955ad663","5d40e6a7071d0d1e6e558e17214ff786ecb3ea73e31b25a88c2cbe2435fa1252","3931f0e7d90c0c6b3b52d5010c6f7156adcfcbb54f2325774135d77640df36c0","ac63a01fcac70315fc9b416e9a57e568b18032c7cfcaa314e1751f03ef71286f","7ad3e0aaeb840047fa4711306188cac803514091f251b6baecb9b2aacf15b976","6d268309f0e15dd820b2df9806234166554cb4e2fe00d11737adcb4e5489f700","58cf96187feb10cc8ad3bb080871cd30888ef63bc5db131f11458850ef8f6245","9102986ff52326a2016e8cddc1cf3092f0808ac916dcc8dc2d2c7195cd181987","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","01f20dac9dc14f0d306e5d1215c5c1c3b4d1805905e60ae92fabac4031eae7da","9ceec2a882368c0160a8a3879aa0efce0fb985751fc23ff6191006030969cfa4","cad5d6451789234434c28dd2d6a8267b0d64c479b1ad267321faa31ba90d570b","d5197053be441d40f4d074185a40d461137c8fa8db9e00cceedf2d9ca6583157","3cd33c37432c2de7bdd9f1d48b3ea4fd03afad4969cfc5ba88d81e6ed03f432c","6db29cf7af1d68c8194d98f1c444cea3b30a2c65deda3428452efaa05717b81d","561ef05d7e369040c28800d878d7e6461af62e459460263e911d508f319c8d5d","a1b60bd2328318dcbec30bdf529dad31a13315ff2df60c8bd71630c58a575b06","a399dd9b73e4bbfbed2ad1c1259d707f5f147f40dc5e3eeb541bf0bf2da42b25","8cc6a35806cd10d448b0f2ab01fe0b6194ca57fdaced2d71781b68e83c55bd88","8f364fec0ef20506aa9cf00b5cd8b620c1c0389687b11a3a32b0b5d4716ad894","5d11703e2c5d4dbe00bbe79f3bc864d178cf8d6ebccc2d1448ea29e93654f029","f4e82c91aac3b61f3ad04f11a44c5b79f724ff8a09281d0afa24a6624633ff25","ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202","7b8b9017156ef8bf3bbe42785fac8956e5c9869f4a494536d7f548a7c1c7d98a","07c34d1f83dfc5746de4229e01f0cb4d388a9f128eab6beadb4ae1621ebb87c6","763bb8df872cbb8783e29e19bd7a1dea0f88f7fd7398343af38be8509a65df82","372b3681eb9618821c0e0e10bcc775b838e45b51912b8998bc5ba035100dc9e5","c286b410193495d067668bcdbd13ea3f3a39001edff02edee248babf2652e563","87c73268165bf20f01c101ac785e8a9d1d95ff203d05d3548a6c49952597e321","580ac7757b426f045be01f7e47fff9910b922442b45266fd3fe39c44b53ef5ad",{"version":"67a8ad0b968bf4b758c8c699180578c1f5d7242771d817456231a52230579a82","signature":"775344116f031ee7fbc0ca091ba2e5dce9d9b13694fc7e341b1f2ceb78a99408"},{"version":"1f00dd8bcb5fb72027d953dfe2c69f73dc71668142cc8d2d941a420ff0bfe275","signature":"1e84b75e59ed7fff2883625dc3d3d8a6828c878a1b7e4e9ea54fa67ab574eb1e"},{"version":"6a9eb9c5d3f7474937973fe4b0a9e53025634c2e39118eda436d89f3e9df976f","affectsGlobalScope":true},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true},{"version":"c1f79c6d85cd84518fd7349588b3c61bdc189f58e3866f925cbf4631c81e31f9","affectsGlobalScope":true},{"version":"54db406753da16e177f094aa66da79840f447de6d87ddd1543a80c9418c52545","affectsGlobalScope":true},{"version":"42f28f4cfca4a70bd89c1d55d76c7978275030b894f6793f36890265c11a83a4","affectsGlobalScope":true},{"version":"7cf1027da9599f056355b46bbea31dbf7f715f797dffb9cbb3402d4490c503e5","affectsGlobalScope":true},"96dbd0787b57ae02981d26d5f2441f0f8444fb46d7578c56527eab89cff13a7d","7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","8e87660f5170c195ade218937e360484775be6a4e75a098665d9ba5a2e4cdc15","8d16e3ff29dd0650435766702b01c2f7e9d1f289a48fcbf8e93687d6ecf33f26",{"version":"2286f8b25ce280d3628fda4f62909ea8099631d77df305cde07b3c94d9bf53ec","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","8718fa41d7cf4aa91de4e8f164c90f88e0bf343aa92a1b9b725a9c675c64e16b","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","bc222163edcb8df6ba9b506d053d6c5afcae50e85695151cf4636a3107deaba9","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","8a7219b41d3c1c93f3f3b779146f313efade2404eeece88dcd366df7e2364977","a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318",{"version":"90ebf5865e27d8966ef44b073e6e83b0ddd45058bab1d58b1e4b5a47d36396c4","affectsGlobalScope":true},"cb482592bfcbdfcefa8d155590399e8bff66277e60e17bfada7c2f31322e7b87","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","510616459e6edd01acbce333fb256e06bdffdad43ca233a9090164bf8bb83912","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","4006c872e38a2c4e09c593bc0cdd32b7b4f5c4843910bea0def631c483fff6c5","ab6aa3a65d473871ee093e3b7b71ed0f9c69e07d1d4295f45c9efd91a771241d","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","74d5a87c3616cd5d8691059d531504403aa857e09cbaecb1c64dfb9ace0db185"],"root":[210,251,295,296,307],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"module":7,"noEmitOnError":true,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":9},"fileIdsList":[[207,245,269,278,279,280,282,290,291,292,293],[278,279],[66,277],[207,278,279,281],[283,285],[281,283,289],[287],[207,279,282,283,284,285,286,288],[279],[66,207],[279,282],[91,207,278],[277],[270],[66,270],[270,271,272,273,274,275,276],[264],[207,220,265,266],[91],[86,91,207,239],[231,240,241,242,243,244],[207],[86,91,207],[66,81,92,93,207],[81,91,93],[66,81,91,92,207],[79,94,207],[167,205],[80,81,86,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,206],[66,77,79],[93],[94,96],[77,79,80],[81,91],[81,94,207],[80,81,91],[66,80,81,93,96,109],[66,80],[66,92,93,207],[81,93],[86,91,93,96,103,207],[79,86,207,211,226,229,230,245,247,249],[66,73],[207,220,229],[91,207,225],[232,233,234,235,236,237,238],[207,234],[207,232],[207,233],[77,79,207],[66,248],[86,91,207,254],[91,207,255],[207,246],[85,86],[85],[83,84,87],[82,87,89,90],[87,89,91],[88,91],[167,170,197,205,308,309,310],[297],[312],[205],[319],[320,322],[323],[325],[321],[113],[154],[155,160,189],[156,161,167,168,175,186,197],[156,157,167,175],[158,198],[159,160,168,176],[160,186,194],[161,163,167,175],[154,162],[163,164],[167],[165,167],[154,167],[167,168,169,186,197],[167,168,169,182,186,189],[152,155,202],[163,167,170,175,186,197],[167,168,170,171,175,186,194,197],[170,172,186,194,197],[113,114,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204],[167,173],[174,197,202],[163,167,175,186],[176],[177],[154,178],[113,114,154,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[180],[181],[167,182,183],[182,184,198,200],[155,167,186,187,188,189],[155,186,188],[186,187],[189],[190],[113,186],[167,192,193],[192,193],[160,175,186,194],[195],[175,196],[155,170,181,197],[160,198],[186,199],[174,200],[201],[155,160,167,169,178,186,197,200,202],[186,203],[170,186,205],[334,373],[334,358,373],[373],[334],[334,359,373],[334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372],[359,373],[304],[376],[167,186,205],[297,298,299,300,301,302],[297,298],[225,228],[224],[227],[66,92],[66,92,260],[66,92,257,259],[66,92,259],[66,256,258],[92],[66,92,261],[75],[213,214,220,221],[78,79],[78],[76],[212],[77],[77,216],[79,215,216,217,218,219],[75,76,77,78,212],[75,76,77],[73],[65],[65,66],[65,67,68,69,70,71,72],[305],[223],[220,222],[124,128,197],[124,186,197],[119],[121,124,194,197],[175,194],[119,205],[121,124,175,197],[116,117,120,123,155,167,186,197],[124,131],[116,122],[124,145,146],[120,124,155,189,197,205],[155,205],[145,155,205],[118,119,205],[124],[118,119,120,121,122,123,124,125,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,147,148,149,150,151],[124,139],[124,131,132],[122,124,132,133],[123],[116,119,124],[124,128,132,133],[128],[122,124,127,197],[116,121,124,131],[155,186],[119,124,145,155,202,205],[74,79,207,208,209,210,250],[74,79,91,207,208,210,216,250,251,252,253,255,259,261,262,263,294,295],[74,109,208,210,267,268,294],[74],[91,207,250,294,296,303,306],[79,207,250],[74,91,207,250,294],[294]],"referencedMap":[[294,1],[280,2],[278,3],[282,4],[286,5],[290,6],[288,7],[289,8],[285,9],[291,10],[292,11],[279,12],[270,13],[273,14],[274,14],[271,15],[272,14],[277,16],[275,3],[276,13],[265,17],[267,18],[266,17],[231,19],[240,20],[245,21],[241,22],[242,10],[243,22],[244,23],[105,24],[106,25],[93,26],[95,27],[206,28],[207,29],[80,30],[97,31],[107,32],[81,33],[94,34],[98,35],[99,36],[110,37],[111,38],[101,31],[103,39],[102,40],[104,41],[250,42],[211,43],[230,44],[226,45],[208,22],[235,22],[239,46],[234,22],[232,22],[233,22],[238,47],[236,48],[237,49],[253,50],[249,51],[248,43],[255,52],[254,53],[247,54],[87,55],[84,56],[83,56],[85,57],[90,19],[91,58],[82,19],[88,59],[89,60],[311,61],[298,62],[302,62],[300,62],[313,63],[314,64],[318,28],[320,65],[323,66],[324,67],[326,68],[322,69],[113,70],[114,70],[154,71],[155,72],[156,73],[157,74],[158,75],[159,76],[160,77],[161,78],[162,79],[163,80],[164,80],[166,81],[165,82],[167,83],[168,84],[169,85],[153,86],[170,87],[171,88],[172,89],[205,90],[173,91],[174,92],[175,93],[176,94],[177,95],[178,96],[179,97],[180,98],[181,99],[182,100],[183,100],[184,101],[186,102],[188,103],[187,104],[189,105],[190,106],[191,107],[192,108],[193,109],[194,110],[195,111],[196,112],[197,113],[198,114],[199,115],[200,116],[201,117],[202,118],[203,119],[310,120],[358,121],[359,122],[334,123],[337,123],[356,121],[357,121],[347,121],[346,124],[344,121],[339,121],[352,121],[350,121],[354,121],[338,121],[351,121],[355,121],[340,121],[341,121],[353,121],[335,121],[342,121],[343,121],[345,121],[349,121],[360,125],[348,121],[336,121],[373,126],[367,125],[369,127],[368,125],[361,125],[362,125],[364,125],[366,125],[370,127],[371,127],[363,127],[365,127],[305,128],[377,129],[378,130],[303,131],[301,62],[299,132],[229,133],[225,134],[228,135],[260,136],[261,137],[258,138],[256,139],[259,140],[262,141],[263,142],[257,136],[308,81],[221,143],[222,144],[76,145],[79,146],[212,147],[213,148],[214,148],[216,149],[217,150],[220,151],[219,152],[78,153],[65,154],[69,155],[70,155],[67,156],[68,155],[73,157],[71,43],[72,154],[306,158],[268,159],[224,159],[223,160],[131,161],[141,162],[130,161],[151,163],[122,164],[121,165],[150,64],[144,166],[149,167],[124,168],[138,169],[123,170],[147,171],[119,172],[118,173],[148,174],[120,175],[125,176],[129,176],[152,177],[142,178],[133,179],[134,180],[136,181],[132,182],[135,183],[145,64],[127,184],[128,185],[137,186],[117,187],[140,178],[139,176],[146,188],[74,43],[252,22],[251,189],[296,190],[295,191],[210,192],[307,193]],"exportedModulesMap":[[294,1],[280,2],[278,3],[282,4],[286,5],[290,6],[288,7],[289,8],[285,9],[291,10],[292,11],[279,12],[270,13],[273,14],[274,14],[271,15],[272,14],[277,16],[275,3],[276,13],[265,17],[267,18],[266,17],[231,19],[240,20],[245,21],[241,22],[242,10],[243,22],[244,23],[105,24],[106,25],[93,26],[95,27],[206,28],[207,29],[80,30],[97,31],[107,32],[81,33],[94,34],[98,35],[99,36],[110,37],[111,38],[101,31],[103,39],[102,40],[104,41],[250,42],[211,43],[230,44],[226,45],[208,22],[235,22],[239,46],[234,22],[232,22],[233,22],[238,47],[236,48],[237,49],[253,50],[249,51],[248,43],[255,52],[254,53],[247,54],[87,55],[84,56],[83,56],[85,57],[90,19],[91,58],[82,19],[88,59],[89,60],[311,61],[298,62],[302,62],[300,62],[313,63],[314,64],[318,28],[320,65],[323,66],[324,67],[326,68],[322,69],[113,70],[114,70],[154,71],[155,72],[156,73],[157,74],[158,75],[159,76],[160,77],[161,78],[162,79],[163,80],[164,80],[166,81],[165,82],[167,83],[168,84],[169,85],[153,86],[170,87],[171,88],[172,89],[205,90],[173,91],[174,92],[175,93],[176,94],[177,95],[178,96],[179,97],[180,98],[181,99],[182,100],[183,100],[184,101],[186,102],[188,103],[187,104],[189,105],[190,106],[191,107],[192,108],[193,109],[194,110],[195,111],[196,112],[197,113],[198,114],[199,115],[200,116],[201,117],[202,118],[203,119],[310,120],[358,121],[359,122],[334,123],[337,123],[356,121],[357,121],[347,121],[346,124],[344,121],[339,121],[352,121],[350,121],[354,121],[338,121],[351,121],[355,121],[340,121],[341,121],[353,121],[335,121],[342,121],[343,121],[345,121],[349,121],[360,125],[348,121],[336,121],[373,126],[367,125],[369,127],[368,125],[361,125],[362,125],[364,125],[366,125],[370,127],[371,127],[363,127],[365,127],[305,128],[377,129],[378,130],[303,131],[301,62],[299,132],[229,133],[225,134],[228,135],[260,136],[261,137],[258,138],[256,139],[259,140],[262,141],[263,142],[257,136],[308,81],[221,143],[222,144],[76,145],[79,146],[212,147],[213,148],[214,148],[216,149],[217,150],[220,151],[219,152],[78,153],[65,154],[69,155],[70,155],[67,156],[68,155],[73,157],[71,43],[72,154],[306,158],[268,159],[224,159],[223,160],[131,161],[141,162],[130,161],[151,163],[122,164],[121,165],[150,64],[144,166],[149,167],[124,168],[138,169],[123,170],[147,171],[119,172],[118,173],[148,174],[120,175],[125,176],[129,176],[152,177],[142,178],[133,179],[134,180],[136,181],[132,182],[135,183],[145,64],[127,184],[128,185],[137,186],[117,187],[140,178],[139,176],[146,188],[74,43],[252,22],[251,194],[296,195],[295,196],[210,192]],"semanticDiagnosticsPerFile":[293,294,280,269,278,282,286,290,288,283,281,289,285,291,292,279,284,270,273,274,271,272,277,275,276,265,267,264,266,231,240,245,241,242,243,244,105,106,93,95,112,96,206,207,80,97,107,81,94,98,99,108,110,111,100,101,103,102,104,250,211,230,226,208,235,239,234,232,233,238,236,237,253,249,248,255,254,247,87,84,83,85,90,91,82,88,89,311,298,302,300,297,313,314,309,315,316,317,318,319,320,323,324,326,321,322,327,328,329,312,330,113,114,154,155,156,157,158,159,160,161,162,163,164,166,165,167,168,169,153,204,170,171,172,205,173,174,175,176,177,178,179,180,181,182,183,184,185,186,188,187,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,331,332,310,333,358,359,334,337,356,357,347,346,344,339,352,350,354,338,351,355,340,341,353,335,342,343,345,349,360,348,336,373,372,367,369,368,361,362,364,366,370,371,363,365,305,304,374,375,325,376,377,378,303,246,115,301,299,287,229,225,227,228,260,209,261,258,256,259,262,263,109,257,92,308,221,75,222,76,215,79,212,213,214,216,217,77,220,219,78,218,86,65,69,70,67,68,73,71,72,306,63,64,11,12,15,14,2,16,17,18,19,20,21,22,23,3,24,4,25,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,61,10,1,62,13,66,268,224,223,131,141,130,151,122,121,150,144,149,124,138,123,147,119,118,148,120,125,126,129,116,152,142,133,134,136,132,135,145,127,128,137,117,140,139,143,146,74,252,251,296,295,210,307],"latestChangedDtsFile":"./test/index.spec.d.ts"},"version":"5.4.5"} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/dist/typedoc-urls.json b/node_modules/@libp2p/daemon-server/dist/typedoc-urls.json -deleted file mode 100644 -index ab78a5c..0000000 ---- a/node_modules/@libp2p/daemon-server/dist/typedoc-urls.json -+++ /dev/null -@@ -1,12 +0,0 @@ --{ -- "Server": "https://libp2p.github.io/js-libp2p-daemon/classes/_libp2p_daemon_server.Server.html", -- ".:Server": "https://libp2p.github.io/js-libp2p-daemon/classes/_libp2p_daemon_server.Server.html", -- "DaemonInit": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.DaemonInit.html", -- ".:DaemonInit": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.DaemonInit.html", -- "Libp2pServer": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.Libp2pServer.html", -- ".:Libp2pServer": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.Libp2pServer.html", -- "OpenStream": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.OpenStream.html", -- ".:OpenStream": "https://libp2p.github.io/js-libp2p-daemon/interfaces/_libp2p_daemon_server.OpenStream.html", -- "createServer": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon_server.createServer.html", -- ".:createServer": "https://libp2p.github.io/js-libp2p-daemon/functions/_libp2p_daemon_server.createServer.html" --} -\ No newline at end of file -diff --git a/node_modules/@libp2p/daemon-server/src/dht.ts b/node_modules/@libp2p/daemon-server/src/dht.ts -index 4ecb32a..57536db 100644 ---- a/node_modules/@libp2p/daemon-server/src/dht.ts -+++ b/node_modules/@libp2p/daemon-server/src/dht.ts -@@ -46,7 +46,7 @@ export class DHTOperations { - if (event.name === 'PEER_RESPONSE') { - yield * event.closer.map(peer => DHTResponse.encode({ - type: DHTResponse.Type.VALUE, -- value: peer.id.toBytes() -+ value: peer.id.toMultihash().bytes - })) - } - } -@@ -97,7 +97,7 @@ export class DHTOperations { - dht: { - type: DHTResponse.Type.VALUE, - peer: { -- id: event.peer.id.toBytes(), -+ id: event.peer.id.toMultihash().bytes, - addrs: event.peer.multiaddrs.map(m => m.bytes) - } - } -@@ -131,7 +131,7 @@ export class DHTOperations { - yield DHTResponse.encode({ - type: DHTResponse.Type.VALUE, - peer: { -- id: provider.id.toBytes(), -+ id: provider.id.toMultihash().bytes, - addrs: (provider.multiaddrs ?? []).map(m => m.bytes) - } - }) -diff --git a/node_modules/@libp2p/daemon-server/src/index.ts b/node_modules/@libp2p/daemon-server/src/index.ts -index beb685d..177afb8 100644 ---- a/node_modules/@libp2p/daemon-server/src/index.ts -+++ b/node_modules/@libp2p/daemon-server/src/index.ts -@@ -10,7 +10,7 @@ import { - } from '@libp2p/daemon-protocol' - import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader' - import { defaultLogger, logger } from '@libp2p/logger' --import { peerIdFromBytes } from '@libp2p/peer-id' -+import { peerIdFromMultihash } from '@libp2p/peer-id' - import { tcp } from '@libp2p/tcp' - import { multiaddr, protocols } from '@multiformats/multiaddr' - import * as lp from 'it-length-prefixed' -@@ -18,6 +18,7 @@ import { lpStream } from 'it-length-prefixed-stream' - import { pipe } from 'it-pipe' - import { pbStream } from 'it-protobuf-stream' - import { CID } from 'multiformats/cid' -+import * as Digest from 'multiformats/hashes/digest' - import { DHTOperations } from './dht.js' - import { PubSubOperations } from './pubsub.js' - import { ErrorResponse, OkResponse } from './responses.js' -@@ -81,13 +82,13 @@ export class Server implements Libp2pServer { - * Connects the daemons libp2p node to the peer provided - */ - async connect (request: Request): Promise { -- if (request.connect == null || request.connect.addrs == null) { -+ if (request.connect?.addrs == null) { - throw new Error('Invalid request') - } - - const peer = request.connect.peer - const addrs = request.connect.addrs.map((a) => multiaddr(a)) -- const peerId = peerIdFromBytes(peer) -+ const peerId = peerIdFromMultihash(Digest.decode(peer)) - - log('connect - adding multiaddrs %a to peer %p', addrs, peerId) - await this.libp2p.peerStore.merge(peerId, { -@@ -102,26 +103,24 @@ export class Server implements Libp2pServer { - * Opens a stream on one of the given protocols to the given peer - */ - async openStream (request: Request): Promise { -- if (request.streamOpen == null || request.streamOpen.proto == null) { -+ if (request.streamOpen?.proto == null) { - throw new Error('Invalid request') - } - - const { peer, proto } = request.streamOpen -- const peerId = peerIdFromBytes(peer) -+ const peerId = peerIdFromMultihash(Digest.decode(peer)) - - log('openStream - dial %p', peerId) - const connection = await this.libp2p.dial(peerId) - - log('openStream - open stream for protocol %s', proto) - const stream = await connection.newStream(proto, { -- runOnTransientConnection: true, -- // @ts-expect-error this has not been released yet - runOnLimitedConnection: true - }) - - return { - streamInfo: { -- peer: peerId.toBytes(), -+ peer: peerId.toMultihash().bytes, - addr: connection.remoteAddr.bytes, - proto: stream.protocol ?? '' - }, -@@ -135,7 +134,7 @@ export class Server implements Libp2pServer { - * is registered at the path, it will be overridden. - */ - async registerStreamHandler (request: Request): Promise { -- if (request.streamHandler == null || request.streamHandler.proto == null) { -+ if (request.streamHandler?.proto == null) { - throw new Error('Invalid request') - } - -@@ -155,7 +154,7 @@ export class Server implements Libp2pServer { - }) - - const message = StreamInfo.encode({ -- peer: connection.remotePeer.toBytes(), -+ peer: connection.remotePeer.toMultihash().bytes, - addr: connection.remoteAddr.bytes, - proto: stream.protocol ?? '' - }) -@@ -194,8 +193,6 @@ export class Server implements Libp2pServer { - } - }) - }, { -- runOnTransientConnection: true, -- // @ts-expect-error this has not been released yet - runOnLimitedConnection: true - }) - } -@@ -257,7 +254,7 @@ export class Server implements Libp2pServer { - throw new Error('Invalid request') - } - -- const peerId = peerIdFromBytes(request.id) // eslint-disable-line no-case-declarations -+ const peerId = peerIdFromMultihash(Digest.decode(request.id)) // eslint-disable-line no-case-declarations - const peer = await this.libp2p.peerStore.get(peerId) // eslint-disable-line no-case-declarations - const protos = peer.protocols // eslint-disable-line no-case-declarations - yield OkResponse({ peerStore: { protos } }) -@@ -331,7 +328,7 @@ export class Server implements Libp2pServer { - throw new Error('Invalid request') - } - -- yield * this.dhtOperations.findPeer(peerIdFromBytes(request.peer)) -+ yield * this.dhtOperations.findPeer(peerIdFromMultihash(Digest.decode(request.peer))) - return - case DHTRequest.Type.FIND_PROVIDERS: - if (request.cid == null) { -@@ -359,7 +356,7 @@ export class Server implements Libp2pServer { - throw new Error('Invalid request') - } - -- yield * this.dhtOperations.getPublicKey(peerIdFromBytes(request.peer)) -+ yield * this.dhtOperations.getPublicKey(peerIdFromMultihash(Digest.decode(request.peer))) - return - case DHTRequest.Type.GET_VALUE: - if (request.key == null) { -@@ -414,7 +411,7 @@ export class Server implements Libp2pServer { - await pb.write({ - type: Response.Type.OK, - identify: { -- id: daemon.libp2p.peerId.toBytes(), -+ id: daemon.libp2p.peerId.toMultihash().bytes, - addrs: daemon.libp2p.getMultiaddrs().map(ma => ma.decapsulateCode(protocols('p2p').code)).map(m => m.bytes) - } - }, Response) -@@ -436,7 +433,7 @@ export class Server implements Libp2pServer { - seen.add(peerId) - - peers.push({ -- id: connection.remotePeer.toBytes(), -+ id: connection.remotePeer.toMultihash().bytes, - addrs: [connection.remoteAddr.bytes] - }) - } -diff --git a/node_modules/@libp2p/daemon-server/src/pubsub.ts b/node_modules/@libp2p/daemon-server/src/pubsub.ts -index c59d142..ba19fcc 100644 ---- a/node_modules/@libp2p/daemon-server/src/pubsub.ts -+++ b/node_modules/@libp2p/daemon-server/src/pubsub.ts -@@ -1,5 +1,6 @@ - /* eslint max-depth: ["error", 6] */ - -+import { publicKeyToProtobuf } from '@libp2p/crypto/keys' - import { - PSMessage - } from '@libp2p/daemon-protocol' -@@ -52,12 +53,12 @@ export class PubSubOperations { - - if (msg.type === 'signed') { - onMessage.push(PSMessage.encode({ -- from: msg.from.toBytes(), -+ from: msg.from.toMultihash().bytes, - data: msg.data, - seqno: msg.sequenceNumber == null ? undefined : uint8ArrayFromString(msg.sequenceNumber.toString(16).padStart(16, '0'), 'base16'), - topicIDs: [msg.topic], - signature: msg.signature, -- key: msg.key -+ key: publicKeyToProtobuf(msg.key) - }).subarray()) - } else { - onMessage.push(PSMessage.encode({ -@@ -90,7 +91,7 @@ export class PubSubOperations { - yield OkResponse({ - pubsub: { - topics: [topic], -- peerIDs: this.pubsub.getSubscribers(topic).map(peer => peer.toBytes()) -+ peerIDs: this.pubsub.getSubscribers(topic).map(peer => peer.toMultihash().bytes) - } - }) - } catch (err: any) {