diff --git a/.changeset/shiny-pumas-guess.md b/.changeset/shiny-pumas-guess.md new file mode 100644 index 000000000..77f9e54ef --- /dev/null +++ b/.changeset/shiny-pumas-guess.md @@ -0,0 +1,17 @@ +--- +"@onflow/fcl-core": minor +--- + +Allow apps to exclude certain wallets from FCL Discovery. + +```javascript +import { config } from "@onflow/fcl"; + +// Include supports discovery.wallet or discovery.authn.endpoint +config({ + "discovery.wallet": "https://fcl-discovery.onflow.org/testnet/authn", + "discovery.authn.endpoint": + "https://fcl-discovery.onflow.org/api/testnet/authn", + "discovery.authn.exclude": ["0x123"], // Exclude a wallet by address +}); +``` \ No newline at end of file diff --git a/packages/fcl-core/src/current-user/index.js b/packages/fcl-core/src/current-user/index.js index a322652b3..9214c9c8e 100644 --- a/packages/fcl-core/src/current-user/index.js +++ b/packages/fcl-core/src/current-user/index.js @@ -135,11 +135,13 @@ async function getAccountProofData() { const makeConfig = async ({ discoveryAuthnInclude, + discoveryAuthnExclude, discoveryFeaturesSuggested, }) => { return { client: { discoveryAuthnInclude, + discoveryAuthnExclude, discoveryFeaturesSuggested, clientServices: await makeDiscoveryServices(), supportedStrategies: getServiceRegistry().getStrategies(), diff --git a/packages/fcl-core/src/discovery/services.js b/packages/fcl-core/src/discovery/services.js index 425a1aca1..ef624261e 100644 --- a/packages/fcl-core/src/discovery/services.js +++ b/packages/fcl-core/src/discovery/services.js @@ -14,6 +14,7 @@ export async function getServices({types}) { ) const include = await config.get("discovery.authn.include", []) + const exclude = await config.get("discovery.authn.exclude", []) const url = new URL(endpoint) return fetch(url, { @@ -25,6 +26,7 @@ export async function getServices({types}) { type: types, fclVersion: VERSION, include, + exclude, features: { suggested: await config.get("discovery.features.suggested", []), }, diff --git a/packages/fcl-core/src/discovery/utils.js b/packages/fcl-core/src/discovery/utils.js index 934362a6c..3bc1c8e8e 100644 --- a/packages/fcl-core/src/discovery/utils.js +++ b/packages/fcl-core/src/discovery/utils.js @@ -9,6 +9,7 @@ export const makeDiscoveryServices = async () => { export async function getDiscoveryService(service) { const discoveryAuthnInclude = await config.get("discovery.authn.include", []) + const discoveryAuthnExclude = await config.get("discovery.authn.exclude", []) const discoveryFeaturesSuggested = await config.get( "discovery.features.suggested", [] @@ -36,6 +37,7 @@ export async function getDiscoveryService(service) { endpoint, method, discoveryAuthnInclude, + discoveryAuthnExclude, discoveryFeaturesSuggested, } }