# FEUILLE DE ROUTE de Tikka

**URL:** https://forum.duniter.org/t/feuille-de-route-de-tikka/8977
**Category:** Tikka
**Created:** [25 December 2021 10:12 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977 "2021-12-25T10:12:43Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [25 December 2021 10:12 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/1 "2021-12-25T10:12:43Z")

</div>

Ce sujet vous tiendra au courant des étapes à venir dans le développement de Tikka.

Tikka se veut être un client bancaire avancé pour les professionnels (entreprises, associations, crypto-investisseurs, etc) de la ğ1 (version Duniter V2S).

**Important :** pas de gestion de la Toile de Confiance de prévue (ça n’a pas de sens pour une entreprise, mais à voir si des collectifs se servent de Tikka et gèrent des comptes membres pour des personnes physiques. Mais je pense que cela mérite un logiciel à part, intégrant Wotwizard.)

Les fonctionnalités ou idées de fonctionnalités, faites ou à faire sont les suivantes :

### Configuration

Interface disponible en plusieurs langues, choix dans la configuration  
 Multi-monnaie, choix dans la configuration

### Connection

Liste de serveurs de confiance pour se connecter à la blockchain  
 Connection par défaut au premier serveur de confiance  
 Ajout d’url de serveurs pour se connecter à la blockchain  
 Affichage des infos du serveur connecté (version, bloc, etc)

### Divers

Affichage des infos de la monnaie (nombre de membres, masse monétaire, montant du DU)  
 Affichage de la licence Ğ1 dans la langue configurée

### Comptes

Création de compte par mnémonique multi langue  
 Import de mnémonique multi langue  
 Import de compte dérivé multi langue  
 Stockage optionnel du trousseau chiffré et protégé par un mot de passe auto généré

Pour chaque compte :

- affichage du solde
- affichage du statut verrouillé/déverrouillé du trousseau stocké
- Affichage du statut de l’identité
- affichage du chemin de dérivation et de l’adresse du compte racine

### Catégories

Classement des comptes par arborescence de catégories (un peu comme gnucash)

### Dérivation

Création du compte racine si absent (stockage trousseau optionnel et déconseillé par sécurité)  
 Affichage groupé des compte dérivés avec la racine en tête, puis //0, //1, //2,4,6,8 (respect de la [RFC](https://forum.duniter.org/t/rfc-pour-les-derivations-des-hd-wallets-dans-duniter-v2s/9331))  
 Gestion des comptes jetables (one-shot accounts `<mnemonic>//<account_id>//1/i`, voir [RFC](https://forum.duniter.org/t/rfc-pour-les-derivations-des-hd-wallets-dans-duniter-v2s/9331))

### Contacts (email, téléphone, profil)

Connection à un carnet d’adresses externe (protocole cardDav)  
 Lier un compte avec une carte de visite cardDav

### Virements

Virement simple avec calcul des frais de transaction  
 Virement avec délai de récupération  
 Virement en Atomic Swap  
 Virement multi-signatures  
 Gestion des virements périodiques automatisés

### Historique transactions

Filtre pour afficher uniquement les transactions qui concernent les comptes déclarés dans l’application  
 Export en fichier au standard OFX (pour logiciel de compta externe)

* * *

[OBSOLETE]  
La première grande nouvelle est que je ne vais pas attendre la migration substrate, et que je vais donc implémenter l’API BMA pour avoir les fonctions de bases rapidement. L’architecture hexagonale permetra de changer d’implémentation (vers substrate) facilement grâce à l’inversion de dépendance.

A venir dans la feuille de route :

- Créer un compte : Ajout du champ mot de passe dans l’IGU prérempli avec le même contenu que le code d’accès (le mnémonique à 12 mots).
- Suppression de la sauvegarde en fichier Dewif car la RFC n’est pas finalisée ([voir ce sujet](https://forum.duniter.org/t/durt-lib-duniter-en-dart/8940)).
- Ajout d’un adaptateur pour l’API BMA de Duniter.

---

<div class="post-metadata">

### Author: ![Attilax](https://forum.duniter.org/user_avatar/forum.duniter.org/attilax/32/4237_2.png) [@Attilax](https://forum.duniter.org/u/Attilax)
#### Post date: [25 December 2021 10:50 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/2 "2021-12-25T10:50:07Z")

</div>

L’aventure Tikka continue. Bravo, mon poulet.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [25 December 2021 11:40 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/3 "2021-12-25T11:40:36Z")

</div>

> [@vit](#):
>
> Suppression de la sauvegarde en fichier Dewif car la RFC n’est pas finalisée ([voir ce sujet](https://forum.duniter.org/t/durt-lib-duniter-en-dart/8940)).

Si la RFC 13 est classé comme validé (c’est d’ailleurs la seule). C’est juste le cas des portefeuilles de type Cesium qui n’est pas pris en compte, il faudrait amender est expliquant stoquer la seed, il faut juste qu’on se mette d’accords sur la taille du padding, j’ai choisi 40 mais je ne saurais le justifier.

Après je ne sais pas comment fait Polkadot, si ils ont un format spécial pour le stockage de leurs wallets.

---

<div class="post-metadata">

### Author: ![kapis](https://forum.duniter.org/user_avatar/forum.duniter.org/kapis/32/7287_2.png) [@kapis](https://forum.duniter.org/u/kapis)
#### Post date: [26 December 2021 12:15 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/4 "2021-12-26T12:15:25Z")

</div>

Great to see so many wallets continuing their developments in G1…

I submitted a change-behaviour feature for Cesium to avoid choosing Portefeuille Simple et Membre at the beggining (just allowing becoming member from a simple to avoid confusions or stress from newbies…, since revocation file can only be downloaded from laptop)

> **[Compte portefeuille simple par défaut (#979) · Issues · clients / Cesium-grp...](https://git.duniter.org/clients/cesium-grp/cesium/-/issues/979)**
>
> Pour éviter que les gens ne soient obsédés ou stressés à l'idée d'obtenir 5 certifications en 2 mois et ne s'embrouillent au début de la création d'un portefeuille...

I hope it can also be considered in Tikka and Gecko…

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [10 January 2022 10:33 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/5 "2022-01-10T10:33:17Z")

</div>

It will be in Tikka. You will need to create an account first, then add an identity to it.  
Then you deal with your identity.

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [10 January 2022 10:50 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/6 "2022-01-10T10:50:24Z")

</div>

Grosse news pour Tikka. Je suis en train de réécrire toute l’interface en PyQt5 ! 😅

L’abandon de wxPython était nécessaire suite à un bug bloquant sur les onglets.  
[J’ai ouvert un ticket](https://github.com/wxWidgets/Phoenix/issues/2060) sans réponse depuis 15 jours, ce qui m’a permis de constater que wxPython a les mêmes libs codées en python et en C. Quand on a un bug en python, ils demandent si on a le même bug sur la lib en C. Et oui, j’ai le même bug sur la lib en C, qui elle n’est pas du ressort de wxPython, mais de wxWidget… Bref j’arrête avec wxPython. Dommage.

Au départ, je cherchais un framework plus léger pour Tikka, PyQt5 étant assez lourd à coder. Mais qui dit plus léger dit aussi incomplet… Après Tkinter et wxPython, c’est finalement un retour à une valeur sûre.

La bonne nouvelle, c’est que Sakia est en PyQt5 aussi, ce qui me conforte dans le fait que c’est un framework qui permet de faire un client complet ! Je picore du code dedans, mais j’en profite aussi pour alléger ce code.

Ce qui est lourd dans PyQt5, c’est le data model pour les tableaux. Pour l’instant je n’utilise pas ce data model et cela me suffit. Espérons que cela dure. 😉

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [19 January 2022 18:49 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/7 "2022-01-19T18:49:18Z")

</div>

Pourquoi ne pas être directement parti sur PyQt6 ?

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [19 January 2022 19:06 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/8 "2022-01-19T19:06:26Z")

</div>

Bien, vu, j’ai hésité effectivement, puis j’ai vu la liste des modules supprimés par rapport à la version 5 et j’ai flippé (surtout la webview) :

[https://doc.qt.io/qt-6/whatsnew60.html#removed-modules-in-qt-6-0](https://doc.qt.io/qt-6/whatsnew60.html#removed-modules-in-qt-6-0)

Réécrire la partie GUI de Tikka était déjà un gros morceau, je me suis dit que explorer un territoire inconnu et très récent était dangereux et consommateur d’énergie. Une fois les fondations en place et les fonctionnalités de base implémentées, je regarderai évidemment si un passage en pyqt6 est possible sans trop de problèmes. Pourquoi pas juste avant d’implémenter l’api de Duniter v2s. 😉

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [31 March 2022 18:06 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/9 "2022-03-31T18:06:10Z")

</div>

Champagne ! Je viens de réussir la première transaction depuis Tikka sur mon serveur DuniterV2S de dev !

![Capture du 2022-03-31 19-40-09](https://forum.duniter.org/uploads/default/original/2X/7/7944d7c8b2f30c7d51636526092e93e72b061f6d.png)

_Ne faîtes pas attention au infos bidons de l’interface, seulement au message **Transfer done**._

La preuve dans Polkadot.js :

 ![Capture du 2022-03-31 20-03-10](https://forum.duniter.org/uploads/default/original/2X/f/f2958cd13151ef4bdcb8248cd9acfe971e949d06.png)

Je peux maintenant envisager de faire une release d’ici une semaine ou deux, avec un logiciel enfin testable à minima pour faire des transactions.

Vous me direz ce que vous pensez de l’ergonomie, mais franchement, les comptes dans des onglets, ça déchire !

Tikka n’est plus une “coquille vide” (expression tout à fait juste de @tuxmain et très drôle rapport au logo de Tikka…).

> [@vit](#):
>
> Ce qui est lourd dans PyQt5, c’est le data model pour les tableaux. Pour l’instant je n’utilise pas ce data model et cela me suffit. Espérons que cela dure. 😉

Bon ben c’est raté, j’ai du utiliser le data model pour la liste des nodes dans l’onglet de connection. Mais c’est assez basique, donc maintenable sans s’arracher les cheveux.

Pour info, j’ai implémenté :

- La requête au serveur DuniterV2S du solde des comptes et leur affichage.
- La requête des infos de la monnaie à partir du serveur DuniterV2S et son affichage dans un onglet dédié.
- Avec ces infos, j’ai pu implémenter un sélecteur d’unité pour l’affichage des montants (unités ou DU).

A bientôt pour la release !

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [31 March 2022 18:17 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/10 "2022-03-31T18:17:27Z")

</div>

> [@vit](#):
>
> Tikka n’est plus une « coquille vide » (expression tout à fait juste de @tuxmain et très drôle rapport au logo de Tikka…).

Je ne me rappelle pas avoir écrit ou dit ça, et je ne le retrouve pas dans la recherche du forum… Es-tu sûr ? J’ai bien dit d’autres bêtises à propos du logo.

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [31 March 2022 18:27 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/11 "2022-03-31T18:27:36Z")

</div>

Bah je ne retrouve plus non plus, mais c’était quand tu avais testé une des première release de Tikka qui ne faisait que créer des comptes. Tu m’avais dit ça, ce qui était tout à fait exact. Je faisais une release pour avoir un avis juste sur l’ergonomie, mais sans aucune fonctionnalité intéressante.  
Et j’ai réalisé tout à l’heure que c’était très drôle rapport au logo avec l’œuf (coquille → œuf). 😉  
Ça m’a fait marré.

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [31 March 2022 18:43 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/12 "2022-03-31T18:43:24Z")

</div>

Cette expression vient d’un de mes messages en privé.  
Ça y est quelque chose commence à prendre forme à l’intérieur de la «&nbsp;coquille vide&nbsp;» 😉

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [23 May 2022 18:41 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/13 "2022-05-23T18:41:50Z")

</div>

Tikka 0.5.2 est disponible.

Feature spéciale RML16 :

- Importer un compte : supporte les chemins de dérivation, du genre **[mnemonic]//[account\_id]//0**, mais aussi les comptes de dev comme **//Alice**

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [24 May 2022 15:54 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/14 "2022-05-24T15:54:58Z")

</div>

Tikka 0.5.2 a un bug bloquant !

**Impossible d’importer un mnemonic en français.**

Ce n’est pas de mon fait, mais un bug dans la bibliothèque Python `substrate-interface`.  
J’ai ouvert un ticket :

> <https://github.com/polkascan/py-substrate-interface/issues/218>
>
> Version: 1.2.4
> 
> \`Keypair.create\_from\_uri()\` raise an exception on french mnemo…nic.
> 
> \`\`\`python
> suri\_regex = re.match(r'^(?P\<phrase\>\\w+( \\w+)\*)(?P\<path\>(//?\[^/\]+)\*)(///(?P\<password\>.\*))?$', suri)
>     
> \> suri\_parts = suri\_regex.groupdict()
> E AttributeError: 'NoneType' object has no attribute 'groupdict'
> \`\`\`
> It seems that the regexp does not handle french special characters.
> 
> So I added a test in my local repo to confirm and the test raise an exception on \_french\_ only, \_chinese\_ is ok:
> 
> \`\`\`python
> def test\_hdkd\_multi\_lang(self):
> mnemonic\_path = "秘 心 姜 封 迈 走 描 朗 出 莫 人 口//0"
> keypair = Keypair.create\_from\_uri(mnemonic\_path, language\_code=MnemonicLanguageCode.CHINESE\_SIMPLIFIED)
> self.assertNotEqual(keypair, None)
> 
> mnemonic\_path = "nation armure tympan devancer temporel capsule ogive médecin acheter narquois abrasif brasier"
> keypair = Keypair.create\_from\_uri(mnemonic\_path, language\_code=MnemonicLanguageCode.FRENCH)
> self.assertNotEqual(keypair, None)
> \`\`\`

Je peux faire une rustine sale (on pourra importer un mnemonic français, mais pas de chemin de dérivation en français) pour les RML16 si besoin. Dîtes moi.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [24 May 2022 16:21 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/15 "2022-05-24T16:21:53Z")

</div>

Perso j’utilise des mnemonic anglais donc ça ne me gène pas.

Par conter ce qui me gène c’est de ne pas pouvoir indiquer l’adresse du nœud à joindre, une fois la ĞDev lancée le nœud ne sera pas sur localhost 😅

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [24 May 2022 16:46 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/16 "2022-05-24T16:46:13Z")

</div>

Bien sûr que tu peux.  
Menu **Réseau/Noeuds** ouvre l’onglet **Noeuds du réseau**.

Pour ajouter un point d’entrée, il faut entrer ton endpoint dans le champ **Point d’entrée** de l’onglet puis valider avec «&nbsp;enter&nbsp;». Tu peux aussi modifier celui affiché.

Ensuite, tu affiches la liste de la combo box en cliquant sur la flèche, et sélectionne le nouveau point d’entrée pour te connecter.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [24 May 2022 16:48 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/17 "2022-05-24T16:48:34Z")

</div>

Oui j’avais vu et essayé mais ça ne marchais pas, donc je croyais que c’était factive (avce l’interface seule sans implémentation).  
Il faut que je réessaye, je n’ai peut-être pas validé avec enter, car habitué aux UX qui auto-valide toute modif d’un champ, ou qui valide quand le focus sort du champ 🙂

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [25 May 2022 18:39 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/18 "2022-05-25T18:39:53Z")

</div>

En améliorant l’ergonomie grâce aux retours précieux des pionniers sur Tikka, je viens de découvrir des erreurs aléatoires (le pire bug…) dans les requêtes RPC.

J’ai la quasi certitude que le problème vient du fait que le client websocket (officiel python) est censé supporté le multithread, mais visiblement pas… Les requêtes reçoivent des réponses vides ou erronées, qui ne sont sûrement pas les leurs. En mode pas à pas, avec des breakpoints, j’ai quasi zero erreur.

Donc, si vous rencontrez le problème : je suis au courant, j’y travaille (mise en place d’une file d’attente des requêtes websocket, comme j’ai déjà fait pour la database qui elle aussi ne supportait pas le multithread). On est pas aidé, hein ! A suivre…

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [25 May 2022 18:50 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/19 "2022-05-25T18:50:32Z")

</div>

> [@vit](#):
>
> J’ai la quasi certitude que le problème vient du fait que le client websocket (officiel python) est censé supporté le multithread, mais visiblement pas…

À tu vérifié s’il y a une issue ouverte, si c’est un problème connu par les mainteneurs ? Sinon il faut leur signaler 🙂

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [26 May 2022 11:30 UTC](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977/20 "2022-05-26T11:30:04Z")

</div>

> [@elois](#):
>
> À tu vérifié s’il y a une issue ouverte, si c’est un problème connu par les mainteneurs ? Sinon il faut leur signaler 🙂

Non, pas pensé. Je vais le faire tu as raison.

Sortie de Tikka 0.5.3 :

- Paiement plus facile (pas besoin de taper “enter” pour valider le destinataire).
- Nouveau menu Réseau/Ajouter un point d’entrée qui ouvre une fenêtre permettant de tester et ajouter un nouveau point d’entrée.

[Next page](https://forum.duniter.org/t/feuille-de-route-de-tikka/8977.md?page=2)
