Files
explore/lib/web3/account/useAccountDynamic.ts
tom goriunovandGitHub 401dc58402 Smart wallet auth (#3220)
* basic login button implementation

* refactoring and add dynamic auth button to the other pages

* connect wallet without authenticating an user

* login and logout user in blockscout account

* refactoring and RPC overrides

* authenticate user with connected wallet

* add ENS to profile button

* override evm chains and fix contract write with waas wallet

* disconnect wallet and fix docker build

* add dynamic imports to components that use web3 wallet packages

* refactor user profile directory

* clean up

* tweaks

* update pw ci script

* fix "connect wallet" button behavior

* handle linking email to profile with dynamic provider

* fix test

* async loading web3 hooks and remove dynamic loading from components that use them

* fix pw tests

* add account navigation in horizontal layout when auth provider is dynamic

* fix address verification modal

* review fixes

* spelling fixes
2026-02-18 19:42:44 +01:00

41 lines
1.1 KiB
TypeScript

import { useDynamicContext, useUserWallets } from '@dynamic-labs/sdk-react-core';
import React from 'react';
import type { UseAccountReturnType } from 'wagmi';
export default function useAccountDynamic(): UseAccountReturnType {
const userWallets = useUserWallets();
const { primaryWallet } = useDynamicContext();
const address = (primaryWallet?.address || userWallets[0]?.address) as `0x${ string }` | undefined;
return React.useMemo(() => {
if (!address) {
return {
address: undefined,
addresses: undefined,
chain: undefined,
chainId: undefined,
connector: undefined,
isConnected: false,
isConnecting: false,
isDisconnected: true,
isReconnecting: false,
status: 'disconnected',
};
}
return {
address,
addresses: [ address ],
chain: undefined,
chainId: undefined,
connector: undefined,
isConnected: true,
isConnecting: false,
isDisconnected: false,
isReconnecting: false,
status: 'connected',
} as unknown as UseAccountReturnType;
}, [ address ]);
}