diff --git a/src/xmtp/client.ts b/src/xmtp/client.ts index 922c41a..c59ea84 100644 --- a/src/xmtp/client.ts +++ b/src/xmtp/client.ts @@ -1,4 +1,4 @@ -import { Signer } from "ethers"; +import { Signer, Wallet } from "ethers"; import { Client, Conversation, @@ -53,10 +53,16 @@ export class XmtpClient { * Check if input corresponds to a known * XMTP key bundle (i.e. exists already) * @param address - wallet address + * @param envName - environment name (e.g. "production", "test", etc) * @returns boolean */ - public async isXmtpEnabled(address: string): Promise { - return await this.client.canMessage(address); + public static async isXmtpEnabled( + address: string, + envName: string + ): Promise { + const wallet: Wallet = Wallet.createRandom(); + const bosonXmtp = await XmtpClient.initialise(wallet, envName); + return await bosonXmtp.client.canMessage(address); } /** @@ -93,7 +99,7 @@ export class XmtpClient { * @returns Conversation - {@link Conversation} */ public async startConversation(counterparty: string): Promise { - if (!(await this.isXmtpEnabled(counterparty))) { + if (!(await XmtpClient.isXmtpEnabled(counterparty, this.envName))) { throw new Error(`${counterparty} has not initialised their XMTP client`); } return await this.client.conversations.newConversation(counterparty); diff --git a/tests/integration/xmtp/client.test.ts b/tests/integration/xmtp/client.test.ts index 928ce5b..6780dd0 100644 --- a/tests/integration/xmtp/client.test.ts +++ b/tests/integration/xmtp/client.test.ts @@ -36,13 +36,13 @@ describe("xmtp-client", () => { test("XmtpClient isXmtpEnabled(): Expect true", async () => { const address: string = walletAddress; - const isEnabled: boolean = await xmtpClient.isXmtpEnabled(address); + const isEnabled: boolean = await XmtpClient.isXmtpEnabled(address, envName); expect(isEnabled).toBe(true); }); test("XmtpClient isXmtpEnabled(): Expect false", async () => { const address: string = nullAddress(); - const isEnabled: boolean = await xmtpClient.isXmtpEnabled(address); + const isEnabled: boolean = await XmtpClient.isXmtpEnabled(address, envName); expect(isEnabled).toBe(false); });