forked from thirdweb-dev/js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
useInstalledWallets.ts
33 lines (30 loc) · 1000 Bytes
/
useInstalledWallets.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import {
assertWindowEthereum,
getInjectedCoinbaseProvider,
getInjectedMetamaskProvider,
} from "@thirdweb-dev/wallets";
/**
* @internal
*/
export function useInstalledWallets() {
let isMetamaskInstalled = false;
let isCoinbaseWalletInstalled = false;
let isZerionWalletInstalled = false;
let isTrustWalletInstalled = false;
let isImTokenInstalled = false;
const window_: Window | undefined = globalThis?.window;
if (assertWindowEthereum(window_)) {
isMetamaskInstalled = !!getInjectedMetamaskProvider();
isCoinbaseWalletInstalled = !!getInjectedCoinbaseProvider();
isZerionWalletInstalled = !!window_.ethereum?.isZerion;
isTrustWalletInstalled = !!window_.ethereum?.isTrust;
isImTokenInstalled = !!window_.ethereum?.isImToken;
}
return {
metamask: isMetamaskInstalled,
coinbaseWallet: isCoinbaseWalletInstalled,
trustWallet: isTrustWalletInstalled,
zerionWallet: isZerionWalletInstalled,
imtokenWallet: isImTokenInstalled,
};
}