JSPM

  • Created
  • Published
  • Downloads 1369
  • Score
    100M100P100Q119520F
  • License MIT

Trezor hardware wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@web3-onboard/trezor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @web3-onboard/trezor

    Wallet module for connecting Trezor hardware wallets to web3-onboard

    Install

    npm i @web3-onboard/trezor

    Options

    type TrezorOptions = {
      email: string
      appUrl: string
      customNetwork?: CustomNetwork
      filter?: Platform[]
      containerElement?: string
      /**
       * A number that defines the amount of consecutive empty addresses displayed
       * within the Account Select modal. Default is 5
       */
      consecutiveEmptyAccountThreshold?: number
    }
    
    interface CustomNetwork {
      networkId: number
      genesis: GenesisBlock
      hardforks: Hardfork[]
      bootstrapNodes: BootstrapNode[]
    }
    
    interface GenesisBlock {
      hash: string
      timestamp: string | null
      gasLimit: number
      difficulty: number
      nonce: string
      extraData: string
      stateRoot: string
    }
    
    interface Hardfork {
      name: string
      block: number | null
    }
    
    interface BootstrapNode {
      ip: string
      port: number | string
      network?: string
      chainId?: number
      id: string
      location: string
      comment: string
    }
    
    type Platform = DeviceOSName | DeviceBrowserName | DeviceType | 'all'

    Usage

    import Onboard from '@web3-onboard/core'
    import trezorModule from '@web3-onboard/trezor'
    
    const trezor = trezorModule({
      email: '<EMAIL_CONTACT>',
      appUrl: '<APP_URL>'
    })
    
    const onboard = Onboard({
      // ... other Onboard options
      wallets: [
        trezor
        //... other wallets
      ]
    })
    
    const connectedWallets = await onboard.connectWallet()
    console.log(connectedWallets)

    Filtering Platforms

    You may decide that on certain platforms you do not want to display this wallet as a selectable option. To do that you can use the filter init option which is an array of platforms that you would like this wallet to not be displayed to the end user:

    import Onboard from '@web3-onboard/core'
    import trezorModule from '@web3-onboard/trezor'
    
    const trezor = trezorModule({
      email: '<EMAIL_CONTACT>',
      appUrl: '<APP_URL>',
      filter: ['Safari'] // do not display on Safari
    })
    
    const onboard = Onboard({
      // ... other Onboard options
      wallets: [
        trezor
        //... other wallets
      ]
    })
    
    const connectedWallets = await onboard.connectWallet()
    console.log(connectedWallets)

    The following is a list of the platforms that can be filtered:

    type Platform =
      | 'Windows Phone'
      | 'Windows'
      | 'macOS'
      | 'iOS'
      | 'Android'
      | 'Linux'
      | 'Chrome OS'
      | 'Android Browser'
      | 'Chrome'
      | 'Chromium'
      | 'Firefox'
      | 'Microsoft Edge'
      | 'Opera'
      | 'Safari'
      | 'desktop'
      | 'mobile'
      | 'tablet'