0.2.11 • Published 2 years ago

wallet-adapter-cherry-two v0.2.11

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

@solana/wallet-adapter

Modular TypeScript wallet adapters and components for Solana applications.

Wallets

Quick Links

Quick Setup (using React UI)

There are also material-ui and ant-design packages if you use those component frameworks.

Install

Install these dependencies:

yarn add @solana/wallet-adapter-base \
         @solana/wallet-adapter-react \
         @solana/wallet-adapter-react-ui \
         @solana/wallet-adapter-wallets \
         @solana/web3.js \
         @solana-mobile/wallet-adapter-mobile \
         react

Setup

import React, { FC, useMemo } from 'react';
import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
import { FakeWalletAdapter } from '@solana/wallet-adapter-wallets';
import {
    WalletModalProvider,
    WalletDisconnectButton,
    WalletMultiButton
} from '@solana/wallet-adapter-react-ui';
import { clusterApiUrl } from '@solana/web3.js';

// Default styles that can be overridden by your app
require('@solana/wallet-adapter-react-ui/styles.css');

export const Wallet: FC = () => {
    // The network can be set to 'devnet', 'testnet', or 'mainnet-beta'.
    const network = WalletAdapterNetwork.Devnet;

    // You can also provide a custom RPC endpoint.
    const endpoint = useMemo(() => clusterApiUrl(network), [network]);

    const wallets = useMemo(
        () => [
            /**
             * Select the wallets you wish to support, by instantiating wallet adapters here.
             *
             * Common adapters can be found in the npm package `@solana/wallet-adapter-wallets`.
             * That package supports tree shaking and lazy loading -- only the wallets you import
             * will be compiled into your application, and only the dependencies of wallets that
             * your users connect to will be loaded.
             */
            new FakeWalletAdapter(),
        ],
        []
    );

    return (
        <ConnectionProvider endpoint={endpoint}>
            <WalletProvider wallets={wallets} autoConnect>
                <WalletModalProvider>
                    <WalletMultiButton />
                    <WalletDisconnectButton />
                    { /* Your app's components go here, nested within the context providers. */ }
                </WalletModalProvider>
            </WalletProvider>
        </ConnectionProvider>
    );
};

Usage

import { WalletNotConnectedError } from '@solana/wallet-adapter-base';
import { useConnection, useWallet } from '@solana/wallet-adapter-react';
import { Keypair, SystemProgram, Transaction } from '@solana/web3.js';
import React, { FC, useCallback } from 'react';

export const SendOneLamportToRandomAddress: FC = () => {
    const { connection } = useConnection();
    const { publicKey, sendTransaction } = useWallet();

    const onClick = useCallback(async () => {
        if (!publicKey) throw new WalletNotConnectedError();

        const transaction = new Transaction().add(
            SystemProgram.transfer({
                fromPubkey: publicKey,
                toPubkey: Keypair.generate().publicKey,
                lamports: 1,
            })
        );

        const signature = await sendTransaction(transaction, connection);

        await connection.confirmTransaction(signature, 'processed');
    }, [publicKey, sendTransaction, connection]);

    return (
        <button onClick={onClick} disabled={!publicKey}>
            Send 1 lamport to a random address!
        </button>
    );
};

Packages

This library is organized into small packages with few dependencies. To add it to your dApp, you'll need core packages, some wallets, and UI components for your chosen framework.

Core

These packages are what most projects can use to support wallets on Solana.

packagedescriptionnpm
baseAdapter interfaces, error types, and common utilities@solana/wallet-adapter-base
reactContexts and hooks for React dApps@solana/wallet-adapter-react

Wallets

These packages provide adapters for each wallet. You can use the wallets package, or add the individual wallet packages you want.

