0.1.3 • Published 2 years ago
@epnsproject/sdk-ledgerlive v0.1.3
ledgerlive
This is adapted from Ledger's IFRAME Provider
Used to wrap a dApp if it is running in Ledger context (inside Ledger Live) then use the Ledger Live connector.
Installation
yarn add @epnsproject/sdk-ledgerlive
Usage
creating the connector
import { LedgerHQFrameConnector } from "@epnsproject/sdk-ledgerlive";
const ledgerLiveConnector = new LedgerHQFrameConnector();
checking for the Ledger context
import { isLedgerDappBrowserProvider } from "@epnsproject/sdk-ledgerlive";
const isRunninginLedgerContext = isLedgerDappBrowserProvider(); // boolean
using the ledgerLiveConnector when in ledger context
import { useWeb3React } from '@web3-react/core'
import { isLedgerDappBrowserProvider } from '@epnsproject/sdk-ledgerlive';
export const injected = new InjectedConnector({ supportedChainIds: [1, 5] })
export function useEagerConnect() {
const { activate, active } = useWeb3React()
const [tried, setTried] = useState(false)
useEffect(() => {
// If is ledger dapp, use ledger connector. Else use injected connector
if (isLedgerDappBrowserProvider()) {
activate(ledgerLiveConnector, undefined, true).catch(() => {
setTried(true);
});
} else {
injected.isAuthorized().then((isAuthorized: boolean) => {
if (isAuthorized) {
activate(injected, undefined, true).catch(() => {
setTried(true);
});
} else {
setTried(true);
}
});
}
}, [activate])
.
.
return tried
}