sakia issueshttps://git.duniter.org/clients/python/sakia/-/issues2020-12-07T20:45:54+01:00https://git.duniter.org/clients/python/sakia/-/issues/820‘ascii’ codec can’t encode character ‘\xab’ in position 234: ordinal not in r...2020-12-07T20:45:54+01:00poka‘ascii’ codec can’t encode character ‘\xab’ in position 234: ordinal not in range(128)En naviguant dans la WoT graphique:
An unhandled exception occured
----
Traceback (most recent call last):
File "/tmp/.mount_sakia.4RAJyE/usr/python/lib/python3.6/site-packages/sakia/services/network.py", line 243, i...En naviguant dans la WoT graphique:
An unhandled exception occured
----
Traceback (most recent call last):
File "/tmp/.mount_sakia.4RAJyE/usr/python/lib/python3.6/site-packages/sakia/services/network.py", line 243, in handle_new_node
if key.verify_document(peer):
File "/tmp/.mount_sakia.4RAJyE/usr/python/lib/python3.6/site-packages/duniterpy/key/verifying_key.py", line 44, in verify_document
prepended = signature + bytes(content_to_verify, "ascii")
UnicodeEncodeError: 'ascii' codec can't encode character '\xab' in position 234: ordinal not in range(128)
Il semble tout de même m'avoir affiché le résultat donc je ne sais pas trop ce qu'il essai de faire.
Ca ne me l'a pas refait après.
Le lien de remonté aux développeurs envoi sur l'ancien github de sakia désormais inexistant.https://git.duniter.org/clients/python/sakia/-/issues/819Replace asyncio by Qt Concurrent2020-12-13T11:15:17+01:00Vincent TexierReplace asyncio by Qt ConcurrentReplace all asyncio.Future by the Qt framework QFuture class.
* Code will be more readable and maintainable without all async/await keywords
* Get rid of the need of squamash
See example in https://www.qt.io/blog/asynchronous-apis-in-q...Replace all asyncio.Future by the Qt framework QFuture class.
* Code will be more readable and maintainable without all async/await keywords
* Get rid of the need of squamash
See example in https://www.qt.io/blog/asynchronous-apis-in-qt-6
This is not possible with Qt5, as the QFuture binding is missing in PyQt5 and Pyside2:
https://wiki.qt.io/Qt_for_Python_Missing_Bindings
We have to upgrade to Qt6, and switch from `PyQt5` to `PySide6` which has a `QFutureInterfaceBase` binding...futureVincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/818please dupport duniterpy 0.602020-11-01T14:07:05+01:00Jonas Smedegaardplease dupport duniterpy 0.60sakia declares a dependency on duniterpy 0.57.
Current release of duniterpy is 0.60.
Please adapt sakia to support duniterpy 0.60.sakia declares a dependency on duniterpy 0.57.
Current release of duniterpy is 0.60.
Please adapt sakia to support duniterpy 0.60.https://git.duniter.org/clients/python/sakia/-/issues/814always display pubkey with checksum2020-07-23T12:21:38+02:00matograinealways display pubkey with checksumI have seen two cases of lost transaction due to wrong manual copy of a pubkey. I think the use of a checksum should become a norm in Duniter clients.
So, I propose that Sakia should always display pubkeys as <pubkey>:<checksum>I have seen two cases of lost transaction due to wrong manual copy of a pubkey. I think the use of a checksum should become a norm in Duniter clients.
So, I propose that Sakia should always display pubkeys as <pubkey>:<checksum>https://git.duniter.org/clients/python/sakia/-/issues/812HD Wallet feature2020-07-07T21:38:28+02:00Vincent TexierHD Wallet featureAdd HD wallet generation feature.
https://coinsutra.com/hd-wallets-deterministic-wallet/
wait for DuniterPy issue to be implemented.Add HD wallet generation feature.
https://coinsutra.com/hd-wallets-deterministic-wallet/
wait for DuniterPy issue to be implemented.futureVincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/810Endless error when syncing + "envoyer comme source"2020-11-28T13:23:25+01:00matograineEndless error when syncing + "envoyer comme source"Sakia launched from a terminal. Under Debian 10. Installed with Pip.
I tried the new feature "secure send" + "send as source". I had no problem with secure sending.
I sent my test transfer "as source" shortly after. Then, on the next s...Sakia launched from a terminal. Under Debian 10. Installed with Pip.
I tried the new feature "secure send" + "send as source". I had no problem with secure sending.
I sent my test transfer "as source" shortly after. Then, on the next sync of the blockchain, I got an endless error :
```
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
RuntimeError: cannot enter context: <Context object at 0x7f12d44ecfc0> is already entered
```
The error window pops out endlessly until I close the terminal window.
On the terminal, I get this :
```
("Unhandled error in custom exception handler\ncontext: {'message': 'Exception in callback _SelectorSocketTransport._read_ready()', 'exception': RuntimeError('cannot enter context: <Context object at 0x7f12d44ecfc0> is already entered'), 'handle': <Handle _SelectorSocketTransport._read_ready()>}",), {'exc_info': (<class 'RecursionError'>, RecursionError('maximum recursion depth exceeded'), <traceback object at 0x7f12d60a1e48>)}
--- Logging error ---
--- Logging error ---
("Unhandled error in custom exception handler\ncontext: {'message': 'Exception in callback _SelectorSocketTransport._read_ready()', 'exception': RuntimeError('cannot enter context: <Context object at 0x7f12d44ecfc0> is already entered'), 'handle': <Handle _SelectorSocketTransport._read_ready()>}",), {'exc_info': (<class 'RecursionError'>, RecursionError('maximum recursion depth exceeded'), <traceback object at 0x7f12d44c64c8>)}
--- Logging error ---
--- Logging error ---
("Unhandled error in custom exception handler\ncontext: {'message': 'Exception in callback _SelectorSocketTransport._read_ready()', 'exception': RuntimeError('cannot enter context: <Context object at 0x7f12d44ecfc0> is already entered'), 'handle': <Handle _SelectorSocketTransport._read_ready()>}",), {'exc_info': (<class 'RecursionError'>, RecursionError('maximum recursion depth exceeded'), <traceback object at 0x7f12d44c6888>)}
```https://git.duniter.org/clients/python/sakia/-/issues/808Change deprecated keywords in gitlab-ci.yml2020-04-24T10:41:18+02:00Vincent TexierChange deprecated keywords in gitlab-ci.ymlSome keywords will be removed in version 13 of Gitlab.
https://about.gitlab.com/releases/2020/04/22/gitlab-12-10-released/#release-deprecations
Use `rules` instead of `only` and `except`.Some keywords will be removed in version 13 of Gitlab.
https://about.gitlab.com/releases/2020/04/22/gitlab-12-10-released/#release-deprecations
Use `rules` instead of `only` and `except`.Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/806Refactor transaction entity and table to match sources2020-04-05T20:24:08+02:00Vincent TexierRefactor transaction entity and table to match sourcesTransactions are stored as transaction document, but some fields like amount and base are a sum of the outputs.
To match each source with an transaction output, we need to split transactions by output.
For example, a transaction from A...Transactions are stored as transaction document, but some fields like amount and base are a sum of the outputs.
To match each source with an transaction output, we need to split transactions by output.
For example, a transaction from Alice to Bob sending 100 to Bob, from a source of 1000, will have two outputs.
So, instead of having only one transaction in the table, we will have two.
Many fields stay the same, except `amount`, `base`, `noffset` and `conditions`.
|Pubkey (Account)|Issuers|Identifier|amount|base|noffset|conditions|
|----|---|---|---|-|-|-|
|Alice|Alice|XXXX|100|0|0|SIG(Bob)|
|Alice|Alice|XXXX|900|0|1|SIG(Alice)|
|Bob|Alice|XXXX|100|0|0|SIG(Bob)|
We need to simulate all use case to see what entries we can ignore...
This system will allow to display money back if inputs is greater than output.
So if we allow this display we can choose it as source if we want!1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/805Add authentication from files2020-04-03T20:02:35+02:00Vincent TexierAdd authentication from filesAdd the possibility to link a Sakia account with a authentication file.
Each time credentials or secret key is needed, try to load the secrets from the filepath given.
All format supported by duniterpy should be handled.Add the possibility to link a Sakia account with a authentication file.
Each time credentials or secret key is needed, try to load the secrets from the filepath given.
All format supported by duniterpy should be handled.1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/804Add support to Atomic swap transfer and lock conditions2020-04-03T19:44:41+02:00Vincent TexierAdd support to Atomic swap transfer and lock conditionsAtomic swap process need passwords, password hashes and delay on lock conditions.
It also need to have multi signature or passwords to unlock conditions.
Add all necessary code and GUI to support the full process.
![atomic swap schema...Atomic swap process need passwords, password hashes and delay on lock conditions.
It also need to have multi signature or passwords to unlock conditions.
Add all necessary code and GUI to support the full process.
![atomic swap schema](https://forum.duniter.org/uploads/default/original/2X/8/8d93562d49280ac959fce992272200660e447abd.svg)1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/803Upgrade PyQt5 to version 5.15.x2020-11-28T12:22:14+01:00Vincent TexierUpgrade PyQt5 to version 5.15.xMay be it will fix the following bug:
* `pylupdate5` do not extract translated string if the `black` format utility added a comma after the string !May be it will fix the following bug:
* `pylupdate5` do not extract translated string if the `black` format utility added a comma after the string !1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/801Crash with logging error2020-11-28T12:19:46+01:00Vincent TexierCrash with logging errorWhen running about an hour without any action, it crash and repeat this error in console:
`("Unhandled error in custom exception handler\ncontext: {'message': 'Exception in callback _SelectorSocketTransport._read_ready()', 'exception': ...When running about an hour without any action, it crash and repeat this error in console:
`("Unhandled error in custom exception handler\ncontext: {'message': 'Exception in callback _SelectorSocketTransport._read_ready()', 'exception': RuntimeError('cannot enter context: <Context object at 0x7fdc8c5ef510> is already entered'), 'handle': <Handle _SelectorSocketTransport._read_ready()>}",), {'exc_info': (<class 'RecursionError'>, RecursionError('maximum recursion depth exceeded'), <traceback object at 0x7fdc94027d48>)}`
Need control-c to stop.
It is clearly a infinite recursion, but where ?
Recursion exception is now well supported by logging:
https://bugs.python.org/issue36272
So this is a logging in a recursion which raise this.
May be the following crawling network error logging : `ERROR:sakia:Could not parse field HeadV1`
But it is not in a recursive function...https://git.duniter.org/clients/python/sakia/-/issues/800Add static typing in all the code to be mypy compliant2020-03-23T11:14:29+01:00Vincent TexierAdd static typing in all the code to be mypy compliantAdd static typing in all the code.
Use mypy to check that the static typing is correct.Add static typing in all the code.
Use mypy to check that the static typing is correct.1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/799Clean up all the code to be pylint compliant2020-03-23T11:12:25+01:00Vincent TexierClean up all the code to be pylint compliantUse pylint to check all the code and modify it accordingly.Use pylint to check all the code and modify it accordingly.1.0.0Vincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/796Support ScuttleButt keypair as credentials2020-03-23T11:23:17+01:00Vincent TexierSupport ScuttleButt keypair as credentials[ScuttleButt is a p2p social network of a new kind](https://scuttlebutt.nz/).
The ScuttleButt keypair created in $HOME/.ssb folder use the same elliptic algorithm than Duniter Ğ1.
So it is easy to handle an account using the ssb keypai...[ScuttleButt is a p2p social network of a new kind](https://scuttlebutt.nz/).
The ScuttleButt keypair created in $HOME/.ssb folder use the same elliptic algorithm than Duniter Ğ1.
So it is easy to handle an account using the ssb keypair as credentials.
For a start, just add a "Add account from scuttlebut account" button.futureVincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/794Create a Sakia account from pubkey when no peer available raise an exception2020-03-11T12:44:04+01:00Vincent TexierCreate a Sakia account from pubkey when no peer available raise an exceptionGUI stay there without closing the window, but an uncaught exception is raised:
future: <Task finished coro=<ConnectionConfigController.process() done, defined at /home/vit/Documents/dev/python/sakia/src/sakia/gui/dialogs/connection_cfg...GUI stay there without closing the window, but an uncaught exception is raised:
future: <Task finished coro=<ConnectionConfigController.process() done, defined at /home/vit/Documents/dev/python/sakia/src/sakia/gui/dialogs/connection_cfg/controller.py:120> exception=TypeError('disconnect() of all signals failed',)>
Traceback (most recent call last):
File "/home/vit/Documents/dev/python/sakia/src/sakia/gui/dialogs/connection_cfg/controller.py", line 157, in process
self.view.button_accept.disconnect()
TypeError: disconnect() of all signals failedfutureVincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/792Fix Ğ1 Licence not translated2020-03-06T20:04:56+01:00Vincent TexierFix Ğ1 Licence not translatedThe Ğ1 licence is not translated.
Because the code try to translate a loaded file, and so the strings never appears in the code.
We should load a different file for each language.The Ğ1 licence is not translated.
Because the code try to translate a loaded file, and so the strings never appears in the code.
We should load a different file for each language.futureVincent TexierVincent Texierhttps://git.duniter.org/clients/python/sakia/-/issues/790Add referential by plugin2020-02-19T17:34:24+01:00Vincent TexierAdd referential by pluginBe sure that the plugin system can add referential.
Add an example plugin doing just that.Be sure that the plugin system can add referential.
Add an example plugin doing just that.futurehttps://git.duniter.org/clients/python/sakia/-/issues/788Upgrade Python requirement from 3.5 to 3.62018-08-08T10:26:42+02:00Vincent TexierUpgrade Python requirement from 3.5 to 3.6To allow static typing on local variables, we must upgrade to Python 3.6.
To help automatically fulfilled the code with static typing, we need to use [MonkeyType](https://pypi.org/project/MonkeyType/).
To automatically freeze code styl...To allow static typing on local variables, we must upgrade to Python 3.6.
To help automatically fulfilled the code with static typing, we need to use [MonkeyType](https://pypi.org/project/MonkeyType/).
To automatically freeze code style, we need [Black](https://github.com/ambv/black).
Both require Python 3.6 version.
So I suggest to require Python 3.6 minimum for Sakia.insoinsohttps://git.duniter.org/clients/python/sakia/-/issues/787Problème récurrent ouverture de Sakia2018-07-14T13:55:11+02:00matograineProblème récurrent ouverture de SakiaBonjour,
Je rencontre une erreur presque chaque fois que j'ouvre Sakia, après quelques secondes/minutes. Parfois (rarement), elle n'arrive pas.
Mon ordinateur est sous Debian stable, a Duniter-Desktop installé et Silkaj depuis peu (mai...Bonjour,
Je rencontre une erreur presque chaque fois que j'ouvre Sakia, après quelques secondes/minutes. Parfois (rarement), elle n'arrive pas.
Mon ordinateur est sous Debian stable, a Duniter-Desktop installé et Silkaj depuis peu (mais je rencontrais la même erreur avant).
Cette erreur n'est pas bloquante dans la synchronisation. En revanche, j'ai perdu mes contacts (je pense que c'est plutôt lié à une réinstallation)
### Message ###
Task exception was never retrieved
future: <Task finished coro=<NetworkService.check_ws2p_heads() done, defined at sakia/services/network.py:249> exception=AttributeError("'NoneType' object has no attribute 'group'",)>
----
Traceback (most recent call last):
File "asyncio/tasks.py", line 240, in _step
File "sakia/services/network.py", line 268, in check_ws2p_heads
File "site-packages/duniterpy/documents/ws2p/heads.py", line 153, in from_inline
File "site-packages/duniterpy/documents/ws2p/heads.py", line 117, in from_inline
AttributeError: 'NoneType' object has no attribute 'group'
### fin du message ###
J'en profite pour vous faire remonter que la fenêtre d'erreur pointe vers le GitHub Sakia, et non le GitLab.
Merci à vous !
Matograine