Skip to content

oasisprotocol/oasis-wallet-ext

Repository files navigation

ROSE Wallet - Browser Extension

CI lint status

The official non-custodial browser extension wallet for the Oasis Network.

Introduction

ROSE Wallet - Browser Extension provides a complete solution for managing your ROSE tokens, including everything for convenient staking of your ROSE tokens.

screenshot screenshot screenshot screenshot screenshot

Features

Wallet and Accounts

  • Create/Restore wallets using standard BIP-0039 mnemonic phrases
  • Multiple accounts within the same wallet
  • Import accounts from your Ledger hardware wallet
  • Import accounts directly from their private keys
  • Watch 3rd-party accounts
  • Address book of your saved accounts
  • Easily switch between different ROSE wallets that use the same ADR 0008 standard account key generation process.

Transactions

  • Send tokens
  • Delegate/Undelegate tokens
  • View transaction history
  • View staking/delegation
  • Connect your wallet to dApps and sign their transactions.

Accessibility

  • Available in multiple languages (currently, English and Chinese)

Architecture

The extension is roughly laid out this way:

  • background - the extension's background page

    • APIService (wallet info storage, in-memory transaction signing, transaction submission)
    • ExtDAppService (DApp interface, handles requests from xu-frame)
  • service-data - connections to the network and block explorer

  • popup - interactive parts

    • pages (UI, Ledger transaction signing)
    • actions (reducer action)
    • reducer
  • xu-frame - a page that DApps can load in an iframe to communicate with this extension

    • code for this page is in background/ExtUtils.js
    • Oasis SDK ext-utils handlers

Architecture Diagram

Getting started

build extension

ROSE Wallet extension repo uses git-secret to encrypt the endpoints and the api keys. So, you can't build this without creating your own config file. You should create your own config.js file in the folder. Refer to the config.example.js sample file to create your own configuration.

yarn install
yarn dev

Install and running extension

Extension's build output is placed in /dist, and you can check out this page for installing the developing extension.

dapp-connect test

  • open oasis-test-dapp
  • click connect and other button to communicate with wallet

CI pipelines (Coming soon)

yarn install --frozen-lockfile
yarn test
yarn buildProd

Preparing a Production Release Build

VERSION=`cat public/manifest.json | jq .version -r`
COMMIT=`git rev-parse --short HEAD`
rm -rf dist/
yarn install --frozen-lockfile
yarn buildProd
zip -r rose-wallet-$VERSION-$COMMIT.zip dist/

If you're actually making a new release, follow the applicable steps in the release process doc

LICENSE

Apache License 2.0