0.1.3 • Published 2 years ago

@epnsproject/sdk-ledgerlive v0.1.3

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

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
}