⚠️ NEVER use the private keys and mnemonics given as example in this repository.
- Opening wallets through private key or mnemonic
- Transaction history, currently all transactions are listed. We need to submit a pull-request to oasis-explorer to support pagination
- Multiple languages (English and French currently supported)
- Submitting transactions
- Ledger support
- Multiple accounts open in parallel
- Staking (Adding / reclaiming escrow)
- Staking rewards and history
- Debonding status
- Various account & network stats
- OETH Support
You can quickly get started with the following commands:
yarn install
REACT_APP_BYPASS_LOCAL=1 yarn start
Alternatively, to get started with a local network:
docker-compose up --build -d
yarn install
yarn start
Then go to http://localhost:3000 to access the wallet.
The local single-node network used for development comes built-in with two accounts already having tokens.
Using a private key:
X0jlpvskP1q8E6rHxWRJr7yTvpCuOPEKBGW8gtuVTxfnViTI0s2fBizgMxNzo75Q7w7MxdJXtOLeqDoFUGxxMg==
oasis1qz0k5q8vjqvu4s4nwxyj406ylnflkc4vrcjghuwk
Using a mnemonic:
abuse gown claw final toddler wedding sister parade useful typical spatial skate decrease bulk student manual cloth shove fat car little swamp tag ginger
oasis1qq5t7f2gecsjsdxmp5zxtwgck6pzpjmkvc657z6l
Oasis-wallet needs multiple components to run, all provided in the docker-compose file for local development.
- envoy-proxy, used as a gRPC gateway for live access to the oasis-node, to fetch live balance, information about the current state of the network, and to submit transasctions.
- oasis-explorer, a block indexer to store historical data about transactions, accounts, validators, rewards, blocks and mores. It exposes an OpenAPI.
oasis-explorer
requires two databases :- A PostgreSQL instance to keep track of it's import batches
- A Clickhouse server to store the indexed data
The repository has two different test strategies:
- E2E (End-to-end) tests, ran with Cypress, located in cypress/. These tests require the react app to be started on accessible on port
3000
and the docker-compose stack to be up. - Unit & functional tests, ran with Jest, located throughout the codebase
To run all tests:
# Run jest tests
yarn test
# Run cypress tests
docker-compose up -d
yarn start # Run this in another terminal to keep it open
yarn cypress:run
# Manually check that content-security-policy in ./internals/getCsp.js doesn't break any functionality
yarn --silent print-csp
yarn start:prod
# Open http://localhost:5000/account/oasis1qq3xrq0urs8qcffhvmhfhz4p0mu7ewc8rscnlwxe/stake and switch to testnet.
# This exercises at least: fonts, grpc, testnet grpc, monitor, and validator logos
This repository uses prettier as a code formatter and eslint as it's linter. You can use the following commands:
# Lint the whole repository
yarn lint
# Fix linting issues
yarn lint:fix
Oasis-wallet uses react-i18next for I18n. You can simply use the useTranslation hook inside your components to add additional i18n-ready strings. You can then export the new keys to the translation files by running
yarn run extract-messages
To add a new language, edit src/locales/i18n.ts and i18next-scanner.config.js, then run the command above once more.