v14: Buy ONE with fiat; Renew 1wallet; Add authenticator code; Expiration checks; Warnings after recovery; Better Upgrade Process; Batch operations; Tools; Many user experience improvements
Table of Contents
New features
Buy ONE with fiat
Users can now buy ONE using fiat currencies with bank accounts and credit or debit cards. The payment is processed by Harmony's partner, Transak. 1wallet does not charge any fees for fiat purchases. Transak may charge some card processing fees.
The list of supported fiat currencies are shown in the currency selector pop-up modal. USD is not yet among the list. According to Transak, support for USD will become available in the coming months (pending legal clearance).
Wallet Renewal / Add Authenticator Code
This features addresses the issues #171 and #179. When a wallet is renewed, its expiry time will extend. During renewal, the user has two options: (1) add another authenticator code to the wallet, so that both the old and new code can be used for authorizing transactions; (2) use their old authenticator code, in which case the need to export the QR code in authenticator and scan it with a camera (like what they do in Restore procedure).
If a wallet is used in multiple devices, the renewal does not automatically extend to other devices. For example, assume a wallet is used on both device A and B and has a life of 1 year from Jan 1, 2021. After 6 months (in July 1, 2021), the user renewed the wallet on device A. Now the user can use the wallet on device A until July 1, 2022. On device B, the user can continue to use the wallet until Jan 1, 2022. If the user wants to continue using the wallet until July 1, 20222 on device B, the user would need to either (1) delete the wallet on device B and use Restore procedure (scan authenticator QR code by camera) to restore the wallet on device B, or (2) renew the wallet on device B.
By default, users can now renew their wallet when their wallet is to expire in less than 6 months. Users may activate developer mode by visiting /dev once (twice to disable), after which they would be able to renew the wallet at any time.
Improvements
Higher Limit Wallet
Users can create wallets with higher spending limit following a link after they create a standard wallet. The default spending limit is also now promptly shown to the user so they don't miss it and become confused later.
Batch Operations
This addresses #175. 1wallet smart contract now supports batch operations. We will use them in 1wallet client to improve the user experience in many scenarios (e.g. Upgrade) in the next few versions.
Better Upgrade Process
This addresses issue #183. The upgrade instructions are simplified and made easy to understand. Prior to upgrading a high value wallet, the user is required to set up a recovery address if they have not done so. Users are also allowed to skip this version entirely.
Expiration and Renewal Alerts
Users are alerted if their wallet is about to expire, or their wallet is renewed on other devices, or their wallet is already expired, or when the wallet's local storage is corrupted. Instructions are provided for each scenario.
Warnings After Recovery
This addresses issue #166. After recovery (not "Restore), wallets are now marked as "deprecated" with clear instructions to the user on what's going on and what they can do / should do with the wallet from now on.
Tools
A few tools are added which can be accessed under "Tools" page:
- One-click setup for MetaMask to switch to Harmony network
https://1wallet.crazy.one/tools/metamask-add
- SushiSwap Encoder Tool for performing transactions on Harmony Safe (based on Gnosis Safe Multi Signature Wallet)
- Wallet State Dumping Tool
Accessible in developer mode, for developers to debug and study the wallet.
Notifications
Notifications are now much larger and more visible on all screen sizes.
Call and Sign
Call and Sign features are now accessible in developer mode and for wallets created using expert mode
Minor Improvements
- Swap is now mobile compatible
- Wallet address buttons are now always shown on the title section of a wallet, instead of requiring users to click / hover the address first
- Input boxes (address, OTP, etc.) no longer causes page to zoom on mobile
- Global usage statistics no longer change back and forth (issue #162)
- Authenticator code boxes are now 3 per row on mobile
- Authenticator code can now be pasted on mobile (not just during creation)
- A warning is added to prevent people from depositing ONE to exchange-owned addresses
- Authenticator code boxes now only show numeric keypad on mobile, and only accepts numerical inputs on mobile.
- All input boxes expecting numerical or decimal inputs now prompt numeric or decimal keypad and only accept numeric or decimal inputs.
- Error messages are now easier to understand
- Progress bars and timelines are now mobile-compatible
- Changed 1wallet DAO address. All wallets upgraded will use the new address if they were using the old 1wallet DAO address.
Internal Improvements
- A new contract library is created for Reveal related operations (as in commit-reveal process)
- Reduced size of core 1wallet contract
- 1wallet contract now accepts multiple "core settings" (i.e roots and time validity information)
- 1wallet contract can now validate incoming operations against multiple core settings
- Restructured 1wallet contract data structures and functions so they are now easier to understand, use, and extend from
- Added several frontend common infrastructural components (e.g. useOps, useWallet, FloatContainer, SpaceCapped, ScanGASteps, and many more) for ease of integration, library use cases, and developer extensions
- Added minimal QR code setup components and options (OtpSetup, OtpTools, WalletCreateProgress, and others)
- Added scripts for generating event lookup tables (from topic hash)






















