diff --git a/packages/launcher/src/main/rpc/app.js b/packages/launcher/src/main/rpc/app.js index d382ba03..890a80d7 100644 --- a/packages/launcher/src/main/rpc/app.js +++ b/packages/launcher/src/main/rpc/app.js @@ -213,7 +213,10 @@ export const sandboxed = { contacts_select: withPermission( 'CONTACTS_READ', - async (ctx: AppContext, params: { multi?: boolean }) => { + async ( + ctx: AppContext, + params: { multi?: boolean, options?: { withWallet?: boolean } }, + ) => { const res = await ctx.trustedRPC.request('user_request', { key: 'CONTACTS_SELECT', params: { CONTACTS_SELECT: params }, @@ -242,6 +245,12 @@ export const sandboxed = { userID, contactIDs: ids, }) + if (params.options && params.options.withWallet) { + const filteredContacts = contactsRes.contacts.filter( + contact => contact.data.profile.ethAddress, + ) + return filteredContacts + } return contactsRes.contacts }, ), diff --git a/packages/sdk/src/apis/Contacts.js b/packages/sdk/src/apis/Contacts.js index 654c2785..639586a3 100644 --- a/packages/sdk/src/apis/Contacts.js +++ b/packages/sdk/src/apis/Contacts.js @@ -4,12 +4,14 @@ import ClientAPIs from '../ClientAPIs' import type { ContactID, Contact } from '../types' export default class ContactsAPIs extends ClientAPIs { - async selectContacts(): Promise> { - return this._rpc.request('contacts_select', { multi: true }) + async selectContacts(options?: { + withWallet?: boolean, + }): Promise> { + return this._rpc.request('contacts_select', { multi: true, options }) } - async selectContact(): Promise { - const contacts = await this._rpc.request('contacts_select', {}) + async selectContact(options?: { withWallet?: boolean }): Promise { + const contacts = await this._rpc.request('contacts_select', { options }) if (contacts && contacts.length) { return contacts[0] }