npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hybridweb3walletconnector

v1.0.1

Published

A simple library to connect to various cryptocurrency wallets in desktop as well as MOBILE.

Downloads

11

Readme

HybridWeb3WalletConnector

A simple and flexible JavaScript library to connect to various cryptocurrency wallets via deep linking for both mobile and desktop devices. WalletConnector supports multiple wallets, including MetaMask, Trust Wallet, Coinbase Wallet, and more.

Table of Contents

Features

  • Connect to multiple wallets using deep links.
  • Automatically detects mobile devices.
  • Supports sending transactions and signing messages.
  • Fetches data from smart contracts.
  • Easy to use and integrate into your application.

Installation

You can install WalletConnector via npm:

npm install wallet-connector

Usage

To use the WalletConnector in your project, follow these steps:

  1. Import the WalletConnector
import WalletConnector from 'wallet-connector';
  1. Create an instance of the WalletConnector
const connector = new WalletConnector();
  1. Connect to a wallet
const connectWallet = async () => {
  const walletName = 'metamask'; // or 'trustWallet', 'coinbaseWallet', etc.
  const appUrl = window.location.href; // Your app's URL

  const connected = await connector.connect(walletName, appUrl);
  if (connected) {
    console.log('Wallet connected successfully!');
  } else {
    console.error('Failed to connect wallet.');
  }
};
  1. Send Transaction
const sendTransaction = async () => {
  const toAddress = '0xRecipientAddress'; // Replace with the recipient's address
  const value = 0.1; // Amount in Ether to send

  try {
    const txHash = await connector.sendTransaction(toAddress, value);
    console.log('Transaction Hash:', txHash);
  } catch (error) {
    console.error('Transaction error:', error);
  }
};

connectWallet();
sendTransaction();
  1. Interact with a smart contract
const contractAddress = '0xYourContractAddress'; // Replace with your contract address
const abi = [/* Your contract ABI */];

// Set the contract ABI
connector.setContractABI(contractAddress, abi);

// Call a read-only function
const getData = async () => {
  try {
    const result = await connector.getContractData(contractAddress, 'yourMethodName', param1, param2);
    console.log('Contract Data:', result);
  } catch (error) {
    console.error('Error fetching contract data:', error);
  }
};

// Send a transaction to a contract
const sendContractTx = async () => {
  try {
    const txHash = await connector.sendContractTransaction(contractAddress, 'yourFunctionName', 2000000, param1, param2);
    console.log('Transaction Hash:', txHash);
  } catch (error) {
    console.error('Error sending transaction to contract:', error);
  }
};

// Call the functions
getData();
sendContractTx();

Key Points:

  • The usage section is designed to guide users through the initial setup and basic operations with the WalletConnector package.
  • Feel free to modify the addresses, method names, and parameters in the code examples as per your application's requirements!

Supported Wallets

WalletConnector currently supports the following wallets:

| Wallet | Icon | Deep Link | |------------------|------------------------------------------|----------------------------------------------------| | MetaMask | | Connect via MetaMask | | Trust Wallet | | Connect via Trust Wallet | | Coinbase Wallet | | Connect via Coinbase Wallet | | Phantom Wallet | | Connect via Phantom Wallet | | Rainbow Wallet | | Connect via Rainbow Wallet |

Feel free to add support for additional wallets by extending the wallets object.

API Reference

  • connect(walletName: string, appUrl: string): Promise: Connects to the specified wallet and returns a boolean indicating success.
  • sendTransaction(to: string, value: number): Promise: Sends Ether to the specified address and returns the transaction hash.
  • signMessage(message: string): Promise: Signs a message using the connected wallet and returns the signature.
  • setContractABI(contractAddress: string, abi: object): void: Sets the ABI for a specific contract address.
  • getContractData(contractAddress: string, methodName: string, ...params: any[]): Promise: Fetches data from a smart contract method.
  • sendContractTransaction(contractAddress: string, functionName: string, gas: number, ...params: any[]): Promise: Sends a transaction to a smart contract function.

Contributing

Contributions are welcome! If you have suggestions for improvements or features, please feel free to submit a pull request.

Key Enhancements:

  • The Usage section is structured to guide users clearly through setup and execution steps, with comments for clarity.
  • The Supported Wallets section now includes examples of how to connect via different wallets.
  • The API Reference section provides a clear list of methods and their usage.
  • The Error Handling section encourages users to handle errors gracefully.
  • Overall formatting is improved for better readability on platforms like GitHub and npm.