counterpartyxcp / counterparty-gui Goto Github PK
View Code? Open in Web Editor NEWGUI for counterparty-lib
License: MIT License
GUI for counterparty-lib
License: MIT License
This is just an idea for a marginal improvement in user friendliness that is probably not necessary in v1.0.
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.
When seen in Programs and Features, publisher is shown as UNKNOWN
.
SignTool:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa387764(v=vs.85).aspx
This is a good chance to build it in early on
http://doc.qt.io/qt-5/accessible.html
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.
As subject.
swap
could be exchange
(or trade
, although I prefer exchange
).
Add Cancel
below OK
?
I am using the testnet network but I didn't check it.
I assume that this might be for the case one's creds are the same so it only appends --testnet
to connect, but I'm not sure.
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 fundsTo
could be expanded enough to show a bitcoin address (now it's not enough)For Type, Amount, From, To, Block, but at least for Type, From, and To
Use font.pointSize instead of pixelSize?
See http://qt-project.org/forums/viewthread/27201
Or maybe add Preferences > Settings > Font Type/Size
?
On my Window fonts are a bit small.
This is related to accessibility requirements from #15
master
lib
and cli
from master
as wellrippler@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.
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
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?
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.
Have a non-divisible asset, try to send 0.01 of it and get the insufficient funds message.
Something like:
counterparty-client
and counterparty-gui
, and maybe wget to show the latest release of counterparty-gui
available)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>
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?
Server Last Block: {} ({}) | Server Version: {} | Wallet Last Block: {}
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)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.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)
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?
This is what people frequently ask for.
If it's too complicated to easily implement in the GUI, we can consider one of these:
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.
/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.)
Can windowIcon be added to main window?
Having said that, this is something that I may forget later, so I'll put it here:
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:
Preferences > OK
)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.
Block #
isn't very informative for users who want to see when transactions happened.
Time (UTC)
would be a useful addition here.
Like in Bitcoin Core client.
To not freeze the UI
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.