From 2b7cdefc1e4e171b5f8064e66b57e5424ea14611 Mon Sep 17 00:00:00 2001
From: bgallois <benjamin@gallois.cc>
Date: Wed, 6 Dec 2023 19:15:52 +0100
Subject: [PATCH] update metadata and docs

---
 docs/api/runtime-calls.md      |  32 ++++-----
 docs/api/runtime-errors.md     |   4 +-
 docs/api/runtime-events.md     | 118 ++++++++++++++++-----------------
 docs/dev/pallet_conventions.md |   4 +-
 resources/metadata.scale       | Bin 133159 -> 133142 bytes
 5 files changed, 77 insertions(+), 81 deletions(-)

diff --git a/docs/api/runtime-calls.md b/docs/api/runtime-calls.md
index f1ef287ed..f6b99dfcd 100644
--- a/docs/api/runtime-calls.md
+++ b/docs/api/runtime-calls.md
@@ -13,7 +13,7 @@ through on-chain governance mechanisms.
 
 ## User calls
 
-There are **79** user calls from **23** pallets.
+There are **80** user calls from **23** pallets.
 
 ### Account - 1
 
@@ -694,6 +694,20 @@ Revoke an identity using a revocation signature
 
 Any signed origin can execute this call.
 
+#### force_remove_identity - 5
+
+<details><summary><code>force_remove_identity(idty_index, idty_name, reason)</code></summary>
+
+```rust
+idty_index: T::IdtyIndex
+idty_name: Option<IdtyName>
+reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
+```
+</details>
+
+
+remove an identity from storage
+
 #### fix_sufficients - 7
 
 <details><summary><code>fix_sufficients(owner_key, inc)</code></summary>
@@ -1565,7 +1579,7 @@ exist altogether, thus there is no way it would have been approved in the first
 
 ## Root calls
 
-There are **20** root calls from **10** pallets.
+There are **19** root calls from **10** pallets.
 
 ### System - 0
 
@@ -1802,20 +1816,6 @@ O(P) where P is the number of max proposals
 
 ### Identity - 41
 
-#### remove_identity - 5
-
-<details><summary><code>remove_identity(idty_index, idty_name, reason)</code></summary>
-
-```rust
-idty_index: T::IdtyIndex
-idty_name: Option<IdtyName>
-reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
-```
-</details>
-
-
-remove an identity from storage
-
 #### prune_item_identities_names - 6
 
 <details><summary><code>prune_item_identities_names(names)</code></summary>
diff --git a/docs/api/runtime-errors.md b/docs/api/runtime-errors.md
index 1efc9f85c..16b6fe3bb 100644
--- a/docs/api/runtime-errors.md
+++ b/docs/api/runtime-errors.md
@@ -638,7 +638,7 @@ Insufficient certifications received to claim membership.
 <li>
 <details>
 <summary>
-<code>DistanceNotOK</code> - 1</summary>
+<code>DistanceNotOk</code> - 1</summary>
 Distance has not received a positive evaluation.
 </details>
 </li>
@@ -966,7 +966,7 @@ Insufficient certifications received to claim membership.
 <li>
 <details>
 <summary>
-<code>DistanceNotOK</code> - 1</summary>
+<code>DistanceNotOk</code> - 1</summary>
 Distance has not received a positive evaluation.
 </details>
 </li>
diff --git a/docs/api/runtime-events.md b/docs/api/runtime-events.md
index a326fd833..ab06c6d7a 100644
--- a/docs/api/runtime-events.md
+++ b/docs/api/runtime-events.md
@@ -1,6 +1,6 @@
 # Runtime events
 
-There are **130** events from **37** pallets.
+There are **129** events from **37** pallets.
 
 <ul>
 <li>System - 0
@@ -1182,11 +1182,12 @@ reason: IdtyRemovalReason<T::IdtyRemovalOtherReason>
 <li>
 <details>
 <summary>
-<code>MembershipAcquired()</code> - 0</summary>
+<code>MembershipAcquired(member, expire_on)</code> - 0</summary>
 A membership was acquired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1194,11 +1195,12 @@ A membership was acquired.
 <li>
 <details>
 <summary>
-<code>MembershipExpired()</code> - 1</summary>
-A membership expired.
+<code>MembershipTerminated(member, reason)</code> - 1</summary>
+A membership was terminated.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+reason: MembershipTerminationReason
 ```
 
 </details>
@@ -1206,11 +1208,12 @@ A membership expired.
 <li>
 <details>
 <summary>
-<code>MembershipRenewed()</code> - 2</summary>
-A membership was renewed.
+<code>PendingMembershipAdded(member, expire_on)</code> - 2</summary>
+A pending membership was added.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1218,35 +1221,11 @@ A membership was renewed.
 <li>
 <details>
 <summary>
-<code>MembershipRequested()</code> - 3</summary>
-A membership was requested.
+<code>PendingMembershipExpired(member)</code> - 3</summary>
+A pending membership has expired.
 
 ```rust
