diff --git a/src/components/Image/util/images.ts b/src/components/Image/util/images.ts
index 99d2a9b1..c7e3fe06 100644
--- a/src/components/Image/util/images.ts
+++ b/src/components/Image/util/images.ts
@@ -41,6 +41,7 @@ export const logos = [
'connector/taho',
'connector/zengo',
'connector/ledger',
+ 'connector/ledgerLive',
'connector/portis',
'connector/binance',
'connector/coinbase',
diff --git a/src/components/ImagesProvider/images/connector/ledgerLive.svg b/src/components/ImagesProvider/images/connector/ledgerLive.svg
new file mode 100644
index 00000000..c15cecd2
--- /dev/null
+++ b/src/components/ImagesProvider/images/connector/ledgerLive.svg
@@ -0,0 +1,8 @@
+
+
+
diff --git a/src/components/ImagesProvider/images/index.ts b/src/components/ImagesProvider/images/index.ts
index a50c00fe..c668b917 100644
--- a/src/components/ImagesProvider/images/index.ts
+++ b/src/components/ImagesProvider/images/index.ts
@@ -37,6 +37,7 @@ import taho from './connector/taho.svg'
import rabby from './connector/rabby.svg'
import zengo from './connector/zengo.svg'
import ledger from './connector/ledger.svg'
+import ledgerLive from './connector/ledgerLive.svg'
import portis from './connector/portis.svg'
import binance from './connector/binance.svg'
import coinbase from './connector/coinbase.svg'
@@ -131,6 +132,7 @@ export default {
'connector/taho': taho.src,
'connector/zengo': zengo.src,
'connector/ledger': ledger.src,
+ 'connector/ledgerLive': ledgerLive.src,
'connector/portis': portis.src,
'connector/binance': binance.src,
'connector/coinbase': coinbase.src,
diff --git a/src/config/core/config/util/useWallet/useAutoConnect.ts b/src/config/core/config/util/useWallet/useAutoConnect.ts
index 876003c0..89cbac14 100644
--- a/src/config/core/config/util/useWallet/useAutoConnect.ts
+++ b/src/config/core/config/util/useWallet/useAutoConnect.ts
@@ -89,6 +89,7 @@ const useAutoConnect = (values: UseAutoConnectProps) => {
catch {}
const isDesktop = window.innerWidth >= 1000
+ const isLedgerLive = window.ethereum?.isLedgerLive
const isDAppBrowser = !isDesktop && hasInjectedProvider
const isLedger = activeWallet === wallets.ledger.id
const isBinance = hasInjectedProvider && window.ethereum?.isBinance
@@ -107,6 +108,9 @@ const useAutoConnect = (values: UseAutoConnectProps) => {
else if (isBinance) {
connect(wallets.binance.id)
}
+ else if (isLedgerLive) {
+ connect(wallets.ledgerLive.id)
+ }
else if (isDAppBrowser) {
connect(wallets.dAppBrowser.id)
}
diff --git a/src/config/core/wallets/index.ts b/src/config/core/wallets/index.ts
index 96ff4e9c..4c96fc99 100644
--- a/src/config/core/wallets/index.ts
+++ b/src/config/core/wallets/index.ts
@@ -6,7 +6,7 @@ import coinbase from './coinbase'
import gnosisSafe from './gnosisSafe'
import walletConnect from './walletConnect'
import monitorAddress from './monitorAddress'
-import { braveWallet, dAppBrowser, trustWallet, metaMask, rabby, taho, okx } from './injected'
+import { braveWallet, dAppBrowser, trustWallet, metaMask, rabby, taho, okx, ledgerLive } from './injected'
// ATTN The order here is equal to the order in the UI not counting filters
@@ -19,6 +19,7 @@ const wallets = {
dAppBrowser,
okx,
taho,
+ ledgerLive,
walletConnect,
ledger,
diff --git a/src/config/core/wallets/injected/index.ts b/src/config/core/wallets/injected/index.ts
index 50bd1fbf..b3a0d4a3 100644
--- a/src/config/core/wallets/injected/index.ts
+++ b/src/config/core/wallets/injected/index.ts
@@ -5,3 +5,4 @@ export { default as metaMask } from './metaMask'
export { default as rabby } from './rabby'
export { default as taho } from './taho'
export { default as okx } from './okx'
+export { default as ledgerLive } from './ledgerLive'
diff --git a/src/config/core/wallets/injected/ledgerLive.ts b/src/config/core/wallets/injected/ledgerLive.ts
new file mode 100644
index 00000000..0940d3f1
--- /dev/null
+++ b/src/config/core/wallets/injected/ledgerLive.ts
@@ -0,0 +1,35 @@
+import { Network } from 'sdk'
+
+import { Location, IsDisabled } from '../types'
+
+import messages from '../../messages'
+
+
+const getConnector = async () => {
+ const InjectedConnector = (await import('../../connectors/InjectedConnector')).default
+
+ const connector = new InjectedConnector({ shimDisconnect: false })
+
+ return connector
+}
+
+const ledgerLive = {
+ id: 'ledgerLive',
+ title: 'Ledger Live',
+ logo: 'connector/ledgerLive',
+ isAddTokenEnabled: false,
+ isInjectedWallet: true,
+ isLocalStorageSave: true,
+ activationMessage: messages.authMessages.waitingAuth,
+ networks: [
+ Network.Mainnet,
+ Network.Hoodi,
+ ] as ChainIds[],
+ location: [ 'desktop', 'mobile' ] as Location,
+ isDisabled: (() => !window.ethereum?.isLedgerLive) as IsDisabled,
+ getProvider: () => window.ethereum,
+ getConnector,
+} as const
+
+
+export default ledgerLive
diff --git a/src/layouts/AppLayout/Header/Connect/Account/AccountMenu/AccountMenu.tsx b/src/layouts/AppLayout/Header/Connect/Account/AccountMenu/AccountMenu.tsx
index 7e211f64..822c8334 100644
--- a/src/layouts/AppLayout/Header/Connect/Account/AccountMenu/AccountMenu.tsx
+++ b/src/layouts/AppLayout/Header/Connect/Account/AccountMenu/AccountMenu.tsx
@@ -21,7 +21,12 @@ const AccountMenu: React.FC = (props) => {
const { activeWallet } = useConfig()
const claimsTotal = useClaimsTotal()
- const isDappBrowser = activeWallet === wallets.dAppBrowser.id
+ const NON_DISCONNECTABLE_WALLET_IDS = new Set([
+ wallets.dAppBrowser.id,
+ wallets.ledgerLive.id,
+ ])
+
+ const shouldShowDisconnect = activeWallet !== null && !NON_DISCONNECTABLE_WALLET_IDS.has(activeWallet)
return (
<>
@@ -40,7 +45,7 @@ const AccountMenu: React.FC = (props) => {
}
{
- !isDappBrowser && (
+ shouldShowDisconnect && (
)
}
diff --git a/src/layouts/AppLayout/Header/Connect/NetworkSelect/util/useChangeChainDisabled.ts b/src/layouts/AppLayout/Header/Connect/NetworkSelect/util/useChangeChainDisabled.ts
index 76cdad4f..36feb1a4 100644
--- a/src/layouts/AppLayout/Header/Connect/NetworkSelect/util/useChangeChainDisabled.ts
+++ b/src/layouts/AppLayout/Header/Connect/NetworkSelect/util/useChangeChainDisabled.ts
@@ -13,6 +13,7 @@ const useChangeChainDisabled = () => {
const disabledChainSwitchWallets: WalletIds[] = [
wallets.dAppBrowser.id,
wallets.gnosisSafe.id,
+ wallets.ledgerLive.id,
wallets.zenGo.id,
]