import { WalletConnector } from '@dynamic-labs/wallet-connector-core'; import { Wallet } from '../shared/types/wallets'; export type UserWalletsUpdateType = { updateType: 'walletAdded'; addedWallet: Wallet; } | { updateType: 'walletRemoved'; removedWallet: Wallet; } | { updateType: 'primaryWalletChanged'; } | { updateType: 'primaryWalletNetworkChanged'; newNetwork: string | number; } | { updateType: 'nonPrimaryWalletNetworkChanged'; newNetwork: string | number; affectedWallets: Wallet[]; }; export type UserWalletsChangedParams = { userWallets: Wallet[]; primaryWallet: Wallet | undefined; } & UserWalletsUpdateType; export type WalletEvents = { /** Triggered when a new wallet is added to user wallets list */ walletAdded: (wallet: Wallet, userWallets: Wallet[]) => void; /** Triggered when a wallet is removed from user wallets list */ walletRemoved: (wallet: Wallet, userWallets: Wallet[]) => void; /** Triggered when the primary wallet changes (a different wallet is selected) */ primaryWalletChanged: (newPrimaryWallet: Wallet) => void; /** Triggered when the network changes in primary wallet */ primaryWalletNetworkChanged: (newNetwork: string | number) => void; /** Triggered when the network changes in non-primary wallet */ nonPrimaryWalletNetworkChanged: (newNetwork: string | number, connector: WalletConnector) => void; /** Triggered when there is a change in user wallets */ userWalletsChanged: (params: UserWalletsChangedParams) => void; /** Triggered when user wallets changes from an empty array to a non-empty array */ userWalletsPopulated: (userWallets: Wallet[]) => void; /** Triggered when Dynamic fails to connect to a wallet */ walletConnectionFailed: (walletConnector: WalletConnector, error: unknown) => void; /** Triggered when a wallet connection QR code is ready */ walletConnectionQrCodeReady: (qrCodeUri: string) => void; /** Triggered when the app returns from a wallet deep link (mobile only) */ walletReturnFromDeepLink: (params: { previousRoute: string; }) => void; };