Syntax (doc)

This commit is contained in:
NicolasCantu 2024-02-16 18:21:40 +01:00
parent ea801d3b6e
commit ac509abf3f
2 changed files with 205 additions and 204 deletions

View File

@ -3,36 +3,36 @@
* 2. [Portée](#Porte) * 2. [Portée](#Porte)
* 3. [3. Documents de référence](#Documentsderfrence) * 3. [3. Documents de référence](#Documentsderfrence)
* 4. [Commun aux `RequestPcd` et RequestPrd](#CommunauxRequestPcdetRequestPrd) * 4. [Commun aux `RequestPcd` et RequestPrd](#CommunauxRequestPcdetRequestPrd)
* 4.1. [Création et envoi](#Crationetenvoi) * 4.1. [Création et envoi](#Crationetenvoi)
* 4.2. [Réception](#Rception) * 4.2. [Réception](#Rception)
* 5. [Fonction des RequestPcd](#FonctiondesRequestPcd) * 5. [Fonction des RequestPcd](#FonctiondesRequestPcd)
* 5.1. [Création et envoi](#Crationetenvoi-1) * 5.1. [Création et envoi](#Crationetenvoi-1)
* 5.2. [Réception](#Rception-1) * 5.2. [Réception](#Rception-1)
* 6. [Fonction des RequestPrd](#FonctiondesRequestPrd) * 6. [Fonction des RequestPrd](#FonctiondesRequestPrd)
* 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles) * 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
* 6.2. [Création et envoi](#Crationetenvoi-1) * 6.2. [Création et envoi](#Crationetenvoi-1)
* 6.3. [Réception](#Rception-1) * 6.3. [Réception](#Rception-1)
* 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd) * 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
* 7.1. [Création et envoi](#Crationetenvoi-1) * 7.1. [Création et envoi](#Crationetenvoi-1)
* 7.2. [Réception](#Rception-1) * 7.2. [Réception](#Rception-1)
* 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages) * 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
* 8.1. [Création et envoi](#Crationetenvoi-1) * 8.1. [Création et envoi](#Crationetenvoi-1)
* 8.2. [Réception](#Rception-1) * 8.2. [Réception](#Rception-1)
* 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd) * 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd)
* 9.1. [Création et envoi](#Crationetenvoi-1) * 9.1. [Création et envoi](#Crationetenvoi-1)
* 9.2. [Réception](#Rception-1) * 9.2. [Réception](#Rception-1)
* 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception) * 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
* 10.1. [Création et envoi](#Crationetenvoi-1) * 10.1. [Création et envoi](#Crationetenvoi-1)
* 10.2. [Réception](#Rception-1) * 10.2. [Réception](#Rception-1)
* 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande) * 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
* 11.1. [Création et envoi](#Crationetenvoi-1) * 11.1. [Création et envoi](#Crationetenvoi-1)
* 11.2. [Réception](#Rception-1) * 11.2. [Réception](#Rception-1)
* 12. [RequestPrdKeyHelloBakcup](#RequestPrdKeyHelloBakcup) * 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup)
* 12.1. [Création et envoi](#Crationetenvoi-1) * 12.1. [Création et envoi](#Crationetenvoi-1)
* 12.2. [Réception](#Rception-1) * 12.2. [Réception](#Rception-1)
* 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits) * 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
* 13.1. [Création et envoi](#Crationetenvoi-1) * 13.1. [Création et envoi](#Crationetenvoi-1)
* 13.2. [Réception](#Rception-1) * 13.2. [Réception](#Rception-1)
* 14. [Exemples de Code](#ExemplesdeCode) * 14. [Exemples de Code](#ExemplesdeCode)
* 15. [Todo](#Todo) * 15. [Todo](#Todo)
@ -239,7 +239,6 @@ Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_versi
### 9.2. <a name='Rception-1'></a>Réception ### 9.2. <a name='Rception-1'></a>Réception
La réception d'un `RequestPrdUpdate` suit plusieurs étapes : La réception d'un `RequestPrdUpdate` suit plusieurs étapes :
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
@ -282,7 +281,7 @@ Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, pui
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Notification de l'utilisateur. 2. Notification de l'utilisateur.
## 12. <a name='RequestPrdKeyHelloBakcup'></a>RequestPrdKeyBakcup ## 12. <a name='RequestPrdKeyBakcup'></a>RequestPrdKeyBakcup
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` . Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .

View File

@ -1,95 +1,95 @@
<!-- vscode-markdown-toc --> <!-- vscode-markdown-toc -->
* 1. [Documents de référence](#Documentsderfrence) * 1. [Documents de référence](#Documentsderfrence)
* 2. [Methods](#Methods) * 2. [Methods](#Methods)
* 2.1. [DepositMethod](#DepositMethod) * 2.1. [DepositMethod](#DepositMethod)
* 2.2. [CommitmentMethod](#CommitmentMethod) * 2.2. [CommitmentMethod](#CommitmentMethod)
* 2.3. [PaymentMethod](#PaymentMethod) * 2.3. [PaymentMethod](#PaymentMethod)
* 3. [Items](#Items) * 3. [Items](#Items)
* 3.1. [ItemArtefact](#ItemArtefact) * 3.1. [ItemArtefact](#ItemArtefact)
* 3.2. [ItemCommitmentPublicAttributeGroup](#ItemCommitmentPublicAttributeGroup) * 3.2. [ItemCommitmentPublicAttributeGroup](#ItemCommitmentPublicAttributeGroup)
* 3.3. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup) * 3.3. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup)
* 3.4. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup) * 3.4. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup)
* 3.5. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup) * 3.5. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup)
* 3.6. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup) * 3.6. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup)
* 3.7. [ItemCommitment](#ItemCommitment) * 3.7. [ItemCommitment](#ItemCommitment)
* 3.8. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup) * 3.8. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup)
* 3.9. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup) * 3.9. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup)
* 3.10. [ItemDeposit](#ItemDeposit) * 3.10. [ItemDeposit](#ItemDeposit)
* 3.11. [ItemEnum](#ItemEnum) * 3.11. [ItemEnum](#ItemEnum)
* 3.12. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup) * 3.12. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup)
* 3.13. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup) * 3.13. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup)
* 3.14. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup) * 3.14. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup)
* 3.15. [ItemPayment](#ItemPayment) * 3.15. [ItemPayment](#ItemPayment)
* 3.16. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup) * 3.16. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup)
* 3.17. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup) * 3.17. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup)
* 3.18. [ItemPeer](#ItemPeer) * 3.18. [ItemPeer](#ItemPeer)
* 3.19. [ItemProcess](#ItemProcess) * 3.19. [ItemProcess](#ItemProcess)
* 3.20. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup) * 3.20. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup)
* 3.21. [Item](#Item) * 3.21. [Item](#Item)
* 4. [Encryption](#Encryption) * 4. [Encryption](#Encryption)
* 4.1. [KeyEncryption](#KeyEncryption) * 4.1. [KeyEncryption](#KeyEncryption)
* 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit) * 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit)
* 5. [Messages](#Messages) * 5. [Messages](#Messages)
* 5.1. [Message](#Message) * 5.1. [Message](#Message)
* 5.2. [MessageConnect](#MessageConnect) * 5.2. [MessageConnect](#MessageConnect)
* 5.3. [MessageGeneric](#MessageGeneric) * 5.3. [MessageGeneric](#MessageGeneric)
* 5.4. [Pow](#Pow) * 5.4. [Pow](#Pow)
* 5.5. [SharedProcess](#SharedProcess) * 5.5. [SharedProcess](#SharedProcess)
* 5.6. [SharedPeer](#SharedPeer) * 5.6. [SharedPeer](#SharedPeer)
* 6. [Relay](#Relay) * 6. [Relay](#Relay)
* 6.1. [L1Node](#L1Node) * 6.1. [L1Node](#L1Node)
* 6.2. [L1Miner](#L1Miner) * 6.2. [L1Miner](#L1Miner)
* 6.3. [L2Node](#L2Node) * 6.3. [L2Node](#L2Node)
* 6.4. [L2Certif](#L2Certif) * 6.4. [L2Certif](#L2Certif)
* 7. [Metadata](#Metadata) * 7. [Metadata](#Metadata)
* 7.1. [MetadataContractPublic](#MetadataContractPublic) * 7.1. [MetadataContractPublic](#MetadataContractPublic)
* 7.2. [MetadataPrivate](#MetadataPrivate) * 7.2. [MetadataPrivate](#MetadataPrivate)
* 7.3. [MetadataRoleConfidential](#MetadataRoleConfidential) * 7.3. [MetadataRoleConfidential](#MetadataRoleConfidential)
* 7.4. [Amount](#Amount) * 7.4. [Amount](#Amount)
* 7.5. [Number](#Number) * 7.5. [Number](#Number)
* 8. [Request](#Request) * 8. [Request](#Request)
* 9. [ RequestPcd](#RequestPcd) * 9. [RequestPcd](#RequestPcd)
* 9.1. [Pagination](#Pagination) * 9.1. [Pagination](#Pagination)
* 9.2. [ RequestPcdItemEncAttributePublic](#RequestPcdItemEncAttributePublic) * 9.2. [RequestPcdItemEncAttributePublic](#RequestPcdItemEncAttributePublic)
* 9.3. [ RequestPcdItemEncAttributeRoleConfidential](#RequestPcdItemEncAttributeRoleConfidential) * 9.3. [RequestPcdItemEncAttributeRoleConfidential](#RequestPcdItemEncAttributeRoleConfidential)
* 9.4. [ RequestPcdItemEncAttributePrivate](#RequestPcdItemEncAttributePrivate) * 9.4. [RequestPcdItemEncAttributePrivate](#RequestPcdItemEncAttributePrivate)
* 9.5. [ RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc) * 9.5. [RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc)
* 9.6. [ RequestPcdItemEnc](#RequestPcdItemEnc) * 9.6. [RequestPcdItemEnc](#RequestPcdItemEnc)
* 10. [RequestPrd](#RequestPrd) * 10. [RequestPrd](#RequestPrd)
* 10.1. [RequestPrdResponse](#RequestPrdResponse) * 10.1. [RequestPrdResponse](#RequestPrdResponse)
* 10.2. [RequestPrdConfirm](#RequestPrdConfirm) * 10.2. [RequestPrdConfirm](#RequestPrdConfirm)
* 10.3. [RequestPrdKeyBackup](#RequestPrdKeyBackup) * 10.3. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
* 10.4. [RequestPrdKeyHello](#RequestPrdKeyHello) * 10.4. [RequestPrdKeyHello](#RequestPrdKeyHello)
* 10.5. [RequestPrdList](#RequestPrdList) * 10.5. [RequestPrdList](#RequestPrdList)
* 10.6. [RequestPrdMessage](#RequestPrdMessage) * 10.6. [RequestPrdMessage](#RequestPrdMessage)
* 10.7. [RequestPrdResponse](#RequestPrdResponse-1) * 10.7. [RequestPrdResponse](#RequestPrdResponse-1)
* 10.8. [RequestPrdUpdate](#RequestPrdUpdate) * 10.8. [RequestPrdUpdate](#RequestPrdUpdate)
* 11. [Roles](#Roles) * 11. [Roles](#Roles)
* 11.1. [Role](#Role) * 11.1. [Role](#Role)
* 11.2. [Conditions](#Conditions) * 11.2. [Conditions](#Conditions)
* 11.2.1. [ConditionCap](#ConditionCap) * 11.2.1. [ConditionCap](#ConditionCap)
* 11.2.2. [ConditionCommitment](#ConditionCommitment) * 11.2.2. [ConditionCommitment](#ConditionCommitment)
* 11.2.3. [ConditionDeposit](#ConditionDeposit) * 11.2.3. [ConditionDeposit](#ConditionDeposit)
* 11.2.4. [ConditionOrchestration](#ConditionOrchestration) * 11.2.4. [ConditionOrchestration](#ConditionOrchestration)
* 11.2.5. [ConditionPayment](#ConditionPayment) * 11.2.5. [ConditionPayment](#ConditionPayment)
* 11.2.6. [Condition RequestPrdAddressSet](#ConditionRequestPrdAddressSet) * 11.2.6. [Condition RequestPrdAddressSet](#ConditionRequestPrdAddressSet)
* 11.2.7. [ConditionPublish](#ConditionPublish) * 11.2.7. [ConditionPublish](#ConditionPublish)
* 11.2.8. [RolesGroup](#RolesGroup) * 11.2.8. [RolesGroup](#RolesGroup)
* 11.2.9. [RoleArtefact](#RoleArtefact) * 11.2.9. [RoleArtefact](#RoleArtefact)
* 11.2.10. [RoleDeposit](#RoleDeposit) * 11.2.10. [RoleDeposit](#RoleDeposit)
* 11.2.11. [RoleCommitment](#RoleCommitment) * 11.2.11. [RoleCommitment](#RoleCommitment)
* 11.2.12. [RoleMember](#RoleMember) * 11.2.12. [RoleMember](#RoleMember)
* 11.2.13. [RolePayment](#RolePayment) * 11.3. [RolePeer](#RolePeer)
* 11.2.14. [RoleProcess](#RoleProcess) * 11.3.1. [RolePayment](#RolePayment)
* 11.3. [TransactionMode](#TransactionMode) * 11.3.2. [RoleProcess](#RoleProcess)
* 11.4. [RolePeer](#RolePeer) * 11.4. [TransactionMode](#TransactionMode)
* 12. [12. Rust considerations](#Rustconsiderations) * 12. [12. Rust considerations](#Rustconsiderations)
* 12.1. [ General Implications for Project Objects](#GeneralImplicationsforProjectObjects) * 12.1. [General Implications for Project Objects](#GeneralImplicationsforProjectObjects)
* 12.2. [ Debug](#Debug) * 12.2. [Debug](#Debug)
* 12.3. [ Default](#Default) * 12.3. [Default](#Default)
* 12.4. [ PartialEq, Eq](#PartialEqEq) * 12.4. [PartialEq, Eq](#PartialEqEq)
* 12.5. [ Hash](#Hash) * 12.5. [Hash](#Hash)
* 12.6. [ PartialOrd, Ord](#PartialOrdOrd) * 12.6. [PartialOrd, Ord](#PartialOrdOrd)
* 13. [Todo](#Todo) * 13. [Todo](#Todo)
<!-- vscode-markdown-toc-config <!-- vscode-markdown-toc-config
@ -98,12 +98,13 @@
/vscode-markdown-toc-config --> /vscode-markdown-toc-config -->
<!-- /vscode-markdown-toc --># Specs - Datas <!-- /vscode-markdown-toc --># Specs - Datas
## 1. <a name='Documentsderfrence'></a>Documents de référence ## 1. <a name='Documentsderfrence'></a>Documents de référence
Voir [Doc_references.md](Doc_references.md). Voir [Doc_references.md](Doc_references.md).
## 2. <a name='Methods'></a>Methods
### 2.1. <a name='DepositMethod'></a>DepositMethod ## 2. <a name='Methods'></a>Methods
### 2.1. <a name='DepositMethod'></a>DepositMethod
The `DepositMethod` struct identifies a specific deposit method, encapsulating the approach or mechanism for deposits within the system. The `DepositMethod` struct identifies a specific deposit method, encapsulating the approach or mechanism for deposits within the system.
@ -111,7 +112,7 @@ The `DepositMethod` struct identifies a specific deposit method, encapsulating t
|----------------|--------------|--------|------------------------------| |----------------|--------------|--------|------------------------------|
| `method` | ```String``` | | Represents a deposit method. | | `method` | ```String``` | | Represents a deposit method. |
### 2.2. <a name='CommitmentMethod'></a>CommitmentMethod ### 2.2. <a name='CommitmentMethod'></a>CommitmentMethod
`CommitmentMethod` represents a particular method of commitment, defining how commitments are made or managed in the system. `CommitmentMethod` represents a particular method of commitment, defining how commitments are made or managed in the system.
@ -119,7 +120,7 @@ The `DepositMethod` struct identifies a specific deposit method, encapsulating t
|----------------|--------------|--------|---------------------------------| |----------------|--------------|--------|---------------------------------|
| `method` | ```String``` | | Represents a commitment method. | | `method` | ```String``` | | Represents a commitment method. |
### 2.3. <a name='PaymentMethod'></a>PaymentMethod ### 2.3. <a name='PaymentMethod'></a>PaymentMethod
`PaymentMethod` specifies a payment mechanism, detailing the method used for financial transactions. `PaymentMethod` specifies a payment mechanism, detailing the method used for financial transactions.
@ -127,9 +128,9 @@ The `DepositMethod` struct identifies a specific deposit method, encapsulating t
|----------------|--------------|--------|------------------------------------------------------| |----------------|--------------|--------|------------------------------------------------------|
| `method` | ```String``` | | La méthode de paiement représentée par cette struct. | | `method` | ```String``` | | La méthode de paiement représentée par cette struct. |
## 3. <a name='Items'></a>Items ## 3. <a name='Items'></a>Items
### 3.1. <a name='ItemArtefact'></a>ItemArtefact ### 3.1. <a name='ItemArtefact'></a>ItemArtefact
`ItemArtefact` associates an item with artefact-specific attributes, including public, confidential, and private attribute groups, to represent artefacts within the system. `ItemArtefact` associates an item with artefact-specific attributes, including public, confidential, and private attribute groups, to represent artefacts within the system.
@ -140,7 +141,7 @@ The `DepositMethod` struct identifies a specific deposit method, encapsulating t
| `role_confidential_attribute_group` | ```Vec<String>``` | | A list of role-specific confidential attributes for the artefact. | | `role_confidential_attribute_group` | ```Vec<String>``` | | A list of role-specific confidential attributes for the artefact. |
| `private_attribute_group` | ```Vec<String>``` | | A list of private attributes associated with the artefact. | | `private_attribute_group` | ```Vec<String>``` | | A list of private attributes associated with the artefact. |
### 3.2. <a name='ItemCommitmentPublicAttributeGroup'></a>ItemCommitmentPublicAttributeGroup ### 3.2. <a name='ItemCommitmentPublicAttributeGroup'></a>ItemCommitmentPublicAttributeGroup
This struct groups public attributes related to commitments, such as goals and provider types, to publicly share commitment details. This struct groups public attributes related to commitments, such as goals and provider types, to publicly share commitment details.
@ -154,7 +155,7 @@ This struct groups public attributes related to commitments, such as goals and p
| `ref_request_pcd_hash_list` | ```Vec<String>``` | | A list of reference hashes for RequestPcd documents related to this commitment. | | `ref_request_pcd_hash_list` | ```Vec<String>``` | | A list of reference hashes for RequestPcd documents related to this commitment. |
| `payload_public_list` | ```Vec<String>``` | | A list of public payloads associated with this commitment. | | `payload_public_list` | ```Vec<String>``` | | A list of public payloads associated with this commitment. |
### 3.3. <a name='ItemMemberPublicAttributeGroup'></a>ItemMemberPublicAttributeGroup ### 3.3. <a name='ItemMemberPublicAttributeGroup'></a>ItemMemberPublicAttributeGroup
`ItemMemberPublicAttributeGroup` outlines public attributes for members, including service provider addresses and payment methods, for transparency in member-related information. `ItemMemberPublicAttributeGroup` outlines public attributes for members, including service provider addresses and payment methods, for transparency in member-related information.
@ -169,7 +170,7 @@ This struct groups public attributes related to commitments, such as goals and p
| `payment_method_list_public` | ```Vec<String>``` | | A list of public payment methods available. | | `payment_method_list_public` | ```Vec<String>``` | | A list of public payment methods available. |
| `succession_process_hash` | ```String``` | | The hash of the succession process associated with this item. | | `succession_process_hash` | ```String``` | | The hash of the succession process associated with this item. |
### 3.4. <a name='ItemDepositPublicAttributeGroup'></a>ItemDepositPublicAttributeGroup ### 3.4. <a name='ItemDepositPublicAttributeGroup'></a>ItemDepositPublicAttributeGroup
It details public attributes for deposits, including target addresses and goals, facilitating the understanding of deposit objectives. It details public attributes for deposits, including target addresses and goals, facilitating the understanding of deposit objectives.
@ -184,7 +185,7 @@ It details public attributes for deposits, including target addresses and goals,
| `payload_list_public` | ```Vec<String>``` | | A list of public payloads associated with this deposit. | | `payload_list_public` | ```Vec<String>``` | | A list of public payloads associated with this deposit. |
| `audit_code_list_public` | ```Vec<String>``` | | A list of public audit codes associated with this deposit. | | `audit_code_list_public` | ```Vec<String>``` | | A list of public audit codes associated with this deposit. |
### 3.5. <a name='ItemCommitmentRoleConfidentialAttributeGroup'></a>ItemCommitmentRoleConfidentialAttributeGroup ### 3.5. <a name='ItemCommitmentRoleConfidentialAttributeGroup'></a>ItemCommitmentRoleConfidentialAttributeGroup
This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information. This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information.
@ -192,7 +193,7 @@ This struct encompasses role-specific confidential attributes for commitments, s
|-----------------------------|-------------------|--------|------------------------------------------------------------------| |-----------------------------|-------------------|--------|------------------------------------------------------------------|
| `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this commitment. | | `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this commitment. |
### 3.6. <a name='ItemCommitmentPrivateAttributeGroup'></a>ItemCommitmentPrivateAttributeGroup ### 3.6. <a name='ItemCommitmentPrivateAttributeGroup'></a>ItemCommitmentPrivateAttributeGroup
`ItemCommitmentPrivateAttributeGroup` contains private attributes for commitments, ensuring privacy for the most sensitive commitment details. `ItemCommitmentPrivateAttributeGroup` contains private attributes for commitments, ensuring privacy for the most sensitive commitment details.
@ -200,7 +201,7 @@ This struct encompasses role-specific confidential attributes for commitments, s
|------------------------|-------------------|--------|-------------------------------------------------------------| |------------------------|-------------------|--------|-------------------------------------------------------------|
| `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this commitment. | | `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this commitment. |
### 3.7. <a name='ItemCommitment'></a>ItemCommitment ### 3.7. <a name='ItemCommitment'></a>ItemCommitment
`ItemCommitment` links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment. `ItemCommitment` links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment.
@ -211,7 +212,7 @@ This struct encompasses role-specific confidential attributes for commitments, s
| `role_confidential_attribute_group` | ```ItemCommitmentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this commitment. | | `role_confidential_attribute_group` | ```ItemCommitmentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this commitment. |
| `private_attribute_group` | ```ItemCommitmentPrivateAttributeGroup``` | | The private attribute group associated with this commitment. | | `private_attribute_group` | ```ItemCommitmentPrivateAttributeGroup``` | | The private attribute group associated with this commitment. |
### 3.8. <a name='ItemDepositRoleConfidentialAttributeGroup'></a>ItemDepositRoleConfidentialAttributeGroup ### 3.8. <a name='ItemDepositRoleConfidentialAttributeGroup'></a>ItemDepositRoleConfidentialAttributeGroup
Similar to its commitment counterpart, this struct holds confidential attributes specific to deposits, protecting sensitive deposit information. Similar to its commitment counterpart, this struct holds confidential attributes specific to deposits, protecting sensitive deposit information.
@ -220,7 +221,7 @@ Similar to its commitment counterpart, this struct holds confidential attributes
| `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this deposit. | | `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this deposit. |
| `audit_code_list_confidential` | ```Vec<String>``` | | A list of confidential audit codes associated with this deposit. | | `audit_code_list_confidential` | ```Vec<String>``` | | A list of confidential audit codes associated with this deposit. |
### 3.9. <a name='ItemDepositPrivateAttributeGroup'></a>ItemDepositPrivateAttributeGroup ### 3.9. <a name='ItemDepositPrivateAttributeGroup'></a>ItemDepositPrivateAttributeGroup
`ItemDepositPrivateAttributeGroup` secures private deposit attributes, safeguarding the most sensitive aspects of deposits. `ItemDepositPrivateAttributeGroup` secures private deposit attributes, safeguarding the most sensitive aspects of deposits.
@ -229,7 +230,7 @@ Similar to its commitment counterpart, this struct holds confidential attributes
| `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this deposit. | | `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this deposit. |
| `audit_code_private` | ```String``` | | A private audit code associated with this deposit. | | `audit_code_private` | ```String``` | | A private audit code associated with this deposit. |
### 3.10. <a name='ItemDeposit'></a>ItemDeposit ### 3.10. <a name='ItemDeposit'></a>ItemDeposit
It combines an item with deposit-specific attributes, including public, confidential, and private groups, to comprehensively represent a deposit. It combines an item with deposit-specific attributes, including public, confidential, and private groups, to comprehensively represent a deposit.
@ -240,7 +241,7 @@ It combines an item with deposit-specific attributes, including public, confiden
| `role_confidential_attribute_group` | ```ItemDepositRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this deposit. | | `role_confidential_attribute_group` | ```ItemDepositRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this deposit. |
| `private_attribute_group` | ```ItemDepositPrivateAttributeGroup``` | | The private attribute group associated with this deposit. | | `private_attribute_group` | ```ItemDepositPrivateAttributeGroup``` | | The private attribute group associated with this deposit. |
### 3.11. <a name='ItemEnum'></a>ItemEnum ### 3.11. <a name='ItemEnum'></a>ItemEnum
This enumeration represents different types of items within a system, where each variant encapsulates a specific struct for a type of item: This enumeration represents different types of items within a system, where each variant encapsulates a specific struct for a type of item:
@ -252,7 +253,7 @@ This enumeration represents different types of items within a system, where each
* **```Artefact(ItemArtefact)```**: Contains an item of type ItemArtefact, representing an artefact. * **```Artefact(ItemArtefact)```**: Contains an item of type ItemArtefact, representing an artefact.
* **```Commitment(ItemCommitment)```**: Contains an item of type ItemCommitment, representing a commitment. * **```Commitment(ItemCommitment)```**: Contains an item of type ItemCommitment, representing a commitment.
### 3.12. <a name='ItemPaymentPublicAttributeGroup'></a>ItemPaymentPublicAttributeGroup ### 3.12. <a name='ItemPaymentPublicAttributeGroup'></a>ItemPaymentPublicAttributeGroup
This struct organizes public payment attributes, detailing aspects like service provider addresses and payment goals, for public knowledge. This struct organizes public payment attributes, detailing aspects like service provider addresses and payment goals, for public knowledge.
@ -270,7 +271,7 @@ This struct organizes public payment attributes, detailing aspects like service
| `payload_list_public` | ```Vec<String>``` | | A list of public payloads associated with this payment. | | `payload_list_public` | ```Vec<String>``` | | A list of public payloads associated with this payment. |
| `audit_code_list_public` | ```Vec<String>``` | | A list of public audit codes associated with this payment. | | `audit_code_list_public` | ```Vec<String>``` | | A list of public audit codes associated with this payment. |
### 3.13. <a name='ItemPaymentRoleConfidentialAttributeGroup'></a>ItemPaymentRoleConfidentialAttributeGroup ### 3.13. <a name='ItemPaymentRoleConfidentialAttributeGroup'></a>ItemPaymentRoleConfidentialAttributeGroup
It holds confidential payment attributes, maintaining the confidentiality of critical payment information. It holds confidential payment attributes, maintaining the confidentiality of critical payment information.
@ -279,7 +280,7 @@ It holds confidential payment attributes, maintaining the confidentiality of cri
| `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this payment. | | `payload_list_confidential` | ```Vec<String>``` | | A list of confidential payloads associated with this payment. |
| `audit_code_list_confidential` | ```Vec<String>``` | | A list of confidential audit codes associated with this payment. | | `audit_code_list_confidential` | ```Vec<String>``` | | A list of confidential audit codes associated with this payment. |
### 3.14. <a name='ItemPaymentPrivateAttributeGroup'></a>ItemPaymentPrivateAttributeGroup ### 3.14. <a name='ItemPaymentPrivateAttributeGroup'></a>ItemPaymentPrivateAttributeGroup
ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring the highest level of privacy for payment details. ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring the highest level of privacy for payment details.
@ -288,7 +289,7 @@ ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring t
| `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this payment. | | `payload_list_private` | ```Vec<String>``` | | A list of private payloads associated with this payment. |
| `audit_code_private` | ```String``` | | A private audit code associated with this payment. | | `audit_code_private` | ```String``` | | A private audit code associated with this payment. |
### 3.15. <a name='ItemPayment'></a>ItemPayment ### 3.15. <a name='ItemPayment'></a>ItemPayment
`ItemPayment` links an item with payment-specific attributes across public, confidential, and private groups, offering a full view of a payment. `ItemPayment` links an item with payment-specific attributes across public, confidential, and private groups, offering a full view of a payment.
@ -299,7 +300,7 @@ ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring t
| `role_confidential_attribute_group` | ```ItemPaymentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this payment. | | `role_confidential_attribute_group` | ```ItemPaymentRoleConfidentialAttributeGroup``` | | The role-specific confidential attribute group for this payment. |
| `private_attribute_group` | ```ItemPaymentPrivateAttributeGroup``` | | The private attribute group associated with this payment. | | `private_attribute_group` | ```ItemPaymentPrivateAttributeGroup``` | | The private attribute group associated with this payment. |
### 3.16. <a name='ItemPeerPublicAttributeGroup'></a>ItemPeerPublicAttributeGroup ### 3.16. <a name='ItemPeerPublicAttributeGroup'></a>ItemPeerPublicAttributeGroup
It outlines public peer attributes, such as service provider addresses and PoW details, for transparency in peer-related information. It outlines public peer attributes, such as service provider addresses and PoW details, for transparency in peer-related information.
@ -317,7 +318,7 @@ It outlines public peer attributes, such as service provider addresses and PoW d
| `daily_sp_tx_mine_list` | ```Vec<String>``` | | A daily list of service provider transactions mined by this peer. | | `daily_sp_tx_mine_list` | ```Vec<String>``` | | A daily list of service provider transactions mined by this peer. |
| `daily_sp_tx_mine_reward_list` | ```Vec<String>``` | | A daily list of rewards for service provider transactions mined by this peer. | | `daily_sp_tx_mine_reward_list` | ```Vec<String>``` | | A daily list of rewards for service provider transactions mined by this peer. |
### 3.17. <a name='ItemPeerPrivateAttributeGroup'></a>ItemPeerPrivateAttributeGroup ### 3.17. <a name='ItemPeerPrivateAttributeGroup'></a>ItemPeerPrivateAttributeGroup
`ItemPeerPrivateAttributeGroup` contains a private configuration ```String``` for a peer, keeping certain peer configurations confidential. `ItemPeerPrivateAttributeGroup` contains a private configuration ```String``` for a peer, keeping certain peer configurations confidential.
@ -325,7 +326,7 @@ It outlines public peer attributes, such as service provider addresses and PoW d
|----------------|--------------|--------|-----------------------------------------------------------------| |----------------|--------------|--------|-----------------------------------------------------------------|
| `config` | ```String``` | | A private configuration ```String``` associated with this peer. | | `config` | ```String``` | | A private configuration ```String``` associated with this peer. |
### 3.18. <a name='ItemPeer'></a>ItemPeer ### 3.18. <a name='ItemPeer'></a>ItemPeer
`ItemPeer` combines basic item information with layers, public, and private attributes, fully detailing a peer within the system. `ItemPeer` combines basic item information with layers, public, and private attributes, fully detailing a peer within the system.
@ -336,7 +337,7 @@ It outlines public peer attributes, such as service provider addresses and PoW d
| `public_attribute_group` | ```ItemPeerPublicAttributeGroup``` | | Groupe d'attributs publics associés à ce pair. | | `public_attribute_group` | ```ItemPeerPublicAttributeGroup``` | | Groupe d'attributs publics associés à ce pair. |
| `private_attribute_group` | ```ItemPeerPrivateAttributeGroup``` | | Groupe d'attributs privés associés à ce pair. | | `private_attribute_group` | ```ItemPeerPrivateAttributeGroup``` | | Groupe d'attributs privés associés à ce pair. |
### 3.19. <a name='ItemProcess'></a>ItemProcess ### 3.19. <a name='ItemProcess'></a>ItemProcess
`ItemProcess` associates an item with a process, including public attribute groups, to represent processes within the system comprehensively. `ItemProcess` associates an item with a process, including public attribute groups, to represent processes within the system comprehensively.
@ -345,7 +346,7 @@ It outlines public peer attributes, such as service provider addresses and PoW d
| `item` | ```Item``` | | Represents the item associated with this process. | | `item` | ```Item``` | | Represents the item associated with this process. |
| `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | | The public attribute group associated with this process. | | `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | | The public attribute group associated with this process. |
### 3.20. <a name='ItemProcessPublicAttributeGroup'></a>ItemProcessPublicAttributeGroup ### 3.20. <a name='ItemProcessPublicAttributeGroup'></a>ItemProcessPublicAttributeGroup
This struct details public attributes related to processes, like roles groups, to facilitate understanding of process organization. This struct details public attributes related to processes, like roles groups, to facilitate understanding of process organization.
@ -353,7 +354,7 @@ This struct details public attributes related to processes, like roles groups, t
|----------------|------------|--------|-----------------------------------------------------------| |----------------|------------|--------|-----------------------------------------------------------|
| `roles_group` | RolesGroup | | Represents a group of roles associated with this process. | | `roles_group` | RolesGroup | | Represents a group of roles associated with this process. |
### 3.21. <a name='Item'></a>Item ### 3.21. <a name='Item'></a>Item
The `Item` struct serves as a foundational element, detailing the basic structure of an item with attributes like UUID, version, and type, central to item management in the system. The `Item` struct serves as a foundational element, detailing the basic structure of an item with attributes like UUID, version, and type, central to item management in the system.
@ -368,9 +369,9 @@ The `Item` struct serves as a foundational element, detailing the basic structur
| `metadata_role_confidential` | ```MetadataRoleConfidential``` | | Role-specific confidential metadata associated with the item. | | `metadata_role_confidential` | ```MetadataRoleConfidential``` | | Role-specific confidential metadata associated with the item. |
| `metadata_private` | ```MetadataPrivate``` | | Private metadata associated with the item. | | `metadata_private` | ```MetadataPrivate``` | | Private metadata associated with the item. |
## 4. <a name='Encryption'></a>Encryption ## 4. <a name='Encryption'></a>Encryption
### 4.1. <a name='KeyEncryption'></a>KeyEncryption ### 4.1. <a name='KeyEncryption'></a>KeyEncryption
The `KeyEncryption` struct provides details about encryption keys, including the attribute it's for, the key itself, and the algorithm used, crucial for securing data within the system. The `KeyEncryption` struct provides details about encryption keys, including the attribute it's for, the key itself, and the algorithm used, crucial for securing data within the system.
@ -380,7 +381,7 @@ The `KeyEncryption` struct provides details about encryption keys, including the
| `key` | ```String``` | Yes | An optional encryption key. | | `key` | ```String``` | Yes | An optional encryption key. |
| `algorithm` | ```String``` | Yes | An optional encryption algorithm used with this key. | | `algorithm` | ```String``` | Yes | An optional encryption algorithm used with this key. |
### 4.2. <a name='Aes256GcmIv96Bit'></a>Aes256GcmIv96Bit ### 4.2. <a name='Aes256GcmIv96Bit'></a>Aes256GcmIv96Bit
This struct represents an encryption scheme using `AES-256-GCM` with a 96-bit initialization vector (IV), specifying the key details for robust data encryption. This struct represents an encryption scheme using `AES-256-GCM` with a 96-bit initialization vector (IV), specifying the key details for robust data encryption.
@ -388,9 +389,9 @@ This struct represents an encryption scheme using `AES-256-GCM` with a 96-bit in
|----------------|-----------------------------|--------|------------------------------------------------------------------------------| |----------------|-----------------------------|--------|------------------------------------------------------------------------------|
| `key` | ```GenericArray<u8, u32>``` | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. | | `key` | ```GenericArray<u8, u32>``` | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. |
## 5. <a name='Messages'></a>Messages ## 5. <a name='Messages'></a>Messages
### 5.1. <a name='Message'></a>Message ### 5.1. <a name='Message'></a>Message
`Message` encapsulates a client message, including an encrypted request and its hash, essential for secure and verifiable client-server communication. `Message` encapsulates a client message, including an encrypted request and its hash, essential for secure and verifiable client-server communication.
@ -399,7 +400,7 @@ This struct represents an encryption scheme using `AES-256-GCM` with a 96-bit in
| `message` | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. | | `message` | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. |
| `request_enc` | ```String``` | | The encrypted request content. | | `request_enc` | ```String``` | | The encrypted request content. |
### 5.2. <a name='MessageConnect'></a>MessageConnect ### 5.2. <a name='MessageConnect'></a>MessageConnect
The `MessageConnect` struct is designed to handle connection-related messages, facilitating the establishment of connections within the system. The `MessageConnect` struct is designed to handle connection-related messages, facilitating the establishment of connections within the system.
@ -407,7 +408,7 @@ The `MessageConnect` struct is designed to handle connection-related messages, f
|----------------|---------------|--------|------------------------------------------------------------------| |----------------|---------------|--------|------------------------------------------------------------------|
| message | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. | | message | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. |
### 5.3. <a name='MessageGeneric'></a>MessageGeneric ### 5.3. <a name='MessageGeneric'></a>MessageGeneric
`Message` provides a general structure for messages, including shared peers and processes, and details like PoW challenges, supporting diverse communication needs `Message` provides a general structure for messages, including shared peers and processes, and details like PoW challenges, supporting diverse communication needs
@ -419,7 +420,7 @@ The `MessageConnect` struct is designed to handle connection-related messages, f
| `pow` | ```Pow``` | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. | | `pow` | ```Pow``` | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. |
| `raw_transaction_list` | ```Vec<String>``` | Yes | Transaction to broadcast | | `raw_transaction_list` | ```Vec<String>``` | Yes | Transaction to broadcast |
### 5.4. <a name='Pow'></a>Pow ### 5.4. <a name='Pow'></a>Pow
The `Pow` struct outlines a Proof of Work challenge, including data hash, timestamp, and nonce, to ensure computational effort for security purposes. The `Pow` struct outlines a Proof of Work challenge, including data hash, timestamp, and nonce, to ensure computational effort for security purposes.
@ -431,7 +432,7 @@ The `Pow` struct outlines a Proof of Work challenge, including data hash, timest
| `pattern` | ```String``` | | The pattern that the PoW solution must match. | | `pattern` | ```String``` | | The pattern that the PoW solution must match. |
| `difficulty` | ```usize``` | | The difficulty level of the PoW challenge. | | `difficulty` | ```usize``` | | The difficulty level of the PoW challenge. |
### 5.5. <a name='SharedProcess'></a>SharedProcess ### 5.5. <a name='SharedProcess'></a>SharedProcess
`SharedProcess` identifies a shared process within the system, aiding in the management and coordination of collaborative processes. `SharedProcess` identifies a shared process within the system, aiding in the management and coordination of collaborative processes.
@ -441,7 +442,7 @@ The `Pow` struct outlines a Proof of Work challenge, including data hash, timest
| `key` | `KeyEncryption` | | The encryption key used for the process. | | `key` | `KeyEncryption` | | The encryption key used for the process. |
| `role_process_sp_address_list` | `Vec<String>` | | A list of SP addresses related to the role. | | `role_process_sp_address_list` | `Vec<String>` | | A list of SP addresses related to the role. |
### 5.6. <a name='SharedPeer'></a>SharedPeer ### 5.6. <a name='SharedPeer'></a>SharedPeer
`SharedPeer` specifies a peer within the network, playing a key role in distributed information sharing and communication. `SharedPeer` specifies a peer within the network, playing a key role in distributed information sharing and communication.
@ -455,7 +456,7 @@ The `Pow` struct outlines a Proof of Work challenge, including data hash, timest
| `l2_node` | ```L2Node``` | | Represents a level 2 (L2) node in the network. | | `l2_node` | ```L2Node``` | | Represents a level 2 (L2) node in the network. |
| `l2_certif` | ```L2Certif``` | | Represents a level 2 (L2) certification authority or function in the network. | | `l2_certif` | ```L2Certif``` | | Represents a level 2 (L2) certification authority or function in the network. |
## 6. <a name='Relay'></a>Relay ## 6. <a name='Relay'></a>Relay
Represents a `Relay` in the network, specifying its address and port, data handling capacity, and Proof of Work (PoW) requirements. Represents a `Relay` in the network, specifying its address and port, data handling capacity, and Proof of Work (PoW) requirements.
@ -469,7 +470,7 @@ Represents a `Relay` in the network, specifying its address and port, data handl
| `pow_timeout` | ```u32``` | | Timeout for pow | | `pow_timeout` | ```u32``` | | Timeout for pow |
| `faucet_sp_address` | ```u32``` | | Faucet address | | `faucet_sp_address` | ```u32``` | | Faucet address |
### 6.1. <a name='L1Node'></a>L1Node ### 6.1. <a name='L1Node'></a>L1Node
The `L1Node` struct details a Level 1 blockchain node, including its network, IP address, and status, integral to blockchain operations and interactions. The `L1Node` struct details a Level 1 blockchain node, including its network, IP address, and status, integral to blockchain operations and interactions.
@ -482,7 +483,7 @@ The `L1Node` struct details a Level 1 blockchain node, including its network, IP
| `status` | ```String``` | | Current status of the L1 node (e.g., active, inactive). | | `status` | ```String``` | | Current status of the L1 node (e.g., active, inactive). |
| `last_checked` | ```DateTime<Utc>``` | | Timestamp of the last health check performed on the L1 node. | | `last_checked` | ```DateTime<Utc>``` | | Timestamp of the last health check performed on the L1 node. |
### 6.2. <a name='L1Miner'></a>L1Miner ### 6.2. <a name='L1Miner'></a>L1Miner
`L1Miner` describes a miner on a Level 1 blockchain, detailing its network, mining power, and status, crucial for understanding blockchain mining dynamics. `L1Miner` describes a miner on a Level 1 blockchain, detailing its network, mining power, and status, crucial for understanding blockchain mining dynamics.
@ -495,7 +496,7 @@ The `L1Node` struct details a Level 1 blockchain node, including its network, IP
| `status` | ```String``` | | Current status of the L1 miner (e.g., active, inactive). | | `status` | ```String``` | | Current status of the L1 miner (e.g., active, inactive). |
| `mining_power` | ```u16``` | | The mining power of the L1 miner in hashes per second. | | `mining_power` | ```u16``` | | The mining power of the L1 miner in hashes per second. |
### 6.3. <a name='L2Node'></a>L2Node ### 6.3. <a name='L2Node'></a>L2Node
This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalability solutions and includes details such as its network and operation layer. This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalability solutions and includes details such as its network and operation layer.
@ -508,7 +509,7 @@ This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalabil
| `status` | ```String``` | | Current status of the L2 node (e.g., active, inactive). | | `status` | ```String``` | | Current status of the L2 node (e.g., active, inactive). |
| `layer` | ```String``` | | Indicates the layer (L2) the node operates at. | | `layer` | ```String``` | | Indicates the layer (L2) the node operates at. |
### 6.4. <a name='L2Certif'></a>L2Certif ### 6.4. <a name='L2Certif'></a>L2Certif
`L2Certif` specifies a Layer 2 certification authority, including its network and certification type, vital for managing certifications on Layer 2 solutions. `L2Certif` specifies a Layer 2 certification authority, including its network and certification type, vital for managing certifications on Layer 2 solutions.
@ -521,7 +522,7 @@ This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalabil
| `status` | ```String``` | | Current status of the L2 certification authority (e.g., active, inactive). | | `status` | ```String``` | | Current status of the L2 certification authority (e.g., active, inactive). |
| `certif_type` | ```String``` | | Type of certification or service provided by the L2 certif. | | `certif_type` | ```String``` | | Type of certification or service provided by the L2 certif. |
## 7. <a name='Metadata'></a>Metadata ## 7. <a name='Metadata'></a>Metadata
`MetaData` aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications. `MetaData` aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications.
@ -538,7 +539,7 @@ This struct represents a Level 2 (Layer 2) blockchain node, focusing on scalabil
| `legal_text_list` | ```Vec<String>``` | | A list of legal texts associated with the metadata. | | `legal_text_list` | ```Vec<String>``` | | A list of legal texts associated with the metadata. |
| `key_list` | ```Vec<KeyEncryption>``` | | A list of key encryption methods associated with the metadata. | | `key_list` | ```Vec<KeyEncryption>``` | | A list of key encryption methods associated with the metadata. |
### 7.1. <a name='MetadataContractPublic'></a>MetadataContractPublic ### 7.1. <a name='MetadataContractPublic'></a>MetadataContractPublic
The `MetadataContractPublic` struct encapsulates public metadata for contracts, providing transparency and accessibility of contract-related information. The `MetadataContractPublic` struct encapsulates public metadata for contracts, providing transparency and accessibility of contract-related information.
@ -546,7 +547,7 @@ The `MetadataContractPublic` struct encapsulates public metadata for contracts,
|----------------|----------------|--------|------------------------------------------------------------| |----------------|----------------|--------|------------------------------------------------------------|
| `meta_data` | ```MetaData``` | | Represents the public metadata associated with a contract. | | `meta_data` | ```MetaData``` | | Represents the public metadata associated with a contract. |
### 7.2. <a name='MetadataPrivate'></a>MetadataPrivate ### 7.2. <a name='MetadataPrivate'></a>MetadataPrivate
`MetadataPrivate` holds private metadata, ensuring the confidentiality of sensitive information associated with entities or contracts. `MetadataPrivate` holds private metadata, ensuring the confidentiality of sensitive information associated with entities or contracts.
@ -554,7 +555,7 @@ The `MetadataContractPublic` struct encapsulates public metadata for contracts,
|----------------|----------------|--------|------------------------------------------------------------| |----------------|----------------|--------|------------------------------------------------------------|
| `meta_data` | ```MetaData``` | | Represents the private metadata associated with an entity. | | `meta_data` | ```MetaData``` | | Represents the private metadata associated with an entity. |
### 7.3. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential ### 7.3. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential
This struct contains role-specific confidential metadata, balancing the need for privacy with role-based access and transparency. This struct contains role-specific confidential metadata, balancing the need for privacy with role-based access and transparency.
@ -562,7 +563,7 @@ This struct contains role-specific confidential metadata, balancing the need for
|----------------|----------------|--------|-------------------------------------------------------------------------------| |----------------|----------------|--------|-------------------------------------------------------------------------------|
| `meta_data` | ```MetaData``` | | Represents the role-specific confidential metadata associated with an entity. | | `meta_data` | ```MetaData``` | | Represents the role-specific confidential metadata associated with an entity. |
### 7.4. <a name='Amount'></a>Amount ### 7.4. <a name='Amount'></a>Amount
The `Amount` struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records. The `Amount` struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records.
@ -574,7 +575,7 @@ The `Amount` struct details financial amounts, including its timestamp, unit, an
| `amount_unit` | ```String``` | | The unit of the amount, such as "USD", "EUR", etc. | | `amount_unit` | ```String``` | | The unit of the amount, such as "USD", "EUR", etc. |
| `amount_unit_ref` | ```String``` | | A reference to an external unit system, providing context for the `amount_unit`. | | `amount_unit_ref` | ```String``` | | A reference to an external unit system, providing context for the `amount_unit`. |
### 7.5. <a name='Number'></a>Number ### 7.5. <a name='Number'></a>Number
`Number` provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations. `Number` provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations.
@ -584,7 +585,7 @@ The `Amount` struct details financial amounts, including its timestamp, unit, an
| `number` | ```i32``` | | The numeric value. | | `number` | ```i32``` | | The numeric value. |
| `number_unit` | ```String``` | | The unit of measurement for the number, if applicable. | | `number_unit` | ```String``` | | The unit of measurement for the number, if applicable. |
## 8. <a name='Request'></a>Request ## 8. <a name='Request'></a>Request
Defines a general request structure within the system, encapsulating details about the requested item, its type, version, and associated process and document references. Defines a general request structure within the system, encapsulating details about the requested item, its type, version, and associated process and document references.
@ -600,7 +601,7 @@ Defines a general request structure within the system, encapsulating details abo
| `request_prd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPrd. | | `request_prd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPrd. |
| `item_reference_hash` | ```String``` | Yes | Optionally specifies the hash of the item related to the request. | | `item_reference_hash` | ```String``` | Yes | Optionally specifies the hash of the item related to the request. |
## 9. <a name='RequestPcd'></a> RequestPcd ## 9. <a name='RequestPcd'></a> RequestPcd
The `request_pcd` struct integrates a request with a list of generic encrypted items and pagination details, facilitating the handling of encrypted RequestPcd requests within the system. The `request_pcd` struct integrates a request with a list of generic encrypted items and pagination details, facilitating the handling of encrypted RequestPcd requests within the system.
@ -610,7 +611,7 @@ The `request_pcd` struct integrates a request with a list of generic encrypted i
| `item_list` | ```Vec< RequestPcdItemGenericEnc>``` | | List of generic encrypted items. | | `item_list` | ```Vec< RequestPcdItemGenericEnc>``` | | List of generic encrypted items. |
| `pagination` | ```Pagination``` | Yes | Pagination details, assuming `Pagination` is a predefined struct. | | `pagination` | ```Pagination``` | Yes | Pagination details, assuming `Pagination` is a predefined struct. |
### 9.1. <a name='Pagination'></a>Pagination ### 9.1. <a name='Pagination'></a>Pagination
The `Pagination` struct is essential for managing large datasets, detailing the pagination strategy with start index, number of items, and page index. The `Pagination` struct is essential for managing large datasets, detailing the pagination strategy with start index, number of items, and page index.
@ -620,7 +621,7 @@ The `Pagination` struct is essential for managing large datasets, detailing the
| `number` | ```usize``` | | Le nombre d'éléments par page. | | `number` | ```usize``` | | Le nombre d'éléments par page. |
| `page_index` | ```usize``` | | L'indice de la page actuelle pour la pagination. | | `page_index` | ```usize``` | | L'indice de la page actuelle pour la pagination. |
### 9.2. <a name='RequestPcdItemEncAttributePublic'></a> RequestPcdItemEncAttributePublic ### 9.2. <a name='RequestPcdItemEncAttributePublic'></a> RequestPcdItemEncAttributePublic
This struct outlines public encrypted attributes for RequestPcd items, ensuring the secure transmission of public attribute data. This struct outlines public encrypted attributes for RequestPcd items, ensuring the secure transmission of public attribute data.
@ -629,7 +630,7 @@ This struct outlines public encrypted attributes for RequestPcd items, ensuring
| `attribute_name` | ```String``` | | The name of the attribute. | | `attribute_name` | ```String``` | | The name of the attribute. |
| `data_enc` | ```String``` | | The encrypted data associated with the attribute. | | `data_enc` | ```String``` | | The encrypted data associated with the attribute. |
### 9.3. <a name='RequestPcdItemEncAttributeRoleConfidential'></a> RequestPcdItemEncAttributeRoleConfidential ### 9.3. <a name='RequestPcdItemEncAttributeRoleConfidential'></a> RequestPcdItemEncAttributeRoleConfidential
`request_pcdItemEncAttributeRoleConfidential` deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access. `request_pcdItemEncAttributeRoleConfidential` deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access.
@ -639,7 +640,7 @@ This struct outlines public encrypted attributes for RequestPcd items, ensuring
| `data_enc` | ```String``` | Yes | The encrypted data associated with the attribute. | | `data_enc` | ```String``` | Yes | The encrypted data associated with the attribute. |
| `key` | ```KeyEncryption``` | Yes | The key used for encrypting the data. | | `key` | ```KeyEncryption``` | Yes | The key used for encrypting the data. |
### 9.4. <a name='RequestPcdItemEncAttributePrivate'></a> RequestPcdItemEncAttributePrivate ### 9.4. <a name='RequestPcdItemEncAttributePrivate'></a> RequestPcdItemEncAttributePrivate
It specifies private encrypted attributes for `request_pcd` items, protecting the most sensitive information with encryption. It specifies private encrypted attributes for `request_pcd` items, protecting the most sensitive information with encryption.
@ -648,7 +649,7 @@ It specifies private encrypted attributes for `request_pcd` items, protecting th
| `attribute_name` | ```String``` | | The name of the attribute. | | `attribute_name` | ```String``` | | The name of the attribute. |
| `data_enc` | ```String``` | Yes | The encrypted data associated with this attribute name. | | `data_enc` | ```String``` | Yes | The encrypted data associated with this attribute name. |
### 9.5. <a name='RequestPcdItemGenericEnc'></a> RequestPcdItemGenericEnc ### 9.5. <a name='RequestPcdItemGenericEnc'></a> RequestPcdItemGenericEnc
`request_pcdItemGenericEnc` encompasses encrypted items with optional lists of public, role-confidential, and private encrypted attributes, offering a flexible encryption model for diverse data types. `request_pcdItemGenericEnc` encompasses encrypted items with optional lists of public, role-confidential, and private encrypted attributes, offering a flexible encryption model for diverse data types.
@ -659,7 +660,7 @@ It specifies private encrypted attributes for `request_pcd` items, protecting th
| `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | Yes | Optional list of role-confidential encrypted attributes. | | `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | Yes | Optional list of role-confidential encrypted attributes. |
| `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | Yes | Optional list of private encrypted attributes. | | `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | Yes | Optional list of private encrypted attributes. |
### 9.6. <a name='RequestPcdItemEnc'></a> RequestPcdItemEnc ### 9.6. <a name='RequestPcdItemEnc'></a> RequestPcdItemEnc
The `request_pcdItemEnc` struct encapsulates encrypted RequestPcd items, detailing the version, type, and name of the item, alongside encrypted attributes segregated into public, role-confidential, and private categories, ensuring comprehensive encryption coverage. The `request_pcdItemEnc` struct encapsulates encrypted RequestPcd items, detailing the version, type, and name of the item, alongside encrypted attributes segregated into public, role-confidential, and private categories, ensuring comprehensive encryption coverage.
@ -673,7 +674,7 @@ The `request_pcdItemEnc` struct encapsulates encrypted RequestPcd items, detaili
| `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | | List of role-confidential encrypted attributes. | | `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | | List of role-confidential encrypted attributes. |
| `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | | List of private encrypted attributes. | | `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | | List of private encrypted attributes. |
## 10. <a name='RequestPrd'></a>RequestPrd ## 10. <a name='RequestPrd'></a>RequestPrd
Encapsulates a detailed request within the system, focusing on the interaction with Portable Request Documents ( RequestPrd) and specifying various levels of message confidentiality and intended service provider (SP) communication details. Encapsulates a detailed request within the system, focusing on the interaction with Portable Request Documents ( RequestPrd) and specifying various levels of message confidentiality and intended service provider (SP) communication details.
@ -704,7 +705,7 @@ Encapsulates a detailed request within the system, focusing on the interaction w
| `certif_key_enc_by_shared_secret` | ```String``` | Yes | Encrypted certification key, encrypted with a shared secret. | | `certif_key_enc_by_shared_secret` | ```String``` | Yes | Encrypted certification key, encrypted with a shared secret. |
| `device_footprint_enc_by_sp_shared_secret` | ```String``` | | The device footprint encrypted by a service provider's shared secret. | | `device_footprint_enc_by_sp_shared_secret` | ```String``` | | The device footprint encrypted by a service provider's shared secret. |
### 10.1. <a name='RequestPrdResponse'></a>RequestPrdResponse ### 10.1. <a name='RequestPrdResponse'></a>RequestPrdResponse
`request_prd` and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently. `request_prd` and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently.
@ -718,7 +719,7 @@ Encapsulates a detailed request within the system, focusing on the interaction w
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | Yes | The first part of the hash encrypted by a service provider's shared secret. | | `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | Yes | The first part of the hash encrypted by a service provider's shared secret. |
| `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. | | `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. |
### 10.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm ### 10.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
The `request_prdConfirm` struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document ( RequestPrd) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations. The `request_prdConfirm` struct is designed for confirming actions or requests within the system, utilizing a Portable Request Document ( RequestPrd) alongside an encrypted confirmation code, ensuring secure acknowledgment of operations.
@ -727,7 +728,7 @@ The `request_prdConfirm` struct is designed for confirming actions or requests w
| `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. | | `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. |
| `code_confirm_enc_by_shared_secret` | ```String``` | Yes | The confirmation code encrypted by a shared secret. | | `code_confirm_enc_by_shared_secret` | ```String``` | Yes | The confirmation code encrypted by a shared secret. |
### 10.3. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup ### 10.3. <a name='RequestPrdKeyBackup'></a>RequestPrdKeyBackup
`request_prdKeyBackup` focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys. `request_prdKeyBackup` focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys.
@ -737,7 +738,7 @@ The `request_prdConfirm` struct is designed for confirming actions or requests w
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. | | `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. |
| `shard_enc_by_sp_shared_secret` | ```String``` | | The shard encrypted by a service provider's shared secret. | | `shard_enc_by_sp_shared_secret` | ```String``` | | The shard encrypted by a service provider's shared secret. |
### 10.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello ### 10.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
The `request_prdKeyHello` struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections. The `request_prdKeyHello` struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
@ -746,7 +747,7 @@ The `request_prdKeyHello` struct is employed for initiating cryptographic commun
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document ( RequestPrd). | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document ( RequestPrd). |
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. | | `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
### 10.5. <a name='RequestPrdList'></a>RequestPrdList ### 10.5. <a name='RequestPrdList'></a>RequestPrdList
`request_prdList` struct is utilized for listing or querying RequestPrds, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of RequestPrds. `request_prdList` struct is utilized for listing or querying RequestPrds, aiding in the retrieval or enumeration of Portable Request Documents within the system, streamlining the management and access of RequestPrds.
@ -754,7 +755,7 @@ The `request_prdKeyHello` struct is employed for initiating cryptographic commun
|----------------|-------------------|--------|-----------------------------------------| |----------------|-------------------|--------|-----------------------------------------|
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
### 10.6. <a name='RequestPrdMessage'></a>RequestPrdMessage ### 10.6. <a name='RequestPrdMessage'></a>RequestPrdMessage
The `request_prdMessage` struct serves the purpose of encapsulating messages within RequestPrds, allowing for secure and structured communication of information wrapped in a Portable Request Document. The `request_prdMessage` struct serves the purpose of encapsulating messages within RequestPrds, allowing for secure and structured communication of information wrapped in a Portable Request Document.
@ -763,7 +764,7 @@ The `request_prdMessage` struct serves the purpose of encapsulating messages wit
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
| `raw_transaction_list` | ```Vec<String>``` | Yes | Represents a Portable Request Document. | | `raw_transaction_list` | ```Vec<String>``` | Yes | Represents a Portable Request Document. |
### 10.7. <a name='RequestPrdResponse-1'></a>RequestPrdResponse ### 10.7. <a name='RequestPrdResponse-1'></a>RequestPrdResponse
`request_prdResponse` is designed for responding to RequestPrd requests, including the original RequestPrd, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism. `request_prdResponse` is designed for responding to RequestPrd requests, including the original RequestPrd, signature for verification, and optional encrypted methods, ensuring a secure and verifiable response mechanism.
@ -772,7 +773,7 @@ The `request_prdMessage` struct serves the purpose of encapsulating messages wit
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
| `sig_value` | ```String``` | | The signature value for the response. | | `sig_value` | ```String``` | | The signature value for the response. |
### 10.8. <a name='RequestPrdUpdate'></a>RequestPrdUpdate ### 10.8. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
`request_prdUpdate` struct facilitates the updating of RequestPrds, incorporating new version hashes and lists of related RequestPcd hashes, alongside requested methods for payments, deposits, and commitments, ensuring RequestPrds remain current and relevant. `request_prdUpdate` struct facilitates the updating of RequestPrds, incorporating new version hashes and lists of related RequestPcd hashes, alongside requested methods for payments, deposits, and commitments, ensuring RequestPrds remain current and relevant.
@ -780,11 +781,11 @@ The `request_prdMessage` struct serves the purpose of encapsulating messages wit
|----------------|-------------------|--------|-----------------------------------------| |----------------|-------------------|--------|-----------------------------------------|
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document. | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document. |
## 11. <a name='Roles'></a>Roles ## 11. <a name='Roles'></a>Roles
The `Roles` enum defines the various roles within the system, specifying responsibilities, required security measures such as two-factor authentication, validation timeouts, and conditions for action validation, crucial for role-based access control and process flow. The `Roles` enum defines the various roles within the system, specifying responsibilities, required security measures such as two-factor authentication, validation timeouts, and conditions for action validation, crucial for role-based access control and process flow.
### 11.1. <a name='Role'></a>Role ### 11.1. <a name='Role'></a>Role
The `Role` struct broadly defines a role within the system, encapsulating the general responsibilities, required security measures like two-factor authentication, validation timeouts, and conditions for action validation. This serves as a foundation for more specific role definitions, ensuring a flexible yet secure role-based access and action framework. The `Role` struct broadly defines a role within the system, encapsulating the general responsibilities, required security measures like two-factor authentication, validation timeouts, and conditions for action validation. This serves as a foundation for more specific role definitions, ensuring a flexible yet secure role-based access and action framework.
|--------------------------------------|-------------------------------|--------|------------------------------------------------------------------| |--------------------------------------|-------------------------------|--------|------------------------------------------------------------------|
@ -803,9 +804,9 @@ The `Role` struct broadly defines a role within the system, encapsulating the ge
| `role_resolve` | ```String``` | Yes | Optional role for resolving conflicts. | | `role_resolve` | ```String``` | Yes | Optional role for resolving conflicts. |
| `role_renew` | ```String``` | Yes | Optional role for renewing conditions or capabilities. | | `role_renew` | ```String``` | Yes | Optional role for renewing conditions or capabilities. |
### 11.2. <a name='Conditions'></a>Conditions ### 11.2. <a name='Conditions'></a>Conditions
#### 11.2.1. <a name='ConditionCap'></a>ConditionCap #### 11.2.1. <a name='ConditionCap'></a>ConditionCap
The `ConditionCap` struct represents a condition related to a deposit role and its associated transaction mode, indicating the requirements for transactions within this context. The `ConditionCap` struct represents a condition related to a deposit role and its associated transaction mode, indicating the requirements for transactions within this context.
@ -815,7 +816,7 @@ The `ConditionCap` struct represents a condition related to a deposit role and i
| `role_deposit` | ```String``` | | Represents the deposit role in the condition. | | `role_deposit` | ```String``` | | Represents the deposit role in the condition. |
| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | | `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
#### 11.2.2. <a name='ConditionCommitment'></a>ConditionCommitment #### 11.2.2. <a name='ConditionCommitment'></a>ConditionCommitment
The `ConditionCommitment` struct specifies a condition involving an artefact role and transaction mode, defining how commitments are handled and verified. The `ConditionCommitment` struct specifies a condition involving an artefact role and transaction mode, defining how commitments are handled and verified.
@ -825,7 +826,7 @@ The `ConditionCommitment` struct specifies a condition involving an artefact rol
| `role_artefact` | ```String``` | | Represents the artefact role in the condition. | | `role_artefact` | ```String``` | | Represents the artefact role in the condition. |
| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | | `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
#### 11.2.3. <a name='ConditionDeposit'></a>ConditionDeposit #### 11.2.3. <a name='ConditionDeposit'></a>ConditionDeposit
`ConditionDeposit` is similar to ConditionCap but specifically focuses on deposit-related transactions, establishing the criteria for deposit actions. `ConditionDeposit` is similar to ConditionCap but specifically focuses on deposit-related transactions, establishing the criteria for deposit actions.
@ -835,7 +836,7 @@ The `ConditionCommitment` struct specifies a condition involving an artefact rol
| `role_deposit` | ```String``` | | Represents the deposit role in the condition. | | `role_deposit` | ```String``` | | Represents the deposit role in the condition. |
| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | | `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
#### 11.2.4. <a name='ConditionOrchestration'></a>ConditionOrchestration #### 11.2.4. <a name='ConditionOrchestration'></a>ConditionOrchestration
`ConditionOrchestration` defines success and failure roles for orchestration conditions, guiding the flow of processes based on outcomes. `ConditionOrchestration` defines success and failure roles for orchestration conditions, guiding the flow of processes based on outcomes.
@ -845,7 +846,7 @@ The `ConditionCommitment` struct specifies a condition involving an artefact rol
| `role_ok` | ```String``` | | Represents the successful outcome role in the condition. | | `role_ok` | ```String``` | | Represents the successful outcome role in the condition. |
| `role_ko` | ```String``` | | Represents the failed outcome role in the condition. | | `role_ko` | ```String``` | | Represents the failed outcome role in the condition. |
#### 11.2.5. <a name='ConditionPayment'></a>ConditionPayment #### 11.2.5. <a name='ConditionPayment'></a>ConditionPayment
This struct outlines the conditions for payments, including the amount, payment method, and transaction mode, setting the parameters for financial transactions. This struct outlines the conditions for payments, including the amount, payment method, and transaction mode, setting the parameters for financial transactions.
@ -856,7 +857,7 @@ This struct outlines the conditions for payments, including the amount, payment
| `payment_method` | ```PaymentMode``` | | Specifies the payment method to be used. | | `payment_method` | ```PaymentMode``` | | Specifies the payment method to be used. |
| `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | | `role_transaction` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. |
#### 11.2.6. <a name='ConditionRequestPrdAddressSet'></a>Condition RequestPrdAddressSet #### 11.2.6. <a name='ConditionRequestPrdAddressSet'></a>Condition RequestPrdAddressSet
Condition `request_prdAddressSet` involves complex conditions based on RequestPrd addresses, including quotas, values, and scores, to determine condition fulfillment. Condition `request_prdAddressSet` involves complex conditions based on RequestPrd addresses, including quotas, values, and scores, to determine condition fulfillment.
@ -886,7 +887,7 @@ Condition `request_prdAddressSet` involves complex conditions based on RequestPr
| `request_prd_value_auto_ko` | ```boolean``` | | Automatically consider values as KO. | | `request_prd_value_auto_ko` | ```boolean``` | | Automatically consider values as KO. |
| `request_prd_value_auto_none` | ```boolean``` | | Automatically consider values as neutral or no-op. | | `request_prd_value_auto_none` | ```boolean``` | | Automatically consider values as neutral or no-op. |
#### 11.2.7. <a name='ConditionPublish'></a>ConditionPublish #### 11.2.7. <a name='ConditionPublish'></a>ConditionPublish
`ConditionPublish` sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution. `ConditionPublish` sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution.
@ -901,7 +902,7 @@ Condition `request_prdAddressSet` involves complex conditions based on RequestPr
| `request_prd_waiting_timeout` | ```u64``` | | The waiting timeout for a publication to be considered valid. | | `request_prd_waiting_timeout` | ```u64``` | | The waiting timeout for a publication to be considered valid. |
| `request_pcd_waiting_timeout` | ```u64``` | | The waiting timeout for the condition to be considered met. | | `request_pcd_waiting_timeout` | ```u64``` | | The waiting timeout for the condition to be considered met. |
#### 11.2.8. <a name='RolesGroup'></a>RolesGroup #### 11.2.8. <a name='RolesGroup'></a>RolesGroup
RolesGroup outlines a collection of roles. RolesGroup outlines a collection of roles.
@ -912,7 +913,7 @@ RolesGroup outlines a collection of roles.
| `role_process` | ```String``` | | Represents the entities charged with defining and managing processes within the system. | | `role_process` | ```String``` | | Represents the entities charged with defining and managing processes within the system. |
| `role_artefact_list` | ```Vec<String>``` | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. | | `role_artefact_list` | ```Vec<String>``` | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. |
#### 11.2.9. <a name='RoleArtefact'></a>RoleArtefact #### 11.2.9. <a name='RoleArtefact'></a>RoleArtefact
The `RoleArtefact` struct is utilized to define the role associated with artefacts within the system. It specifies the responsibilities and permissions tied to the handling, management, or interaction with artefacts, ensuring clarity in role-based actions and access controls related to artefact-related operations. The `RoleArtefact` struct is utilized to define the role associated with artefacts within the system. It specifies the responsibilities and permissions tied to the handling, management, or interaction with artefacts, ensuring clarity in role-based actions and access controls related to artefact-related operations.
@ -921,7 +922,7 @@ The `RoleArtefact` struct is utilized to define the role associated with artefac
| `item_name` | ```String``` | | The name of the item associated with the deposit. | | `item_name` | ```String``` | | The name of the item associated with the deposit. |
| `role` | ```Role``` | | The role associated with this deposit. | | `role` | ```Role``` | | The role associated with this deposit. |
#### 11.2.10. <a name='RoleDeposit'></a>RoleDeposit #### 11.2.10. <a name='RoleDeposit'></a>RoleDeposit
`RoleDeposit` outlines the role and responsibilities concerning deposits in the system. It identifies the specific obligations and permissions granted to entities managing or engaging with deposit transactions, providing a structured approach to deposit management and execution. `RoleDeposit` outlines the role and responsibilities concerning deposits in the system. It identifies the specific obligations and permissions granted to entities managing or engaging with deposit transactions, providing a structured approach to deposit management and execution.
@ -930,7 +931,7 @@ The `RoleArtefact` struct is utilized to define the role associated with artefac
| `item_name` | ```String``` | | The name of the item associated with the artefact. | | `item_name` | ```String``` | | The name of the item associated with the artefact. |
| `role` | ```Role``` | | The role associated with this artefact. | | `role` | ```Role``` | | The role associated with this artefact. |
#### 11.2.11. <a name='RoleCommitment'></a>RoleCommitment #### 11.2.11. <a name='RoleCommitment'></a>RoleCommitment
The `RoleCommitment` struct details the role associated with commitments, delineating the duties and authorities of entities tasked with creating, managing, or fulfilling commitments. This struct ensures that commitment-related activities are clearly defined and regulated within the system. The `RoleCommitment` struct details the role associated with commitments, delineating the duties and authorities of entities tasked with creating, managing, or fulfilling commitments. This struct ensures that commitment-related activities are clearly defined and regulated within the system.
@ -939,7 +940,7 @@ The `RoleCommitment` struct details the role associated with commitments, deline
| `item_name` | ```String``` | | The name of the item associated with the commitment. | | `item_name` | ```String``` | | The name of the item associated with the commitment. |
| `role` | ```Role``` | | The role associated with this commitment. | | `role` | ```Role``` | | The role associated with this commitment. |
#### 11.2.12. <a name='RoleMember'></a>RoleMember #### 11.2.12. <a name='RoleMember'></a>RoleMember
`RoleMember` defines the role of members within the system, specifying the rights and responsibilities of membership. This includes access to resources, participation in processes, and contributions to decision-making, highlighting the importance of members in the system's ecosystem. `RoleMember` defines the role of members within the system, specifying the rights and responsibilities of membership. This includes access to resources, participation in processes, and contributions to decision-making, highlighting the importance of members in the system's ecosystem.
@ -948,7 +949,16 @@ The `RoleCommitment` struct details the role associated with commitments, deline
| `item_name` | ```String``` | | The name of the item associated with the member. | | `item_name` | ```String``` | | The name of the item associated with the member. |
| `role` | ```Role``` | | The role associated with this member. | | `role` | ```Role``` | | The role associated with this member. |
#### 11.2.13. <a name='RolePayment'></a>RolePayment ### 11.3. <a name='RolePeer'></a>RolePeer
The `RolePeer` struct identifies peers associated with specific roles, detailing their identifiers, associated peers, and metadata, essential for defining peer responsibilities and permissions within the networked environment.
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|------------------------------------------------|
| `item_name` | ```String``` | | The name of the item associated with the peer. |
| `role` | ```Role``` | | The role associated with this peer. |
#### 11.3.1. <a name='RolePayment'></a>RolePayment
The `RolePayment` struct is dedicated to defining the role related to payments, outlining the specific tasks, permissions, and responsibilities assigned to entities handling or involved in payment transactions, ensuring secure and orderly payment processes. The `RolePayment` struct is dedicated to defining the role related to payments, outlining the specific tasks, permissions, and responsibilities assigned to entities handling or involved in payment transactions, ensuring secure and orderly payment processes.
@ -957,7 +967,7 @@ The `RolePayment` struct is dedicated to defining the role related to payments,
| `item_name` | ```String``` | | The name of the item associated with the payment. | | `item_name` | ```String``` | | The name of the item associated with the payment. |
| `role` | ```Role``` | | The role associated with this payment. | | `role` | ```Role``` | | The role associated with this payment. |
#### 11.2.14. <a name='RoleProcess'></a>RoleProcess #### 11.3.2. <a name='RoleProcess'></a>RoleProcess
`RoleProcess` describes the role associated with processes within the system. It specifies the expectations, duties, and permissions of entities that initiate, manage, or participate in various system processes, facilitating smooth and regulated process flow. `RoleProcess` describes the role associated with processes within the system. It specifies the expectations, duties, and permissions of entities that initiate, manage, or participate in various system processes, facilitating smooth and regulated process flow.
@ -965,7 +975,8 @@ The `RolePayment` struct is dedicated to defining the role related to payments,
|----------------|--------------|--------|---------------------------------------------------| |----------------|--------------|--------|---------------------------------------------------|
| `item_name` | ```String``` | | The name of the item associated with the process. | | `item_name` | ```String``` | | The name of the item associated with the process. |
| `role` | ```Role``` | | The role associated with this process. | | `role` | ```Role``` | | The role associated with this process. |
### 11.3. <a name='TransactionMode'></a>TransactionMode
### 11.4. <a name='TransactionMode'></a>TransactionMode
`TransactionMode` and its specific types (Distribution, Direct) describe how transactions are handled within the system, whether through direct communication or distributed across multiple entities, influencing the flow and security of transactions. `TransactionMode` and its specific types (Distribution, Direct) describe how transactions are handled within the system, whether through direct communication or distributed across multiple entities, influencing the flow and security of transactions.
@ -978,18 +989,9 @@ The `RolePayment` struct is dedicated to defining the role related to payments,
| `to_type` | ```String``` | | Soit "addresses" soit "roles" | | `to_type` | ```String``` | | Soit "addresses" soit "roles" |
| `to_method` | ```String``` | | Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" | | `to_method` | ```String``` | | Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" |
### 11.4. <a name='RolePeer'></a>RolePeer ## 12. <a name='Rustconsiderations'></a>12. Rust considerations
The `RolePeer` struct identifies peers associated with specific roles, detailing their identifiers, associated peers, and metadata, essential for defining peer responsibilities and permissions within the networked environment. ### 12.1. <a name='GeneralImplicationsforProjectObjects'></a> General Implications for Project Objects
| Attribute Name | Type | Option | Description |
|----------------|--------------|--------|------------------------------------------------|
| `item_name` | ```String``` | | The name of the item associated with the peer. |
| `role` | ```Role``` | | The role associated with this peer. |
## 12. <a name='Rustconsiderations'></a>12. Rust considerations
### 12.1. <a name='GeneralImplicationsforProjectObjects'></a> General Implications for Project Objects
Incorporating these traits into a struct's definition enhances its utility across various aspects of a project. For instance: Incorporating these traits into a struct's definition enhances its utility across various aspects of a project. For instance:
@ -998,31 +1000,31 @@ Incorporating these traits into a struct's definition enhances its utility acros
* **Comparison and ordering traits (PartialEq, Eq, PartialOrd, Ord)**: are crucial for logic checks, sorting, and storing objects in data structures that require ordering or uniqueness. * **Comparison and ordering traits (PartialEq, Eq, PartialOrd, Ord)**: are crucial for logic checks, sorting, and storing objects in data structures that require ordering or uniqueness.
* **The Hash trait**: expands the struct's utility in hash-based collections, enabling efficient data retrieval and storage. * **The Hash trait**: expands the struct's utility in hash-based collections, enabling efficient data retrieval and storage.
### 12.2. <a name='Debug'></a> Debug ### 12.2. <a name='Debug'></a> Debug
The Debug trait allows instances of the struct to be formatted using the {:?} formatter. This is essential for debugging purposes, as it provides a way to output the contents of the struct to the console or logs, aiding in the development and troubleshooting process. The Debug trait allows instances of the struct to be formatted using the {:?} formatter. This is essential for debugging purposes, as it provides a way to output the contents of the struct to the console or logs, aiding in the development and troubleshooting process.
Serialize, Deserialize (serde crate) Serialize, Deserialize (serde crate)
Serialize and Deserialize traits from the serde crate enable the struct to be easily converted to and from data formats such as JSON, YAML, or TOML. This is particularly useful for web applications or services that need to send or receive data in a structured format over the network. Serialize and Deserialize traits from the serde crate enable the struct to be easily converted to and from data formats such as JSON, YAML, or TOML. This is particularly useful for web applications or services that need to send or receive data in a structured format over the network.
### 12.3. <a name='Default'></a> Default ### 12.3. <a name='Default'></a> Default
Implementing the Default trait allows for the creation of a struct with default values. This is useful for initializing structs with a set of predetermined values or when a struct needs to be created without specifying every field explicitly. Implementing the Default trait allows for the creation of a struct with default values. This is useful for initializing structs with a set of predetermined values or when a struct needs to be created without specifying every field explicitly.
Clone Clone
The Clone trait allows for the creation of an exact copy of a struct instance. This is crucial for cases where a mutable copy of a struct is needed, while keeping the original instance unchanged. The Clone trait allows for the creation of an exact copy of a struct instance. This is crucial for cases where a mutable copy of a struct is needed, while keeping the original instance unchanged.
### 12.4. <a name='PartialEqEq'></a> PartialEq, Eq ### 12.4. <a name='PartialEqEq'></a> PartialEq, Eq
PartialEq and Eq traits enable comparison operations for instances of the struct. While PartialEq allows for partial equality checks (where some of the comparisons might be indeterminate), Eq denotes that every comparison will either be true or false, ensuring a stricter equality condition that is necessary for certain collections or logic checks. PartialEq and Eq traits enable comparison operations for instances of the struct. While PartialEq allows for partial equality checks (where some of the comparisons might be indeterminate), Eq denotes that every comparison will either be true or false, ensuring a stricter equality condition that is necessary for certain collections or logic checks.
### 12.5. <a name='Hash'></a> Hash ### 12.5. <a name='Hash'></a> Hash
The Hash trait is used to compute a hash value for instances of the struct. This is essential for structs that need to be stored in collections such as HashMap or HashSet, where a unique identifier is required to efficiently retrieve or store items. The Hash trait is used to compute a hash value for instances of the struct. This is essential for structs that need to be stored in collections such as HashMap or HashSet, where a unique identifier is required to efficiently retrieve or store items.
### 12.6. <a name='PartialOrdOrd'></a> PartialOrd, Ord ### 12.6. <a name='PartialOrdOrd'></a> PartialOrd, Ord
PartialOrd and Ord traits allow for ordering comparisons between instances of the struct. PartialOrd provides functionality for partial ordering, where some comparisons might not produce a clear order, whereas Ord requires a total ordering, ensuring that any two instances can be reliably ordered. This is critical for sorting operations or when structs are stored in ordered collections. PartialOrd and Ord traits allow for ordering comparisons between instances of the struct. PartialOrd provides functionality for partial ordering, where some comparisons might not produce a clear order, whereas Ord requires a total ordering, ensuring that any two instances can be reliably ordered. This is critical for sorting operations or when structs are stored in ordered collections.
FromForm (rocket crate) FromForm (rocket crate)
## 13. <a name='Todo'></a>Todo ## 13. <a name='Todo'></a>Todo