Welcome to Hathor Light Wallet. To view the source code of the project access Github. You can follow the progress of our next tasks in our Trello board.
The wallet is developed using Javascript with React. We use Electron to generate native desktop apps from it.
You can download the newest version of the wallet for each specific platform from the Releases page.
We are finishing the process of acquiring the certificates for Windows. While we don't get it you may see a warning message when opening the wallet.
This screen will show a warning, so you need to click on 'More info'. Another screen will appear, then just click the button 'Run anyway' to start the wallet.
The basic view of the wallet. Note that different types of tokens are made possible in the Hathor Network. On the left hand side we see both a HTR tab and a MTK tab, for the Hathor token, and a different, ERC-20 like, token.
The wallet includes a block and transaction explorer.
npm install
npm start
and it will start running in the browser in http://localhost:3000
NOTE: to use Hathor Wallet with Ledger, you need to run it in Electron.
npm run build
and it will create a folder build with the files to use
By default the wallet will connect to the server selected as the DEFAULT_SERVER
in the constants file (src/constants.js
).
You can change this anytime in the 'Change Server' screen inside the wallet.
To generate a html page with the documentation from the code comments run:
jsdoc -c jsdoc.json -r src/. README.md
and it will generate a index.html
file in out/index.html
Refer to ELECTRON.md
Sentry is a error tracking tool, that allow us to receive error data from clients - it will be disabled on stable versions of the wallet.
On public/constants.js
we have a default Sentry DSN.
To override it simply set the environment variable SENTRY_DSN
.
To allow stack traces to be mapped to source code, Sentry needs the source maps.
To upload the source maps, create a .sentryclirc
with the format:
[defaults]
url=https://sentry.io/
org=<ORGANIZATION_NAME>
project=<PROJECT_NAME>
[auth]
token=<CLI_API_TOKEN>
You can find more information about the configuration file and its fields here.
After configuring it, just run the upload_source_maps.sh
script to upload the source maps.
WARNING: Please note that this will override all the source maps for the current sentry release.
The sentry release used is the version
field in the package.json
file.
So in order to not break any released source maps, only run the script after bumping package.json
to a new version.
For test purposes use *-beta
versions or identifiers that will not colide with semantic versioning.
When building, if you get the following error message:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Then, you can increase your memory limit running:
export NODE_OPTIONS=--max_old_space_size=4096
- The algorithm to automatically choose the unspent transactions when sending tokens is naive. For now we do not consider any anonymity factor.
- The addresses shared with the user and the ones used in change outputs are generated by the same chain in the HD Wallet. We don't separate internal and external addresses.
We use the ttag
lib. Check out the docs here.
Run make update_pot
to update the pot file (locale/texts.pot
). This file has all strings to be translated in the app.
Run msgmerge pt-br/texts.po texts.pot -o pt-br/texts.po
to merge a pot file with a po file. This will add the new strings to be transalted and remove the deprecated ones. Any translation marked with ; fuzzy
comment must be reviewed.
Finally, run make i18n
to compile all po files to json files. You can use make check_po
to check for problems in translations.
Code released under the MIT license.
Copyright 2019 Hathor Labs.