Git Product home page Git Product logo

bitshares / bitshares-ui Goto Github PK

View Code? Open in Web Editor NEW
517.0 78.0 569.0 47.67 MB

Fully featured Graphical User Interface / Reference Wallet for the BitShares Blockchain

Home Page: https://wallet.bitshares.org

License: MIT License

JavaScript 95.67% CoffeeScript 0.04% NSIS 0.06% HTML 0.01% CSS 0.04% Python 0.02% Shell 0.05% Dockerfile 0.01% Handlebars 0.10% SCSS 4.01%
bitshares cryptocurrency blockchain-wallet bitshares-ui wallet blockchain web-app javascript reactjs

bitshares-ui's Introduction

BitShares

BitShares is a software platform designed to help coordinate voluntary free market operations amongst a set of social actors.

These social actors together maintain a replicated deterministic state machine which defines the state of a free market. This state machine unambigiously defines the ownership of resources amongst market participants, the rules by which resources are reallocated through market operations, and the history of all market operations. Social actors are free to voluntarily enter and exit the market as desired.

Replicas of the state machine are kept consistent using the Delegated Proof-of-Stake distributed consensus protocol, which depends on market operations by a special class of market participants colloquially known as shareholders. Resource ownership is secured using digital signatures and inputs to the state machine are shared amongst actors using a peer-to-peer mesh network.

Features

The system is designed to ensure the following properties:

  • Fault-Tolerance: the market should be resilient to bad actors
  • Immutability: the historical intent of all market participants should be preserved
  • Transparency: any actor can inspect the market to verify that it is operating correctly
  • Censorship Resistance: no actor can be kept from performing valid market operations
  • Flexibility: the rules of the market should be able to change given sufficient shareholder approval
  • Self-Sustainability: the market should be be able to fund its own continued operation

Additional information is available at BitShares.org and the BitShares Wiki. Community discussion occurs at BitSharesTalk.org.

Building

Different platforms have different build instructions:

Using the RPC server

For many applications, it is useful to execute BitShares commands from scripts. The BitShares client includes RPC server functionality to allow programs to submit JSON-formatted commands and retrieve JSON-formatted results over an HTTP connection. To enable the RPC server, you can edit the rpc section of config.json as follows:

  "rpc": {
    "enable": true,
    "rpc_user": "USERNAME",
    "rpc_password": "PASSWORD",
    "rpc_endpoint": "127.0.0.1:1775",
    "httpd_endpoint": "127.0.0.1:1776",

Here, USERNAME and PASSWORD are authentication credentials which must be presented by a client to gain access to the RPC interface. These parameters may also be specified on the command line, but this is not recommended because some popular multi-user operating systems (Linux in particular) allow command line parameters of running programs to be visible to all users.

After editing the configuration file and (re)starting the BitShares client, you can use any HTTP client to POST a JSON object and read the JSON response. Here is an example using the popular curl command line HTTP client:

curl --user USERNAME:PASSWORD http://127.0.0.1:1776/rpc -X POST -H 'Content-Type: application/json' -d '{"method" : "blockchain_get_account", "params" : ["dev0.theoretical"], "id" : 1}'

The POST request returns a JSON result like this (some data elided for brevity):

{"id":1,"result":{"id":31427,"name":"dev0.theoretical","public_data":{"version":"v0.4.27.1"},"owner_key":"BTS75vj8aaDWFwg7Wd6WinAAqVddUcSRJ1hSMDNayLAbCuxsmoQTf", ...},"meta_data":{"type":"public_account","data":""}}}

Since HTTP basic authentication is used, the authentication credentials are sent over the socket in unencrypted plaintext. For this reason, binding to an interface other than localhost in the configuration file is not recommended. If you wish to access the RPC interface from a remote system, you should establish a secure connection using SSH port forwarding (the -L option in OpenSSH) or a reverse proxy SSL/TLS tunnel (typically supported by general-purpose webservers such as nginx).

Please keep in mind that anyone able to connect to the RPC socket with the correct username and password will be able to access all funds, accounts and private keys in any open wallet (including wallets opened manually or by another RPC client connected to the same bitshares_client instance). Thus, your security procedures should protect the username, password, and socket accordingly (including config.json since it contains the username and password)!