-: T::IdtyId
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MembershipRevoked()</code> - 4</summary>
-A membership was revoked.
-
-```rust
-: T::IdtyId
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>PendingMembershipExpired()</code> - 5</summary>
-A pending membership request has expired.
-
-```rust
-: T::IdtyId
+member: T::IdtyId
 ```
 
 </details>
@@ -1303,22 +1282,27 @@ receiver: T::IdtyIndex
 </li>
 <li>Distance - 44
 <ul>
-</ul>
-</li>
-<li>SmithSubWot - 50
-<ul>
-</ul>
+<li>
+<details>
+<summary>
+<code>EvaluationRequested(idty_index, who)</code> - 0</summary>
+A distance evaluation was requested.
+
+```rust
+idty_index: T::IdtyIndex
+who: T::AccountId
+```
+
+</details>
 </li>
-<li>SmithMembership - 52
-<ul>
 <li>
 <details>
 <summary>
-<code>MembershipAcquired()</code> - 0</summary>
-A membership was acquired.
+<code>EvaluationUpdated(evaluator)</code> - 1</summary>
+A distance evaluation was updated.
 
 ```rust
-: T::IdtyId
+evaluator: T::AccountId
 ```
 
 </details>
@@ -1326,23 +1310,33 @@ A membership was acquired.
 <li>
 <details>
 <summary>
-<code>MembershipExpired()</code> - 1</summary>
-A membership expired.
+<code>EvaluationStatusForced(idty_index, status)</code> - 2</summary>
+A distance status was forced.
 
 ```rust
-: T::IdtyId
+idty_index: T::IdtyIndex
+status: Option<(<T as frame_system::Config>::AccountId, DistanceStatus)>
 ```
 
 </details>
 </li>
+</ul>
+</li>
+<li>SmithSubWot - 50
+<ul>
+</ul>
+</li>
+<li>SmithMembership - 52
+<ul>
 <li>
 <details>
 <summary>
-<code>MembershipRenewed()</code> - 2</summary>
-A membership was renewed.
+<code>MembershipAcquired(member, expire_on)</code> - 0</summary>
+A membership was acquired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1350,11 +1344,12 @@ A membership was renewed.
 <li>
 <details>
 <summary>
-<code>MembershipRequested()</code> - 3</summary>
-A membership was requested.
+<code>MembershipTerminated(member, reason)</code> - 1</summary>
+A membership was terminated.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+reason: MembershipTerminationReason
 ```
 
 </details>
@@ -1362,11 +1357,12 @@ A membership was requested.
 <li>
 <details>
 <summary>
-<code>MembershipRevoked()</code> - 4</summary>
-A membership was revoked.
+<code>PendingMembershipAdded(member, expire_on)</code> - 2</summary>
+A pending membership was added.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
+expire_on: BlockNumberFor<T>
 ```
 
 </details>
@@ -1374,11 +1370,11 @@ A membership was revoked.
 <li>
 <details>
 <summary>
-<code>PendingMembershipExpired()</code> - 5</summary>
-A pending membership request has expired.
+<code>PendingMembershipExpired(member)</code> - 3</summary>
+A pending membership has expired.
 
 ```rust
-: T::IdtyId
+member: T::IdtyId
 ```
 
 </details>
diff --git a/docs/dev/pallet_conventions.md b/docs/dev/pallet_conventions.md
index c9ae7f7bc..e5175f305 100644
--- a/docs/dev/pallet_conventions.md
+++ b/docs/dev/pallet_conventions.md
@@ -30,6 +30,6 @@ Hooks are inherently infallible, and no errors should be emitted within them. To
 
 Internal functions should adhere to the following naming convention:
 
-- `do_action` for regular functions executing the base logic of a call (e.g., `do_remove_identity`). These functions should directly emit events and trigger errors as needed.
-- `force_action` for privileged functions that bypass any checks. This can be useful for specific benchmarking functions.
+- `do_action_` for regular functions executing the base logic of a call (e.g., `do_remove_identity_`). These functions should directly emit events and trigger errors as needed.
+- `force_action_` for privileged functions that bypass any checks. This can be useful for specific benchmarking functions.
 - `check_` for functions performing checks and triggering errors in case of failure.
diff --git a/resources/metadata.scale b/resources/metadata.scale
index 8cba70d82084d4a6c13159a9585ad29f6c8e7c00..f58b8a595ce72573f5272d20e8ff73f1c2ae058f 100644
GIT binary patch
delta 12910
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

delta 12757
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
Qnf`wsqa>>#YmX``02rkm2LJ#7

-- 
GitLab