The official non-custodial browser extension wallet for the Oasis Network.
ROSE Wallet - Browser Extension provides a complete solution for managing your ROSE tokens, including everything for convenient staking of your ROSE tokens.
- 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.
- Send tokens
- Delegate/Undelegate tokens
- View transaction history
- View staking/delegation
- Connect your wallet to dApps and sign their transactions.
- Available in multiple languages (currently, English and Chinese)
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
- OASISSCAN (provided by oasisscan)
- Oasis gRPC-web (provided by oasisscan-grpc)
-
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
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
Extension's build output is placed in /dist
, and you can check out this page for installing the developing extension.
- open oasis-test-dapp
- click connect and other button to communicate with wallet
yarn install --frozen-lockfile
yarn test
yarn buildProd
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