Contributing

The source code can always be found at the BitShares GitHub Repository. There are four main branches:

  • master - official BitShares releases are tagged from here; this should only change for a new release
  • bitshares - updates to BitShares are staged here in preparation for the next official release
  • develop - all new development happens here; this is what is used for internal BitShares XTS test networks
  • toolkit - this is the most recent common ancestor between master and develop; forks of BitShares should base from here

Some technical documentation is available at the BitShares GitHub Wiki.

Support

Bugs can be reported directly to the BitShares Issue Tracker.

Technical support can be obtained from the BitSharesTalk Technical Support Forum.

License

The BitShares source code is in the public domain under the Unlicense. See the LICENSE for more information.

bitshares-ui's People

Contributors

abitmore avatar ahdigital avatar alexchien avatar bitsacer avatar bytemaster avatar c055 avatar calvinfroedge avatar chronoscrypto avatar clayop avatar dependabot[bot] avatar emfrias avatar gibbsfromncis avatar happyconcepts avatar kapeer42 avatar metizik avatar pnomolos avatar react-cat avatar rngl4b avatar ruslansalikhov avatar sschiessl-bcp avatar startailcoon avatar svk31 avatar szechem avatar tbapi-0ka avatar technologiespro avatar testzcrypto avatar verevkinalexander avatar wmbutler avatar xeroc avatar xiangxn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitshares-ui's Issues

UI 170118 - Market Depth Charts don't flip with market flip

When you flip the market, the depth charts do not flip. Once you flip the market you must click back to the price chart and then go back to the depth chart for it to update.

Price chart automatically flips when you flip the market as it should.

Wallet UI needs SOCKS5 proxy support

From @cryptokarnal on June 27, 2016 15:27

Presently, other than transparently proxying the wallet (for power users/sysadmins only), there is no support to proxy the connection to the api server from the wallet.

Please consider adding proxy support, to better protect the privacy of bitshares users, thank you.

Copied from original issue: cryptonomex/graphene-ui#857

UI proposal: View vertical menu on any page by toggling hamburger icon

From @jonnybitcoin on February 19, 2016 1:53

See proposed UI mockup image below.
I personally find navigating to pages listed on the vertical menu too slow.

  • Add burger icon to top left corner which will slide out/in the vertical menu.
  • Move account selection drop down (in header) to far left and show on every page.

Disadvantage would be the slide out vertical menu would cover some of the info when open. (youtube.com does this and it looks fine)

uiconcept

Copied from original issue: cryptonomex/graphene-ui#742

Privacy enhancements to wallet network behavior

From @cryptokarnal on June 17, 2016 9:5

Based on a discussion ~1week ago on bitsharestalk.org, I'd like to propose the following:

  • Allow selecting a wss:// endpoint per wallet, to help prevent the server from correlating requested balances (that map to account name) with the users' ip address.
  • When switching between wallets, tear down the connection to the server; Add an option to re-establish the connection after about $selectable seconds.
  • Implement SOCKS5 proxying support, possible HTTP as well, so that the client can further gain in privacy by hiding the originating ip address from the server.

Copied from original issue: cryptonomex/graphene-ui#854

GUI development for BSIP10 percentage based transfer fee

From @abitmore on March 1, 2016 11:33

This ticket is for tracking GUI works of BSIP10.

  • The BSIP10 feature requirement/description is here.
  • main back-end develop branch is here.

Things to be done:

  • check whether the transfer feature in current GUI is compatible with new back-end
  • add an selection box on the "create asset" page and "update asset" page, so the issuer can set fee mode easily
  • show transfer fee mode on asset details page, and maybe somewhere related (please indicate)
  • use new transfer_v2_operation to do all transfers, or use new operation on assets with percentage fee mode but use the original transfer_operation on assets with flat mode
  • transaction history / Recent activity (should I list the pages which contain a list of history?)
  • block detail page (the page after click on a transaction in the history)
  • extend fee estimation to handle percentage fees (only needed if GUI estimates fees independently but not call get_required_fees API).
  • check if the fee schedule page work with new back-end
  • adjust "Fees and cashback" section of membership page, and maybe description of "Fee Division", and maybe some related pages (please indicate)
  • [optional] deal with the No. 4 issue described in BSIP10 document (overpay fee to avoid trx failure)

