Attention, à l’attention des codeurs python
En travaillant sur la création de compte avec mnémonique en langue non anglaise, avec le module keypair
du client python substrateinterface
j’obtenais toujours la même adresse entre un mnémonique français et son équivalent en anglais (équivalent selon notre bidouille). Ce qui ne devrait pas être selon le protocole bip39…
J’ai donc découvert avec stupeur que le module keypair
de substrateinterface
fait aussi et déjà ce que nous avons décidé de faire, en utilisant la lib rust compilée pour python bip39
.
Pour générer l’adresse, la seed n’est pas générée depuis le texte du mnémonique, mais depuis l’entropie (l’équivalent des mots en numéro de 0 à 2048), sans mot de passe. Ils appellent la seed “mini secret”.
.venv/lib/python3.7/site-packages/substrateinterface/keypair.py:211
seed_array = bip39_to_mini_secret(mnemonic, "", language_code)
Exemple avec deux mnémoniques équivalents (les mots ont la même valeur dans les wordlists) :
import bip39
bip39.bip39_to_mini_secret('foil apple tribe renew cry risk same trumpet long destroy glare analyst', '', 'en')
[175, 53, 82, 102, 183, 63, 22, 231, 16, 61, 6, 187, 2, 62, 72, 129, 168, 208, 39, 49, 95, 85, 146, 39, 54, 163, 219, 23, 74, 44, 224, 100]
bip39.bip39_to_mini_secret('esquiver alpaga tasse pénurie coiffer pixel potager teneur intense cubique farceur aider', '', 'fr')
[175, 53, 82, 102, 183, 63, 22, 231, 16, 61, 6, 187, 2, 62, 72, 129, 168, 208, 39, 49, 95, 85, 146, 39, 54, 163, 219, 23, 74, 44, 224, 100]
Je me demande donc si c’est une liberté du client python ou aussi des développeurs qui utilisent la lib rust bip39 ?