⚠️ NEVER use the private keys and mnemonics given as example in this repository.
stable
branch: https://wallet.oasisprotocol.org
master
branch: https://wallet.stg.oasisprotocol.org
You can quickly get started with the following commands:
yarn install
yarn start
Alternatively, to get started with a local network:
docker-compose up --build -d
yarn install
REACT_APP_LOCALNET=1 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.yml 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 transactions.
oasis-monitor, a block indexer to store historical data about transactions,
accounts, validators, rewards, blocks and more. It exposes an
OpenAPI. oasis-monitor
requires two databases:
oasis-scan, oasis blockchain explorer that enables view of historical data about transactions, accounts, validators, paratimes, blocks, proposals and more. It exposes an API.
API that web wallet is using is determined during a build time.
The repository has two different test strategies:
3000
and the
docker-compose stack to be up.To run all tests:
# Check typescript errors
yarn checkTs
# Run jest tests
yarn test
# Run playwright tests
yarn start
(cd playwright; yarn; npx playwright install --with-deps)
(cd playwright; yarn test)
# Or set BASE_URL and EXTENSION_PATH to test production builds.
# Run cypress tests
docker-compose up -d
# Run this in another terminal to keep it open
REACT_APP_LOCALNET=1 REACT_APP_BACKEND=oasismonitor yarn start
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, API,
# 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
A quick summary:
A detailed post on Git commit messages: How To Write a Git Commit Message.
Translating: We have Transifex to easily contribute translations.
Development: Oasis Wallet uses react-i18next for internationalization. You can
simply use the useTranslation hook inside your components to add additional
translation-ready strings. You can then export the new keys to the
English translation.json by running yarn run extract-messages
.
Updating from Transifex: English translation.json is set as an automatically updating resource in Transifex, so the new translation strings will appear in Transifex a few hours after changes are merged. After they are translated, click "Download for use" on each language, and create a new pull request with title "i18n: Update translations from Transifex".
Adding a new language:
src/locales
and download the
translation file there,