Giter Club home page Giter Club logo

block-dx's Introduction

BLOCK DX

Download Block DX

BLOCK DX is a decentralized exchange dApp built on top of the Blocknet Protocol. This repository is maintained by the Blocknet Core Team. We encourage the community to create dApps on top of Blocknet. Please connect with our community on Discord. More information about Blocknet can be found on the Blocknet website and documentation portal.

Website API Documentation Discord

Dev Instructions

Block DX requires the Blocknet wallet and the wallets of the assets you want to view a market for to be setup and synced.

Build and run locally:

This project was generated with Angular CLI.

  1. Install dependencies: npm install
  2. Start the dev server: npm start
    • To start with the Mock (in-memory) API: npm start -- -e="mock".
  3. In a new terminal window:
    1. Build app: npm run build
    2. Launch app: npm run start-app

The app will launch and automatically reload if you change any files within src/.

Build native packages:

npm run pack-native

This will build the installer artifacts for the current system (Windows, MacOS, Linux).

Pull requests

Please branch off of the branch titled after the next release. For example, if the latest release is version 1.4.0 then look for a branch titled 1.4.1, 1.5.0, or 2.0.0.

Running unit tests

Run npm run test to execute the unit tests via Karma.

Running end-to-end tests

Run npm run e2e to execute the end-to-end tests via Protractor. Before running the tests make sure you are serving the app via npm start.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

License

By downloading and using this software, you acknowledge that:

  • This is an open source tool and you agree to use this tool in accordance with local laws.
  • This software is in beta and can include bugs that may result in irretrievable loss of funds.
  • This software is licensed under The MIT License and you agree to the terms of the license below.

[ X ] By using this software you acknowledge the financial and legal risks of using this software and agree to assume all responsibility. If you do not agree to these terms do not use the software.

The MIT License (MIT)

Copyright (c) 2018 The Blocknet Developers

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

block-dx's People

Contributors

aderks avatar atcsecure avatar conanmishler avatar coreyroach avatar francobenner avatar hanniabu avatar magic53 avatar rburgett avatar rikublock avatar shrnkld avatar tryiou avatar walkjivefly 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

Watchers

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

block-dx's Issues

wallets with a low number of utxos cannot place orders (balance shown as zero)

tl;dr new wallets will have a problem placing more than a small number of orders on the DX due to the low number of utxos in a typical newly-funded wallet. To work around this, fund the wallet with a bunch of small transactions instead of one big one. Consider including a UI indicator for how many utxos a wallet has if it is approaching the number of orders a user has open, and a button to help resolve this. example: (orders avail: 3 | [split UTXOs] )

Additionally, there should be a clear indication of what a user's balance is vs how much of that balance is able to be used to create an order. Recommend adding additional collumn next to "Available Balance" that reports "Total Balance" to avoid new user confusion or panic when the UI says all of their coins are gone.

Blocknet Wallet version: 4.0.2
BlockDX: 1.6.0
DIVI: Daemon 1.0.7.0 (client 1.6.4)
BTC Core: 0.19.0.1
All wallets fully synced
All wallets encrypted and unlocked

Complaint: When creating new orders on the BTC/DIVI pairing, DIVI balance drops to zero after placing two orders, preventing further use of the DX.

  • Steps to reproduce
    • launch DX environment (as documented at the top)
    • Place BUY order for BTC, paying with DIVI
    • Place another BUY order
    • DIVI balance drops to zero
    • Place 3rd order
    • Error code 1019, API dxMakeOrder, message says:
      • "Error: Unable to create order due to insufficient funds...[etc]"
  • Workarounds attempted (unsuccessfully)
    • restart BlockDX [no change]
    • restart DIVI wallet [no change]
      • Note: BlockDX does properly disconnect and reconnect to the DIVI wallet when I close and reopen it, but still says balance=0
    • downgrade to 1.0.4 and reconfigure [no change]
    • make sure the two orders are not identical, cancel and change the price for order #2 [no change]
  • notable notices
    • If I cancel one of the the two orders then refresh my balances, Divi shows proper balance again. Creating a second order reduced balance to zero again.
  • Workaround, cause, and solution
    • After going through the above, it dawned on me that this behavior isn't a bug at all and is actually working as designed. When placing an order, BlockDX reserves the entire UTXO(s) that it's going to be funding the transaction with. In my case, I had exactly two utxos in my Divi wallet because this is a fresh environment with newly funded wallets. When the first order was created, it reserved an entire utxo and decremented it's balance in the UI. When I placed the second order, it decremented the remaining balance and displayed 0.000000
    • to get around this problem, a user can send themselves a bunch of smaller transactions to force a plitting up of the utxos. After these are verified, they can be used in BlockDX and you can create as many orders as there are utxos in your wallet.
    • recommended solution
      • This will confuse a new user, but it also isn't broken. What's needed are two things:
        • something in the UI that correlates to how many utxos are in each wallet (probably in the balances area)
        • Some sort of code that can implement the above workaround automatically for the user. A button, for example, that says "split utxos" or something less lingo-ridden.

Block DX Client for linux- Sha512sum different from publiced YML on github and website

Hello, I post this for a friend of mine. She tried to do by herself. However it was not working.
She downloaded your Block DX 1.9.2 Client for Linux:

When checking BLOCK-DX-1.9.2.-linux-x64.tar.gz download with sha512sum the following checksum is generated: 041e741cc5f94a398e67246c521e9f4a3d5d6201a2348b1d596562fe2f7c9af912b5f28587a6109f6ba01e04331fb44fb2a85ab1f6d436a433379aba6b94960d

When doing the same with Block-DX-1.9.2-linux-x86-64.AppImage with Checksum 512, she gets:

bb574460619640d0c4dc9fdb1113952c34c9394188573280bf724c2c8100498c74773e4c0e02da35fa3757a3a816e65f9758610925ee9bbe5b35c4e8d145fbd5

However comparing it with your publiced ymls, the checksum for the AppImage version should be:

u1dEYGGWQNDE3J/bEROVLDTJOUGIVzKAv3JMLIEASYx0dz5MDgLaNfo3V6OoFuZfl1hhCSXum75bNcTo0UX71Q== .

For the linux tar.gz Version no checksum is availabe.

Repeating the download on github and /or blockdx.org it stays at the different checksum. Did she do something wrong or is it safe to use?

kind regards
RedIceFlower

appimage error

hi

just tried to start the appImage

