# Se rendre compte stupidement que sur la gdev il suffit de 3 certifications pour être membre

**URL:** https://forum.duniter.org/t/se-rendre-compte-stupidement-que-sur-la-gdev-il-suffit-de-3-certifications-pour-etre-membre/12696
**Category:** Support
**Created:** [15 November 2024 12:18 UTC](https://forum.duniter.org/t/se-rendre-compte-stupidement-que-sur-la-gdev-il-suffit-de-3-certifications-pour-etre-membre/12696 "2024-11-15T12:18:20Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [15 November 2024 12:18 UTC](https://forum.duniter.org/t/se-rendre-compte-stupidement-que-sur-la-gdev-il-suffit-de-3-certifications-pour-etre-membre/12696/1 "2024-11-15T12:18:20Z")

</div>

**TL;DR** : je suis fatigué et pressé d’avoir affaire à la Ğ1

* * *

En me promenant par hasard dans les identités sur Duniter Panel, j’ai trouvé `Zheny` (index 209, addresse `5GWRRzsgvtZuDp5xREFGwtXnPoH6CYoM1yNwyLabDd1eeicn`) qui est membre mais n’a que 4 certifications. Ce n’est pas un artefact de l’indexeur, puisque Duniter est d’accord sur ça :

```auto
> identity.identities(209)
{
  data: {
    firstEligibleUd: 1
  }
  nextCreatableIdentityOn: 0
  oldOwnerKey: null
  ownerKey: 5GWRRzsgvtZuDp5xREFGwtXnPoH6CYoM1yNwyLabDd1eeicn
  nextScheduled: 5,184,263
  status: Member
}

```

```auto
> certifications.certsByReceiver(209)
[
  [
    45
    9,927,559
  ]
  [
    49
    10,370,140
  ]
  [
    781
    10,446,959
  ]
  [
    1,386
    4,885,368
  ]
]

```

```auto
> certifications.storageIdtyCertMeta(209)
{
  issuedCount: 3
  nextIssuableOn: 2,296,772
  receivedCount: 4
}

```

```auto
> membership.memberships(209)
{
  expireOn: 5,184,263
}

```

# [investigation en cours]

### 1. Trouver le moment où la certification a expiré

```auto
query MyQuery {
  certEvent(where: {cert: {receiver: {name: {_eq: "Zheny"}}}}, orderBy: {blockNumber: DESC}) {
    blockNumber
    eventType
  }
}

```

→ ça a eu lieu au bloc 1,262,656 = `0xf7476ad2a965beb24fd9ba70d76c14a39d6aca0fd05904d62249b92d37dfd6c2`

C’est à ce moment que Zheny passe de 5 certifications reçus à seulement 4 tout en restant membre.

### 2. Lire le code qui gère ça

- `do_remove_cert()` appelle `T::OnRemovedCert::on_removed_cert();` avec l’info `receiver_received_count`
- le handler devrait appeler `do_remove_membership()` avec la raison `MembershipRemovalReason::NotEnoughCerts`
- il y a bien un test unitaire qui gère ça dans `pallets/duniter-wot/src/tests.rs` : `test_certification_expire()`, le fonctionnement attendu est bien testé, mais pas observé sur la gdev

### 3. Se rendre compte qu’il suffit de 3 certifications sur la gdev

```auto
> wot.minCertForMembership()
3

```

🤦‍♂️

→ retirer le tag #bug  
→ changer le titre  
→ délister le sujet  
→ retourner au lit 🛏

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [15 November 2024 12:40 UTC](https://forum.duniter.org/t/se-rendre-compte-stupidement-que-sur-la-gdev-il-suffit-de-3-certifications-pour-etre-membre/12696/2 "2024-11-15T12:40:01Z")

</div>



---

<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: [15 November 2024 13:01 UTC](https://forum.duniter.org/t/se-rendre-compte-stupidement-que-sur-la-gdev-il-suffit-de-3-certifications-pour-etre-membre/12696/3 "2024-11-15T13:01:27Z")

</div>

Ça explique aussi pourquoi la toile Ğdev ne s’est pas encore totalement effondrée 🙂

```sh
gcli identity member-count
member count: 2221

```

Même si tu as cherché un bug qui n’existe pas, tu as fait une démarche utile pour la suite, à savoir débugger. Faut voir le côté positif 🙂
