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