Copied from original issue: cryptonomex/graphene-ui#754

Consistent Color Tone

From @clayop on December 3, 2015 20:20

Currently three colors categories (green, red, and tortoise(blue)) are used. We need to have consistency in color tone. Maybe needs @cassiopaia 's input.

I personally prefer imitating bitcoinwisdom's color concept. (red/green in chart, and pale red and pale green in buy/sell orders)

Copied from original issue: cryptonomex/graphene-ui#577

Fiat deposits and withdrawals - Links are confusing

From @kenCode-de on January 22, 2016 14:47

Running latest v...121 light client
Just FYI, I have never used OpenLedger, but I do have a CCEDK.com account.

In Overview, click an account, click deposit/withdraw, click ccedk, click "Click here to register for deposits". This loads up an external browser window which looks a little shady. Can't I just enter my CCEDK login info here with the hash and 2FA info? I'd rather not have to photocopy my passport again and all that kyc stuff.

click "Click here to register for withdrawals". This loads up a screen in the wallet which is better, but the menu across the top is gone now, so there is no way to Back button to the previous screen. There also needs to be something at the top of this page that says what this registration is for, what you will now be able to accomplish by registering here, etc. Why should I register....? A sales pitch of sorts, but keep it short and to the point.

Copied from original issue: cryptonomex/graphene-ui#683

Electron light wallet --data-dir param

From @testzcrypto on December 10, 2015 12:57

Please add possibility to specify electron light wallet data directory where to keep wallet data. In current version all data stores at %APPDATA%\BitShares2-light (under Windows).

Related links:
https://www.chromium.org/user-experience/user-data-directory
https://github.com/atom/electron/blob/master/docs/api/app.md#appgetpathname
electron/electron#647
electron-archive/brightray#89

Copied from original issue: cryptonomex/graphene-ui#602

Inconsistent password after password change

From @dnotestein on January 10, 2016 19:25

I changed the password of an account while I had two tabs open to that account (in the same browser). The old page still uses the old password for locking and unlocking the account. I'm also wondering if it's possible that the old password could be inadvertently saved back to the browser cache by the page that still uses the old password.

Copied from original issue: cryptonomex/graphene-ui#663

Buy/Sell BTS

From @wmbutler on November 6, 2015 17:3

The idea here is to create a dead simple, one stop process for assisting users with acquiring BTS from their BTC wherever they may have it stored. Making it easy for people to acquire BTS is critical and although technically it can be done with the existing wallet, is needs to be easier. Coinbase handles this function for millions of people and it's a pretty smooth process.

Copied from original issue: cryptonomex/graphene-ui#457

[.25] Request: show a warning about core_exchange_rate at asset create/update page

From @abitmore on March 23, 2016 13:10

The fact:

  1. half of asset creation fee will go to the fee pool.
  2. funds in the fee pool belongs to the asset issuer, and it can be withdrawn safely if no outstanding asset exists (a bit tricky though)
  3. any asset holder can sell the asset back to the issuer at core_exchange_rate if the fee pool is not empty. If the issuer didn't set the rate correctly/safely, funds in the fee pool is unsafe. See https://cryptofresh.com/u/asshole1 and https://cryptofresh.com/u/acc12 for example.

Copied from original issue: cryptonomex/graphene-ui#796

Pricing in order confirmation window

From @abitmore on March 18, 2016 21:37

https://bitsharestalk.org/index.php/topic,21961.msg192149.html

Copy & paste here:

Another UI fix would be to adjust the price in the order confirmation windows to be quoted in the same asset base as the market. For instance, we can view any of the markets in either ASSET-BTS or BTS-ASSET --i prefer using ASSET-BTS to normalize them all to a BTS base; however, even when i'm viewing the market as ASSET-BTS, for some markets (e.g. BTS-BTC) automatically show the BTS-ASSET price in the trade confirmation window. This is confusing and sometimes leads me to post trades at the wrong price bc sometimes the automatic fill in the Buy/Sell windows reverts to the the last trade.

A good fix would be to ensure the confirmation window posts the quote in the same base unit as the market we're trading.

