Un DU doit-il pouvoir être créé sur un compte vide?

Avec la MR !172 (mise à jour vers substrate 0.9.42), il n’est plus aussi facile qu’avant de forcer l’existence d’un compte vide. Cela implique que le scénario suivant n’est plus possible (cf thread Upgrade to Polkadot v0.9.42 (!172) · Merge requests · nodes / rust / Duniter v2S · GitLab) :

  1. un compte est membre mais a zéro ĞD
  2. un DU est créé
  3. le compte réclame son DU et a donc 1DUĞD sur son compte

Je le trouvais symboliquement fort même s’il arrive peu souvent. On a donc le choix entre :

  • chercher à rétablir ce comportement en modifiant duniter-account
  • abandonner ce comportement, même un compte membre sera soumis au dépôt existentiel

Ça nous ramène à cette proposition → Proposition to remove duniter-account pallet
…sauf que maintenant on aimerait aussi exonérer les frais de transactions dans certains cas, et ça aurait sa place dans cette pallet.

Bref.

C’est plus pour partager les réflexions sur le code que vraiment pour trouver une solution.

1 Like

Comment peut-on devenir membre avec un compte vide ? (payer les frais de l’extrinsic pour valider l’identité)

Cela dit actuellement claimUd n’est pas autorisé si on a le dépôt existentiel. En effet il faudrait pouvoir réclamer son DU et en déduire les frais après, sinon on peut se retrouver bloqué.

3 Likes

En cas de suppression d’identité qui n’a pas réclamé tous ses DU :

  1. le compte est vide, mais l’identité existe
  2. l’identité est supprimée par le système, le DU non réclamés sont collectés automatiquement
  3. les DU se retrouvent alors ajoutés sur un compte vide qui n’a plus d’identité associée

C’est pénible le code sans spécifications, ça force à envisager vraiment tous les cas possibles. J’aimerais bien qu’on ait dans l’équipe des gens qui s’intéressent à la logique formelle et aux spécifications.

1 Like