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

@safeblock/wallet-connector-solid

v0.0.2

Published

Custom omni-chain & omni-account wallet connector

Downloads

116

Readme

SafeBlock Wallet Connector

A comprehensive library that enables seamless connection to multiple blockchain wallets (TON, TRON, and EVM-compatible wallets) with advanced features for managing multiple accounts per wallet and simultaneous connections to multiple wallets.

Table of contents

Features

  • Multi-Wallet Support: Connect to TON, TRON, and EVM-compatible wallets.
  • Multiple Accounts per Wallet: Manage several accounts within each wallet type.
  • Parallel Connections: Maintain active connections to several wallets simultaneously.
  • SolidJS for State Management: Efficient, reactive state management using SolidJS for a responsive and modular experience.

Installation

Install the library via npm...

npm add @safeblock/wallet-connector-solid

...or any other package manager you like:

yarn[pnpm, etc..] install @safeblock/wallet-connector-solid

Usage

This section will show examples of how to use the library.

EVM networks

Below is an example of a simple application that allows you to connect an account through a specific wallet and display its address

import { detectEthereumAccounts, detectEthereumWallets } from "@safeblock/wallet-connector-solid"

function Component() {
  const wallets = detectEthereumWallets("wc-project-id", () => {
    accounts.updateAccounts()
  })

  const accounts = detectEthereumAccounts(wallets)

  return (
    <For each={ wallets() }>
      { wallet => (
        <div>
          { wallet.name }
          <button onClick={ () => wallet.connect() }>Connect</button>

          <For each={ accounts.ofWallet(wallet) }>
            { account => <span>{ account.address }</span> }
          </For>
        </div>
      ) }
    </For>
  )
}

The detectEthereumAccounts function will automatically detect all installed wallets that support the eip6963 standard. For non-evm networks or for wallets that do not support the eip6963 standard, you can explicitly specify descriptors.

import { ethereumWalletDescriptors } from "@safeblock/wallet-connector-solid"

const wallets = detectEthereumWallets("wc-project-id", () => {
  // ...
}, ethereumWalletDescriptors)

Thus, wallets for which descriptors were explicitly specified will be added in addition to the found wallets. For non-evm networks, specifying descriptors is mandatory.

Note: although we provide some descriptors right inside the package, you can still write them yourself

Non-EVM networks

Example of obtaining a list of wallets and accounts in the Tron network:

import { tronWalletDescriptors } from "@safeblock/wallet-connector-solid"
import { detectAccounts, detectWallets, WalletType, TronWeb } from "@safeblock/wallet-connector-solid"


const wallets = detectWallets(tronWalletDescriptors, WalletType.Tron)

// In this line provider is just a TronWeb instance from each provided wallet
const accounts = detectAccounts<TronWeb>(wallets, provider => provider.defaultAddress.base58)

License

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International