Fully featured Graphical User Interface / Reference Wallet for the BitShares Blockchain
Switch branches/tags
1119_AssetInformation 1317-fix-design-glitch 1477-ExchangeRedesign 1487-unit-tests 1521_UpdateNodes_4 1640_ReactGridLayout 1753_ThemeIssues 1800_MarketsTable-Stopper 1822_ExchangeRedesignFixes 1836 1857_Showcases_Frame 1857_Showcases_Frame_2 1872_DepWithModalUpdate 1901_Sophisticated_ping_strategy 1905_BuyModal 1927_split3 1980 2002_ExchangeLoadingTimes 2020_ExchangeRedesignFixes 2038_Exchange_QuickDepositAsset 2073_BuyFormFontSize 2076_VolumeTranslation 2097_BackupIssue 2100_ExploreAssets-Sorting 2129_ViewOnlyMobile 2130_QuickDepositExchange 2152_ExchangeFixes 2168_CSV_history_download_inoperable 2180_QuickDepositOptions 2215-mac-binary 2221_CollateralBids 2259_GatewayEOSAssetsPairs 2285_LegacyWithdrawDepositIssues 2290_FormattedPriceFixedValue 2292_DisableMarginTradingGSAsset 2310_SettleModal 2319_PaperWalletNaming 2325_GatewayIssues 2336_EmptyMarketTradeHistory 2337_TESTNET-DefaultAsset EnhanceBranding Fix_AssetSettlementFixes Fix_ExchangeLayoutFix Fix_renderCollateralBid_coreBalance Pull_Request_Template UpdateReadme180831 add-code-of-conduct-1 bitshares chartfix develop kapeer42-1437-Consolidate_Wallet_Login_Types master revert-1786-1477-ExchangeRedesign revert-1821-develop revert-1823-1822_ExchangeRedesignFixes revert-1827-staging revert-1847-1794 revert-1851-1785 revert-1852-prevent-restricted-mpa-params-change revert-1853-1673 revert-1876-revert-1827-staging revert-1877-revert-1853-1673 revert-1878-revert-1852-prevent-restricted-mpa-params-change snap-package staging stealth
Nothing to show
Clone or download
Latest commit 72dee05 Dec 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates May 4, 2018
app #1997 Fix padding for textarea Dec 12, 2018
bloom_filter Replace graphenejs-lib by bitsharesjs Jan 19, 2017
charting_library Fix chart lib Sep 20, 2018
conf Merge upstream master Feb 27, 2018
docs Replace Bitshares with BitShares Jan 20, 2017
resources Close #905: Replace react-stockcharts with TradingView charts (#1548) May 24, 2018
ssl #999 Add https server for local development Apr 1, 2018
.babelrc #1502 first pass May 10, 2018
.eslintignore Update bloom filter program and add npm script for running it, includ… Jan 13, 2017
.eslintrc Return eslint to spaces instead of tabs since most files use that alr… Feb 1, 2017
.gitignore Update project to npm v9 Mar 6, 2018
.prettierignore Close #905: Replace react-stockcharts with TradingView charts (#1548) May 24, 2018
.prettierrc Add prettier pre-commit hook Feb 28, 2018
.travis.yml adjust snap token setting again Dec 7, 2018
CHANGELOG.md Update version and changelog Aug 22, 2018
CODE_OF_CONDUCT.md Creating a Code of Conduct (#1790) Aug 21, 2018
CONTRIBUTING.md Merge upstream master Feb 27, 2018
Dockerfile Merge upstream master Feb 27, 2018
LICENSE.md Add LICENSE Dec 20, 2015
README.md add browserstack Nov 19, 2018
README_zh.md #1890: Update node requirements Oct 9, 2018
appveyor.yml #2215: Fix Travis mac binary builds (#2116) Nov 4, 2018
bower.json Merge upstream master Feb 27, 2018
build.sh Add regex to differentiate staging and master build tags Jun 18, 2018
crowdin.yml Merge upstream master Feb 27, 2018
deploy.sh Add regex to differentiate staging and master build tags Jun 18, 2018
docker-compose.yml Merge upstream master Feb 27, 2018
nginx.local.conf Merge upstream master Feb 27, 2018
package-lock.json sync package lock Dec 5, 2018
package.json #2254 Update style-guide version to the latest Dec 10, 2018
postcss.config.js #1502: Webpack v4 upgrade (#1551) May 24, 2018
release-notes.txt Replace graphenejs-lib by bitsharesjs Jan 19, 2017
scamParser.js added scam parser and ids to scamAccounts Nov 14, 2018
server.js Add react-perf-devtool, update react. Use npm start-perf to use Jul 9, 2018
set_snap_token.sh.enc add execute permission Dec 7, 2018
translate-howto.md Merge branch 'patch-2' of git://github.com/rngl4b/graphene-ui into rn… Oct 28, 2015
webpack.config.js switch ES exporter to infrastructure nodes, remote ui reference Nov 20, 2018
write_digest.js fix write_digest for hotfixes Nov 20, 2018

README.md

BitShares-UI

中文版

This is a light wallet that connects to a BitShares API provided by the witness_node executable.

It stores all keys locally in the browser, never exposing your keys to anyone as it signs transactions locally before transmitting them to the API server which then broadcasts them to the blockchain network. The wallet is encrypted with a password of your choosing and encrypted in a browser database.

Getting started

BitShares-UI depends node Node.js, and version 8+ is required.

On Ubuntu and OSX, the easiest way to install Node is to use the Node Version Manager.

To install NVM for Linux/OSX, simply copy paste the following in a terminal:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
nvm install v9
nvm use v9

Once you have Node installed, you can clone the repo:

git clone https://github.com/bitshares/bitshares-ui.git
cd bitshares-ui

Before launching the GUI you will need to install the npm packages:

npm install

Running the dev server

The dev server uses Express in combination with Webpack.

Once all the packages have been installed you can start the development server by running:

npm start

Once the compilation is done the GUI will be available in your browser at: localhost:8080 or 127.0.0.1:8080. Hot Reloading is enabled so the browser will live update as you edit the source files.

Testnet

By default bitshares-ui connects to the live BitShares network, but it's very easy to switch it to the testnet run by Xeroc. To do so, open the UI in a browser, go to Settings, then under Access, select the Public Testnet Server in the dropdown menu. You should also change the faucet if you need to create an account, the testnet faucet address is https://testnet.bitshares.eu.

The UI will reload and connect to the testnet, where you can use the faucet to create an account and receive an initial sum of test BTS.

image

Production

If you'd like to host your own wallet somewhere, you should create a production build and host it using NGINX or Apache. In order to create a prod bundle, simply run the following command:

npm run build

This will create a bundle in the ./build/dist folder that can be hosted with the web server of your choice.

Installable wallets

We use Electron to provide installable wallets, available for Windows, OSX and Linux Debian platforms such as Ubuntu. First, make sure your local python version is 2.7.x, as a dependency requires this.

On Linux you will need to install the following packages to handle icon generation:

sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils

For building, each architecture has it's own script that you can use to build your native binary:

Linux npm run package-deb
Windows npm run package-win
Mac npm run package-mac

This will compile the UI with some special modifications for use with Electron, generate installable binaries with Electron and copy the result to the root build/binaries folder.

Docker

Clone this repository, run docker-compose up and visit localhost:8080

Contributing

Please work off the develop branch and make pull requests to that branch. The master branch will only be updated for new releases.

The Bitshares UI team is supported by this worker. It provides the funds needed to pay the coordinator and the bounties and the Bitshares Foundation.

If you would like to get involved, we have a Telegram chatroom where you can ask questions and get help. You may also join BitShares on Discord

  • Project Manager: Magnus Anderson, @startail
  • Issue and Funds Coordinator: Bill Butler, @billbutler
  • Lead Developer: Sigve Kvalsvik, @sigvek

Development process

  • New issues will, after enough discussion and clarification, be assigned an estimate time to complete, as well as assigned to the next unstarted milestone, by a project coordinator.
  • Milestones are numbered YYMMDD and refer to the anticipated release date of the next Release Candidate.
  • Release Candidates sits 1-2 weeks for evaluation by the public before release
  • Bugs are always worked before enhancements
  • Developers should work each issue according to a numbered branch corresponding to the issue git checkout -b 123
  • We pay bounties for issues that have been estimated. An estimated issue is prefixed with a number in brackets like this: [2] An nasty bug. In this example, the bug is valued at two hours ($125 per hour). If you fix this issue according to these guidelines and your PR is accepted, this will earn you $250 bitUSD. You must have a Bitshares wallet and a Bitshares account to receive payment.
  • To claim an issue, simply leave a comment with your request to work on it.
  • If an issue is already claimed (assigned), do not attempt to claim it. Issues claimed by outside developers will have no assigned dev, but have the developers name in brackets.
  • Do not claim an issue if you will be unable to complete it by the date indicated on the Milestone name. Milestone 170901 will be pushed on September 1, 2017.
  • If an issue missed the intended milestone completion, be sure to make a comment on your progress including the reason for the delay. The issue is pushed to the next milestone. Failing to comment or complete the issue once more will result in release of the assigned issue.

Please keep comments constructive and clean

The BitShares UI is integrated with BrowserStack (https://www.browserstack.com) to allow manual compatibility testing across devices and browser versions. In the future we will switch to a automated Selenium testing framework. image

Release Branches

Development is processed through milestones, by 2 week intervals. There are three branches that forms the current release process.

Develop

All PRs should be pushed to the develop branch. At the end of each milestone this branch is pushed to staging. New commits are automatically deployed to this branch and published for review.

Available for browsing on https://develop.bitshares.org/

Staging (Current Release Candidate)

At the end of each milestone, develop branch is pushed to staging and forms the Release Candidate. Milestone 180601 forms the 180615-RC*.

Application breaking issues and bugs should be submitted to the issue tracker. PRs should be pushed to staging.

New commits are automatically deployed to this branch and published for review.

Available for browsing on https://staging.bitshares.org/

Master (stable)

When all issues to the current RC, staging branch is released to the stable master branch.

Available for browsing on https://wallet.bitshares.org/, which is the official reference wallet for Bitshares.

Coding style guideline

Our style guideline is based on 'Airbnb JavaScript Style Guide' (https://github.com/airbnb/javascript), with few exceptions:

  • Strings are double quoted
  • Additional trailing comma (in arrays and objects declaration) is optional
  • 4 spaces tabs
  • Spaces inside curly braces are optional

We strongly encourage to use eslint to make sure the code adhere to our style guidelines.