andremiras / pywallet Goto Github PK
View Code? Open in Web Editor NEWCross platform Ethereum Wallet built with Python and Kivy
License: MIT License
Cross platform Ethereum Wallet built with Python and Kivy
License: MIT License
We need to setup some coverage testing to have an idea of what's being covered.
On small resolutions (e.g. nexus4) the account list popup shows overlaps/wraps accounts.
We would prefer to have some ellipsis, like it's the case in the account flat button.
We could do two things, increase the popup size and use some ellipsis in the middle.
Command was:
./src/main.py -m screen:phone_nexus_4,portrait,scale=.5
The decorator should just do the following:
thread = Thread(target=target)
thread.start()
For some reason the all the Kivy click events get fired multiple times.
Even moving the mouse above a button fires the event.
Kivy==1.10.0
Code to reproduce:
main.py
:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.config import Config
class Controls(BoxLayout):
pass
class TouchApp(App):
def build(self):
return Controls()
if __name__ == '__main__':
TouchApp().run()
touch.kv
:
#:kivy 1.9.1
<Controls>
Button:
text: 'Touch here'
on_press: print "on_press"
on_release: print "on_release"
Try to make it possible to decrease pbkdf2 for testing purpose.
It currently takes about 2 minutes to generate a new wallet on my Honor 5C smartphone.
Create a custom splash screen (only seen on Android).
pyethapp
currently requires gipc==0.4.0
which is not Python3 compatible.
Python 3 support was added to gipc==0.6.0
.
See pip install error output below:
Collecting gipc==0.4.0 (from pyethapp==1.5.0->-r requirements.txt (line 7))
Downloading gipc-0.4.0.zip
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-ivs7zndf/gipc/setup.py", line 22, in <module>
long_description=open("README.rst").read().decode('utf-8'),
AttributeError: 'str' object has no attribute 'decode'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ivs7zndf/gipc/
Create a custom icon rather than using the default one.
Just like #22, Controller._load_balance()
performs a call to pywalib.get_balance()
which is blocking.
It makes the UI freezes, but it should instead be ran asynchronously.
Make it possible to navigate through widgets using tab key.
This should be enabled for the following screens:
The spend time layout is currently messy on Android.
Make it possible to run unit tests on target Android device.
Some dialog box should appear at first startup.
This is a free and open source software at an early stage of development...
Feedback is more than welcome...
Rather than crashing it should pop-up an error message and give the option to create a wallet.
./main.py
[INFO ] [Logger ] Record log in /home/andre/.kivy/logs/kivy_17-06-12_20.txt
[INFO ] [Kivy ] v1.10.1.dev0, git-Unknown, 20170612
[INFO ] [Python ] v2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [KivyMD ] KivyMD version: 0.1.2
[INFO ] [Text ] Provider: sdl2
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] Backend used <gl>
[INFO ] [GL ] OpenGL version <3.0 Mesa 12.0.6>
[INFO ] [GL ] OpenGL vendor <Intel Open Source Technology Center>
[INFO ] [GL ] OpenGL renderer <Mesa DRI Intel(R) Kabylake GT2 >
[INFO ] [GL ] OpenGL parsed version: 3, 0
[INFO ] [GL ] Shading version <1.30>
[INFO ] [GL ] Texture max size <8192>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [GL ] NPOT texture support is available
Exception TypeError: 'float() argument must be a string or a number' in 'kivy.properties.dpi2px' ignored
Exception TypeError: 'float() argument must be a string or a number' in 'kivy.properties.dpi2px' ignored
[WARNING] [MDBottomNavigation] 50dp is less than the minimum size of 80dp for a MDBottomNavigationItem. We must now expand to 168dp.
[WARNING] [MDBottomNavigation] 33dp is less than the minimum size of 80dp for a MDBottomNavigationItem. We must now expand to 168dp.
[INFO ] [Base ] Start application main loop
WARNING:accounts keystore directory does not exist directory=/home/andre/.config/pyethapp/keystore/
WARNING:accounts no accounts found
INFO:app registering service service=accounts
[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):
File "./main.py", line 40, in <module>
ControllerApp().run()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/app.py", line 828, in run
runTouchApp()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/base.py", line 504, in runTouchApp
EventLoop.window.mainloop()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/core/window/window_sdl2.py", line 663, in mainloop
self._mainloop()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/core/window/window_sdl2.py", line 405, in _mainloop
EventLoop.idle()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/base.py", line 339, in idle
Clock.tick()
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/kivy/clock.py", line 581, in tick
self._process_events()
File "kivy/_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (/tmp/pip-ogTFge-build/kivy/_clock.c:7410)
File "kivy/_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (/tmp/pip-ogTFge-build/kivy/_clock.c:7285)
File "kivy/_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (/tmp/pip-ogTFge-build/kivy/_clock.c:7207)
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (/tmp/pip-ogTFge-build/kivy/_clock.c:3211)
File "./main.py", line 25, in _load_balance
account = pywalib.get_main_account()
File "/home/andre/workspace/PyWallet/pywalib.py", line 73, in get_main_account
account = app.services.accounts[0]
File "/home/andre/workspace/PyWallet/venv/local/lib/python2.7/site-packages/pyethapp/accounts.py", line 508, in __getitem__
return self.accounts[address_or_idx]
IndexError: list index out of range
Travis can't install pbkdf2
when pycryptodome
is installed/
See build 86:
https://travis-ci.org/AndreMiras/PyWallet/builds/246657156
The error is:
�[?25hCollecting PyYAML (from -r requirements.txt (line 1))
/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/build/build/venv/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Using cached PyYAML-3.12.tar.gz
Collecting bitcoin (from -r requirements.txt (line 2))
Using cached bitcoin-1.1.42.tar.gz
Collecting pbkdf2 (from -r requirements.txt (line 7))
Using cached pbkdf2-1.3.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-jlmed6/pbkdf2/setup.py", line 11, in <module>
from pbkdf2 import __version__
File "pbkdf2.py", line 62, in <module>
from Crypto.Hash import HMAC, SHA as SHA1
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet/lib/python2.7/site-packages/Crypto/Hash/HMAC.py", line 81, in <module>
import MD5, BLAKE2s
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet/lib/python2.7/site-packages/Crypto/Hash/BLAKE2s.py", line 83, in <module>
""")
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet/lib/python2.7/site-packages/Crypto/Util/_raw_api.py", line 171, in load_pycryptodome_raw_lib
raise OSError("Cannot load native module '%s'" % name)
OSError: Cannot load native module 'Crypto.Hash._BLAKE2s'
----------------------------------------
�[31mCommand "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-jlmed6/pbkdf2/�[0m
STDERR:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 905, in <module>
main()
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 902, in main
ToolchainCL()
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 508, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 147, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 190, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 585, in build_recipes
File "pythonforandroid/build.py", line 626, in run_pymodules_install
File "pythonforandroid/logger.py", line 175, in shprint
File "/home/travis/.local/lib/python2.7/site-packages/sh.py", line 863, in next
self.wait()
File "/home/travis/.local/lib/python2.7/site-packages/sh.py", line 792, in wait
self.handle_command_exit_code(exit_code)
File "/home/travis/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1
.tar.gz �[0m
working: Complete output from command python setup.py egg_info: �[0m
working: Traceback (most recent call last): �[0m
working: File "<string>", line 1, in <module> �[0m
working: File "/tmp/pip-build-jlmed6/pbkdf2/s...(and 30 more) �[0m
working: from pbkdf2 import __version__ �[0m
working: File "pbkdf2.py", line 62, in <module> �[0m
working: from Crypto.Hash import HMAC, SHA as SHA1 �[0m
working: File "/home/travis/build/AndreMiras...(and 145 more) �[0m
working: import MD5, BLAKE2s �[0m
working: File "/home/travis/build/AndreMiras...(and 148 more) �[0m
working: """) �[0m
working: File "/home/travis/build/AndreMiras...(and 167 more) �[0m
working: raise OSError("Cannot load native ...(and 20 more) �[0m
working: OSError: Cannot load native module 'Cr...(and 19 more) �[0m
working: ---------------------------------------- �[0m
working: �[31mCommand "python setup.py egg_info" f...(and 60 more) �[0m
�[0m�[1;31m# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=pywallet --bootstrap=sdl2 --requirements=hostpython2,kivy,setuptools,openssl,pysha3,ethash,scrypt,bitcoin,rlp,repoze.lru,PyYAML,https://github.com/ethereum/pyethereum/archive/0ae64823d1bccba9c8148adb462060cb83c08f06.zip,https://github.com/ethereum/pydevp2p/archive/cc68f6d69fa88ffaac6f8483392c37eb9f19d712.zip,gevent,pbkdf2,pycryptodome,https://github.com/ethereum/pyethapp/archive/409331e88a397ce5276c430aff4a8866d413e45d.zip,https://gitlab.com/kivymd/KivyMD/repository/archive.zip?ref=7de5790274a45c4fa2fb9c6fcd875645e536c95b,requests,pyelliptic==1.5.7,cffi,secp256k1,qrcode --arch armeabi-v7a --copy-libs --local-recipes /home/travis/build/AndreMiras/PyWallet/src/python-for-android/recipes --color=always --storage-dir=/home/travis/build/AndreMiras/PyWallet/.buildozer/android/platform/build�[0m
�[0m�[1;31m# �[0m
�[0m�[1;31m# Buildozer failed to execute the last command�[0m
�[0m�[1;31m# The error might be hidden in the log above this error�[0m
�[0m�[1;31m# Please read the full log, and search for it before�[0m
�[0m�[1;31m# raising an issue with buildozer itself.�[0m
�[0m�[1;31m# In case of a bug report, please add a full log with log_level = 2�[0m
travis_time:end:27f846b6:start=1498344305016112501,finish=1498345317397764167,duration=1012381651666
�[0K
�[32;1mThe command "./travis/script_android.sh" exited with 0.�[0m```
Also another problem is that the build is still shown as green even though there's an error.
Take a look at https://www.appveyor.com/
Setup a continuous integration testing bot.
It should at least everything build correctly for Linux and Android.
Make it possible to create & manage keystores.
In the secp256k1 recipe, the pkg-config package dependency should be completely skipped. However, it currently seems to be only partly inhibited.
Steps to reproduce, try to install secp256k1 recipe with "pkg-config" not installed on e.g. Ubuntu Xenial, here's the output:
[INFO]: Building secp256k1 for armeabi-v7a [13/1822]
[INFO]: secp256k1 apparently isn't already in site-packages [INFO]: Building compiled components in secp256k1 [INFO]: -> directory context /src/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1 stty: 'standard input': Inappropriate ioctl for device
[INFO]: -> running hostpython setup.py build_ext -v
Exception in thread background thread for pid 14782:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/root/.local/lib/python2.7/site-packages/sh.py", line 1540, in wrap
fn(*args, **kwargs)
File "/root/.local/lib/python2.7/site-packages/sh.py", line 2459, in background_thread
handle_exit_code(exit_code)
File "/root/.local/lib/python2.7/site-packages/sh.py", line 2157, in fn
return self.command.handle_command_exit_code(exit_code)
File "/root/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
raise exc
ErrorReturnCode_1:
RAN: /src/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/hostpython setup.py build_ext -v
STDOUT:
'pkg-config' is required to install this package. Please see the README for details.
STDERR:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/src/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 905, in <module>
main()
File "/src/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 902, in main
ToolchainCL()
File "/src/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 508, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/src/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 147, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/src/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 190, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 565, in build_recipes
File "pythonforandroid/recipe.py", line 890, in build_arch
File "pythonforandroid/recipe.py", line 902, in build_compiled_components
File "pythonforandroid/logger.py", line 175, in shprint
File "/root/.local/lib/python2.7/site-packages/sh.py", line 863, in next
self.wait()
File "/root/.local/lib/python2.7/site-packages/sh.py", line 792, in wait
self.handle_command_exit_code(exit_code)
File "/root/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:
RAN: /src/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/hostpython setup.py build_ext -v
STDOUT:
'pkg-config' is required to install this package. Please see the README for details.
STDERR:
# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=pywallet --bootstrap=sdl2 --requirements=hostpython2,kivy,setuptools,openssl,pycryptodome,pysha3,ethash,scrypt,bitcoin,rlp,repoze.lru,PyYAML,https://github.com/ethereum/pyethereum/arch
ive/0ae64823d1bccba9c8148adb462060cb83c08f06.zip,https://github.com/ethereum/pydevp2p/archive/cc68f6d69fa88ffaac6f8483392c37eb9f19d712.zip,gevent,pbkdf2,https://github.com/ethereum/pyethapp/archive/409331e88a397ce5276c430aff4a8866d413e45d.zip,https://gitlab.com/kivym
d/KivyMD/repository/archive.zip?ref=7de5790274a45c4fa2fb9c6fcd875645e536c95b,requests,pyelliptic==1.5.7,cffi,secp256k1,qrcode --arch armeabi-v7a --copy-libs --local-recipes /src/src/python-for-android/recipes --color=always --storage-dir=/src/.buildozer/android/platf
orm/build
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
I see at least 3 issues:
hostpython setup.py install -O2
bad exit codeautogen.sh: No such file or directory
Using bundled libsecp256k1
(from secp256k1 setup.py) when it should use the libsecp256k1
recipeSee log below:
[INFO]: Building secp256k1 for armeabi-v7a
[INFO]: secp256k1 apparently isn't already in site-packages
[INFO]: Building compiled components in secp256k1
[INFO]: -> directory context /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1
[INFO]: -> running hostpython setup.py build_ext -v
working: Installed /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1/.eggs/pytest_runner-2.6.2-py2.7.egg
working: creating build/lib.linux-x86_64-2.7 [INFO]: ->
running find build/lib.linux-x86_64-2.7 -name "*.o" -exec arm-linux-androideabi-strip --strip-unneeded {} ;
[INFO]: <- directory context /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master
[INFO]: Installing secp256k1 into site-packages
[INFO]: -> directory context /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1
[INFO]: -> running hostpython setup.py install -O2 --root=/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet --install-lib=lib/python2.7/site-packages
working: error: /home/ubuntu/workspace/PyWallet/.buildozer/andException in thread background thread for pid 25480:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 1540, in wrap
fn(*args, **kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 2459, in background_thread
handle_exit_code(exit_code)
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 2157, in fn
return self.command.handle_command_exit_code(exit_code)
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
raise exc
ErrorReturnCode_1:
RAN: /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/hostpython setup.py install -O2 --root=/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet --insta
ll-lib=lib/python2.7/site-packages
STDOUT:
0.29.1
Using bundled libsecp256k1
running install
running build
running build_py
copying secp256k1/__main__.py -> build/lib.linux-x86_64-2.7/secp256k1
copying secp256k1/__init__.py -> build/lib.linux-x86_64-2.7/secp256k1
running build_clib
error: /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1/libsecp256k1/autogen.sh: No such file or directory
STDERR:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 905, in <module>
main()
File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 902, in main
ToolchainCL()
File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 508, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 147, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 190, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 565, in build_recipes
File "pythonforandroid/recipe.py", line 891, in build_arch
File "pythonforandroid/recipe.py", line 859, in install_python_package
File "pythonforandroid/logger.py", line 175, in shprint
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 863, in next
self.wait()
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 792, in wait
self.handle_command_exit_code(exit_code)
File "/home/ubuntu/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:
RAN: /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2/hostpython setup.py install -O2 --root=/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/python-installs/pywallet --insta
ll-lib=lib/python2.7/site-packages
STDOUT:
0.29.1
Using bundled libsecp256k1
running install
running build
running build_py
copying secp256k1/__main__.py -> build/lib.linux-x86_64-2.7/secp256k1
copying secp256k1/__init__.py -> build/lib.linux-x86_64-2.7/secp256k1
running build_clib
error: /home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/build/other_builds/secp256k1/armeabi-v7a/secp256k1/libsecp256k1/autogen.sh: No such file or directory
STDERR:
# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=pywallet --bootstrap=sdl2 --requirements=hostpython2,kivy,setuptools,openssl,pycryptodome,pysha3,ethash,scrypt,bitcoin,rlp,pyethereum,devp2p,gevent,pbkdf2,pyethapp,https://gitlab.com/k
ivymd/KivyMD/repository/archive.zip?ref=7de5790274a45c4fa2fb9c6fcd875645e536c95b,requests,pyelliptic==1.5.7,cffi,secp256k1 --arch armeabi-v7a --copy-libs --local-recipes /home/ubuntu/workspace/PyWallet/python-for-android/recipes --color=always --storage-dir=/home/ubu
ntu/workspace/PyWallet/.buildozer/android/platform/build
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
Make it possible to show current version (and commit hash?) in the about screen.
History values show all decimal digits but should be rounded.
Save generated wallets on device storage.
Make it possible to choose the address to spend from.
With #21 it's currently to spend Ethers, but it defaults to the main account.
Make it possible to backup and restore accounts in the keystore directory through the cloud, e.g. Google Drive.
Recent builds are failing (again) with a OSError: Cannot load native module 'Crypto.Hash._BLAKE2s'
error.
But the build stays green.
Clicking on a transaction should bring to its details view.
https://docs.travis-ci.com/user/caching/
Try to setup some caching to speed-up builds.
For example ~/.buildozer/ directory could be cached, so we don't go through the whole process of redownloading the Android NDK.
Also write tests for the UI, making sure events interact as expected.
Enable the numeric Android keyboard on numeric input fields.
I'm not sure this is already available in Kivy.
I guess we could at least parallelize Linux and Android builds, see official doc:
https://docs.travis-ci.com/user/speeding-up-the-build/
The builds currently take more than 20 minutes to run, e.g. last one: build 101
This is a follow up for #40.
Tests are working on Android, now we need to find a nice way to report them.
Also make them running in background and if possible report the outcome asynchronously in the UI.
I had this issue trying to run on Android:
buildozer android adb -- logcat | grep -i python
06-13 00:24:19.182 17873 18089 I python : Traceback (most recent call last):
06-13 00:24:19.182 17873 18089 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/main.py", line 16, in <module>
06-13 00:24:19.183 17873 18089 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/pywalib.py", line 7, in <module>
06-13 00:24:19.184 17873 18089 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/app.py", line 8, in <module>
06-13 00:24:19.185 17873 18089 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/crypto.py", line 32, in <module>
06-13 00:24:19.186 17873 18089 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/secp256k1/__init__.py", line 5, in <module>
06-13 00:24:19.186 17873 18089 I python : ImportError: dlopen failed: "/data/data/org.test.pywallet/files/app/lib/python2.7/site-packages/secp256k1/_libsecp256k1.so" is 64-bit instead of 32-bit
06-13 00:24:19.272 17873 18089 I python : Python for android ended.
That would allow us to use Ubuntu Xenial.
We could have two Dockerfiles one for Kivy Linux and the other one for Android build.
sudo: required
language: generic
services:
- docker
before_install:
- docker pull ubuntu:16.04
script:
- docker build .
Give access to the transaction history
Running the command below:
pyethapp -l eth.chainservice:debug,p2p.peermgr:debug run
And can't seem to have peers connecting and staying on my node.
Few things to consider:
Running software:
A command line application already has the same name:
https://github.com/jackjack-jj/pywallet
If someone comes with a great name, I can change it.
History._load_history()
performs a call to pywalib.get_transaction_history()
which is blocking.
It makes the UI freezes, but it should instead be ran asynchronously.
Make it possible to see balance and history for different address (filtered or at the same time).
Add continuous integration check for the Android/buildozer build.
This is a follow up for #11.
Both libsecp256k1 and secp256k1 recipes compiles now, but we have a new runtime error.
06-16 22:01:00.449 20940 21112 I python : Traceback (most recent call last):
06-16 22:01:00.450 20940 21112 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/main.py", line 16, in <module>
06-16 22:01:00.450 20940 21112 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/pywalib.py", line 7, in <module>
06-16 22:01:00.451 20940 21112 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/app.py", line 8, in <module>
06-16 22:01:00.451 20940 21112 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/crypto.py", line 32, in <module>
06-16 22:01:00.452 20940 21112 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/secp256k1/__init__.py", line 5, in <module>
06-16 22:01:00.452 20940 21112 I python : ImportError: dlopen failed: cannot locate symbol "PyExc_TypeError" referenced by "/data/data/org.test.pywallet/files/app/lib/python2.7/site-packages/secp256k1/_libsecp256k1.so"...
06-16 22:01:00.521 20940 21112 I python : Python for android ended.
Closing and opening a new dedicated ticket.
Since kivy/python-for-android#1068 was merged, we should switch to it and void the custom src/python-for-android/ directory.
This should not be done before #20 is fixed.
The transaction is signed and tx hash is returned, but then can't seem to find it with find_transaction() and this is on the main network.
Will provide code example soon.
It should be easily feasible to run everything on the Testnet for debugging and testing purposes.
Load existing wallet from storage.
Since we currently can't connect to other nodes using pydevp2p (refs #5), we could publish the (locally signed) transaction to Etherscan.
It should be a receive ETH view that can display address & QR code
06-16 22:46:58.802 23831 23984 I python : Traceback (most recent call last):
06-16 22:46:58.803 23831 23984 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/main.py", line 16, in <module>
06-16 22:46:58.803 23831 23984 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/app/pywalib.py", line 7, in <module>
06-16 22:46:58.804 23831 23984 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/app.py", line 8, in <module>
06-16 22:46:58.804 23831 23984 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/devp2p/crypto.py", line 32, in <module>
06-16 22:46:58.805 23831 23984 I python : File "/home/ubuntu/workspace/PyWallet/.buildozer/android/platform/build/dists/pywallet/private/lib/python2.7/site-packages/secp256k1/__init__.py", line 5, in <module>
06-16 22:46:58.805 23831 23984 I python : ImportError: dlopen failed: cannot locate symbol "secp256k1_ecdsa_sign_recoverable" referenced by "/data/data/org.test.pywallet/files/app/lib/python2.7/site-packages/secp256k1/_libsecp256k1.so"...
06-16 22:46:58.873 23831 23984 I python : Python for android ended.
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.