UNPKG

nimbus-wallet-management

Version:

Nimbus Wallet Management solution inspired by Lifi

32 lines (26 loc) 826 B
import { isWalletInstalled } from './isWalletInstalled.js'; export const isWalletInstalledAsync = async (id: string): Promise<boolean> => { switch (id) { case 'safe': { // In Safe iframe env, window.parent is not equal to window const isIFrameEnvironment = window?.parent !== window; if (!isIFrameEnvironment) { return false; } const SafeAppsSDK: any = (await import('@safe-global/safe-apps-sdk')) .default; const sdk = new SafeAppsSDK(); try { const accountInfo = await Promise.race([ sdk.safe.getInfo(), new Promise((resolve) => setTimeout(resolve, 500)), ]); return !!accountInfo?.safeAddress; } catch (error) { return false; } } default: return isWalletInstalled(id); } };