@libp2p/bootstrap 9.0.9 → 9.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -42
- package/dist/index.min.js +1 -1
- package/dist/src/index.d.ts +48 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +49 -0
package/README.md
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# @libp2p/bootstrap <!-- omit in toc -->
|
|
2
|
-
|
|
3
1
|
[](http://libp2p.io/)
|
|
4
2
|
[](https://discuss.libp2p.io)
|
|
5
3
|
[](https://codecov.io/gh/libp2p/js-libp2p)
|
|
@@ -7,37 +5,11 @@
|
|
|
7
5
|
|
|
8
6
|
> Peer discovery via a list of bootstrap peers
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- [Install](#install)
|
|
13
|
-
- [Browser `<script>` tag](#browser-script-tag)
|
|
14
|
-
- [Usage](#usage)
|
|
15
|
-
- [API Docs](#api-docs)
|
|
16
|
-
- [License](#license)
|
|
17
|
-
- [Contribution](#contribution)
|
|
18
|
-
|
|
19
|
-
## Install
|
|
20
|
-
|
|
21
|
-
```console
|
|
22
|
-
$ npm i @libp2p/bootstrap
|
|
23
|
-
```
|
|
8
|
+
# About
|
|
24
9
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Loading this module through a script tag will make it's exports available as `Libp2pBootstrap` in the global namespace.
|
|
28
|
-
|
|
29
|
-
```html
|
|
30
|
-
<script src="https://unpkg.com/@libp2p/bootstrap/dist/index.min.js"></script>
|
|
31
|
-
```
|
|
10
|
+
The configured bootstrap peers will be discovered after the configured timeout. This will ensure there are some peers in the peer store for the node to use to discover other peers.
|
|
32
11
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
The configured bootstrap peers will be discovered after the configured timeout. This will ensure
|
|
36
|
-
there are some peers in the peer store for the node to use to discover other peers.
|
|
37
|
-
|
|
38
|
-
They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire
|
|
39
|
-
after two minutes which means the nodes connections may be closed if the maximum number of
|
|
40
|
-
connections is reached.
|
|
12
|
+
They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire after two minutes which means the nodes connections may be closed if the maximum number of connections is reached.
|
|
41
13
|
|
|
42
14
|
Clients that need constant connections to bootstrap nodes (e.g. browsers) can set the TTL to `Infinity`.
|
|
43
15
|
|
|
@@ -73,31 +45,38 @@ let options = {
|
|
|
73
45
|
]
|
|
74
46
|
}
|
|
75
47
|
|
|
76
|
-
|
|
77
|
-
let libp2p = await createLibp2p(options)
|
|
48
|
+
const libp2p = await createLibp2p(options)
|
|
78
49
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
libp2p.on('peer:discovery', function (peerId) {
|
|
51
|
+
console.log('found peer: ', peerId.toB58String())
|
|
52
|
+
})
|
|
53
|
+
```
|
|
82
54
|
|
|
83
|
-
|
|
55
|
+
# Install
|
|
84
56
|
|
|
85
|
-
|
|
57
|
+
```console
|
|
58
|
+
$ npm i @libp2p/bootstrap
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Browser `<script>` tag
|
|
62
|
+
|
|
63
|
+
Loading this module through a script tag will make it's exports available as `Libp2pBootstrap` in the global namespace.
|
|
86
64
|
|
|
87
|
-
|
|
65
|
+
```html
|
|
66
|
+
<script src="https://unpkg.com/@libp2p/bootstrap/dist/index.min.js"></script>
|
|
88
67
|
```
|
|
89
68
|
|
|
90
|
-
|
|
69
|
+
# API Docs
|
|
91
70
|
|
|
92
71
|
- <https://libp2p.github.io/js-libp2p/modules/_libp2p_bootstrap.html>
|
|
93
72
|
|
|
94
|
-
|
|
73
|
+
# License
|
|
95
74
|
|
|
96
75
|
Licensed under either of
|
|
97
76
|
|
|
98
77
|
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
99
78
|
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
|
100
79
|
|
|
101
|
-
|
|
80
|
+
# Contribution
|
|
102
81
|
|
|
103
82
|
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
package/dist/index.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PBootstrap = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PBootstrap=(()=>{var Or=Object.create;var Ee=Object.defineProperty;var zr=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Vr=Object.getPrototypeOf,_r=Object.prototype.hasOwnProperty;var ze=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),D=(t,e)=>{for(var r in e)Ee(t,r,{get:e[r],enumerable:!0})},kt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $r(e))!_r.call(t,o)&&o!==r&&Ee(t,o,{get:()=>e[o],enumerable:!(n=zr(e,o))||n.enumerable});return t};var jr=(t,e,r)=>(r=t!=null?Or(Vr(t)):{},kt(e||!t||!t.__esModule?Ee(r,"default",{value:t,enumerable:!0}):r,t)),qr=t=>kt(Ee({},"__esModule",{value:!0}),t);var Mt=ze((ss,Lt)=>{var ee=1e3,te=ee*60,re=te*60,G=re*24,Gr=G*7,Jr=G*365.25;Lt.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Hr(t);if(r==="number"&&isFinite(t))return e.long?Xr(t):Kr(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Hr(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Jr;case"weeks":case"week":case"w":return r*Gr;case"days":case"day":case"d":return r*G;case"hours":case"hour":case"hrs":case"hr":case"h":return r*re;case"minutes":case"minute":case"mins":case"min":case"m":return r*te;case"seconds":case"second":case"secs":case"sec":case"s":return r*ee;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kr(t){var e=Math.abs(t);return e>=G?Math.round(t/G)+"d":e>=re?Math.round(t/re)+"h":e>=te?Math.round(t/te)+"m":e>=ee?Math.round(t/ee)+"s":t+"ms"}function Xr(t){var e=Math.abs(t);return e>=G?Ae(t,e,G,"day"):e>=re?Ae(t,e,re,"hour"):e>=te?Ae(t,e,te,"minute"):e>=ee?Ae(t,e,ee,"second"):t+" ms"}function Ae(t,e,r,n){var o=e>=r*1.5;return Math.round(t/r)+" "+n+(o?"s":"")}});var Bt=ze((is,Rt)=>{function Qr(t){r.debug=r,r.default=r,r.coerce=m,r.disable=s,r.enable=o,r.enabled=c,r.humanize=Mt(),r.destroy=A,Object.keys(t).forEach(a=>{r[a]=t[a]}),r.names=[],r.skips=[],r.formatters={};function e(a){let d=0;for(let h=0;h<a.length;h++)d=(d<<5)-d+a.charCodeAt(h),d|=0;return r.colors[Math.abs(d)%r.colors.length]}r.selectColor=e;function r(a){let d,h=null,E,p;function w(...y){if(!w.enabled)return;let C=w,F=Number(new Date),N=F-(d||F);C.diff=N,C.prev=d,C.curr=F,d=F,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let S=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(L,P)=>{if(L==="%%")return"%";S++;let M=r.formatters[P];if(typeof M=="function"){let Z=y[S];L=M.call(C,Z),y.splice(S,1),S--}return L}),r.formatArgs.call(C,y),(C.log||r.log).apply(C,y)}return w.namespace=a,w.useColors=r.useColors(),w.color=r.selectColor(a),w.extend=n,w.destroy=r.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(E!==r.namespaces&&(E=r.namespaces,p=r.enabled(a)),p),set:y=>{h=y}}),typeof r.init=="function"&&r.init(w),w}function n(a,d){let h=r(this.namespace+(typeof d>"u"?":":d)+a);return h.log=this.log,h}function o(a){r.save(a),r.namespaces=a,r.names=[],r.skips=[];let d,h=(typeof a=="string"?a:"").split(/[\s,]+/),E=h.length;for(d=0;d<E;d++)h[d]&&(a=h[d].replace(/\*/g,".*?"),a[0]==="-"?r.skips.push(new RegExp("^"+a.slice(1)+"$")):r.names.push(new RegExp("^"+a+"$")))}function s(){let a=[...r.names.map(l),...r.skips.map(l).map(d=>"-"+d)].join(",");return r.enable(""),a}function c(a){if(a[a.length-1]==="*")return!0;let d,h;for(d=0,h=r.skips.length;d<h;d++)if(r.skips[d].test(a))return!1;for(d=0,h=r.names.length;d<h;d++)if(r.names[d].test(a))return!0;return!1}function l(a){return a.toString().substring(2,a.toString().length-2).replace(/\.\*\?$/,"*")}function m(a){return a instanceof Error?a.stack||a.message:a}function A(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Rt.exports=Qr});var Ot=ze((U,Ie)=>{U.formatArgs=Zr;U.save=en;U.load=tn;U.useColors=Yr;U.storage=rn();U.destroy=(()=>{let t=!1;return()=>{t||(t=!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`."))}})();U.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 Yr(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1: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&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Zr(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Ie.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),t.splice(n,0,e)}U.log=console.debug||console.log||(()=>{});function en(t){try{t?U.storage.setItem("debug",t):U.storage.removeItem("debug")}catch{}}function tn(){let t;try{t=U.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function rn(){try{return localStorage}catch{}}Ie.exports=Bt()(U);var{formatters:nn}=Ie.exports;nn.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var ts={};D(ts,{bootstrap:()=>es});var Se=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#e.set(e,o))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new Wr(e,r))}},$e=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},Wr=globalThis.CustomEvent??$e;var Nt=Symbol.for("@libp2p/peer-discovery");var k=jr(Ot(),1);var We={};D(We,{base32:()=>B,base32hex:()=>fn,base32hexpad:()=>mn,base32hexpadupper:()=>gn,base32hexupper:()=>hn,base32pad:()=>dn,base32padupper:()=>pn,base32upper:()=>ln,base32z:()=>wn});function on(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),c=s.charCodeAt(0);if(r[c]!==255)throw new TypeError(s+" is ambiguous");r[c]=o}var l=t.length,m=t.charAt(0),A=Math.log(l)/Math.log(256),a=Math.log(256)/Math.log(l);function d(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,y=0,C=0,F=p.length;C!==F&&p[C]===0;)C++,w++;for(var N=(F-C)*a+1>>>0,S=new Uint8Array(N);C!==F;){for(var R=p[C],L=0,P=N-1;(R!==0||L<y)&&P!==-1;P--,L++)R+=256*S[P]>>>0,S[P]=R%l>>>0,R=R/l>>>0;if(R!==0)throw new Error("Non-zero carry");y=L,C++}for(var M=N-y;M!==N&&S[M]===0;)M++;for(var Z=m.repeat(w);M<N;++M)Z+=t.charAt(S[M]);return Z}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var y=0,C=0;p[w]===m;)y++,w++;for(var F=(p.length-w)*A+1>>>0,N=new Uint8Array(F);p[w];){var S=r[p.charCodeAt(w)];if(S===255)return;for(var R=0,L=F-1;(S!==0||R<C)&&L!==-1;L--,R++)S+=l*N[L]>>>0,N[L]=S%256>>>0,S=S/256>>>0;if(S!==0)throw new Error("Non-zero carry");C=R,w++}if(p[w]!==" "){for(var P=F-C;P!==F&&N[P]===0;)P++;for(var M=new Uint8Array(y+(F-P)),Z=y;P!==F;)M[Z++]=N[P++];return M}}}function E(p){var w=h(p);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:h,decode:E}}var sn=on,cn=sn,zt=cn;var as=new Uint8Array(0);var $t=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},$=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Vt=t=>new TextEncoder().encode(t),_t=t=>new TextDecoder().decode(t);var Ve=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},_e=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}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 qt(this,e)}},je=class{constructor(e){this.decoders=e}or(e){return qt(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},qt=(t,e)=>new je({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),qe=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ve(e,r,n),this.decoder=new _e(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ne=({name:t,prefix:e,encode:r,decode:n})=>new qe(t,e,r,n),_=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=zt(r,e);return ne({prefix:t,name:e,encode:n,decode:s=>$(o(s))})},an=(t,e,r,n)=>{let o={};for(let a=0;a<e.length;++a)o[e[a]]=a;let s=t.length;for(;t[s-1]==="=";)--s;let c=new Uint8Array(s*r/8|0),l=0,m=0,A=0;for(let a=0;a<s;++a){let d=o[t[a]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);m=m<<r|d,l+=r,l>=8&&(l-=8,c[A++]=255&m>>l)}if(l>=r||255&m<<8-l)throw new SyntaxError("Unexpected end of data");return c},un=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",c=0,l=0;for(let m=0;m<t.length;++m)for(l=l<<8|t[m],c+=8;c>r;)c-=r,s+=e[o&l>>c];if(c&&(s+=e[o&l<<r-c]),n)for(;s.length*r&7;)s+="=";return s},b=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ne({prefix:e,name:t,encode(o){return un(o,n,r)},decode(o){return an(o,n,r,t)}});var B=b({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ln=b({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dn=b({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),pn=b({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),fn=b({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hn=b({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),mn=b({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),gn=b({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),wn=b({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ge={};D(Ge,{base58btc:()=>v,base58flickr:()=>bn});var v=_({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),bn=_({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var He={};D(He,{base64:()=>Je,base64pad:()=>xn,base64url:()=>yn,base64urlpad:()=>Cn});var Je=b({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),xn=b({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yn=b({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Cn=b({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});k.default.formatters.b=t=>t==null?"undefined":v.baseEncode(t);k.default.formatters.t=t=>t==null?"undefined":B.baseEncode(t);k.default.formatters.m=t=>t==null?"undefined":Je.baseEncode(t);k.default.formatters.p=t=>t==null?"undefined":t.toString();k.default.formatters.c=t=>t==null?"undefined":t.toString();k.default.formatters.k=t=>t==null?"undefined":t.toString();k.default.formatters.a=t=>t==null?"undefined":t.toString();function vn(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Wt(t){let e=vn(`${t}:trace`);return k.default.enabled(`${t}:trace`)&&k.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,k.default)(`${t}:trace`)),Object.assign((0,k.default)(t),{error:(0,k.default)(`${t}:error`),trace:e})}var he=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Gt=Symbol.for("@libp2p/peer-id");var Ke={};D(Ke,{base10:()=>En});var En=_({prefix:"9",name:"base10",alphabet:"0123456789"});var Xe={};D(Xe,{base16:()=>Sn,base16upper:()=>An});var Sn=b({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),An=b({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Qe={};D(Qe,{base2:()=>In});var In=b({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ye={};D(Ye,{base256emoji:()=>Un});var Jt=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}"),Fn=Jt.reduce((t,e,r)=>(t[r]=e,t),[]),Tn=Jt.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function Pn(t){return t.reduce((e,r)=>(e+=Fn[r],e),"")}function Dn(t){let e=[];for(let r of t){let n=Tn[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Un=ne({prefix:"\u{1F680}",name:"base256emoji",encode:Pn,decode:Dn});var Ze={};D(Ze,{base36:()=>kn,base36upper:()=>Nn});var kn=_({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Nn=_({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var et={};D(et,{base8:()=>Ln});var Ln=b({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var tt={};D(tt,{identity:()=>Mn});var Mn=ne({prefix:"\0",name:"identity",encode:t=>_t(t),decode:t=>Vt(t)});var Ps=new TextEncoder,Ds=new TextDecoder;var nt={};D(nt,{identity:()=>Te});var On=Xt,Ht=128,zn=127,$n=~zn,Vn=Math.pow(2,31);function Xt(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Vn;)e[r++]=t&255|Ht,t/=128;for(;t&$n;)e[r++]=t&255|Ht,t>>>=7;return e[r]=t|0,Xt.bytes=r-n+1,e}var _n=rt,jn=128,Kt=127;function rt(t,n){var r=0,n=n||0,o=0,s=n,c,l=t.length;do{if(s>=l)throw rt.bytes=0,new RangeError("Could not decode varint");c=t[s++],r+=o<28?(c&Kt)<<o:(c&Kt)*Math.pow(2,o),o+=7}while(c>=jn);return rt.bytes=s-n,r}var qn=Math.pow(2,7),Wn=Math.pow(2,14),Gn=Math.pow(2,21),Jn=Math.pow(2,28),Hn=Math.pow(2,35),Kn=Math.pow(2,42),Xn=Math.pow(2,49),Qn=Math.pow(2,56),Yn=Math.pow(2,63),Zn=function(t){return t<qn?1:t<Wn?2:t<Gn?3:t<Jn?4:t<Hn?5:t<Kn?6:t<Xn?7:t<Qn?8:t<Yn?9:10},eo={encode:On,decode:_n,encodingLength:Zn},to=eo,me=to;var ge=(t,e=0)=>[me.decode(t,e),me.decode.bytes],oe=(t,e,r=0)=>(me.encode(t,e,r),e),se=t=>me.encodingLength(t);var j=(t,e)=>{let r=e.byteLength,n=se(t),o=n+se(r),s=new Uint8Array(o+r);return oe(t,s,0),oe(r,s,n),s.set(e,o),new ie(t,r,e,s)},J=t=>{let e=$(t),[r,n]=ge(e),[o,s]=ge(e.subarray(n)),c=e.subarray(n+s);if(c.byteLength!==o)throw new Error("Incorrect length");return new ie(r,o,c,e)},Qt=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&$t(t.bytes,r.bytes)}},ie=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Yt=0,ro="identity",Zt=$,no=t=>j(Yt,Zt(t)),Te={code:Yt,name:ro,encode:Zt,digest:no};var it={};D(it,{sha256:()=>Pe,sha512:()=>oo});var st=({name:t,code:e,encode:r})=>new ot(t,e,r),ot=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?j(this.code,r):r.then(n=>j(this.code,n))}else throw Error("Unknown type, must be binary type")}};var tr=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Pe=st({name:"sha2-256",code:18,encode:tr("SHA-256")}),oo=st({name:"sha2-512",code:19,encode:tr("SHA-512")});var rr=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return io(r,ct(t),e||v.encoder);default:return co(r,ct(t),e||B.encoder)}};var nr=new WeakMap,ct=t=>{let e=nr.get(t);if(e==null){let r=new Map;return nr.set(t,r),r}return e},O=class t{constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==we)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==ao)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=j(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Qt(e.multihash,n.multihash)}toString(e){return rr(this,e)}toJSON(){return{"/":rr(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:c}=r;return new t(n,o,s,c||or(n,o,s.bytes))}else if(r[uo]===!0){let{version:n,multihash:o,code:s}=r,c=J(o);return t.create(n,s,c)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==we)throw new Error(`Version 0 CID must use dag-pb (code: ${we}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=or(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,we,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=$(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),c=new ie(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(c):t.createV1(r.codec,c),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[d,h]=ge(e.subarray(r));return r+=h,d},o=n(),s=we;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let c=r,l=n(),m=n(),A=r+m,a=A-c;return{version:o,codec:s,multihashCode:l,digestSize:m,multihashSize:a,size:A}}static parse(e,r){let[n,o]=so(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ct(s).set(n,e),s}},so=(t,e)=>{switch(t[0]){case"Q":{let r=e||v;return[v.prefix,r.decode(`${v.prefix}${t}`)]}case v.prefix:{let r=e||v;return[v.prefix,r.decode(t)]}case B.prefix:{let r=e||B;return[B.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},io=(t,e,r)=>{let{prefix:n}=r;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},co=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},we=112,ao=18,or=(t,e,r)=>{let n=se(t),o=n+se(e),s=new Uint8Array(o+r.byteLength);return oe(t,s,0),oe(e,s,n),s.set(r,o),s},uo=Symbol.for("@ipld/js-cid/CID");var q={...tt,...Qe,...et,...Ke,...Xe,...We,...Ze,...Ge,...He,...Ye},Gs={...it,...nt};function be(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var lo=Symbol.for("nodejs.util.inspect.custom"),sr=Object.values(q).map(t=>t.decoder).reduce((t,e)=>t.or(e),q.identity.decoder),ir=114,cr=36,ar=37,xe=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()})`}[Gt]=!0;toString(){return this.string==null&&(this.string=v.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return O.createV1(ir,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return be(this.multihash.bytes,e);if(typeof e=="string")return at(e).equals(this);if(e?.multihash?.bytes!=null)return be(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[lo](){return`PeerId(${this.toString()})`}},ye=class extends xe{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ce=class extends xe{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},ve=class extends xe{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function at(t,e){if(e=e??sr,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=J(v.decode(`z${t}`));return t.startsWith("12D")?new Ce({multihash:r}):t.startsWith("16U")?new ve({multihash:r}):new ye({multihash:r})}return po(sr.decode(t))}function po(t){try{let e=J(t);if(e.code===Te.code){if(e.digest.length===cr)return new Ce({multihash:e});if(e.digest.length===ar)return new ve({multihash:e})}if(e.code===Pe.code)return new ye({multihash:e})}catch{return fo(O.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function fo(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==ir)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===Pe.code)return new ye({multihash:t.multihash});if(e.code===Te.code){if(e.digest.length===cr)return new Ce({multihash:t.multihash});if(e.digest.length===ar)return new ve({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}function ce(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ae(t=0){return globalThis.Buffer?.allocUnsafe!=null?ce(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function lr(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var ur=lr("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ut=lr("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=ae(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),ho={utf8:ur,"utf-8":ur,hex:q.base16,latin1:ut,ascii:ut,binary:ut,...q},De=ho;function T(t,e="utf8"){let r=De[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var mo=Math.pow(2,7),go=Math.pow(2,14),wo=Math.pow(2,21),lt=Math.pow(2,28),dt=Math.pow(2,35),pt=Math.pow(2,42),ft=Math.pow(2,49),f=128,I=127;function z(t){if(t<mo)return 1;if(t<go)return 2;if(t<wo)return 3;if(t<lt)return 4;if(t<dt)return 5;if(t<pt)return 6;if(t<ft)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function bo(t,e,r=0){switch(z(t)){case 8:e[r++]=t&255|f,t/=128;case 7:e[r++]=t&255|f,t/=128;case 6:e[r++]=t&255|f,t/=128;case 5:e[r++]=t&255|f,t/=128;case 4:e[r++]=t&255|f,t>>>=7;case 3:e[r++]=t&255|f,t>>>=7;case 2:e[r++]=t&255|f,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function xo(t,e,r=0){switch(z(t)){case 8:e.set(r++,t&255|f),t/=128;case 7:e.set(r++,t&255|f),t/=128;case 6:e.set(r++,t&255|f),t/=128;case 5:e.set(r++,t&255|f),t/=128;case 4:e.set(r++,t&255|f),t>>>=7;case 3:e.set(r++,t&255|f),t>>>=7;case 2:e.set(r++,t&255|f),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function yo(t,e){let r=t[e],n=0;if(n+=r&I,r<f||(r=t[e+1],n+=(r&I)<<7,r<f)||(r=t[e+2],n+=(r&I)<<14,r<f)||(r=t[e+3],n+=(r&I)<<21,r<f)||(r=t[e+4],n+=(r&I)*lt,r<f)||(r=t[e+5],n+=(r&I)*dt,r<f)||(r=t[e+6],n+=(r&I)*pt,r<f)||(r=t[e+7],n+=(r&I)*ft,r<f))return n;throw new RangeError("Could not decode varint")}function Co(t,e){let r=t.get(e),n=0;if(n+=r&I,r<f||(r=t.get(e+1),n+=(r&I)<<7,r<f)||(r=t.get(e+2),n+=(r&I)<<14,r<f)||(r=t.get(e+3),n+=(r&I)<<21,r<f)||(r=t.get(e+4),n+=(r&I)*lt,r<f)||(r=t.get(e+5),n+=(r&I)*dt,r<f)||(r=t.get(e+6),n+=(r&I)*pt,r<f)||(r=t.get(e+7),n+=(r&I)*ft,r<f))return n;throw new RangeError("Could not decode varint")}function ue(t,e,r=0){return e==null&&(e=ae(z(t))),e instanceof Uint8Array?bo(t,e,r):xo(t,e,r)}function K(t,e=0){return t instanceof Uint8Array?yo(t,e):Co(t,e)}function V(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=ae(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return ce(r)}var Ue=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}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 r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,o){return this.readAtomically(()=>{let s=0,c=0,l=this.peekChar();if(l===void 0)return;let m=l==="0",A=2**(8*o)-1;for(;;){let a=this.readAtomically(()=>{let d=this.readChar();if(d===void 0)return;let h=Number.parseInt(d,e);if(!Number.isNaN(h))return h});if(a===void 0)break;if(s*=e,s+=a,s>A||(c+=1,r!==void 0&&c>r))return}if(c!==0)return!n&&m&&c>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let o=n*2;if(n<r.length-3){let c=this.readSeparator(":",n,()=>this.readIPv4Addr());if(c!==void 0)return r[o]=c[0],r[o+1]=c[1],r[o+2]=c[2],r[o+3]=c[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=e(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),c=16-(n+2),[l]=e(s.subarray(0,c));return r.set(s.subarray(0,l),16-l),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var pr=45,vo=15,le=new Ue;function ht(t){if(!(t.length>vo))return le.new(t).parseWith(()=>le.readIPv4Addr())}function mt(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>pr))return le.new(t).parseWith(()=>le.readIPv6Addr())}function ke(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>pr))return le.new(t).parseWith(()=>le.readIPAddr())}var Ai=parseInt("0xFFFF",16),Ii=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function gt(t,e="utf8"){let r=De[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ce(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function mr(t){return!!ht(t)}function gr(t){return!!mt(t)}function Ne(t){return!!ke(t)}var wr=mr,Fo=gr,wt=function(t){let e=0;if(t=t.toString().trim(),wr(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Fo(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=wr(r[n]),c;s&&(c=wt(r[n]),r[n]=T(c.slice(0,2),"base16")),c!=null&&++n<8&&r.splice(n,0,T(c.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},br=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let o=[];for(let s=0;s<r;s++)o.push(t[e+s]);return o.join(".")}if(r===16){let o=[];for(let s=0;s<r;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var de={},bt={},Po=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Po.forEach(t=>{let e=Do(...t);bt[e.code]=e,de[e.name]=e});function Do(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function g(t){if(typeof t=="number"){if(bt[t]!=null)return bt[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(de[t]!=null)return de[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var pc=g("ip4"),fc=g("ip6"),hc=g("ipcidr");function yt(t,e){switch(g(t).code){case 4:case 41:return ko(e);case 42:return Cr(e);case 6:case 273:case 33:case 132:return Er(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Cr(e);case 421:return Ro(e);case 444:return vr(e);case 445:return vr(e);case 466:return Mo(e);default:return T(e,"base16")}}function Ct(t,e){switch(g(t).code){case 4:return xr(e);case 41:return xr(e);case 42:return yr(e);case 6:case 273:case 33:case 132:return vt(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return yr(e);case 421:return No(e);case 444:return Bo(e);case 445:return Oo(e);case 466:return Lo(e);default:return gt(e,"base16")}}var xt=Object.values(q).map(t=>t.decoder),Uo=function(){let t=xt[0].or(xt[1]);return xt.slice(2).forEach(e=>t=t.or(e)),t}();function xr(t){if(!Ne(t))throw new Error("invalid ip address");return wt(t)}function ko(t){let e=br(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ne(e))throw new Error("invalid ip address");return e}function vt(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Er(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function yr(t){let e=gt(t),r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Cr(t){let e=K(t);if(t=t.slice(z(e)),t.length!==e)throw new Error("inconsistent lengths");return T(t)}function No(t){let e;t[0]==="Q"||t[0]==="1"?e=J(v.decode(`z${t}`)).bytes:e=O.parse(t).multihash.bytes;let r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Lo(t){let e=Uo.decode(t),r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Mo(t){let e=K(t),r=t.slice(z(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+T(r,"base64url")}function Ro(t){let e=K(t),r=t.slice(z(e));if(r.length!==e)throw new Error("inconsistent lengths");return T(r,"base58btc")}function Bo(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=B.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=vt(n);return V([r,o],r.length+o.length)}function Oo(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=B.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=vt(n);return V([r,o],r.length+o.length)}function vr(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=T(e,"base32"),o=Er(r);return`${n}:${o}`}function Sr(t){t=Et(t);let e=[],r=[],n=null,o=t.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<o.length;s++){let c=o[s],l=g(c);if(l.size===0){e.push([l.code]),r.push([l.code]);continue}if(s++,s>=o.length)throw Ir("invalid address: "+t);if(l.path===!0){n=Et(o.slice(s).join("/")),e.push([l.code,Ct(l.code,n)]),r.push([l.code,n]);break}let m=Ct(l.code,o[s]);e.push([l.code,m]),r.push([l.code,yt(l.code,m)])}return{string:Ar(r),bytes:At(e),tuples:e,stringTuples:r,path:n}}function St(t){let e=[],r=[],n=null,o=0;for(;o<t.length;){let s=K(t,o),c=z(s),l=g(s),m=zo(l,t.slice(o+c));if(m===0){e.push([s]),r.push([s]),o+=c;continue}let A=t.slice(o+c,o+c+m);if(o+=m+c,o>t.length)throw Ir("Invalid address Uint8Array: "+T(t,"base16"));e.push([s,A]);let a=yt(s,A);if(r.push([s,a]),l.path===!0){n=a;break}}return{bytes:Uint8Array.from(t),string:Ar(r),tuples:e,stringTuples:r,path:n}}function Ar(t){let e=[];return t.map(r=>{let n=g(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Et(e.join("/"))}function At(t){return V(t.map(e=>{let r=g(e[0]),n=Uint8Array.from(ue(r.code));return e.length>1&&e[1]!=null&&(n=V([n,e[1]])),n}))}function zo(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=K(e instanceof Uint8Array?e:Uint8Array.from(e));return r+z(r)}}function Et(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Ir(t){return new Error("Error parsing address: "+t)}var $o=Symbol.for("nodejs.util.inspect.custom"),Vo=[g("dns").code,g("dns4").code,g("dns6").code,g("dnsaddr").code],_o=new Map,Fr=Symbol.for("@multiformats/js-multiaddr/multiaddr");function jo(t){return!!t?.[Fr]}var It=class t{bytes;#e;#t;#r;#n;[Fr]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=St(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=Sr(e)}else if(jo(e))r=St(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,o,s="",c=g("tcp"),l=g("udp"),m=g("ip4"),A=g("ip6"),a=g("dns6"),d=g("ip6zone");for(let[E,p]of this.stringTuples())E===d.code&&(s=`%${p??""}`),Vo.includes(E)&&(r=c.name,o=443,n=`${p??""}${s}`,e=E===a.code?6:4),(E===c.code||E===l.code)&&(r=g(E).name,o=parseInt(p??"")),(E===m.code||E===A.code)&&(r=g(E).name,n=`${p??""}${s}`,e=E===A.code?6:4);if(e==null||r==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:e,host:n,transport:r,port:o}}protos(){return this.#t.map(([e])=>Object.assign({},g(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>g(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,o))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(At(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===de.p2p.code&&e.push([n,o]),n===de["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?T(v.decode(`z${n}`),"base58btc"):T(O.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return be(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=_o.get(r.name);if(n==null)throw new he(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[$o](){return`Multiaddr(${this.#e})`}};function pe(t){return new It(t)}var qo=i("dns4"),Wo=i("dns6"),Go=i("dnsaddr"),Q=x(i("dns"),Go,qo,Wo),Re=x(i("ip4"),i("ip6")),fe=x(u(Re,i("tcp")),u(Q,i("tcp"))),Be=u(Re,i("udp")),Jo=u(Be,i("utp")),Ho=u(Be,i("quic")),Ko=u(Be,i("quic-v1")),Ft=x(u(fe,i("ws")),u(Q,i("ws"))),Le=x(u(Ft,i("p2p")),Ft),Tt=x(u(fe,i("wss")),u(Q,i("wss")),u(fe,i("tls"),i("ws")),u(Q,i("tls"),i("ws"))),Me=x(u(Tt,i("p2p")),Tt),Pt=x(u(fe,i("http")),u(Re,i("http")),u(Q,i("http"))),Dt=x(u(fe,i("https")),u(Re,i("https")),u(Q,i("https"))),Tr=u(Be,i("webrtc-direct"),i("certhash")),Ur=x(u(Tr,i("p2p")),Tr),Pr=u(Ko,i("webtransport"),i("certhash"),i("certhash")),kr=x(u(Pr,i("p2p")),Pr),Nr=x(u(Le,i("p2p-webrtc-star"),i("p2p")),u(Me,i("p2p-webrtc-star"),i("p2p")),u(Le,i("p2p-webrtc-star")),u(Me,i("p2p-webrtc-star"))),Rc=x(u(Le,i("p2p-websocket-star"),i("p2p")),u(Me,i("p2p-websocket-star"),i("p2p")),u(Le,i("p2p-websocket-star")),u(Me,i("p2p-websocket-star"))),Lr=x(u(Pt,i("p2p-webrtc-direct"),i("p2p")),u(Dt,i("p2p-webrtc-direct"),i("p2p")),u(Pt,i("p2p-webrtc-direct")),u(Dt,i("p2p-webrtc-direct"))),Y=x(Ft,Tt,Pt,Dt,Nr,Lr,fe,Jo,Ho,Q,Ur,kr),Bc=x(u(Y,i("p2p-stardust"),i("p2p")),u(Y,i("p2p-stardust"))),W=x(u(Y,i("p2p")),Nr,Lr,Ur,kr,i("p2p")),Dr=x(u(W,i("p2p-circuit"),W),u(W,i("p2p-circuit")),u(i("p2p-circuit"),W),u(Y,i("p2p-circuit")),u(i("p2p-circuit"),Y),i("p2p-circuit")),Mr=()=>x(u(Dr,Mr),Dr),X=Mr(),Rr=x(u(X,W,X),u(W,X),u(X,W),X,W);var Oc=x(u(X,i("webrtc"),i("p2p")),u(X,i("webrtc")),u(Y,i("webrtc"),i("p2p")),u(Y,i("webrtc")),i("webrtc"));function Br(t){function e(r){let n;try{n=pe(r)}catch{return!1}let o=t(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return e}function u(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(o=>(n=typeof o=="function"?o().partialMatch(r):o.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Br(e),partialMatch:e}}function x(...t){function e(n){let o=null;return t.some(s=>{let c=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return c!=null?(o=c,!0):!1}),o}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Br(e),partialMatch:e}}function i(t){let e=t;function r(o){let s;try{s=pe(o)}catch{return!1}let c=s.protoNames();return c.length===1&&c[0]===e}function n(o){return o.length===0?null:o[0]===e?o.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var Oe=Wt("libp2p:bootstrap"),Xo="bootstrap",Qo=50,Yo=12e4,Zo=1e3,Ut=class extends Se{static tag="bootstrap";timer;list;timeout;components;_init;constructor(e,r={list:[]}){if(r.list==null||r.list.length===0)throw new Error("Bootstrap requires a list of peer addresses");super(),this.components=e,this.timeout=r.timeout??Zo,this.list=[];for(let n of r.list){if(!Rr.matches(n)){Oe.error("Invalid multiaddr");continue}let o=pe(n),s=o.getPeerId();if(s==null){Oe.error("Invalid bootstrap multiaddr without peer id");continue}let c={id:at(s),multiaddrs:[o],protocols:[]};this.list.push(c)}this._init=r}[Nt]=this;[Symbol.toStringTag]="@libp2p/bootstrap";isStarted(){return!!this.timer}start(){this.isStarted()||(Oe("Starting bootstrap node discovery, discovering peers after %s ms",this.timeout),this.timer=setTimeout(()=>{this._discoverBootstrapPeers().catch(e=>{Oe.error(e)})},this.timeout))}async _discoverBootstrapPeers(){if(this.timer!=null)for(let e of this.list){if(await this.components.peerStore.merge(e.id,{tags:{[this._init.tagName??Xo]:{value:this._init.tagValue??Qo,ttl:this._init.tagTTL??Yo}}}),this.timer==null)return;this.safeDispatchEvent("peer",{detail:e})}}stop(){this.timer!=null&&clearTimeout(this.timer),this.timer=void 0}};function es(t){return e=>new Ut(e,t)}return qr(ts);})();
|
|
2
|
+
"use strict";var Libp2PBootstrap=(()=>{var Or=Object.create;var Ee=Object.defineProperty;var zr=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Vr=Object.getPrototypeOf,_r=Object.prototype.hasOwnProperty;var ze=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),D=(t,e)=>{for(var r in e)Ee(t,r,{get:e[r],enumerable:!0})},kt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $r(e))!_r.call(t,o)&&o!==r&&Ee(t,o,{get:()=>e[o],enumerable:!(n=zr(e,o))||n.enumerable});return t};var jr=(t,e,r)=>(r=t!=null?Or(Vr(t)):{},kt(e||!t||!t.__esModule?Ee(r,"default",{value:t,enumerable:!0}):r,t)),qr=t=>kt(Ee({},"__esModule",{value:!0}),t);var Mt=ze((as,Lt)=>{var ee=1e3,te=ee*60,re=te*60,G=re*24,Gr=G*7,Jr=G*365.25;Lt.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Hr(t);if(r==="number"&&isFinite(t))return e.long?Xr(t):Kr(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Hr(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Jr;case"weeks":case"week":case"w":return r*Gr;case"days":case"day":case"d":return r*G;case"hours":case"hour":case"hrs":case"hr":case"h":return r*re;case"minutes":case"minute":case"mins":case"min":case"m":return r*te;case"seconds":case"second":case"secs":case"sec":case"s":return r*ee;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kr(t){var e=Math.abs(t);return e>=G?Math.round(t/G)+"d":e>=re?Math.round(t/re)+"h":e>=te?Math.round(t/te)+"m":e>=ee?Math.round(t/ee)+"s":t+"ms"}function Xr(t){var e=Math.abs(t);return e>=G?Ae(t,e,G,"day"):e>=re?Ae(t,e,re,"hour"):e>=te?Ae(t,e,te,"minute"):e>=ee?Ae(t,e,ee,"second"):t+" ms"}function Ae(t,e,r,n){var o=e>=r*1.5;return Math.round(t/r)+" "+n+(o?"s":"")}});var Bt=ze((us,Rt)=>{function Qr(t){r.debug=r,r.default=r,r.coerce=m,r.disable=s,r.enable=o,r.enabled=c,r.humanize=Mt(),r.destroy=A,Object.keys(t).forEach(a=>{r[a]=t[a]}),r.names=[],r.skips=[],r.formatters={};function e(a){let d=0;for(let h=0;h<a.length;h++)d=(d<<5)-d+a.charCodeAt(h),d|=0;return r.colors[Math.abs(d)%r.colors.length]}r.selectColor=e;function r(a){let d,h=null,E,p;function w(...y){if(!w.enabled)return;let C=w,F=Number(new Date),N=F-(d||F);C.diff=N,C.prev=d,C.curr=F,d=F,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let S=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(L,P)=>{if(L==="%%")return"%";S++;let M=r.formatters[P];if(typeof M=="function"){let Z=y[S];L=M.call(C,Z),y.splice(S,1),S--}return L}),r.formatArgs.call(C,y),(C.log||r.log).apply(C,y)}return w.namespace=a,w.useColors=r.useColors(),w.color=r.selectColor(a),w.extend=n,w.destroy=r.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(E!==r.namespaces&&(E=r.namespaces,p=r.enabled(a)),p),set:y=>{h=y}}),typeof r.init=="function"&&r.init(w),w}function n(a,d){let h=r(this.namespace+(typeof d>"u"?":":d)+a);return h.log=this.log,h}function o(a){r.save(a),r.namespaces=a,r.names=[],r.skips=[];let d,h=(typeof a=="string"?a:"").split(/[\s,]+/),E=h.length;for(d=0;d<E;d++)h[d]&&(a=h[d].replace(/\*/g,".*?"),a[0]==="-"?r.skips.push(new RegExp("^"+a.slice(1)+"$")):r.names.push(new RegExp("^"+a+"$")))}function s(){let a=[...r.names.map(l),...r.skips.map(l).map(d=>"-"+d)].join(",");return r.enable(""),a}function c(a){if(a[a.length-1]==="*")return!0;let d,h;for(d=0,h=r.skips.length;d<h;d++)if(r.skips[d].test(a))return!1;for(d=0,h=r.names.length;d<h;d++)if(r.names[d].test(a))return!0;return!1}function l(a){return a.toString().substring(2,a.toString().length-2).replace(/\.\*\?$/,"*")}function m(a){return a instanceof Error?a.stack||a.message:a}function A(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Rt.exports=Qr});var Ot=ze((U,Ie)=>{U.formatArgs=Zr;U.save=en;U.load=tn;U.useColors=Yr;U.storage=rn();U.destroy=(()=>{let t=!1;return()=>{t||(t=!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`."))}})();U.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 Yr(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1: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&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Zr(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Ie.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),t.splice(n,0,e)}U.log=console.debug||console.log||(()=>{});function en(t){try{t?U.storage.setItem("debug",t):U.storage.removeItem("debug")}catch{}}function tn(){let t;try{t=U.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function rn(){try{return localStorage}catch{}}Ie.exports=Bt()(U);var{formatters:nn}=Ie.exports;nn.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var ts={};D(ts,{bootstrap:()=>es});var Se=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#e.set(e,o))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new Wr(e,r))}},$e=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},Wr=globalThis.CustomEvent??$e;var Nt=Symbol.for("@libp2p/peer-discovery");var k=jr(Ot(),1);var We={};D(We,{base32:()=>B,base32hex:()=>fn,base32hexpad:()=>mn,base32hexpadupper:()=>gn,base32hexupper:()=>hn,base32pad:()=>dn,base32padupper:()=>pn,base32upper:()=>ln,base32z:()=>wn});function on(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),c=s.charCodeAt(0);if(r[c]!==255)throw new TypeError(s+" is ambiguous");r[c]=o}var l=t.length,m=t.charAt(0),A=Math.log(l)/Math.log(256),a=Math.log(256)/Math.log(l);function d(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,y=0,C=0,F=p.length;C!==F&&p[C]===0;)C++,w++;for(var N=(F-C)*a+1>>>0,S=new Uint8Array(N);C!==F;){for(var R=p[C],L=0,P=N-1;(R!==0||L<y)&&P!==-1;P--,L++)R+=256*S[P]>>>0,S[P]=R%l>>>0,R=R/l>>>0;if(R!==0)throw new Error("Non-zero carry");y=L,C++}for(var M=N-y;M!==N&&S[M]===0;)M++;for(var Z=m.repeat(w);M<N;++M)Z+=t.charAt(S[M]);return Z}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var y=0,C=0;p[w]===m;)y++,w++;for(var F=(p.length-w)*A+1>>>0,N=new Uint8Array(F);p[w];){var S=r[p.charCodeAt(w)];if(S===255)return;for(var R=0,L=F-1;(S!==0||R<C)&&L!==-1;L--,R++)S+=l*N[L]>>>0,N[L]=S%256>>>0,S=S/256>>>0;if(S!==0)throw new Error("Non-zero carry");C=R,w++}if(p[w]!==" "){for(var P=F-C;P!==F&&N[P]===0;)P++;for(var M=new Uint8Array(y+(F-P)),Z=y;P!==F;)M[Z++]=N[P++];return M}}}function E(p){var w=h(p);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:h,decode:E}}var sn=on,cn=sn,zt=cn;var ds=new Uint8Array(0);var $t=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},$=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Vt=t=>new TextEncoder().encode(t),_t=t=>new TextDecoder().decode(t);var Ve=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},_e=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}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 qt(this,e)}},je=class{constructor(e){this.decoders=e}or(e){return qt(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},qt=(t,e)=>new je({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),qe=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ve(e,r,n),this.decoder=new _e(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ne=({name:t,prefix:e,encode:r,decode:n})=>new qe(t,e,r,n),_=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=zt(r,e);return ne({prefix:t,name:e,encode:n,decode:s=>$(o(s))})},an=(t,e,r,n)=>{let o={};for(let a=0;a<e.length;++a)o[e[a]]=a;let s=t.length;for(;t[s-1]==="=";)--s;let c=new Uint8Array(s*r/8|0),l=0,m=0,A=0;for(let a=0;a<s;++a){let d=o[t[a]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);m=m<<r|d,l+=r,l>=8&&(l-=8,c[A++]=255&m>>l)}if(l>=r||255&m<<8-l)throw new SyntaxError("Unexpected end of data");return c},un=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",c=0,l=0;for(let m=0;m<t.length;++m)for(l=l<<8|t[m],c+=8;c>r;)c-=r,s+=e[o&l>>c];if(c&&(s+=e[o&l<<r-c]),n)for(;s.length*r&7;)s+="=";return s},b=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ne({prefix:e,name:t,encode(o){return un(o,n,r)},decode(o){return an(o,n,r,t)}});var B=b({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ln=b({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dn=b({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),pn=b({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),fn=b({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hn=b({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),mn=b({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),gn=b({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),wn=b({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ge={};D(Ge,{base58btc:()=>v,base58flickr:()=>bn});var v=_({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),bn=_({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var He={};D(He,{base64:()=>Je,base64pad:()=>xn,base64url:()=>yn,base64urlpad:()=>Cn});var Je=b({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),xn=b({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yn=b({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Cn=b({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});k.default.formatters.b=t=>t==null?"undefined":v.baseEncode(t);k.default.formatters.t=t=>t==null?"undefined":B.baseEncode(t);k.default.formatters.m=t=>t==null?"undefined":Je.baseEncode(t);k.default.formatters.p=t=>t==null?"undefined":t.toString();k.default.formatters.c=t=>t==null?"undefined":t.toString();k.default.formatters.k=t=>t==null?"undefined":t.toString();k.default.formatters.a=t=>t==null?"undefined":t.toString();function vn(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Wt(t){let e=vn(`${t}:trace`);return k.default.enabled(`${t}:trace`)&&k.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,k.default)(`${t}:trace`)),Object.assign((0,k.default)(t),{error:(0,k.default)(`${t}:error`),trace:e})}var he=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Gt=Symbol.for("@libp2p/peer-id");var Ke={};D(Ke,{base10:()=>En});var En=_({prefix:"9",name:"base10",alphabet:"0123456789"});var Xe={};D(Xe,{base16:()=>Sn,base16upper:()=>An});var Sn=b({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),An=b({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Qe={};D(Qe,{base2:()=>In});var In=b({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ye={};D(Ye,{base256emoji:()=>Un});var Jt=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}"),Fn=Jt.reduce((t,e,r)=>(t[r]=e,t),[]),Tn=Jt.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function Pn(t){return t.reduce((e,r)=>(e+=Fn[r],e),"")}function Dn(t){let e=[];for(let r of t){let n=Tn[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Un=ne({prefix:"\u{1F680}",name:"base256emoji",encode:Pn,decode:Dn});var Ze={};D(Ze,{base36:()=>kn,base36upper:()=>Nn});var kn=_({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Nn=_({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var et={};D(et,{base8:()=>Ln});var Ln=b({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var tt={};D(tt,{identity:()=>Mn});var Mn=ne({prefix:"\0",name:"identity",encode:t=>_t(t),decode:t=>Vt(t)});var ks=new TextEncoder,Ns=new TextDecoder;var nt={};D(nt,{identity:()=>Te});var On=Xt,Ht=128,zn=127,$n=~zn,Vn=Math.pow(2,31);function Xt(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Vn;)e[r++]=t&255|Ht,t/=128;for(;t&$n;)e[r++]=t&255|Ht,t>>>=7;return e[r]=t|0,Xt.bytes=r-n+1,e}var _n=rt,jn=128,Kt=127;function rt(t,n){var r=0,n=n||0,o=0,s=n,c,l=t.length;do{if(s>=l)throw rt.bytes=0,new RangeError("Could not decode varint");c=t[s++],r+=o<28?(c&Kt)<<o:(c&Kt)*Math.pow(2,o),o+=7}while(c>=jn);return rt.bytes=s-n,r}var qn=Math.pow(2,7),Wn=Math.pow(2,14),Gn=Math.pow(2,21),Jn=Math.pow(2,28),Hn=Math.pow(2,35),Kn=Math.pow(2,42),Xn=Math.pow(2,49),Qn=Math.pow(2,56),Yn=Math.pow(2,63),Zn=function(t){return t<qn?1:t<Wn?2:t<Gn?3:t<Jn?4:t<Hn?5:t<Kn?6:t<Xn?7:t<Qn?8:t<Yn?9:10},eo={encode:On,decode:_n,encodingLength:Zn},to=eo,me=to;var ge=(t,e=0)=>[me.decode(t,e),me.decode.bytes],oe=(t,e,r=0)=>(me.encode(t,e,r),e),se=t=>me.encodingLength(t);var j=(t,e)=>{let r=e.byteLength,n=se(t),o=n+se(r),s=new Uint8Array(o+r);return oe(t,s,0),oe(r,s,n),s.set(e,o),new ie(t,r,e,s)},J=t=>{let e=$(t),[r,n]=ge(e),[o,s]=ge(e.subarray(n)),c=e.subarray(n+s);if(c.byteLength!==o)throw new Error("Incorrect length");return new ie(r,o,c,e)},Qt=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&$t(t.bytes,r.bytes)}},ie=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Yt=0,ro="identity",Zt=$,no=t=>j(Yt,Zt(t)),Te={code:Yt,name:ro,encode:Zt,digest:no};var it={};D(it,{sha256:()=>Pe,sha512:()=>oo});var st=({name:t,code:e,encode:r})=>new ot(t,e,r),ot=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?j(this.code,r):r.then(n=>j(this.code,n))}else throw Error("Unknown type, must be binary type")}};var tr=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Pe=st({name:"sha2-256",code:18,encode:tr("SHA-256")}),oo=st({name:"sha2-512",code:19,encode:tr("SHA-512")});var rr=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return io(r,ct(t),e||v.encoder);default:return co(r,ct(t),e||B.encoder)}};var nr=new WeakMap,ct=t=>{let e=nr.get(t);if(e==null){let r=new Map;return nr.set(t,r),r}return e},O=class t{constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==we)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==ao)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=j(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Qt(e.multihash,n.multihash)}toString(e){return rr(this,e)}toJSON(){return{"/":rr(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:c}=r;return new t(n,o,s,c||or(n,o,s.bytes))}else if(r[uo]===!0){let{version:n,multihash:o,code:s}=r,c=J(o);return t.create(n,s,c)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==we)throw new Error(`Version 0 CID must use dag-pb (code: ${we}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=or(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,we,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=$(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),c=new ie(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(c):t.createV1(r.codec,c),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[d,h]=ge(e.subarray(r));return r+=h,d},o=n(),s=we;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let c=r,l=n(),m=n(),A=r+m,a=A-c;return{version:o,codec:s,multihashCode:l,digestSize:m,multihashSize:a,size:A}}static parse(e,r){let[n,o]=so(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ct(s).set(n,e),s}},so=(t,e)=>{switch(t[0]){case"Q":{let r=e||v;return[v.prefix,r.decode(`${v.prefix}${t}`)]}case v.prefix:{let r=e||v;return[v.prefix,r.decode(t)]}case B.prefix:{let r=e||B;return[B.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},io=(t,e,r)=>{let{prefix:n}=r;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},co=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},we=112,ao=18,or=(t,e,r)=>{let n=se(t),o=n+se(e),s=new Uint8Array(o+r.byteLength);return oe(t,s,0),oe(e,s,n),s.set(r,o),s},uo=Symbol.for("@ipld/js-cid/CID");var q={...tt,...Qe,...et,...Ke,...Xe,...We,...Ze,...Ge,...He,...Ye},Ks={...it,...nt};function be(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var lo=Symbol.for("nodejs.util.inspect.custom"),sr=Object.values(q).map(t=>t.decoder).reduce((t,e)=>t.or(e),q.identity.decoder),ir=114,cr=36,ar=37,xe=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()})`}[Gt]=!0;toString(){return this.string==null&&(this.string=v.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return O.createV1(ir,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return be(this.multihash.bytes,e);if(typeof e=="string")return at(e).equals(this);if(e?.multihash?.bytes!=null)return be(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[lo](){return`PeerId(${this.toString()})`}},ye=class extends xe{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ce=class extends xe{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},ve=class extends xe{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function at(t,e){if(e=e??sr,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=J(v.decode(`z${t}`));return t.startsWith("12D")?new Ce({multihash:r}):t.startsWith("16U")?new ve({multihash:r}):new ye({multihash:r})}return po(sr.decode(t))}function po(t){try{let e=J(t);if(e.code===Te.code){if(e.digest.length===cr)return new Ce({multihash:e});if(e.digest.length===ar)return new ve({multihash:e})}if(e.code===Pe.code)return new ye({multihash:e})}catch{return fo(O.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function fo(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==ir)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===Pe.code)return new ye({multihash:t.multihash});if(e.code===Te.code){if(e.digest.length===cr)return new Ce({multihash:t.multihash});if(e.digest.length===ar)return new ve({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}function ce(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ae(t=0){return globalThis.Buffer?.allocUnsafe!=null?ce(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function lr(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var ur=lr("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ut=lr("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=ae(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),ho={utf8:ur,"utf-8":ur,hex:q.base16,latin1:ut,ascii:ut,binary:ut,...q},De=ho;function T(t,e="utf8"){let r=De[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var mo=Math.pow(2,7),go=Math.pow(2,14),wo=Math.pow(2,21),lt=Math.pow(2,28),dt=Math.pow(2,35),pt=Math.pow(2,42),ft=Math.pow(2,49),f=128,I=127;function z(t){if(t<mo)return 1;if(t<go)return 2;if(t<wo)return 3;if(t<lt)return 4;if(t<dt)return 5;if(t<pt)return 6;if(t<ft)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function bo(t,e,r=0){switch(z(t)){case 8:e[r++]=t&255|f,t/=128;case 7:e[r++]=t&255|f,t/=128;case 6:e[r++]=t&255|f,t/=128;case 5:e[r++]=t&255|f,t/=128;case 4:e[r++]=t&255|f,t>>>=7;case 3:e[r++]=t&255|f,t>>>=7;case 2:e[r++]=t&255|f,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function xo(t,e,r=0){switch(z(t)){case 8:e.set(r++,t&255|f),t/=128;case 7:e.set(r++,t&255|f),t/=128;case 6:e.set(r++,t&255|f),t/=128;case 5:e.set(r++,t&255|f),t/=128;case 4:e.set(r++,t&255|f),t>>>=7;case 3:e.set(r++,t&255|f),t>>>=7;case 2:e.set(r++,t&255|f),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function yo(t,e){let r=t[e],n=0;if(n+=r&I,r<f||(r=t[e+1],n+=(r&I)<<7,r<f)||(r=t[e+2],n+=(r&I)<<14,r<f)||(r=t[e+3],n+=(r&I)<<21,r<f)||(r=t[e+4],n+=(r&I)*lt,r<f)||(r=t[e+5],n+=(r&I)*dt,r<f)||(r=t[e+6],n+=(r&I)*pt,r<f)||(r=t[e+7],n+=(r&I)*ft,r<f))return n;throw new RangeError("Could not decode varint")}function Co(t,e){let r=t.get(e),n=0;if(n+=r&I,r<f||(r=t.get(e+1),n+=(r&I)<<7,r<f)||(r=t.get(e+2),n+=(r&I)<<14,r<f)||(r=t.get(e+3),n+=(r&I)<<21,r<f)||(r=t.get(e+4),n+=(r&I)*lt,r<f)||(r=t.get(e+5),n+=(r&I)*dt,r<f)||(r=t.get(e+6),n+=(r&I)*pt,r<f)||(r=t.get(e+7),n+=(r&I)*ft,r<f))return n;throw new RangeError("Could not decode varint")}function ue(t,e,r=0){return e==null&&(e=ae(z(t))),e instanceof Uint8Array?bo(t,e,r):xo(t,e,r)}function K(t,e=0){return t instanceof Uint8Array?yo(t,e):Co(t,e)}function V(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=ae(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return ce(r)}var Ue=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}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 r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,o){return this.readAtomically(()=>{let s=0,c=0,l=this.peekChar();if(l===void 0)return;let m=l==="0",A=2**(8*o)-1;for(;;){let a=this.readAtomically(()=>{let d=this.readChar();if(d===void 0)return;let h=Number.parseInt(d,e);if(!Number.isNaN(h))return h});if(a===void 0)break;if(s*=e,s+=a,s>A||(c+=1,r!==void 0&&c>r))return}if(c!==0)return!n&&m&&c>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let o=n*2;if(n<r.length-3){let c=this.readSeparator(":",n,()=>this.readIPv4Addr());if(c!==void 0)return r[o]=c[0],r[o+1]=c[1],r[o+2]=c[2],r[o+3]=c[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=e(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),c=16-(n+2),[l]=e(s.subarray(0,c));return r.set(s.subarray(0,l),16-l),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var pr=45,vo=15,le=new Ue;function ht(t){if(!(t.length>vo))return le.new(t).parseWith(()=>le.readIPv4Addr())}function mt(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>pr))return le.new(t).parseWith(()=>le.readIPv6Addr())}function ke(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>pr))return le.new(t).parseWith(()=>le.readIPAddr())}var Ti=parseInt("0xFFFF",16),Pi=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function gt(t,e="utf8"){let r=De[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ce(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function mr(t){return!!ht(t)}function gr(t){return!!mt(t)}function Ne(t){return!!ke(t)}var wr=mr,Fo=gr,wt=function(t){let e=0;if(t=t.toString().trim(),wr(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Fo(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=wr(r[n]),c;s&&(c=wt(r[n]),r[n]=T(c.slice(0,2),"base16")),c!=null&&++n<8&&r.splice(n,0,T(c.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},br=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let o=[];for(let s=0;s<r;s++)o.push(t[e+s]);return o.join(".")}if(r===16){let o=[];for(let s=0;s<r;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var de={},bt={},Po=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Po.forEach(t=>{let e=Do(...t);bt[e.code]=e,de[e.name]=e});function Do(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function g(t){if(typeof t=="number"){if(bt[t]!=null)return bt[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(de[t]!=null)return de[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var mc=g("ip4"),gc=g("ip6"),wc=g("ipcidr");function yt(t,e){switch(g(t).code){case 4:case 41:return ko(e);case 42:return Cr(e);case 6:case 273:case 33:case 132:return Er(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Cr(e);case 421:return Ro(e);case 444:return vr(e);case 445:return vr(e);case 466:return Mo(e);default:return T(e,"base16")}}function Ct(t,e){switch(g(t).code){case 4:return xr(e);case 41:return xr(e);case 42:return yr(e);case 6:case 273:case 33:case 132:return vt(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return yr(e);case 421:return No(e);case 444:return Bo(e);case 445:return Oo(e);case 466:return Lo(e);default:return gt(e,"base16")}}var xt=Object.values(q).map(t=>t.decoder),Uo=function(){let t=xt[0].or(xt[1]);return xt.slice(2).forEach(e=>t=t.or(e)),t}();function xr(t){if(!Ne(t))throw new Error("invalid ip address");return wt(t)}function ko(t){let e=br(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ne(e))throw new Error("invalid ip address");return e}function vt(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Er(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function yr(t){let e=gt(t),r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Cr(t){let e=K(t);if(t=t.slice(z(e)),t.length!==e)throw new Error("inconsistent lengths");return T(t)}function No(t){let e;t[0]==="Q"||t[0]==="1"?e=J(v.decode(`z${t}`)).bytes:e=O.parse(t).multihash.bytes;let r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Lo(t){let e=Uo.decode(t),r=Uint8Array.from(ue(e.length));return V([r,e],r.length+e.length)}function Mo(t){let e=K(t),r=t.slice(z(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+T(r,"base64url")}function Ro(t){let e=K(t),r=t.slice(z(e));if(r.length!==e)throw new Error("inconsistent lengths");return T(r,"base58btc")}function Bo(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=B.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=vt(n);return V([r,o],r.length+o.length)}function Oo(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=B.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=vt(n);return V([r,o],r.length+o.length)}function vr(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=T(e,"base32"),o=Er(r);return`${n}:${o}`}function Sr(t){t=Et(t);let e=[],r=[],n=null,o=t.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<o.length;s++){let c=o[s],l=g(c);if(l.size===0){e.push([l.code]),r.push([l.code]);continue}if(s++,s>=o.length)throw Ir("invalid address: "+t);if(l.path===!0){n=Et(o.slice(s).join("/")),e.push([l.code,Ct(l.code,n)]),r.push([l.code,n]);break}let m=Ct(l.code,o[s]);e.push([l.code,m]),r.push([l.code,yt(l.code,m)])}return{string:Ar(r),bytes:At(e),tuples:e,stringTuples:r,path:n}}function St(t){let e=[],r=[],n=null,o=0;for(;o<t.length;){let s=K(t,o),c=z(s),l=g(s),m=zo(l,t.slice(o+c));if(m===0){e.push([s]),r.push([s]),o+=c;continue}let A=t.slice(o+c,o+c+m);if(o+=m+c,o>t.length)throw Ir("Invalid address Uint8Array: "+T(t,"base16"));e.push([s,A]);let a=yt(s,A);if(r.push([s,a]),l.path===!0){n=a;break}}return{bytes:Uint8Array.from(t),string:Ar(r),tuples:e,stringTuples:r,path:n}}function Ar(t){let e=[];return t.map(r=>{let n=g(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Et(e.join("/"))}function At(t){return V(t.map(e=>{let r=g(e[0]),n=Uint8Array.from(ue(r.code));return e.length>1&&e[1]!=null&&(n=V([n,e[1]])),n}))}function zo(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=K(e instanceof Uint8Array?e:Uint8Array.from(e));return r+z(r)}}function Et(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Ir(t){return new Error("Error parsing address: "+t)}var $o=Symbol.for("nodejs.util.inspect.custom"),Vo=[g("dns").code,g("dns4").code,g("dns6").code,g("dnsaddr").code],_o=new Map,Fr=Symbol.for("@multiformats/js-multiaddr/multiaddr");function jo(t){return!!t?.[Fr]}var It=class t{bytes;#e;#t;#r;#n;[Fr]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=St(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=Sr(e)}else if(jo(e))r=St(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,o,s="",c=g("tcp"),l=g("udp"),m=g("ip4"),A=g("ip6"),a=g("dns6"),d=g("ip6zone");for(let[E,p]of this.stringTuples())E===d.code&&(s=`%${p??""}`),Vo.includes(E)&&(r=c.name,o=443,n=`${p??""}${s}`,e=E===a.code?6:4),(E===c.code||E===l.code)&&(r=g(E).name,o=parseInt(p??"")),(E===m.code||E===A.code)&&(r=g(E).name,n=`${p??""}${s}`,e=E===A.code?6:4);if(e==null||r==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:e,host:n,transport:r,port:o}}protos(){return this.#t.map(([e])=>Object.assign({},g(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>g(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,o))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(At(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===de.p2p.code&&e.push([n,o]),n===de["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?T(v.decode(`z${n}`),"base58btc"):T(O.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return be(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=_o.get(r.name);if(n==null)throw new he(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[$o](){return`Multiaddr(${this.#e})`}};function pe(t){return new It(t)}var qo=i("dns4"),Wo=i("dns6"),Go=i("dnsaddr"),Q=x(i("dns"),Go,qo,Wo),Re=x(i("ip4"),i("ip6")),fe=x(u(Re,i("tcp")),u(Q,i("tcp"))),Be=u(Re,i("udp")),Jo=u(Be,i("utp")),Ho=u(Be,i("quic")),Ko=u(Be,i("quic-v1")),Ft=x(u(fe,i("ws")),u(Q,i("ws"))),Le=x(u(Ft,i("p2p")),Ft),Tt=x(u(fe,i("wss")),u(Q,i("wss")),u(fe,i("tls"),i("ws")),u(Q,i("tls"),i("ws"))),Me=x(u(Tt,i("p2p")),Tt),Pt=x(u(fe,i("http")),u(Re,i("http")),u(Q,i("http"))),Dt=x(u(fe,i("https")),u(Re,i("https")),u(Q,i("https"))),Tr=u(Be,i("webrtc-direct"),i("certhash")),Ur=x(u(Tr,i("p2p")),Tr),Pr=u(Ko,i("webtransport"),i("certhash"),i("certhash")),kr=x(u(Pr,i("p2p")),Pr),Nr=x(u(Le,i("p2p-webrtc-star"),i("p2p")),u(Me,i("p2p-webrtc-star"),i("p2p")),u(Le,i("p2p-webrtc-star")),u(Me,i("p2p-webrtc-star"))),zc=x(u(Le,i("p2p-websocket-star"),i("p2p")),u(Me,i("p2p-websocket-star"),i("p2p")),u(Le,i("p2p-websocket-star")),u(Me,i("p2p-websocket-star"))),Lr=x(u(Pt,i("p2p-webrtc-direct"),i("p2p")),u(Dt,i("p2p-webrtc-direct"),i("p2p")),u(Pt,i("p2p-webrtc-direct")),u(Dt,i("p2p-webrtc-direct"))),Y=x(Ft,Tt,Pt,Dt,Nr,Lr,fe,Jo,Ho,Q,Ur,kr),$c=x(u(Y,i("p2p-stardust"),i("p2p")),u(Y,i("p2p-stardust"))),W=x(u(Y,i("p2p")),Nr,Lr,Ur,kr,i("p2p")),Dr=x(u(W,i("p2p-circuit"),W),u(W,i("p2p-circuit")),u(i("p2p-circuit"),W),u(Y,i("p2p-circuit")),u(i("p2p-circuit"),Y),i("p2p-circuit")),Mr=()=>x(u(Dr,Mr),Dr),X=Mr(),Rr=x(u(X,W,X),u(W,X),u(X,W),X,W);var Vc=x(u(X,i("webrtc"),i("p2p")),u(X,i("webrtc")),u(Y,i("webrtc"),i("p2p")),u(Y,i("webrtc")),i("webrtc"));function Br(t){function e(r){let n;try{n=pe(r)}catch{return!1}let o=t(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return e}function u(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(o=>(n=typeof o=="function"?o().partialMatch(r):o.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Br(e),partialMatch:e}}function x(...t){function e(n){let o=null;return t.some(s=>{let c=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return c!=null?(o=c,!0):!1}),o}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Br(e),partialMatch:e}}function i(t){let e=t;function r(o){let s;try{s=pe(o)}catch{return!1}let c=s.protoNames();return c.length===1&&c[0]===e}function n(o){return o.length===0?null:o[0]===e?o.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var Oe=Wt("libp2p:bootstrap"),Xo="bootstrap",Qo=50,Yo=12e4,Zo=1e3,Ut=class extends Se{static tag="bootstrap";timer;list;timeout;components;_init;constructor(e,r={list:[]}){if(r.list==null||r.list.length===0)throw new Error("Bootstrap requires a list of peer addresses");super(),this.components=e,this.timeout=r.timeout??Zo,this.list=[];for(let n of r.list){if(!Rr.matches(n)){Oe.error("Invalid multiaddr");continue}let o=pe(n),s=o.getPeerId();if(s==null){Oe.error("Invalid bootstrap multiaddr without peer id");continue}let c={id:at(s),multiaddrs:[o],protocols:[]};this.list.push(c)}this._init=r}[Nt]=this;[Symbol.toStringTag]="@libp2p/bootstrap";isStarted(){return!!this.timer}start(){this.isStarted()||(Oe("Starting bootstrap node discovery, discovering peers after %s ms",this.timeout),this.timer=setTimeout(()=>{this._discoverBootstrapPeers().catch(e=>{Oe.error(e)})},this.timeout))}async _discoverBootstrapPeers(){if(this.timer!=null)for(let e of this.list){if(await this.components.peerStore.merge(e.id,{tags:{[this._init.tagName??Xo]:{value:this._init.tagValue??Qo,ttl:this._init.tagTTL??Yo}}}),this.timer==null)return;this.safeDispatchEvent("peer",{detail:e})}}stop(){this.timer!=null&&clearTimeout(this.timer),this.timer=void 0}};function es(t){return e=>new Ut(e,t)}return qr(ts);})();
|
|
3
3
|
return Libp2PBootstrap}));
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* The configured bootstrap peers will be discovered after the configured timeout. This will ensure there are some peers in the peer store for the node to use to discover other peers.
|
|
5
|
+
*
|
|
6
|
+
* They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire after two minutes which means the nodes connections may be closed if the maximum number of connections is reached.
|
|
7
|
+
*
|
|
8
|
+
* Clients that need constant connections to bootstrap nodes (e.g. browsers) can set the TTL to `Infinity`.
|
|
9
|
+
*
|
|
10
|
+
* ```JavaScript
|
|
11
|
+
* import { createLibp2p } from 'libp2p'
|
|
12
|
+
* import { bootstrap } from '@libp2p/bootstrap'
|
|
13
|
+
* import { tcp } from 'libp2p/tcp'
|
|
14
|
+
* import { noise } from '@libp2p/noise'
|
|
15
|
+
* import { mplex } from '@libp2p/mplex'
|
|
16
|
+
*
|
|
17
|
+
* let options = {
|
|
18
|
+
* transports: [
|
|
19
|
+
* tcp()
|
|
20
|
+
* ],
|
|
21
|
+
* streamMuxers: [
|
|
22
|
+
* mplex()
|
|
23
|
+
* ],
|
|
24
|
+
* connectionEncryption: [
|
|
25
|
+
* noise()
|
|
26
|
+
* ],
|
|
27
|
+
* peerDiscovery: [
|
|
28
|
+
* bootstrap({
|
|
29
|
+
* list: [ // a list of bootstrap peer multiaddrs to connect to on node startup
|
|
30
|
+
* "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",
|
|
31
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN",
|
|
32
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa"
|
|
33
|
+
* ],
|
|
34
|
+
* timeout: 1000, // in ms,
|
|
35
|
+
* tagName: 'bootstrap',
|
|
36
|
+
* tagValue: 50,
|
|
37
|
+
* tagTTL: 120000 // in ms
|
|
38
|
+
* })
|
|
39
|
+
* ]
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* const libp2p = await createLibp2p(options)
|
|
43
|
+
*
|
|
44
|
+
* libp2p.on('peer:discovery', function (peerId) {
|
|
45
|
+
* console.log('found peer: ', peerId.toB58String())
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
1
49
|
import type { PeerDiscovery } from '@libp2p/interface/peer-discovery';
|
|
2
50
|
import type { PeerStore } from '@libp2p/interface/peer-store';
|
|
3
51
|
export interface BootstrapInit {
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,kCAAkC,CAAA;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAU7D,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAA;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAA;CACrB;AAkHD,wBAAgB,SAAS,CAAE,IAAI,EAAE,aAAa,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,aAAa,CAElG"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* The configured bootstrap peers will be discovered after the configured timeout. This will ensure there are some peers in the peer store for the node to use to discover other peers.
|
|
5
|
+
*
|
|
6
|
+
* They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire after two minutes which means the nodes connections may be closed if the maximum number of connections is reached.
|
|
7
|
+
*
|
|
8
|
+
* Clients that need constant connections to bootstrap nodes (e.g. browsers) can set the TTL to `Infinity`.
|
|
9
|
+
*
|
|
10
|
+
* ```JavaScript
|
|
11
|
+
* import { createLibp2p } from 'libp2p'
|
|
12
|
+
* import { bootstrap } from '@libp2p/bootstrap'
|
|
13
|
+
* import { tcp } from 'libp2p/tcp'
|
|
14
|
+
* import { noise } from '@libp2p/noise'
|
|
15
|
+
* import { mplex } from '@libp2p/mplex'
|
|
16
|
+
*
|
|
17
|
+
* let options = {
|
|
18
|
+
* transports: [
|
|
19
|
+
* tcp()
|
|
20
|
+
* ],
|
|
21
|
+
* streamMuxers: [
|
|
22
|
+
* mplex()
|
|
23
|
+
* ],
|
|
24
|
+
* connectionEncryption: [
|
|
25
|
+
* noise()
|
|
26
|
+
* ],
|
|
27
|
+
* peerDiscovery: [
|
|
28
|
+
* bootstrap({
|
|
29
|
+
* list: [ // a list of bootstrap peer multiaddrs to connect to on node startup
|
|
30
|
+
* "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",
|
|
31
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN",
|
|
32
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa"
|
|
33
|
+
* ],
|
|
34
|
+
* timeout: 1000, // in ms,
|
|
35
|
+
* tagName: 'bootstrap',
|
|
36
|
+
* tagValue: 50,
|
|
37
|
+
* tagTTL: 120000 // in ms
|
|
38
|
+
* })
|
|
39
|
+
* ]
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* const libp2p = await createLibp2p(options)
|
|
43
|
+
*
|
|
44
|
+
* libp2p.on('peer:discovery', function (peerId) {
|
|
45
|
+
* console.log('found peer: ', peerId.toB58String())
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
1
49
|
import { TypedEventEmitter } from '@libp2p/interface/events';
|
|
2
50
|
import { peerDiscovery } from '@libp2p/interface/peer-discovery';
|
|
3
51
|
import { logger } from '@libp2p/logger';
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEtC,MAAM,0BAA0B,GAAG,WAAW,CAAA;AAC9C,MAAM,2BAA2B,GAAG,EAAE,CAAA;AACtC,MAAM,yBAAyB,GAAG,MAAM,CAAA;AACxC,MAAM,mCAAmC,GAAG,IAAI,CAAA;AAiChD;;GAEG;AACH,MAAM,SAAU,SAAQ,iBAAsC;IAC5D,MAAM,CAAC,GAAG,GAAG,WAAW,CAAA;IAEhB,KAAK,CAAgC;IAC5B,IAAI,CAAY;IAChB,OAAO,CAAQ;IACf,UAAU,CAAqB;IAC/B,KAAK,CAAe;IAErC,YAAa,UAA+B,EAAE,UAAyB,EAAE,IAAI,EAAE,EAAE,EAAE;QACjF,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;QACD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,mCAAmC,CAAA;QACrE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QAEd,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE;YACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBAC9B,SAAQ;aACT;YAED,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;YAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;YAEhC,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;gBACxD,SAAQ;aACT;YAED,MAAM,QAAQ,GAAa;gBACzB,EAAE,EAAE,gBAAgB,CAAC,SAAS,CAAC;gBAC/B,UAAU,EAAE,CAAC,EAAE,CAAC;gBAChB,SAAS,EAAE,EAAE;aACd,CAAA;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACzB;QAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;IACtB,CAAC;IAEQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAA;IAEtB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,mBAAmB,CAAA;IAEnD,SAAS;QACP,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,OAAM;SACP;QAED,GAAG,CAAC,kEAAkE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACrF,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,KAAK,IAAI,CAAC,uBAAuB,EAAE;iBAChC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;QACN,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,OAAM;SACP;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;YAChC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACjD,IAAI,EAAE;oBACJ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,0BAA0B,CAAC,EAAE;wBAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,2BAA2B;wBACzD,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,yBAAyB;qBACpD;iBACF;aACF,CAAC,CAAA;YAEF,6BAA6B;YAC7B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtB,OAAM;aACP;YAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;SACrD;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACzB;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;IACxB,CAAC;;AAGH,MAAM,UAAU,SAAS,CAAE,IAAmB;IAC5C,OAAO,CAAC,UAA+B,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/bootstrap",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.10",
|
|
4
4
|
"description": "Peer discovery via a list of bootstrap peers",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/peer-discovery-bootstrap#readme",
|
|
@@ -49,15 +49,15 @@
|
|
|
49
49
|
"test:electron-main": "aegir test -t electron-main"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@libp2p/interface": "^0.1.
|
|
53
|
-
"@libp2p/logger": "^3.0.
|
|
54
|
-
"@libp2p/peer-id": "^3.0.
|
|
52
|
+
"@libp2p/interface": "^0.1.5",
|
|
53
|
+
"@libp2p/logger": "^3.0.5",
|
|
54
|
+
"@libp2p/peer-id": "^3.0.5",
|
|
55
55
|
"@multiformats/mafmt": "^12.1.2",
|
|
56
56
|
"@multiformats/multiaddr": "^12.1.5"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@libp2p/interface-compliance-tests": "^4.1.
|
|
59
|
+
"@libp2p/interface-compliance-tests": "^4.1.3",
|
|
60
60
|
"aegir": "^41.0.2",
|
|
61
|
-
"sinon-ts": "^
|
|
61
|
+
"sinon-ts": "^2.0.0"
|
|
62
62
|
}
|
|
63
63
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* The configured bootstrap peers will be discovered after the configured timeout. This will ensure there are some peers in the peer store for the node to use to discover other peers.
|
|
5
|
+
*
|
|
6
|
+
* They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire after two minutes which means the nodes connections may be closed if the maximum number of connections is reached.
|
|
7
|
+
*
|
|
8
|
+
* Clients that need constant connections to bootstrap nodes (e.g. browsers) can set the TTL to `Infinity`.
|
|
9
|
+
*
|
|
10
|
+
* ```JavaScript
|
|
11
|
+
* import { createLibp2p } from 'libp2p'
|
|
12
|
+
* import { bootstrap } from '@libp2p/bootstrap'
|
|
13
|
+
* import { tcp } from 'libp2p/tcp'
|
|
14
|
+
* import { noise } from '@libp2p/noise'
|
|
15
|
+
* import { mplex } from '@libp2p/mplex'
|
|
16
|
+
*
|
|
17
|
+
* let options = {
|
|
18
|
+
* transports: [
|
|
19
|
+
* tcp()
|
|
20
|
+
* ],
|
|
21
|
+
* streamMuxers: [
|
|
22
|
+
* mplex()
|
|
23
|
+
* ],
|
|
24
|
+
* connectionEncryption: [
|
|
25
|
+
* noise()
|
|
26
|
+
* ],
|
|
27
|
+
* peerDiscovery: [
|
|
28
|
+
* bootstrap({
|
|
29
|
+
* list: [ // a list of bootstrap peer multiaddrs to connect to on node startup
|
|
30
|
+
* "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",
|
|
31
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN",
|
|
32
|
+
* "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa"
|
|
33
|
+
* ],
|
|
34
|
+
* timeout: 1000, // in ms,
|
|
35
|
+
* tagName: 'bootstrap',
|
|
36
|
+
* tagValue: 50,
|
|
37
|
+
* tagTTL: 120000 // in ms
|
|
38
|
+
* })
|
|
39
|
+
* ]
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* const libp2p = await createLibp2p(options)
|
|
43
|
+
*
|
|
44
|
+
* libp2p.on('peer:discovery', function (peerId) {
|
|
45
|
+
* console.log('found peer: ', peerId.toB58String())
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
|
|
1
50
|
import { TypedEventEmitter } from '@libp2p/interface/events'
|
|
2
51
|
import { peerDiscovery } from '@libp2p/interface/peer-discovery'
|
|
3
52
|
import { logger } from '@libp2p/logger'
|