0.0.25 • Published 4 years ago

web3-wallets-kit v0.0.25

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

Web3 Wallets Kit Commitizen friendly

This package is for connecting to Ethereum wallets, for example, to Metamask.

Supported wallets:

Installation

npm install --save web3-wallets-kit

Creation and managing wallets

// Create instance
const web3Manager = new Web3WalletsManager({
  network: 'kovan',
  infuraAccessToken: 'INFURA_TOKEN',
  walletConfigs: {
    'wallet-connect': {
      infuraId: 'INFURA_TOKEN',
      chainId: 42,
    },
    bitski: {
      clientId: 'CLIENT_ID',
      redirectUri: 'http://localhost:8080/bitski-callback.html',
    },
  },
});

// Connect to wallet
await web3Manager.connect('metamask');

// Get address and Web3 for sending transaction
const myAddress = web3Manager.account.value;
const txWeb3 = web3Manager.txWeb3.value;

// Create contract
const daiContract = txWeb3.eth.Contract(DAI_ABI, '0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea');

// Send transaction
await daiContract.methods
  .transfer('0x0000000000000000000000000000000000000000', '1000000000000000000')
  .send({ from: myAddress });

wallets manager API

class Web3WalletsManager {
    /** Web3 instance for reading; constructor option should be wsRpcUrl, httpRpcUrl or infuraAccessToken */
    web3: Web3;
    /** Web3 instance for sending transactions. Instance is created after connecting with wallet */
    txWeb3: BehaviorSubject<Web3 | null>;
    /** active account address */
    account: BehaviorSubject<string | null>;
    /** current connected wallet’s */
    wallet: BehaviorSubject<WalletType | null>;
    /** status of the connection */
    status: BehaviorSubject<ConnectionStatus>;

    constructor(options: Options);

    /** Connect to wallet; Returns account address and Web3 Instance for sending transactions */
    connect(wallet: WalletType): Promise<ConnectResult>;
    /** Disconnect wallet, close streams */
    disconnect(): Promise<void>;
}

interface Options {
    wsRpcUrl?: string;
    httpRpcUrl?: string;
    infuraAccessToken?: string;
    /** @default: 'mainnet' */
    network?: InfuraNetwork;
    /** It automatically connects to last used wallet
     * @default: true
     */
    autoConnectToPreviousWallet?: boolean;
    /** additional options for connecting to wallets */
    walletConfigs: WalletConfigs;
}

Connecting to wallet guide

Metamask

await web3Manager.connect('metamask');

It does not need additional configuration. The user must have a browser extension installed.

ConnectWallet

await web3Manager.connect('wallet-connect');

You need to pass the config Options['walletConfigs']['wallet-connect'] when creating instance Web3WalletsManager. Minimal config:

{ infuraId: 'INFURA_TOKEN' }

Fortmatic

await web3Manager.connect('fortmatic');

You need to pass the config Options['walletConfigs']['fortmatic'] when creating instance Web3WalletsManager. Minimal config:

{
  apiKey: 'API_KEY or TEST_API_KEY',
}

You can create API_KEY in Fortmatic dashboard.

Bitski

await web3Manager.connect('bitski');

You need to pass the config Options['walletConfigs']['bitski'] when creating instance Web3WalletsManager. Minimal config:

{
  clientId: 'CLIENT_ID',
  redirectUri: 'https://my-dapp-doma.in/bitski-callback.html',
}

This provider uses OAuth

0.0.25

4 years ago

0.0.23

4 years ago

0.0.24

4 years ago

0.0.22

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.18

4 years ago

0.0.19

4 years ago

0.0.17

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago