Code Monkey home page Code Monkey logo

counterparty-gui's People

Contributors

rippler avatar wseng avatar

Stargazers

 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

counterparty-gui's Issues

Option to use the default values for all server, port, username

This is just an idea for a marginal improvement in user friendliness that is probably not necessary in v1.0.

  • Use the same server bitcoin and counterparty server (default: ON)
  • Use the default ports (default: ON)
  • Use the default username (default: ON)

If unchecked, then different servers/ports/accounts could be used.
That could make switching and setting wallet faster and more convenient.
If defaults are encouraged, then switching to a different server (even automatically) could become less painful and in the future if multiple servers could be set in order of priority, automatic switching in case of dropped connection would be easier to setup.

Enable online help in Preferences

Can the little ? thing be enabled with some basic online help/hint info?
I don't know if on-hover hints can be added without having help pages - that would already be quite useful and save a few trips to the forums/docs.

image

BTC transaction history not displayed

screenhunter_04 feb 27 17 28

For Counterparty assets one can see history of transactions, but for BTC that's not possible (although each of the addresses has a non-zero BTC balance)

Improve input validation in the GUI

Address and amount validation could be done in the GUI to lessen error spamming and increase security of the server.

Entering random stuff creates quite a lot (10+) lines in server logs.

Increase menu bar height, add icons?

image

It's tiny in proportion to my screen (maybe 1/30th of my screen vertical resolution).
If icons could be added, that'd be even better to make it easier to click on menu items without having to aim too precisely.

Expand address field width in "Source" and "To"

  • Source could be expanded to more (say, x pixels or % of screen width?) because it's not enough to show the address and amount available at, so anytime you send you potentially need to click on the drop-down address list to see if the address has enough funds
  • To could be expanded enough to show a bitcoin address (now it's not enough)

Column sorting

For Type, Amount, From, To, Block, but at least for Type, From, and To

GUI ignores config file contents

  • GUI from master
  • lib and cli from master as well
rippler@ubuntu:~/counterparty-gui$ counterparty-client --config-file /home/rippler/.config/counterparty/client.testnet.conf wallet[INFO] Running v1.1.0 of counterparty-client.
TOTAL
+-------+---------+
| Asset | Balance |
+-------+---------+
+-------+---------+

Then I pass the same config file to counterparty-gui:

rippler@ubuntu:~/counterparty-gui$ ./counterparty-gui.py --config-file /home/rippler/.config/counterparty/client.testnet.conf
JSON_OUTPUT: False
TESTNET: False
VERBOSE: False
REGULAR_DUST_SIZE: 0.00005430
WALLET_SSL: False
UNCONFIRMED: False
WALLET_PORT: None
WALLET_PASSWORD: None
ENCODING: auto
REQUESTS_TIMEOUT: 5
WALLET_NAME: bitcoincore
CONFIG_FILE: /home/rippler/.config/counterparty/client.testnet.conf
OP_RETURN_VALUE: 0E-8
COUNTERPARTY_RPC_SSL_VERIFY: False
COUNTERPARTY_RPC_CONNECT: localhost
HELP: False
COUNTERPARTY_RPC_PORT: None

And I get this:

wallet RPC password not set. (Use configuration file or --wallet-password=PASSWORD)

It appears that some (e.g. testnet, wallet password) entries are ignored. Others (like server name/IP) are not.

ImportError: cannot import name 'clientapi`

Trying to use counterparty-gui (develop) with develop editions of lib and cli, but it seems the GUI doesn't cooperate. counterparty-server and counterparty-client are working fine.

rippler@ubuntu:~$ pip3 list | grep counter
counterparty-cli (1.0.1)
counterparty-gui (1.0.0) < = also tried to build from zip archive of `develop`
counterparty-lib (9.50.0)

./counterparty-gui/counterparty-gui.py 
Traceback (most recent call last):
  File "./counterparty-gui/counterparty-gui.py", line 2, in <module>
    from counterpartygui.gui import main
  File "/home/rippler/counterparty-gui/counterpartygui/gui.py", line 29, in <module>
    from counterpartygui.api import CounterpartydAPI, CounterpartydRPCError
  File "/home/rippler/counterparty-gui/counterpartygui/api.py", line 14, in <module>
    from counterpartycli import clientapi
ImportError: cannot import name 'clientapi

Define include path/files requirements

  • Python 3.4 x86
  • cx_Freeze 4.3.3 32-bit
  • Qt 5.4.1 32-bit
C:\Python34\counterparty-gui-develop\counterparty-gui-develop>c:\python34\python.exe freeze.py bdist_msi
running bdist_msi
running build
running build_exe
Traceback (most recent call last):
  File "freeze.py", line 95, in <module>
    setup(**setup_options)
  File "c:\python34\lib\site-packages\cx_Freeze\dist.py", line 362, in setup
    distutils.core.setup(**attrs)
  File "c:\python34\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "c:\python34\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "c:\python34\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "c:\python34\lib\site-packages\cx_Freeze\windist.py", line 363, in run
    self.run_command('build')
  File "c:\python34\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "c:\python34\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "c:\python34\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "c:\python34\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "c:\python34\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "c:\python34\lib\site-packages\cx_Freeze\dist.py", line 231, in run
    metadata = metadata)
  File "c:\python34\lib\site-packages\cx_Freeze\freezer.py", line 104, in __init__
    self.includeFiles = self._ProcessPathSpecs(includeFiles)
  File "c:\python34\lib\site-packages\cx_Freeze\freezer.py", line 396, in _ProcessPathSpecs
    source = os.path.normpath(source)
  File "c:\python34\lib\ntpath.py", line 491, in normpath
    if path.startswith(special_prefixes):
AttributeError: 'NoneType' object has no attribute 'startswith'

I tried tinkering with freeze.py, but I couldn't make it work.
Would it be possible to list directories and files that need to be created or downloaded so that freeze.py bdist_msi can work?

When switching to private server, default to nothing

Right now when you pick counterwallet.io, and then restart and try to switch to Private server, the entry defaults to counterwallet.io.

Because that becomes populated, it's easy to not register that it's not (perhaps the expected) the old local host that one may have had there, but counterwallet.io.

It would maybe be more user friendly to leave the field empty and not pre-populate it.

Py2exe alternative

It requires Python 2.6.
While it's OK to install both Python 3 and 2 to get started, how long is it going to remain viable and if counterparty-gui requires Python3 while py2exe is only available for Python2, how is that going to work?

C:\counterparty-gui-develop\counterparty-gui-develop>python setup.py bdist_winin
st
{'app': ['counterpartygui.py'], 'setup_requires': ['py2exe'], 'data_files': ['co
re', 'plugins']}
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option:
 'app'
  warnings.warn(msg)
running bdist_wininst
running build
installing to build\bdist.win32\wininst
running install_data
creating build\bdist.win32\wininst
creating build\bdist.win32\wininst\DATA
warning: install_data: setup script did not provide a directory for 'core' -- in
stalling right in 'build\bdist.win32\wininst\DATA'

error: can't copy 'core': doesn't exist or not a regular file

If "app" distribution option was not mandatory, I'd just install it and run it as-is (not as .exe).

C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option:
 'app'
  warnings.warn(msg)
running install
running bdist_egg
running egg_info
writing counterpartygui.egg-info\PKG-INFO
writing top-level names to counterpartygui.egg-info\top_level.txt
writing dependency_links to counterpartygui.egg-info\dependency_links.txt
reading manifest file 'counterpartygui.egg-info\SOURCES.txt'
writing manifest file 'counterpartygui.egg-info\SOURCES.txt'
installing library code to build\bdist.win32\egg
running install_lib
warning: install_lib: 'build\lib' does not exist -- no Python modules to install

installing package data to build\bdist.win32\egg
running install_data
warning: install_data: setup script did not provide a directory for 'core' -- in
stalling right in 'build\bdist.win32\egg'
error: can't copy 'core': doesn't exist or not a regular file
C:\counterparty-gui-develop\counterparty-gui-develop>

--verbose for debugging?

Would it be useful to add a --verbose option so that log is output to the console (similar to counterparty-client) if GUI is started that way?

Minor issues with "last block" indicator

image

Server Last Block: {} ({}) | Server Version: {} | Wallet Last Block: {}

  • It doesn't show all the time (it appears, then it disappears again), but when it does appear, the entire GUI flashes very quickly, which isn't good
  • Terminology
    • It's not clear which Server Last Block figure is for Counterparty Server and which for Bitcoin (in theory you could connect to another server and have CP be ahead of Bitcoin Core). Assuming the second value is for the blockchain, I'd prefer Last Block: {} (Blockchain {}) | Server Version {} |
    • Wallet Last Block: should we change this to Counterparty GUI Last Block (or counterparty-gui, since that's what's being used throughout)
    • Maybe Server Version doesn't need to be displayed (e.g. it could be shown only in Support > About?): if the version is different from the client, then client may not be able to connect in any case. Once connected, the user then doesn't really need that info, I suppose.

Make Wallet/Plugin menu clickable?

Another low-priority idea.
Currently (RC2) top level menu items on the left hand side are dimmed.

For Wallet, it could show a list of everything in the right hand pane (similar to CW).

For Plugins (TEST), it could show a list with metadata (publisher, URL, version, etc. info)

Linux?

I see you support MacOS X for the moment and seem to plan including Windows (as per build instructions in README.md file). Any plans to also support Linux in the future?

Export transaction history

This is what people frequently ask for.
If it's too complicated to easily implement in the GUI, we can consider one of these:

  • Support > Transactions > runs a CLI command to export all Counterparty-related transactions to a CSV file and prompts to "Save as...". This would be very nice.
  • Support > Debug console > here people could run the same command on their own and we wouldn't need to do anything (but we'd have to have a Debug console

Improve handling of network disconnect

I don't know how hard it is to do, but currently if counterparty-server stops, GUI enters the "not responding" mode similar to when a Windows application hangs.

"QtQuick 2.3" required on Ubuntu 14.04 cannot be found

/counterparty-gui/plugins/send/index.qml:1:1: module "QtQuick" version 2.3 is not installed 
     import QtQuick 2.3; 
     ^ 
Unhandled Exception
Traceback (most recent call last):

v2.3 seems too new for Ubuntu 14.04 (or maybe I can't find the right package?).
Probably a more recent Qt Community Edition is required to be able use the GUI.
I installed Qt 5.4, but it doesn't fix system paths, some additional troubleshooting would be necessary (qtchooser, etc.)

See: https://bugs.launchpad.net/reminders-app/+bug/1404289

Default behavior when running behind

  • I'm trying to restrain myself with requests for enhancements since this is a very early version
  • I expect the GUI to behave the same as the client

Having said that, this is something that I may forget later, so I'll put it here:
screenhunter_03 feb 27 17 14

A workaround at present is Preferences > OK. If things are up to date, that will have the GUI show wallet contents.

While client can't do much else than either hang forever or show a similar message and retry or exit thereupon, a GUI could show useful info.

Please consider these possible enhancements:

  • Display a refresh button or icon (which would be the equivalent of clicking on Preferences > OK)
  • Show some stats (current Bitcoin block height/date, current Counterparty server block height/date, current time/date) to give an idea how things are going because otherwise there's no way to know how much longer one needs to wait.
  • (Possibly) show simple wallet details. Although those may not be up to date, they can be useful. For example, if I haven't transacted since last time I used the GUI, those are most likely correct and if I just want to see what's the current balance, I don't need to wait 30 minutes to see my balance (unless I suspect I was robbed). While the same is possible by going to several (one query for for each wallet address) blockchain explorers, this would be much friendlier.

Enable at least one way to copy an address

I know it's early in dev, but in order to make it easier to test, it would be nice if there was at least one way to copy address to clipboard.

If I want to Receive funds, I would like to be able to copy an address to clipboard in a fashion similar to Bitcoin Core GUI.

Add UTC date column

Block # isn't very informative for users who want to see when transactions happened.
Time (UTC) would be a useful addition here.

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.