Skip to content

[core] - Update Wallet Modules Without Re-Initialization

Compare
Choose a tag to compare
@lnbc1QWFyb24 lnbc1QWFyb24 released this 29 Mar 00:04
5a55262

This release includes a new feature allowing for dynamic updating of the wallet modules that are displayed to the user in the wallet select modal, without needing to re-initialize. To enable this, a new actions object has been added to the state object, exposing a setWalletModules function. Example usage below:

import Onboard from '@web3-onboard/core'
import injectedModule from '@web3-onboard/injected-wallets'
import ledgerModule from '@web3-onboard/ledger'
import trezorModule from '@web3-onboard/trezor'

const injected = injectedModule()
const ledger = ledgerModule()
const trezor = trezorModule({
  email: '<EMAIL_CONTACT>',
  appUrl: '<APP_URL>'
})

// initialize with injected and hardware wallets
const onboard = Onboard({
  wallets: [injected, trezor, ledger],
  chains: [
    {
      id: '0x1',
      token: 'ETH',
      label: 'Ethereum Mainnet',
      rpcUrl: `https://mainnet.infura.io/v3/${INFURA_ID}`
    }
  ]
})

// then after a user action, you may decide to only display hardware wallets on the next call to onboard.connectWallet
onboard.state.actions.setWalletModules([ledger, trezor])

Changelog:

  • [core-v2.1.0] - Feature: Update Wallets without Re-Initialization (#906)