*Update dist
This commit is contained in:
parent
f6bcc8ecdb
commit
8c30190a78
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAkB5C,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,KAAK;IAMrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAEY,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiChD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAepC,WAAW,IAAI,IAAI;YAIZ,iBAAiB;IAazB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;YAgB/C,eAAe;CA6C9B;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEvD"}
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAgB5C,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,KAAK;IAMrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAEY,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiChD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAepC,WAAW,IAAI,IAAI;YAIZ,iBAAiB;IAazB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;YAmB/C,eAAe;CAkD9B;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEvD"}
|
|
@ -3,10 +3,8 @@ import DhtNode from "@hyperswarm/dht-relay";
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import Stream from "@hyperswarm/dht-relay/ws";
|
import Stream from "@hyperswarm/dht-relay/ws";
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { Buffer } from "buffer";
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// @ts-ignore
|
import { blake2b, hexToBuf } from "libskynet";
|
||||||
import { blake2b } from "libskynet";
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { registryRead } from "libkmodule";
|
import { registryRead } from "libkmodule";
|
||||||
import { unpack } from "msgpackr";
|
import { unpack } from "msgpackr";
|
||||||
|
@ -34,7 +32,7 @@ export default class DHT {
|
||||||
return [...this._relays.keys()];
|
return [...this._relays.keys()];
|
||||||
}
|
}
|
||||||
async addRelay(pubkey) {
|
async addRelay(pubkey) {
|
||||||
let entry = await registryRead(Uint8Array.from(Buffer.from(pubkey, "hex")), hashDataKey(REGISTRY_DHT_KEY));
|
let entry = await registryRead(hexToBuf(pubkey).shift(), hashDataKey(REGISTRY_DHT_KEY));
|
||||||
if (entry[1] || !entry[0]?.exists) {
|
if (entry[1] || !entry[0]?.exists) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -82,6 +80,9 @@ export default class DHT {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async connect(pubkey, options = {}) {
|
async connect(pubkey, options = {}) {
|
||||||
|
if (this._activeRelays.size === 0) {
|
||||||
|
await this.fillConnections();
|
||||||
|
}
|
||||||
if (this._activeRelays.size === 0) {
|
if (this._activeRelays.size === 0) {
|
||||||
throw new Error("Failed to find an available relay");
|
throw new Error("Failed to find an available relay");
|
||||||
}
|
}
|
||||||
|
@ -108,6 +109,7 @@ export default class DHT {
|
||||||
if (available.length > 1) {
|
if (available.length > 1) {
|
||||||
relayIndex = await randomNumber(0, available.length - 1);
|
relayIndex = await randomNumber(0, available.length - 1);
|
||||||
}
|
}
|
||||||
|
const pubkey = available[relayIndex];
|
||||||
const connection = this._relays.get(available[relayIndex]);
|
const connection = this._relays.get(available[relayIndex]);
|
||||||
if (!(await this.isServerAvailable(connection))) {
|
if (!(await this.isServerAvailable(connection))) {
|
||||||
available.splice(relayIndex, 1);
|
available.splice(relayIndex, 1);
|
||||||
|
@ -118,6 +120,9 @@ export default class DHT {
|
||||||
this._activeRelays.set(available[relayIndex], node);
|
this._activeRelays.set(available[relayIndex], node);
|
||||||
updateAvailable();
|
updateAvailable();
|
||||||
relayPromises.push(node.ready());
|
relayPromises.push(node.ready());
|
||||||
|
node._protocol._stream.on("close", () => {
|
||||||
|
this._activeRelays.delete(pubkey);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return Promise.allSettled(relayPromises);
|
return Promise.allSettled(relayPromises);
|
||||||
}
|
}
|
||||||
|
@ -133,7 +138,7 @@ function encodeUtf8String(str) {
|
||||||
return encoded;
|
return encoded;
|
||||||
}
|
}
|
||||||
function stringToUint8ArrayUtf8(str) {
|
function stringToUint8ArrayUtf8(str) {
|
||||||
return Uint8Array.from(Buffer.from(str, "utf-8"));
|
return new TextEncoder().encode(str);
|
||||||
}
|
}
|
||||||
function encodeNumber(num) {
|
function encodeNumber(num) {
|
||||||
const encoded = new Uint8Array(8);
|
const encoded = new Uint8Array(8);
|
||||||
|
|
Loading…
Reference in New Issue