diff --git a/package.json b/package.json index b8a5b8f..c864467 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "@hyperswarm/dht-relay": "^0.3.0", "@lumeweb/libkernel-universal": "git+https://git.lumeweb.com/LumeWeb/libkernel-universal.git", "@lumeweb/peer-discovery": "git+https://git.lumeweb.com/LumeWeb/peer-discovery.git", + "@siaweb/libweb": "git+https://git.lumeweb.com/LumeWeb/libsiaweb.git", "hyperswarm": "^4.3.7", "libkernel": "^0.1.48", "libkmodule": "^0.2.53" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9580287..2464eab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,7 @@ specifiers: '@hyperswarm/dht-relay': ^0.3.0 '@lumeweb/libkernel-universal': git+https://git.lumeweb.com/LumeWeb/libkernel-universal.git '@lumeweb/peer-discovery': git+https://git.lumeweb.com/LumeWeb/peer-discovery.git + '@siaweb/libweb': git+https://git.lumeweb.com/LumeWeb/libsiaweb.git '@types/random-number-csprng': ^1.0.0 '@types/ws': ^8.5.4 esbuild: ^0.14.54 @@ -18,6 +19,7 @@ dependencies: '@hyperswarm/dht-relay': 0.3.0 '@lumeweb/libkernel-universal': git.lumeweb.com/LumeWeb/libkernel-universal/ae9c6eeb60cd5e350012c3e393ff8b846326e468 '@lumeweb/peer-discovery': git.lumeweb.com/LumeWeb/peer-discovery/d2bd926275103d60fdd3c7c432eae5c278f49261 + '@siaweb/libweb': git.lumeweb.com/LumeWeb/libsiaweb/5e6cdba3e7d9a4b94e21ddcd5f2b5138fb440ee8 hyperswarm: 4.3.7 libkernel: 0.1.48 libkmodule: 0.2.53 diff --git a/src/index.ts b/src/index.ts index fcf1559..44379ea 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,6 @@ import { Client, factory } from "@lumeweb/libkernel-universal"; import type { Peer } from "@lumeweb/peer-discovery"; +import { hexToBuf } from "@siaweb/libweb/dist"; export class PeerDiscoveryClient extends Client { public async register(source: string): Promise { const bag = await this.loadBound(source); @@ -18,7 +19,15 @@ export class PeerDiscoveryClient extends Client { public async exists(name: string): Promise { return await this.callModuleReturn("remove", { name }); } - public async discover(pubkey: string): Promise { + public async discover(pubkey: string | Uint8Array): Promise { + if (typeof pubkey === "string") { + let buf = hexToBuf(pubkey); + if (buf[1]) { + throw new Error(buf[1]); + } + + pubkey = buf[0]; + } return await this.callModuleReturn("discover", { pubkey }); } }