Copied from original issue: cryptonomex/graphene-ui#789

Transfer: update "available" after empty

From @abitmore on March 12, 2016 8:7

Assume I have 10 IOU and 100 BTS in my account.
Steps:

  • click on "Send"
  • input "to", select "IOU" from "amount" box: the "available" amount is updated
  • click "available", click "send": asset in the amount box is updated to "BTS" and unable to change, "available" is updated to "0 IOU" but didn't change to "XXX BTS"

Copied from original issue: cryptonomex/graphene-ui#772

Improvements aimed at increasing voting participation

By neura-sx:
Voting apathy is a serious vulnerability for the blockchain. It can be assumed that a lot of users don't vote because they don't realize that. These are simple changes that are aimed to alleviate this problem to some extent:

(1) If the system finds out that an account has a balance of e.g. 100k BTS (or more) and is not voting (i.e. no proxy set and there is no support for at least 10 witnesses), it should display a red warning in the footer (just as we have it for the wallet backup reminder).

(2) On the voting page there should be a clear instruction that the easiest way to vote is to select a proxy. To facilitate the choice of proxies a link to this forum board should be offered in the GUI:
https://bitsharestalk.org/index.php/board,104.0.html

(3) It's much easier to vote when you have a list to choose from (as we have it for worker proposals) instead of typing an account name. Currently we cannot compile a list of active proxies but a list of available accounts should be doable for witnesses and committee members.

Reset config button

From @xeroc on July 11, 2016 5:46

It would be great if there was a "reset config" button in the settings so that we have a chance of changing settings for a hosted wallet (e.g. the faucet url, or the websocket url .)

Copied from original issue: cryptonomex/graphene-ui#862

Build environment (npm install w/ v6) issue (peer dependency)

Using nvm v6 since the recent update.

├── UNMET PEER DEPENDENCY [email protected]
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/ch okidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@ 1.0.17: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64" })
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] license should be a valid SPDX license expression

I managed to successfully install coffeescript via 'npm install [email protected]'

Edit: This is admitedley a bit of a non-issue since you can just manually install the missing package..

UI/UX: Need ability to search Recent Activity

From @kenCode-de on March 10, 2016 15:49

Right next to the CSV link would be a great place to put a search field. Maybe even add from/to date range fields.

Then, ability to export just those search results to CSV would be cool too. I need to be able to quickly prove every payment that was received from someone.

Copied from original issue: cryptonomex/graphene-ui#769

Deposit/Withdraw UX concept

From @wmbutler on November 8, 2015 0:36

The deposit/withdraw functionality of the current wallet is functional, however, it hides important information that is necessary for new users to gain comfort. This is a particularly critical time for our interaction with the client. We have the benefit of knowing that they have a $0 balance when they first create their wallet and we should customize the UX to make it easy for them. The sentence: Now that you’ve created your account, it’s time to bring in some funds should be present only if their account balance is $0.

I'm proposing this as a process of 3 steps.

  • Choose the gateway provider
  • Choose the currency to deposit
  • Choose the deposit amount

It's my belief that a user needs tangible numbers to help them with their calculations. And, generally speaking, they want those number in a currency they can reference easily. I think that always displaying their default currency in parentheses is a great idea because it aids them in their decision. See the "You are Planning..." paragraph that should populate dynamically based upon the 3 values chosen above.

Once the user has made the decisions, they should be able to display a QR code and address that they can easily copy/paste.

Copied from original issue: cryptonomex/graphene-ui#465

the new ccedk fiat thing is very confusing

From @kenCode-de on January 25, 2016 13:53

deposit/withdraw screen, click ccedk tab.

this text is displayed 3 times:
Click here to register for deposits

this text is displayed 3 times too:
Click here to register for withdrawls

VERY confusing.
Worse yet, both of the "here" hyperlinks appear to load the same form, but one is in my external browser and the other keeps you in the wallet with no way to cancel and go Back (button).

This screen also needs an explanation, an upsell, and a fine print disclaimer underneath of the fiat section. My grandma should feel very comfortable when sending all of her private, high security info to some invisible entity behind the scenes here. This screen is far too scary (and risky) as it sits now.

Copied from original issue: cryptonomex/graphene-ui#691

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.