./BLOCK-DX-v0.7.11-linux.AppImage <memory>:1: Invalid color constant '##d3d3d3' Gtk-Message: 22:45:50.540: (for origin information, set GTK_DEBUG): failed to retrieve property ChromeGtkFrame::frame-color' of type GdkColor' from rc file value ""##d3d3d3"" of type gchararray'
`

... :)

Windows Advanced Installer Freeze

When using the Windows advanced setup, clicking the Finish button does not trigger the final setup page. The only way to proceed is to do a simple setup first and then reconfigure later.

Appimage not working on fedora 34

I am trying to run blockdx appimage on fedora 34 to trade LBC. I have blocknet and lbry wallet running. When I started the blockdx appimage for the first time it showed a license agreement (if i remember correctly) and on accepting it crashed. From then on whenever I run the appimage it keeps running but the window does not show up.

Left sidebar module

  • Main app nav:
    • Markets select menu - shows connected assets > all available assets
    • Wallet config menu - view list of connected wallets ****and connect new wallet button
    • App settings menu - includes the following components:
      • Market pricing - API source, API Key, update frequency
      • Partial order settings - lower limit toggle switch (TBD), auto repost orders toggle switch
      • Language settings - language selector
    • Help menu - list of external support links
  • External links nav - external links as icons: discord, twitter, telegram, website

Error: Unable to create order. Either the Blocknet wallet is still loading network data (takes a few minutes after syncing completes) or no nodes on the network are currently supporting this trade pair. (API: dxMakeOrder, Code: 1032)

In the latest version (v1.8.0) on the GNU/Linux distribution LMDE 4 (basically Debian 10 with a few changes) using the AppImage (root or no root, --no-sandbox) or the Debian Package (root, --no-sandbox) to create an order (also the order book and the order history are empty) I keep getting:

Debian Package:

(electron) The default value of app.allowRendererProcessReuse is deprecated, it is currently "false".  It will change to be "true" in Electron 9.  For more information please check https://github.com/electron/electron/issues/18397
(electron) 'setZoomFactor function' is deprecated and will be removed. Please use 'zoomFactor property' instead.
Checking for update
Error: Error: ENOENT: no such file or directory, open '/opt/BLOCK DX/resources/app-update.yml'
Error: Unable to create order. Either the Blocknet wallet is still loading network data (takes a few minutes after syncing completes) or no nodes on the network are currently supporting this trade pair.

API:		dxMakeOrder
Code:	1032

Could not find a service node with required services: 
    at ServiceNodeInterface._queueRequest (/opt/BLOCK DX/resources/app.asar/src-back/service-node-interface.js:412:15)
    at async Timeout._onTimeout (/opt/BLOCK DX/resources/app.asar/src-back/service-node-interface.js:369:26)

Without --no-sandbox the Debian Package doesn't start:

Trace/breakpoint trap (core dumped)

AppImage:

(electron) The default value of app.allowRendererProcessReuse is deprecated, it is currently "false".  It will change to be "true" in Electron 9.  For more information please check https://github.com/electron/electron/issues/18397
(electron) 'setZoomFactor function' is deprecated and will be removed. Please use 'zoomFactor property' instead.
Checking for update
Generated new staging user ID: 7ce9cedb-8081-5bff-938e-e95a9ae62696
Update for version 1.8.0 is not available (latest version: 1.8.0, downgrade is disallowed).
Error: Unable to create order. Either the Blocknet wallet is still loading network data (takes a few minutes after syncing completes) or no nodes on the network are currently supporting this trade pair.

API:		dxMakeOrder
Code:	1032

Could not find a service node with required services: 
    at ServiceNodeInterface._queueRequest (/tmp/.mount_BLOCK-zx9ZWg/resources/app.asar/src-back/service-node-interface.js:412:15)
    at async Timeout._onTimeout (/tmp/.mount_BLOCK-zx9ZWg/resources/app.asar/src-back/service-node-interface.js:369:26)

Without --no-sandbox the AppImage doesn't start:

[12229:0102/023935.009197:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_BLOCK-P18t24/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap (core dumped)

I searched quite a while but could not find anything about this issue, except for the SUID Sandbox Issue when starting the AppImage without --no-sandbox.

Thanks in advance!

ENH: enable BlockDX to startup using an alternative config source than the standard AWS one

It is currently possible to test BlockDX with a local set of custom configuration files (eg: when testing new coin integration or updates) but it is quite difficult. It would be easier if BlockDX would accept an optional startup parameter giving the source of configuration data to read instead of the "production" AWS files. This would open up the testing field to many more people since they'd only need to run the regular official release BlockDX and not run a development build.

In discussion with @rBurgett we have decided to provide both an optional startup parameter and an optional environment variable. If neither are provided then BlockDX should start up with the regular production AWS sourced config files. If both are provided then the startup parameter should override the environment variable. When running with a non-default config source this state and the actual configuration files source should be clearly shown in the configuration dialogues.

While this facility is designed with simplifying testing in mind, it could also be useful if anything nasty happens to AWS, like a denial of service attack.

Tasks
[ ] provide an optional startup parameter to override the configuration files source
[ ] provide an environment variable to override the configuration files source
[ ] clearly display in the configuration dialog when a non-standard source is in use, and what the value is
[ ] QA

Missing Emercoin

Emercoin is missing in the list of tradeable assets despite the client being installed and listed as compatible.

Install fails

Install fails

    4  git clone https://github.com/blocknetdx/block-dx.git
    5  ls
    6  cd block-dx/
    7  npm run start-app
    8  sudo dnf install npm
    9  npm run start-app
   10  npm start
   11  history

9 & 10 produce

[user@disp5602 block-dx]$ npm start

[email protected] start /home/user/block-dx
ng serve --host 0.0.0.0

sh: ng: command not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] start: `ng serve --host 0.0.0.0`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/user/.npm/_logs/2019-07-26T10_26_16_505Z-debug.log

Block DX not working on Ubuntu 22.04 (no trades, no orderbook)

After downloading wallets, starting and configure Block DX on ubuntu 22.04 the app opens but there seems to be no trades. The order book is completely empty. The chart is empty.
It was tried for many different cryptocurrencys.

How it was installed (with Bitcoin wallet as example):

  1. You downloaded Bitcoin wallet and Bitcoin blockchain + Blocknet wallet and Blocknet blockchain
  2. You downloaded Block DX
  3. You encrypted both walltes, unlocked them and started Block DX, afterwards you followed configuration wizzard. Everything seems to be fine - but the whole trading portal was completely empty.

It seems that there is no p2p connection, but we do not know.

Automate min_size

TBD:

Min_size needs to be abstracted from the UX, as it is strange and confusing for most traders.A standard min_size (10%) shall be employed.
Min_size should be exposed in advanced settings, to give power users control when they want it.

To avoid network fee and dust threshold issues, min_size shall automatically adjust upwards when order size falls below a certain threshold.

BTC and ETH require larger min_size than other coins.

Pending XBridge enhancements, this should be implemented in Block DX.

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.