packagedescriptionnpm
walletsIncludes all the wallets (with tree shaking)@solana/wallet-adapter-wallets
avanaAdapter for Avana@solana/wallet-adapter-avana
backpackAdapter for Backpack@solana/wallet-adapter-backpack
bitkeepAdapter for BitKeep@solana/wallet-adapter-bitkeep
bitpieAdapter for Bitpie@solana/wallet-adapter-bitpie
bloctoAdapter for Blocto@solana/wallet-adapter-blocto
braveAdapter for Brave@solana/wallet-adapter-brave
cloverAdapter for Clover@solana/wallet-adapter-clover
coin98Adapter for Coin98@solana/wallet-adapter-coin98
coinbaseAdapter for Coinbase@solana/wallet-adapter-coinbase
coinhubAdapter for Coinhub@solana/wallet-adapter-coinhub
exodusAdapter for Exodus@solana/wallet-adapter-exodus
glowAdapter for Glow@solana/wallet-adapter-glow
huobiAdapter for HuobiWallet@solana/wallet-adapter-huobi
hyperpayAdapter for HyperPay@solana/wallet-adapter-hyperpay
keystoneAdapter for keystone@solana/wallet-adapter-keystone
krystalAdapter for krystal@solana/wallet-adapter-krystal
ledgerAdapter for Ledger@solana/wallet-adapter-ledger
mathwalletAdapter for MathWallet@solana/wallet-adapter-mathwallet
nekoAdapter for Neko@solana/wallet-adapter-neko
nightlyAdapter for Nightly@solana/wallet-adapter-nightly
nufiAdapter for NuFi@solana/wallet-adapter-nufi
particleAdapter for Particle@solana/wallet-adapter-particle
phantomAdapter for Phantom@solana/wallet-adapter-phantom
safepalAdapter for SafePal@solana/wallet-adapter-safepal
saifuAdapter for Saifu@solana/wallet-adapter-saifu
salmonAdapter for Salmon@solana/wallet-adapter-salmon
skyAdapter for Sky@solana/wallet-adapter-sky
slopeAdapter for Slope@solana/wallet-adapter-slope
solflareAdapter for Solflare@solana/wallet-adapter-solflare
solletAdapter for Sollet@solana/wallet-adapter-sollet
solongAdapter for Solong@solana/wallet-adapter-solong
spotAdapter for Spot@solana/wallet-adapter-spot
strikeAdapter for Strike@solana/wallet-adapter-strike
tokenaryAdapter for Tokenary@solana/wallet-adapter-tokenary
tokenpocketAdapter for TokenPocket@solana/wallet-adapter-tokenpocket
torusAdapter for Torus@solana/wallet-adapter-torus
trustAdapter for Trust Wallet@solana/wallet-adapter-trust

UI Components

These packages provide components for common UI frameworks.

packagedescriptionnpm
react-uiComponents for React (no UI framework, just CSS)@solana/wallet-adapter-react-ui
material-uiComponents for Material UI with React@solana/wallet-adapter-material-ui
ant-designComponents for Ant Design with React@solana/wallet-adapter-ant-design
angular-material-uiComponents for Angular Material UI@heavy-duty/wallet-adapter-material

Starter Projects

These packages provide projects that you can use to start building a dApp with built-in wallet support. Alternatively, check out solana-dapp-next for a more complete framework.

packagedescriptionnpm
exampleDemo of UI components and wallets@solana/wallet-adapter-example
create-react-app-starterCreate React App project using React UI@solana/wallet-adapter-create-react-app-starter
material-ui-starterParcel project using Material UI@solana/wallet-adapter-material-ui-starter
react-ui-starterParcel project using React UI@solana/wallet-adapter-react-ui-starter
nextjs-starterNext.js project using React UI@solana/wallet-adapter-nextjs-starter

Community

Several packages are maintained by the community to support additional frontend frameworks.

Build from Source

  1. Clone the project:
git clone https://github.com/solana-labs/wallet-adapter.git
  1. Install dependencies:
cd wallet-adapter
yarn install
  1. Build all packages:
yarn build
  1. Run locally:
cd packages/starter/react-ui-starter
yarn start
0.2.11

2 years ago

0.2.10

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.7

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago