diff --git a/packages/client/api.ts b/packages/client/api.ts index dd4f50bf..d9f79c71 100644 --- a/packages/client/api.ts +++ b/packages/client/api.ts @@ -207,6 +207,10 @@ export class MainAPI { await ResponseError.assertStatus(response, 200) return response.json() } + + public peers(): Promise { + return getPeers(this.http) + } } async function handleQueryResponse(resp: Response): Promise { @@ -248,21 +252,11 @@ export class TelemetryAPI { return response.arrayBuffer().then((buffer) => getCodec(dm.Status).decode(new Uint8Array(buffer))) } - // TODO: move once metrics are updated - public async peers(): Promise { - const response = await this.http.getFetch()(urlJoinPath(this.http.toriiBaseURL, ENDPOINT_PEERS)) - await ResponseError.assertStatus(response, 200) - return response.json().then( - // array of strings in format `@` - (ids: string[]) => { - assert(Array.isArray(ids)) - return ids.map((id) => { - assert(typeof id === 'string') - const [pubkey, address] = id.split('@') - return { id: dm.PublicKey.fromMultihash(pubkey), address } - }) - }, - ) + /** + * @deprecated use {@linkcode MainAPI#peers} + */ + public peers(): Promise { + return getPeers(this.http) } public async metrics(): Promise { @@ -271,3 +265,19 @@ export class TelemetryAPI { return response.text() } } + +async function getPeers(http: HttpTransport) { + const response = await http.getFetch()(urlJoinPath(http.toriiBaseURL, ENDPOINT_PEERS)) + await ResponseError.assertStatus(response, 200) + return response.json().then( + // array of strings in format `@` + (ids: string[]) => { + assert(Array.isArray(ids)) + return ids.map((id) => { + assert(typeof id === 'string') + const [pubkey, address] = id.split('@') + return { id: dm.PublicKey.fromMultihash(pubkey), address } + }) + }, + ) +} diff --git a/tests/node/tests/client-apis.spec.ts b/tests/node/tests/client-apis.spec.ts index 1fff3914..91c64470 100644 --- a/tests/node/tests/client-apis.spec.ts +++ b/tests/node/tests/client-apis.spec.ts @@ -111,7 +111,7 @@ describe('Telemetry API methods', () => { test('peers (network of 4)', async () => { const { peers } = await useNetwork({ peers: 4, seed: new Uint8Array(Buffer.from('deadbeef', 'hex')) }) - const peersData = await peers[0].client.api.telemetry.peers() + const peersData = await peers[0].client.api.peers() expect(peersData.map((x) => x.id.multihash())).contain.all.members( peers.slice(1).map((x) => x.keypair.publicKey().multihash()),