web3-onboard

Client library to onboard users to web3 apps

MIT License

Downloads
95.9K
Stars
844
Committers
174
web3-onboard - UniLogin Wallet

Published by aaronbarnardsound over 4 years ago

This release adds UniLogin wallet as a supported wallet. To add it to your project simply add an additional wallet initialization object:

const config = {
  //... other config options
  walletSelect: {
    wallets: [
      //... other wallets
      { walletName: 'unilogin' }
    ]
  }
}

Also included in this release is a small change to the copy included in the "What is a Wallet" section and an option to customize that text. To customize the text, you can use the new optional explanation parameter in the walletSelect object:

const config = {
  //... other config options
  walletSelect: {
    //... other wallet select options
    explanation: "Explain what an Ethereum wallet is here..."
  }
}

Changelog:

  • Feature: Add UniLogin Wallet (#258)
  • bump torus version (#268)
  • Modify walletSelect explanation, make customizable #270
web3-onboard - Upgrade SDK to version 2

Published by aaronbarnardsound over 4 years ago

Just a small release to upgrade the internal SDK used for server communications to version 2. Also included in this release, hardware wallets have been enabled on Android devices.

Changelog:

  • Enable hardware wallets on Android (#264)
  • Upgrade to version 2.0.0 of sdk (#266)
web3-onboard - Custom Derivation Paths and Improved UI for Hardware Wallets

Published by aaronbarnardsound over 4 years ago

This release adds a new wallet check module for hardware wallets that allow user's to select a derivation path from a list of common paths or input a custom path to access accounts on their hardware wallets:

Screen Shot 2020-03-20 at 1 26 13 PM
Screen Shot 2020-03-20 at 1 26 43 PM

To add this extra check to your app:

const config = {
  //... other config options
  walletCheck: [
    { checkName: "derivationPath" },
    { checkName: "accounts" },
    { checkName: "connect" },
    { checkName: "network" }
  ]
}

const onboard = Onboard(config)

Changelog:

  • Make sure SDK wallets disconnect correctly (#254)
  • Feature: Custom Derivation Path (#256)
  • Enhancement: click close modal (#259)
  • Clear hardware accs when derivation path changed (#261)
web3-onboard - Ledger Support for Electron Apps

Published by aaronbarnardsound over 4 years ago

This release adds support for Ledger wallets in Electron apps via an additional LedgerTransport property on the Ledger initialization object. For Ledger to work on Electron apps it needs to use the node transport module.

So to get this working in your Electron app you will need to install the node transport module, require it and then pass it in when initializing Onboard:

const TransportNodeHid = require("@ledgerhq/hw-transport-node-hid").default;

const onboardConfig = {
  // other config options...
  wallets: [
    // other wallets...
    {
       walletName: "ledger",
       rpcUrl: `https://rinkeby.infura.io/v3/${infuraKey}`,
       LedgerTransport: TransportNodeHid
    }
  ]
}

A small UI enhancement is also included in this release which makes all modals disable window scrolling so that a user can't scroll below the modal.

Changelog:

  • Make modal fixed and lock scrolling (#247)
  • Add custom ledger transport option (#249)
  • Add types to originalOverflowValue (#251)
web3-onboard - Bug Fix

Published by aaronbarnardsound over 4 years ago

This is a release to fix a bug that was introduced in version 1.3.4 which broke some mobile wallet providers.

Changelog:

  • Call provider directly to ensure this is defined (#243)
web3-onboard - Enhancements and Small Bug Fixes

Published by aaronbarnardsound over 4 years ago

This release has a collection of small enhancements and bug fixes. The design has been refined in the wallet select modal so that it is more clear when a wallet is currently selected. A bug with connecting to the Opera wallet has been fixed.

Changelog:

  • Make sure link has pointer cursor when hovered (#234)
  • Fallback to send if sendAsync isn't available (#235)
  • Add opera install hint (#237)
  • Remember show more state in wallet select (#238)
  • Change design for wallet button when selected (#239)
web3-onboard - Fix Derivation Paths

Published by aaronbarnardsound over 4 years ago

A small release to change the hardware wallet derivation paths to match common implementations.

Changelog:

  • Make derivation paths match common implementations (#228)
web3-onboard - Update Blocknative SDK

Published by aaronbarnardsound over 4 years ago

A small release to update to the latest Blocknative SDK version which adds adds the ability to unsubscribe from a watched address.

Code has been updated in the balance store where the current address is watched for confirmed transactions so that the previous address will be unwatched when the current address changes to avoid unnecessary messages from the server.

The lodash.debouncedependency has also been removed as it is no longer needed due to backend improvements.

Changelog:

  • Update sdk and unsubscribe from address (#224)
web3-onboard - Trust Deep Link

Published by aaronbarnardsound over 4 years ago

Just a small release that fixes a few minor issues. The Trust deep link has been updated to the new format, the Torus SDK is now imported dynamically which matches the other SDK wallets and a small bug where the account balance wouldn't show correctly in the hardware wallet account select modal has been fixed.

Changelog:

  • Fix: accounts balance re-render (#216)
  • Dynamically import Torus (#218)
  • Fix trust deep link (#220)
web3-onboard - Hardware Wallets

Published by aaronbarnardsound over 4 years ago

This release sees the addition of wallet modules for both Trezor and Ledger hardware wallets making it super simple to add hardware wallets as an option for Dapp users.

To add hardware wallets, simply add the following to your Onboard configuration object:

const onboardConfig = {
  // ...other config options
  walletSelect: {
    wallets: [
      // ...other wallets
      {
        walletName: "trezor",
        appUrl: '<YOUR_APP_URL>', // required for Trezor manifest
        email: '<YOUR_CONTACT_EMAIL>', // required for Trezor manifest
        rpcUrl: '<RPC_URL>'
      },
      {
        walletName: "ledger",
        rpcUrl: '<RPC_URL>'
      }
    ]
  },
  walletCheck: [
    { checkName: "connect" },
    { checkName: "accounts" },
    { checkName: "network" },
  ]
}

const onboard = Onboard(onboardConfig)

Details regarding the Trezor Manifest can be found here

There are some differences to note between Ledger and Trezor devices and how they operate within Onboard:

  • Ledger wallets can only load one address at a time and is noticeably slower when loading each account. There also isn't an included UI that guides the user to get the device ready to be connected. To solve this Onboard will display a wallet check modal that instructs the user:
    - to plug in their Ledger
    - to unlock their Ledger via the pin code
    - to have the Ethereum app open on their device
    - that Onboard is going to load their accounts and shows a spinner for indication of loading status

  • Both Ledger and Trezor lack UI's that allow the user to select which account they would like to use. An "accounts" wallet check module has been added to provide a UI that allows users to select an account they would like to use and also allows them the load/generate more accounts to select from. This module needs to be included in your wallet check array if you would like it to be a part of your onboarding flow:

const onboardConfig = {
  // ...other config options
  walletCheck: [
    { checkName: "connect" },
    { checkName: "accounts" }, // add new accounts module to onboarding
    { checkName: "network" },
  ]
}

This modal will only show if the user has selected a wallet of type "hardware" and will only show the first time the wallet check sequence is run.

A new method has also been added to the API called accountSelect. This method can be called at any time that you would like to show the account select modal. So you could hook up a button on your dapp's UI that calls this method:

<button onclick="onboard.accountSelect()">Switch Account</button>
  • Ledger wallets have two different derivation paths that accounts can be accessed/generated from, a "legacy" path and also a "Ledger Live" path that matches the BIP44 standard. Onboard will default to initially loading the first account from each path and then loading 5 accounts from each path when the "load more" button is clicked in the accounts modal. Trezor wallets only use the BIP44 standard path, so 1 account will be initially generated, and then an additional 10 accounts will be loaded when the "load more" button is clicked. More details on the ledger paths can be found here

Changelog:

  • Feature: Hardware Wallet Support (#208)
  • fix: add "jsonrpc: '2.0'" to sendAsync methods (#210)
  • Fix icon heights (#212)
web3-onboard - MetaMask Mobile

Published by aaronbarnardsound over 4 years ago

This release adds MetaMask as a valid mobile wallet and also includes a few minor bug fixes.

Changelog:

  • Add Metamask mobile support (#198)
  • Fix: Auto Wallet Select (#204)
  • Add key to wallet buttons (#205)
  • Only add scroll on mobile devices (#206)
web3-onboard - Authereum Updates

Published by aaronbarnardsound over 4 years ago

This release updates to the latest Authereum SDK, passes the correct Authereum url property depending which network Onboard is configured with and also enables Authereum internal notifications with an option to disable them via a disableNotifications initialization property.

Thanks to @TomAFrench and @miguelmota for their contributions!

Changelog:

  • update authereum url depending on network (#195)
  • Made disabling Authereum notifications optional (#196)
  • Update authereum version (#186)
web3-onboard - Minor bug fixes / improvements

Published by aaronbarnardsound over 4 years ago

Just a couple of small bug fixes and improvements in this release. The WalletConnect disconnect functionality works correctly now and resets the state. There was an error caused by calling unubscribe on a svelte store multiple times which has now been fixed. Lastly a url as been added to the Torus wallet module.

Changelog:

  • Improve disconnect for wallet connect (#189)
  • Remove unsubscribe call, isn't needed and errors due to being called multiple times (#190)
  • Add Torus URL (#191)
  • Refine the wallet reset functionality (#193)
web3-onboard - Tor.us Wallet

Published by aaronbarnardsound over 4 years ago

This release adds Tor.us wallet to the list supported wallets in Onboard. Check out the wallet module docs for more info on how to initialize it.

Also included in this release is a small fix that makes sure the address subscription callback is only called with an undefined value if a user logs out of their wallet.

Changelog:

  • feat: add Torus wallet (#161)
  • Make sure address sub is called only when changed (#184)
  • Add error for incorrect walletName parameter (#183)
web3-onboard - Reset Wallet

Published by aaronbarnardsound almost 5 years ago

This release adds a feature where you can reset the internal wallet state and disconnect from a wallet instance by calling onboard.walletReset().

The WalletConnect module was also modified to ensure that it is disconnecting properly when either the user disconnects from the session on their mobile device, or if the walletReset function was called.

Additionally the font-family is now correctly being inherited so that only one css over-ride is necessary to change the font.

Changelog:

  • Ensure all elements inherit font-family (#174)
  • Feature: Wallet Reset Function (#176)
  • Fix: WalletConnect Close (#178)
web3-onboard - Status Wallet

Published by aaronbarnardsound almost 5 years ago

This release sees the addition of Status IM wallet to list of included wallets.

A url parameter has also been added to the wallet object for SDK/embedded wallets to make it easier to display the wallets UI to user.

There is a small bug fix, where Onboard was recognizing chromebook laptops as a mobile device, which is now fixed.

Changelog:

  • Add url to wallet object (#164)
  • Cleanup unused code (#165)
  • Add Status IM (#166)
  • Better validation for chromebook desktop (#169)
  • Move all wallet icons in to wallet-icon folder (#171)
web3-onboard - Bug Fixes

Published by aaronbarnardsound almost 5 years ago

Just a couple of small bug fixes in this release.

Changelog:

  • Make sure balance subscription is only called when value changes (#157)
  • Show correct dialog when no wallet installed (#158)
web3-onboard - Customize Wallet Label and Icons

Published by aaronbarnardsound almost 5 years ago

This release has a couple of small features and a couple of small bugfixes. You can now customize the icon and the label for each wallet button, allowing a more flexible wallet select modal. Onboard now detects the OS of the user's device, allowing for wallets to be shown (or not shown) for specific operating systems.

Changelog:

  • Allow label and icon overrides for wallet modules (#153)
  • Added feature to set os exclusions for wallets (#151)
  • Fix incorrect resolve (#152)
  • Inherit font-family (#150)
web3-onboard - Update SDK dependency

Published by aaronbarnardsound almost 5 years ago

A small release to update bnc-sdk.

Changelog:

  • Update sdk version (#144)
web3-onboard - Render HTML in Description

Published by aaronbarnardsound almost 5 years ago

This release publishes a small feature where you can now pass a html string in for the description parameter of the wallet select modal and onboard will render it as html

Changelog:

  • Allow html to be rendered in wallet select modal (#132)