1.0.1 • Published 11 months ago

hybridweb3walletconnector v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

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:

WalletIconDeep Link
MetaMaskConnect via MetaMask
Trust WalletConnect via Trust Wallet
Coinbase WalletConnect via Coinbase Wallet
Phantom WalletConnect via Phantom Wallet
Rainbow WalletConnect 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.
1.0.1

11 months ago

1.0.0

11 months ago