Socket
Book a DemoInstallSign in
Socket

@mirshko/use-wallet

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mirshko/use-wallet

[![CI](https://github.com/mirshko/use-wallet/actions/workflows/main.yml/badge.svg)](https://github.com/mirshko/use-wallet/actions/workflows/main.yml) [![npm](https://img.shields.io/npm/v/@mirshko/use-wallet)](https://www.npmjs.com/package/@mirshko/use-wal

latest
npmnpm
Version
1.4.0
Version published
Maintainers
1
Created
Source

@mirshko/use-wallet

CI npm npm bundle size NPM

An easy-to-integrate React hook for connecting and interacting with a Web3 wallet.

Uses Web3Modal and Zustand.

Forked from gimmixorg/use-wallet, this version changes to an ESM only version and handles lazy importing Web3Modal and the Ethers.js Provider via Dynamic Imports to lower the initial bundle size of apps using this package.

Installation

yarn add @mirshko/use-wallet
npm add @mirshko/use-wallet

Example Connect / Disconnect button

const ConnectWalletButton = () => {
  const { account, connect, disconnect } = useWallet();

  return (
    <>
      {!account ? (
        <button onClick={() => connect()}>Connect Wallet</button>
      ) : (
        <button onClick={() => disconnect()}>Disconnect Wallet</button>
      )}
    </>
  );
};

The connect function passes along an optional config to a Web3Modal instance for additional customization.

You can use the account information from useWallet anywhere inside your React app, without any extra set up.

const UserAddress = () => {
  const { account } = useWallet();

  if (!account) return null;

  return <>{account}</>;
};

To run a transaction or sign a message, use the provider object returned by the hook for connected wallets. This is a standard Ethers.js Provider.

const SignMessageButton = () => {
  const { account, provider } = useWallet();

  const signMessage = async () => {
    if (!provider) {
      return;
    }

    const signer = provider.getSigner();

    const signature = await signer.signMessage('Hello!');

    console.log(signature);
  };

  if (!account) {
    return null;
  }

  return <button onClick={signMessage}>Sign Message</button>;
};

FAQs

Package last updated on 17 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts