@safeblock/wallet-connector-solid v0.0.2
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-solidUsage
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