From 38d1f42dfe2b2272499ce68b2bfb063f86286b5a Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 20 Mar 2024 00:11:31 +0100 Subject: [PATCH] specs messages & desc removed from data specs (doc) --- doc/Messages-Specs.md | 100 ++- doc/Specs-Datamodel.md | 1660 ++++++++++++++++++---------------------- 2 files changed, 846 insertions(+), 914 deletions(-) diff --git a/doc/Messages-Specs.md b/doc/Messages-Specs.md index 7f7c265..5e0d9c5 100644 --- a/doc/Messages-Specs.md +++ b/doc/Messages-Specs.md @@ -88,6 +88,96 @@ L'utilisateur fournit aux relais une adresse SP (Silent Payment) dite de faucet L'utilisateur reçoit en retour une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address`, cette transaction inclut un output supplémentaire avec le hash du message de type `MessageConnect` ou `Message` correspondant. +### Objets `MessageGeneric` contenu dans les types `Message` et `MessageConnect` + +`MessageGeneric` fournit une structure générale pour les messages, incluant les pairs partagés et les processus, et des détails comme les défis de PoW, soutenant des besoins de communication diversifiés. Les attributs ont les fonctions suivantes : + +* **`shared_peer_list`** : Une liste de pairs partagés, représentée par des objets `SharedPeer`. Cette liste sert à partager les pairs entre les relais et les clients et les relais entre eux. +* **`shared_process_list`** : Une liste de processus partagés, représentée par des objets `SharedProcess`. Cette liste sert à partager les processus entre les relais et les clients et les relais entre eux. +* **`faucet_sp_address`** : L'adresse pour recevoir les fonds du faucet (indispensable pour pouvoir crééer des requètes Silent Payment). +* **`pow`** : Représente un défi de Preuve de Travail (PoW), représentée par un objet `Pow`. +* **`raw_transaction_list`** : Liste de transactions à diffuser. + +La structure `Pow` détaille un défi de Preuve de Travail, incluant le hash des données, le timestamp et le nonce, pour garantir un effort computationnel à des fins de sécurité. Les attributs ont les fonctions suivantes : + +* **`data_hash`** : Le hash des données pour lesquelles le PoW est résolu, il s'agit du hash de l'attribut `request_enc` du message pour les messages de type `Message`, pour les messages de type `MessageConnect` il s'agit du hash de l'attribut `faucet_sp_address`. +* **`timestamp`** : Un timestamp associé à la solution PoW qui fait parti dans la chaine à résoudre. +* **`nonce`** : Une valeur de nonce utilisée dans le calcul du PoW. +* **`pattern`** : Le motif des premiers caractères qui doivent être répétés autant de fois que la difficulté l'indique. +* **`difficulty`** : Le niveau de difficulté du défi PoW. + +La structure `SharedProcess` identifie un processus partagé au sein du système, aidant à la gestion et la coordination des processus collaboratifs. + +* **`process_list`** : Une liste d'`ItemProcess` partagée. Cette liste sert à partager les processus entre les relais et les clients et les relais entre eux. + +La structure `SharedPeer` spécifie un pair au sein du réseau. Les attributs ont les fonctions suivantes : + +* **`domain`** : Le domaine associé au pair partagé. +* **`address_ip`** : L'adresse IP du pair partagé. +* **`relay`** : Représente un `Relay` dans le réseau. +* **`l1_node`** : Représente un `L1Node` dans le réseau. +* **`l1_miner`** : Représente un `L1Miner` dans le réseau. +* **`l2_node_list`** : Représente des `L2Node` dans le réseau. + +Représente un `Relay` dans le réseau. Les attributs ont les fonctions suivantes : + +* **`address_port`** : L'adresse du port du relais. +* **`data_max_size`** : Taille maximale des données que le relais peut traiter. +* **`pow_difficulty`** : Le niveau de difficulté pour la Preuve de Travail requise par le relais. +* **`pow_pattern`** : Le motif utilisé pour la Preuve de Travail. +* **`pow_prefix`** : Le préfixe utilisé pour la Preuve de Travail. +* **`pow_timeout`** : Délai d'attente maximum pour consider le pow comme valide. + +La structure `L1Node` détaille un nœud blockchain de niveau 1 pour la validation et le relais des transaction. Les attributs ont les fonctions suivantes : + +* **`address_port`** : L'adresse du port du nœud. +* **`explorer_base_url`** : L'URL de base de l'explorateur. +* **`l2_mining`** : Représente un `L2Mining` dans le réseau. +* **`l2_certif`** : Représente un `L2Certif` dans le réseau. +* **`reward_received_tx_list`** : Liste des transactions de récompense reçues par ce noeud. +* **`reward_send_tx_list`** : Liste des transactions de récompense dépensées par ce noeud. +* **`anchorage_tx_list`** : Liste des transactions d'ancrage dépensées par ce noeud. +* **`spend_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour dépenser les fonds de ce noeud. +* **`scan_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour détecter les transaction Silent Payment les fonds de ce noeud. + +La structure `L1NodeMining` détaille un nœud blockchain de niveau 1 (Layer 1) se concentrant sur les opérations minières. Les attributs ont les fonctions suivantes : + +* **`block_mined_list`** : Liste des blocs extraits. +* **`spend_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour dépenser les fonds de ce noeud. +* **`scan_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour détecter les transaction Silent Payment les fonds de ce noeud. + +La structure `L2Node` représente un nœud blockchain de niveau 2 (Layer 2) pour la validation et le relais des transaction. Les attributs ont les fonctions suivantes : + +* **`address_port`** : L'adresse du port du nœud. +* **`explorer_base_url`** : L'URL de base de l'explorateur. +* **`reward_received_tx_list`** : Liste des transactions de récompense reçues par ce noeud. +* **`anchorage_tx_list`** : Liste des transactions d'ancrage dépensées par ce noeud. +* **`nbits`** : Nombre de bits propre de calibrage de la blockchain. +* **`magic_number`** : Le nombre magique propre à la blochain. +* **`challenge`** : Le script de signature des blocs. +* **`spend_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour dépenser les fonds de ce noeud. +* **`scan_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour détecter les transaction Silent Payment les fonds de ce noeud. + +La structure `L2NodeMining` détaille un nœud blockchain de niveau 2 (Layer 2) se concentrant sur les opérations minières. Les attributs ont les fonctions suivantes : + +* **`sp_address_minig_reward`** : Adresse de récompense SP pour l'exploitation minière. +* **`sp_address_refunder`** : Adresse SP rembourseur. +* **`block_hash_mined_list`** : Liste des hashes de blocs extraits. +* **`spend_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour dépenser les fonds de ce noeud. +* **`scan_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour détecter les transaction Silent Payment les fonds de ce noeud. + +La structure `L2Certif` spécifie une certification de niveau 2. Les attributs ont les fonctions suivantes : + +* **`sp_address_certif_l1`** : Adresse de certification de niveau 1. +* **`block_certified_list`** : Liste des blocs certifiés de types `BlockCertif`. +* **`spend_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour dépenser les fonds de ce noeud. +* **`scan_key`** : [PRIVE] cet attribut n'est pas partager dans le message, c'est la clé privée pour détecter les transaction Silent Payment les fonds de ce noeud. + +La structure `BlockCertif` spécifie un bloc certifié. Les attributs ont les fonctions suivantes : + +* **`l2_block_hash_list`** : Liste des hashes de blocs. +* **`l1_tx`** : Transaction de niveau 1. + ## 6. 7. Traitements par les clients ### 6.1. 7.1. Connexion d'un client à sa liste de relais via les messages de type `MessageConnect` @@ -116,14 +206,22 @@ Les connexions utilisent le protocole WebSocket avec ou sans SSL (URL commençan L'utilisateur parcourt sa liste de relais et envoie un message de type `MessageConnect` au format JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter. Il partage ainsi sa liste de relais et sa liste de `ItemProcess`. Il n'y a pas de retour attendu pour ce message. +Objet de type `MessageConnect`. Les attributs ont les fonctions suivantes : + +* ***message** : Contient le `MessageGeneric` + ### 6.2. 7.2. Envoi de `Request` sur les relais via les messages de type `Message` ![MessageSend.png](diagrams/MessageSend.png "MessageSend.") ![PeerSendScore.png](diagrams/PeerSendScore.png "PeerSendScore.") -### 6.4. 7.4. Traitement des messages de type `Message` par les clients +Objet de type `Message`, Les attributs ont les fonctions suivantes : +* **`message`** : Contient le `MessageGeneric` +* **`request_enc`** : Contient le `RequestPcd` ou un `RequestPrd` chiffré par la `ProcessKey` + +### 6.4. 7.4. Traitement des messages de type `Message` par les clients ![PeerReceivedScore.png](diagrams/PeerReceivedScore.png "PeerReceivedScore.") diff --git a/doc/Specs-Datamodel.md b/doc/Specs-Datamodel.md index 36b1373..5b1828d 100644 --- a/doc/Specs-Datamodel.md +++ b/doc/Specs-Datamodel.md @@ -120,11 +120,9 @@ Voir [Doc_references.md](Doc_references.md). ### 2.1. DepositMethod -The `DepositMethod` struct identifies a specific deposit method, encapsulating the approach or mechanism for deposits within the system. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|------------------------------| -| `method` | ```String``` | | Represents a deposit method. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `method` | ```String``` | | Pseudo-code: @@ -136,11 +134,9 @@ Pseudo-code: ### 2.2. CommitmentMethod -`CommitmentMethod` represents a particular method of commitment, defining how commitments are made or managed in the system. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|---------------------------------| -| `method` | ```String``` | | Represents a commitment method. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `method` | ```String``` | | Pseudo-code: @@ -152,11 +148,9 @@ Pseudo-code: ### 2.3. PaymentMethod -`PaymentMethod` specifies a payment mechanism, detailing the method used for financial transactions. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|------------------------------------------------------| -| `method` | ```String``` | | La méthode de paiement représentée par cette struct. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `method` | ```String``` | | Pseudo-code: @@ -170,18 +164,16 @@ Pseudo-code: ### 3.1. 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. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|--------------------------------|--------|---------------------------------------------------------------------------| -| `uuid` | ```String``` | | A unique identifier for the item. | -| `version` | ```i64``` | | The version of the item. | -| `item_type` | ```String``` | | The type of the item. `type` is a reserved keyword in Rust, renamed here. | -| `name` | ```String``` | | The name of the item. | -| `pagination_number_per_request_pcd` | ```u32``` | | The pagination number per Portable Contract Document ( RequestPcd). | -| `metadata_contract_public` | ```MetadataContractPublic``` | | Public metadata contract 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. | +| Attribute Name | Type | Option | +|-------------------------------------|--------------------------------|--------| +| `uuid` | ```String``` | | +| `version` | ```i64``` | | +| `item_type` | ```String``` | | +| `name` | ```String``` | | +| `pagination_number_per_request_pcd` | ```u32``` | | +| `metadata_contract_public` | ```MetadataContractPublic``` | | +| `metadata_role_confidential` | ```MetadataRoleConfidential``` | | +| `metadata_private` | ```MetadataPrivate``` | | Pseudo-code: @@ -200,14 +192,12 @@ Pseudo-code: ### 3.2. ItemArtefact -`ItemArtefact` associates an item with artefact-specific attributes, including public, confidential, and private attribute groups, to represent artefacts within the system. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|-------------------|--------|-------------------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this artefact. | -| `public_attribute_group` | ```Vec``` | | A list of public attributes associated with the artefact. | -| `role_confidential_attribute_group` | ```Vec``` | | A list of role-specific confidential attributes for the artefact. | -| `private_attribute_group` | ```Vec``` | | A list of private attributes associated with the artefact. | +| Attribute Name | Type | Option | +|-------------------------------------|-------------------|--------| +| `item` | ```Item``` | | +| `public_attribute_group` | ```Vec``` | | +| `role_confidential_attribute_group` | ```Vec``` | | +| `private_attribute_group` | ```Vec``` | | Pseudo-code: @@ -222,12 +212,12 @@ Pseudo-code: ### 3.3. ItemMember -| Attribute Name | Type | Option | Description | -|-------------------------------------|------------------------------------------------|--------|-----------------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this member. | -| `public_attribute_group` | ```ItemMemberPublicAttributeGroup``` | | A list of public attributes associated with the member. | -| `role_confidential_attribute_group` | ```ItemMemberRoleConfidentialAttributeGroup``` | | A list of role-specific confidential attributes for the member. | -| `private_attribute_group` | ```ItemMemberPrivateAttributeGroup``` | | A list of private attributes associated with the member. | +| Attribute Name | Type | Option | +|-------------------------------------|------------------------------------------------|--------| +| `item` | ```Item``` | | +| `public_attribute_group` | ```ItemMemberPublicAttributeGroup``` | | +| `role_confidential_attribute_group` | ```ItemMemberRoleConfidentialAttributeGroup``` | | +| `private_attribute_group` | ```ItemMemberPrivateAttributeGroup``` | | Pseudo-code: @@ -242,18 +232,16 @@ Pseudo-code: #### 3.3.1. ItemMemberPublicAttributeGroup -`ItemMemberPublicAttributeGroup` outlines public attributes for members, including service provider addresses and payment methods, for transparency in member-related information. - -| Attribute Name | Type | Option | Description | -|--------------------------------|-------------------|--------|---------------------------------------------------------------| -| `sp_address_public` | ```String``` | | The public service provider address. | -| `sp_address_public_sig` | ```String``` | | The signature for the public service provider address. | -| `sp_address_revoke_public` | ```String``` | | The public address for revoking service provider access. | -| `sp_address_revoke_public_sig` | ```String``` | | The signature for the public address for revoking access. | -| `third_sp_address_list_public` | ```Vec``` | | A list of public addresses for third-party service providers. | -| `data_size_max` | ```i64``` | | The maximum size of data allowed. | -| `payment_method_list_public` | ```Vec``` | | A list of public payment methods available. | -| `succession_process_hash` | ```String``` | | The hash of the succession process associated with this item. | +| Attribute Name | Type | Option | +|--------------------------------|-------------------|--------| +| `sp_address_public` | ```String``` | | +| `sp_address_public_sig` | ```String``` | | +| `sp_address_revoke_public` | ```String``` | | +| `sp_address_revoke_public_sig` | ```String``` | | +| `third_sp_address_list_public` | ```Vec``` | | +| `data_size_max` | ```i64``` | | +| `payment_method_list_public` | ```Vec``` | | +| `succession_process_hash` | ```String``` | | Pseudo-code: @@ -272,13 +260,11 @@ Pseudo-code: #### 3.3.2. ItemMemberRoleConfidentialAttributeGroup -`ItemMemberRoleConfidentialAttributeGroup` - -| Attribute Name | Type | Option | Description | -|--------------------------------------------|--------------|--------|----------------------------------------------------| -| `shard_confidential` | ```String``` | yes | Shard of this member from the cache if it exist | -| `pre_id_confidential` | ```String``` | yes | `pre_id` of this member from the cache if it exist | -| `device_footprint_enc_by_sp_shared_secret` | ```String``` | yes | `pre_id` of this member from the cache if it exist | +| Attribute Name | Type | Option | +|--------------------------------------------|--------------|--------| +| `shard_confidential` | ```String``` | yes | +| `pre_id_confidential` | ```String``` | yes | +| `device_footprint_enc_by_sp_shared_secret` | ```String``` | yes | Pseudo-code: @@ -292,14 +278,12 @@ Pseudo-code: #### 3.3.3. ItemMemberRolePrivateAttributeGroup -`ItemMemberRolePrivateAttributeGroup` - -| Attribute Name | Type | Option | Description | -|--------------------------|--------------|--------|-------------| -| `priv_key_mainnet_spend` | ```String``` | yes | | -| `priv_key_mainnet_scan` | ```String``` | yes | | -| `priv_key_signet_scan` | ```String``` | yes | | -| `randSeedPart2` | ```String``` | yes | | +| Attribute Name | Type | Option | +|--------------------------|--------------|--------| +| `priv_key_mainnet_spend` | ```String``` | yes | +| `priv_key_mainnet_scan` | ```String``` | yes | +| `priv_key_signet_scan` | ```String``` | yes | +| `randSeedPart2` | ```String``` | yes | Pseudo-code: @@ -314,14 +298,12 @@ Pseudo-code: ### 3.4. ItemCommitment -`ItemCommitment` links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|----------------------------------------------------|--------|---------------------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this commitment. | -| `public_attribute_group` | ```ItemCommitmentPublicAttributeGroup``` | | The public attribute group associated with 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. | +| Attribute Name | Type | Option | +|-------------------------------------|----------------------------------------------------|--------| +| `item` | ```Item``` | | +| `public_attribute_group` | ```ItemCommitmentPublicAttributeGroup``` | | +| `role_confidential_attribute_group` | ```ItemCommitmentRoleConfidentialAttributeGroup``` | | +| `private_attribute_group` | ```ItemCommitmentPrivateAttributeGroup``` | | Pseudo-code: @@ -336,11 +318,9 @@ Pseudo-code: #### 3.4.1. ItemCommitmentRoleConfidentialAttributeGroup -This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information. - -| Attribute Name | Type | Option | Description | -|-----------------------------|-------------------|--------|------------------------------------------------------------------| -| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this commitment. | +| Attribute Name | Type | Option | +|-----------------------------|-------------------|--------| +| `payload_list_confidential` | ```Vec``` | | Pseudo-code: @@ -352,11 +332,9 @@ Pseudo-code: #### 3.4.2. ItemCommitmentPrivateAttributeGroup -`ItemCommitmentPrivateAttributeGroup` contains private attributes for commitments, ensuring privacy for the most sensitive commitment details. - -| Attribute Name | Type | Option | Description | -|------------------------|-------------------|--------|-------------------------------------------------------------| -| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this commitment. | +| Attribute Name | Type | Option | +|------------------------|-------------------|--------| +| `payload_list_private` | ```Vec``` | | Pseudo-code: @@ -368,17 +346,15 @@ Pseudo-code: ##### 4.2.1. ItemCommitmentPublicAttributeGroup -This struct groups public attributes related to commitments, such as goals and provider types, to publicly share commitment details. - -| Attribute Name | Type | Option | Description | -|------------------------------------|-------------------|--------|---------------------------------------------------------------------------------| -| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses related to this commitment. | -| `goal_list` | ```Vec``` | | A list of goals associated with this commitment. | -| `provider_type` | ```String``` | | The type of provider making the commitment. | -| `commitment_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the commitment's RequestPcd documents. | -| `ref_item_hash_list` | ```Vec``` | | A list of reference hashes for items related to this commitment. | -| `ref_request_pcd_hash_list` | ```Vec``` | | A list of reference hashes for RequestPcd documents related to this commitment. | -| `payload_public_list` | ```Vec``` | | A list of public payloads associated with this commitment. | +| Attribute Name | Type | Option | +|------------------------------------|-------------------|--------| +| `for_sp_address_list` | ```Vec``` | | +| `goal_list` | ```Vec``` | | +| `provider_type` | ```String``` | | +| `commitment_request_pcd_hash_list` | ```Vec``` | | +| `ref_item_hash_list` | ```Vec``` | | +| `ref_request_pcd_hash_list` | ```Vec``` | | +| `payload_public_list` | ```Vec``` | | Pseudo-code: @@ -396,14 +372,12 @@ Pseudo-code: ### 3.5. ItemDeposit -It combines an item with deposit-specific attributes, including public, confidential, and private groups, to comprehensively represent a deposit. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|-------------------------------------------------|--------|------------------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this deposit. | -| `public_attribute_group` | ```ItemDepositPublicAttributeGroup``` | | The public attribute group associated with 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. | +| Attribute Name | Type | Option | +|-------------------------------------|-------------------------------------------------|--------| +| `item` | ```Item``` | | +| `public_attribute_group` | ```ItemDepositPublicAttributeGroup``` | | +| `role_confidential_attribute_group` | ```ItemDepositRoleConfidentialAttributeGroup``` | | +| `private_attribute_group` | ```ItemDepositPrivateAttributeGroup``` | | Pseudo-code: @@ -418,18 +392,16 @@ Pseudo-code: #### 3.5.1. ItemDepositPublicAttributeGroup -It details public attributes for deposits, including target addresses and goals, facilitating the understanding of deposit objectives. - -| Attribute Name | Type | Option | Description | -|-----------------------------|-------------------|--------|------------------------------------------------------------------| -| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses targeted by this deposit. | -| `for_address_list` | ```Vec``` | | A list of addresses targeted by this deposit. | -| `goal_list` | ```Vec``` | | A list of goals associated with this deposit. | -| `provider_type` | ```String``` | | The type of provider making the deposit. | -| `ref_item_hash_list` | ```Vec``` | | A list of item hashes referenced by this deposit. | -| `ref_request_pcd_hash_list` | ```Vec``` | | A list of RequestPcd document hashes referenced by this deposit. | -| `payload_list_public` | ```Vec``` | | A list of public payloads associated with this deposit. | -| `audit_code_list_public` | ```Vec``` | | A list of public audit codes associated with this deposit. | +| Attribute Name | Type | Option | +|-----------------------------|-------------------|--------| +| `for_sp_address_list` | ```Vec``` | | +| `for_address_list` | ```Vec``` | | +| `goal_list` | ```Vec``` | | +| `provider_type` | ```String``` | | +| `ref_item_hash_list` | ```Vec``` | | +| `ref_request_pcd_hash_list` | ```Vec``` | | +| `payload_list_public` | ```Vec``` | | +| `audit_code_list_public` | ```Vec``` | | Pseudo-code: @@ -448,12 +420,10 @@ Pseudo-code: #### 3.5.2. ItemDepositRoleConfidentialAttributeGroup -Similar to its commitment counterpart, this struct holds confidential attributes specific to deposits, protecting sensitive deposit information. - -| Attribute Name | Type | Option | Description | -|--------------------------------|-------------------|--------|------------------------------------------------------------------| -| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this deposit. | -| `audit_code_list_confidential` | ```Vec``` | | A list of confidential audit codes associated with this deposit. | +| Attribute Name | Type | Option | +|--------------------------------|-------------------|--------| +| `payload_list_confidential` | ```Vec``` | | +| `audit_code_list_confidential` | ```Vec``` | | Pseudo-code: @@ -466,13 +436,10 @@ Pseudo-code: #### 3.5.3. ItemDepositPrivateAttributeGroup -`ItemDepositPrivateAttributeGroup` secures private deposit attributes, safeguarding the most sensitive aspects of deposits. - -| Attribute Name | Type | Option | Description | -|------------------------|-------------------|--------|----------------------------------------------------------| -| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this deposit. | -| `audit_code_private` | ```String``` | | A private audit code associated with this deposit. | - +| Attribute Name | Type | Option | +|------------------------|-------------------|--------| +| `payload_list_private` | ```Vec``` | | +| `audit_code_private` | ```String``` | | Pseudo-code: ```json @@ -484,8 +451,6 @@ Pseudo-code: ### 3.6. ItemEnum -This enumeration represents different types of items within a system, where each variant encapsulates a specific struct for a type of item: - * **```Process(ItemProcess)```**: Contains an item of type ItemProcess, representing a process. * **```Peer(ItemPeer)```**: Contains an item of type ItemPeer, representing a peer. * **```Member(ItemMember)```**: Contains an item of type ItemMember, representing a member. @@ -496,14 +461,12 @@ This enumeration represents different types of items within a system, where each ### 3.7. ItemPayment -`ItemPayment` links an item with payment-specific attributes across public, confidential, and private groups, offering a full view of a payment. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|-------------------------------------------------|--------|------------------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this payment. | -| `public_attribute_group` | ```ItemPaymentPublicAttributeGroup``` | | The public attribute group associated with 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. | +| Attribute Name | Type | Option | +|-------------------------------------|-------------------------------------------------|--------| +| `item` | ```Item``` | | +| `public_attribute_group` | ```ItemPaymentPublicAttributeGroup``` | | +| `role_confidential_attribute_group` | ```ItemPaymentRoleConfidentialAttributeGroup``` | | +| `private_attribute_group` | ```ItemPaymentPrivateAttributeGroup``` | | Pseudo-code: @@ -518,21 +481,19 @@ Pseudo-code: #### 3.7.1. ItemPaymentPublicAttributeGroup -This struct organizes public payment attributes, detailing aspects like service provider addresses and payment goals, for public knowledge. - -| Attribute Name | Type | Option | Description | -|------------------------------------|-------------------|--------|-----------------------------------------------------------------------| -| `for_sp_address_list` | ```Vec``` | | A list of service provider addresses related to this payment. | -| `goal_list` | ```Vec``` | | A list of goals associated with this payment. | -| `provider_type` | ```String``` | | The type of provider making the payment. | -| `commitment_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's commitment precondition documents. | -| `order_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's order precondition documents. | -| `invoice_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment's invoice precondition documents. | -| `pay_request_pcd_hash_list` | ```Vec``` | | A list of hashes for the payment precondition documents. | -| `ref_item_hash_list` | ```Vec``` | | A list of item hashes referenced by this payment. | -| `ref_request_pcd_hash_list` | ```Vec``` | | A list of precondition document hashes referenced by this payment. | -| `payload_list_public` | ```Vec``` | | A list of public payloads associated with this payment. | -| `audit_code_list_public` | ```Vec``` | | A list of public audit codes associated with this payment. | +| Attribute Name | Type | Option | +|------------------------------------|-------------------|--------| +| `for_sp_address_list` | ```Vec``` | | +| `goal_list` | ```Vec``` | | +| `provider_type` | ```String``` | | +| `commitment_request_pcd_hash_list` | ```Vec``` | | +| `order_request_pcd_hash_list` | ```Vec``` | | +| `invoice_request_pcd_hash_list` | ```Vec``` | | +| `pay_request_pcd_hash_list` | ```Vec``` | | +| `ref_item_hash_list` | ```Vec``` | | +| `ref_request_pcd_hash_list` | ```Vec``` | | +| `payload_list_public` | ```Vec``` | | +| `audit_code_list_public` | ```Vec``` | | Pseudo-code: @@ -542,12 +503,10 @@ Pseudo-code: #### 3.7.2. ItemPaymentRoleConfidentialAttributeGroup -It holds confidential payment attributes, maintaining the confidentiality of critical payment information. - -| Attribute Name | Type | Option | Description | -|--------------------------------|-------------------|--------|------------------------------------------------------------------| -| `payload_list_confidential` | ```Vec``` | | A list of confidential payloads associated with this payment. | -| `audit_code_list_confidential` | ```Vec``` | | A list of confidential audit codes associated with this payment. | +| Attribute Name | Type | Option | +|--------------------------------|-------------------|--------| +| `payload_list_confidential` | ```Vec``` | | +| `audit_code_list_confidential` | ```Vec``` | | Pseudo-code: @@ -569,12 +528,10 @@ Pseudo-code: #### 3.7.3. ItemPaymentPrivateAttributeGroup -ItemPaymentPrivateAttributeGroup protects private payment attributes, ensuring the highest level of privacy for payment details. - -| Attribute Name | Type | Option | Description | -|------------------------|-------------------|--------|----------------------------------------------------------| -| `payload_list_private` | ```Vec``` | | A list of private payloads associated with this payment. | -| `audit_code_private` | ```String``` | | A private audit code associated with this payment. | +| Attribute Name | Type | Option | +|------------------------|-------------------|--------| +| `payload_list_private` | ```Vec``` | | +| `audit_code_private` | ```String``` | | Pseudo-code: @@ -587,14 +544,12 @@ Pseudo-code: ### 3.8. ItemPeer -`ItemPeer` combines basic item information with layers, public, and private attributes, fully detailing a peer within the system. - -| Attribute Name | Type | Option | Description | -|---------------------------|-------------------------------------|--------|---------------------------------------------------------------| -| `item` | ```Item``` | | Représente les informations de base de l'item. | -| `layer_list` | ```Vec``` | | Une liste des couches (layers) auxquelles ce pair appartient. | -| `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. | +| Attribute Name | Type | Option | +|---------------------------|-------------------------------------|--------| +| `item` | ```Item``` | | +| `layer_list` | ```Vec``` | | +| `public_attribute_group` | ```ItemPeerPublicAttributeGroup``` | | +| `private_attribute_group` | ```ItemPeerPrivateAttributeGroup``` | | Pseudo-code: @@ -609,21 +564,19 @@ Pseudo-code: #### 3.8.1. ItemPeerPublicAttributeGroup -It outlines public peer attributes, such as service provider addresses and PoW details, for transparency in peer-related information. - -| Attribute Name | Type | Option | Description | -|--------------------------------|-------------------|--------|-------------------------------------------------------------------------------| -| `sp_address` | ```String``` | | The service provider's address associated with this peer. | -| `domain` | ```String``` | | The domain associated with this peer. | -| `ip_address` | ```String``` | | The IP address associated with this peer. | -| `pow_difficulty` | ```u32``` | | The Proof of Work (PoW) difficulty level required by this peer. | -| `pow_pattern` | ```String``` | | The PoW pattern used by this peer. | -| `pow_prefix` | ```String``` | | The PoW prefix used by this peer. | -| `data_size_max` | ```i64``` | | The maximum data size allowed by this peer. | -| `timestamp_delay_max` | ```u64``` | | The maximum delay (in timestamps) allowed by this peer. | -| `daily_hash_list` | ```Vec``` | | A daily list of hashes associated with this peer. | -| `daily_sp_tx_mine_list` | ```Vec``` | | A daily list of service provider transactions mined by this peer. | -| `daily_sp_tx_mine_reward_list` | ```Vec``` | | A daily list of rewards for service provider transactions mined by this peer. | +| Attribute Name | Type | Option | +|--------------------------------|-------------------|--------| +| `sp_address` | ```String``` | | +| `domain` | ```String``` | | +| `ip_address` | ```String``` | | +| `pow_difficulty` | ```u32``` | | +| `pow_pattern` | ```String``` | | +| `pow_prefix` | ```String``` | | +| `data_size_max` | ```i64``` | | +| `timestamp_delay_max` | ```u64``` | | +| `daily_hash_list` | ```Vec``` | | +| `daily_sp_tx_mine_list` | ```Vec``` | | +| `daily_sp_tx_mine_reward_list` | ```Vec``` | | Pseudo-code: @@ -645,11 +598,9 @@ Pseudo-code: #### 3.8.2. ItemPeerPrivateAttributeGroup -`ItemPeerPrivateAttributeGroup` contains a private configuration ```String``` for a peer, keeping certain peer configurations confidential. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|-----------------------------------------------------------------| -| `config` | ```String``` | | A private configuration ```String``` associated with this peer. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `config` | ```String``` | | Pseudo-code: @@ -661,12 +612,10 @@ Pseudo-code: ### 3.9. ItemProcess -`ItemProcess` associates an item with a process, including public attribute groups, to represent processes within the system comprehensively. - -| Attribute Name | Type | Option | Description | -|---------------------------------------|---------------------------------------|--------|----------------------------------------------------------| -| `item` | ```Item``` | | Represents the item associated with this process. | -| `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | | The public attribute group associated with this process. | +| Attribute Name | Type | Option | +|---------------------------------------|---------------------------------------|--------| +| `item` | ```Item``` | | +| `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | | Pseudo-code: @@ -679,11 +628,9 @@ Pseudo-code: #### 3.9.1. ItemProcessPublicAttributeGroup -This struct details public attributes related to processes, like roles groups, to facilitate understanding of process organization. - -| Attribute Name | Type | Option | Description | -|----------------|------------|--------|-----------------------------------------------------------| -| `roles_group` | RolesGroup | | Represents a group of roles associated with this process. | +| Attribute Name | Type | Option | +|----------------|------------|--------| +| `roles_group` | RolesGroup | | Pseudo-code: @@ -697,13 +644,11 @@ Pseudo-code: ### 4.1. 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. - -| Attribute Name | Type | Option | Description | -|------------------|--------------|--------|---------------------------------------------------------------| -| `attribute_name` | ```String``` | Yes | An optional name of the attribute this encryption key is for. | -| `key` | ```String``` | Yes | An optional encryption key. | -| `algorithm` | ```String``` | Yes | An optional encryption algorithm used with this key. | +| Attribute Name | Type | Option | +|------------------|--------------|--------| +| `attribute_name` | ```String``` | Yes | +| `key` | ```String``` | Yes | +| `algorithm` | ```String``` | Yes | Pseudo-code: @@ -717,11 +662,9 @@ Pseudo-code: ### 4.2. 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. - -| Attribute Name | Type | Option | Description | -|----------------|-----------------------------|--------|------------------------------------------------------------------------------| -| `key` | ```GenericArray``` | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. | +| Attribute Name | Type | Option | +|----------------|-----------------------------|--------| +| `key` | ```GenericArray``` | | Pseudo-code: @@ -735,12 +678,10 @@ Pseudo-code: ### 5.1. Message -`Message` encapsulates a client message, including an encrypted request and its hash, essential for secure and verifiable client-server communication. - -| Attribute Name | Type | Option | Description | -|----------------|---------------|--------|------------------------------------------------------------------| -| `message` | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. | -| `request_enc` | ```String``` | | The encrypted request content. | +| Attribute Name | Type | Option | +|----------------|---------------|--------| +| `message` | ```MessageGeneric``` | | +| `request_enc` | ```String``` | | Pseudo-code: @@ -753,11 +694,9 @@ Pseudo-code: ### 5.2. MessageConnect -The `MessageConnect` struct is designed to handle connection-related messages, facilitating the establishment of connections within the system. - -| Attribute Name | Type | Option | Description | -|----------------|---------------|--------|------------------------------------------------------------------| -| message | ```Message``` | | Represents a message, assuming `Message` is a predefined struct. | +| Attribute Name | Type | Option | +|----------------|---------------|--------| +| message | ```MessageGeneric``` | | Pseudo-code: @@ -769,15 +708,13 @@ Pseudo-code: ### 5.3. MessageGeneric -`Message` provides a general structure for messages, including shared peers and processes, and details like PoW challenges, supporting diverse communication needs - -| Attribute Name | Type | Option | Description | -|------------------------|--------------------------|--------|------------------------------------------------------------------------------------| -| `shared_peer_list` | ```Vec``` | | A list of shared peers, assuming `SharedPeer` is a predefined struct. | -| `shared_process_list` | ```Vec``` | | A list of shared processes, assuming `SharedProcess` is a predefined struct. | -| `faucet_sp_address` | ```String``` | | The service provider address for a faucet. | -| `pow` | ```Pow``` | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. | -| `raw_transaction_list` | ```Vec``` | Yes | Transaction to broadcast | +| Attribute Name | Type | Option | +|------------------------|--------------------------|--------| +| `shared_peer_list` | ```Vec``` | | +| `shared_process_list` | ```Vec``` | | +| `faucet_sp_address` | ```String``` | | +| `pow` | ```Pow``` | | +| `raw_transaction_list` | ```Vec``` | Yes | Pseudo-code: @@ -793,15 +730,13 @@ Pseudo-code: ### 5.4. Pow -The `Pow` struct outlines a Proof of Work challenge, including data hash, timestamp, and nonce, to ensure computational effort for security purposes. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|---------------------------------------------------------| -| `data_hash` | ```String``` | | The hash of the data for which the PoW is being solved. | -| `timestamp` | ```u64``` | Yes | An optional timestamp associated with the PoW solution. | -| `nonce` | ```u64``` | Yes | An optional nonce value used in the PoW calculation. | -| `pattern` | ```String``` | | The pattern that the PoW solution must match. | -| `difficulty` | ```usize``` | | The difficulty level of the PoW challenge. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `data_hash` | ```String``` | | +| `timestamp` | ```u64``` | Yes | +| `nonce` | ```u64``` | Yes | +| `pattern` | ```String``` | | +| `difficulty` | ```usize``` | | Pseudo-code: @@ -817,32 +752,28 @@ Pseudo-code: ### 5.5. SharedProcess -`SharedProcess` identifies a shared process within the system, aiding in the management and coordination of collaborative processes. - -| Attribute Name | Type | Option | Description | -|----------------|--------------------|--------|---------------------------------------------| -| `processes` | `Vec` | | A list of SP addresses related to the role. | +| Attribute Name | Type | Option | +|----------------|--------------------|--------| +| `process_list` | `Vec` | | Pseudo-code: ```json { - "processes": [] + "process_list": [] } ``` ### 5.6. SharedPeer -`SharedPeer` specifies a peer within the network, playing a key role in distributed information sharing and communication. - -| Attribute Name | Type | Option | Description | -|----------------|----------------|--------|---------------------------------------------------------| -| `domain` | ```String``` | Yes | The domain associated with the shared peer. | -| `address_ip` | ```String``` | | The IP address of the shared peer. | -| `relay` | ```Relay``` | | Represents a relay node in the network. | -| `l1_node` | ```L1Node``` | Yes | Represents a level 1 (L1) node in the network. | -| `l1_miner` | ```L1Miner``` | Yes | | -| `l2_node_list` | ```[L2Node]``` | | Represents a table of level 2 (L2) node in the network. | +| Attribute Name | Type | Option | +|----------------|----------------|--------| +| `domain` | ```String``` | Yes | +| `address_ip` | ```String``` | | +| `relay` | ```Relay``` | | +| `l1_node` | ```L1Node``` | Yes | +| `l1_miner` | ```L1Miner``` | Yes | +| `l2_node_list` | ```[L2Node]``` | | Pseudo-code: @@ -859,20 +790,14 @@ Pseudo-code: ## 6. Relay -Represents a `Relay` in the network, specifying its address and port, data handling capacity, and Proof of Work (PoW) requirements. - -| Attribute Name | Type | Option | Description | -|---------------------|-------------------|--------|-------------------------------------------------------------------| -| `address_port` | ```u16``` | | The port address of the relay. | -| `data_max_size` | ```usize``` | | Maximum size of data the relay can handle. | -| `pow_difficulty` | ```u32``` | | The difficulty level for the Proof of Work required by the relay. | -| `pow_pattern` | ```String``` | | The pattern used for the Proof of Work. | -| `pow_prefix` | ```String``` | | The prefix used for the Proof of Work. | -| `pow_timeout` | ```u32``` | | Timeout for pow | -| `faucet_sp_address` | ```u32``` | | Faucet address | -| `faucet_tx_list` | ```Vec``` | Yes | | -| `spend_key` | ```String``` | Yes | | -| `scan_key` | ```String``` | Yes | | +| Attribute Name | Type | Option | +|---------------------|-------------------|--------| +| `address_port` | ```u16``` | | +| `data_max_size` | ```usize``` | | +| `pow_difficulty` | ```u32``` | | +| `pow_pattern` | ```String``` | | +| `pow_prefix` | ```String``` | | +| `pow_timeout` | ```u32``` | | Pseudo-code: @@ -884,29 +809,22 @@ Pseudo-code: "pow_pattern": "", "pow_prefix": "", "pow_timeout": 0, - "faucet_sp_address": 0, - "faucet_tx_list": [], - "spend_key": "", - "scan_key": "" } ``` ## 7. L1Node -The `L1Node` struct details a Level 1 blockchain node, including its network, IP address, and status, integral to blockchain operations and interactions. - -| Attribute Name | Type | Option | Description | -|------------------------|-------------------|--------|-------------------------------| -| `address_port` | ```u16``` | | The port address of the node. | -| `explorer_base_url` | ```String``` | | The base URL of the explorer. | -| `sp_address_anchorage` | ```String``` | | The SP anchorage address. | -| `sp_address_reward` | ```String``` | | The SP reward address. | -| `l2_mining` | ```L2Mining``` | Yes | | -| `l2_certif` | ```L2Certif``` | Yes | | -| `reward_tx_list` | ```Vec``` | Yes | | -| `anchorage_tx_list` | ```Vec``` | Yes | | -| `spend_key` | ```String``` | Yes | | -| `scan_key` | ```String``` | Yes | | +| Attribute Name | Type | Option | +|------------------------|-------------------|--------| +| `address_port` | ```u16``` | | +| `explorer_base_url` | ```String``` | | +| `l2_mining` | ```L2Mining``` | Yes | +| `l2_certif` | ```L2Certif``` | Yes | +| `reward_received_tx_list` | ```Vec``` | Yes | +| `reward_send_tx_list` | ```Vec``` | Yes | +| `anchorage_tx_list` | ```Vec``` | Yes | +| `spend_key` | ```String``` | Yes | +| `scan_key` | ```String``` | Yes | Pseudo-code: @@ -914,11 +832,11 @@ Pseudo-code: { "address_port": 0, "explorer_base_url": "", - "sp_address_anchorage": "", - "sp_address_reward": "", "l2_mining": L2Mining, "l2_certif": L2Certif, - "reward_tx_list": [], + "reward_received_tx_list": [], + "reward_send_tx_list": [], + "anchorage_tx_list": [], "anchorage_tx_list": [], "spend_key": "", "scan_key": "" @@ -927,19 +845,16 @@ Pseudo-code: ### 7.1. L1NodeMining -| Attribute Name | Type | Option | Description | -|---------------------------|-------------------|--------|---------------------------| -| `sp_address_minig_reward` | ```string``` | | SP mining reward address. | -| `block_mined_list` | ```Vec``` | | List of mined blocks. | -| `mining_reward_tx_list` | ```Vec``` | Yes | | -| `spend_key` | ```String``` | Yes | | -| `scan_key` | ```String``` | Yes | | +| Attribute Name | Type | Option | +|---------------------------|-------------------|--------| +| `block_mined_list` | ```Vec``` | | +| `spend_key` | ```String``` | Yes | +| `scan_key` | ```String``` | Yes | Pseudo-code: ```json { - "sp_address_minig_reward": "", "block_mined_list": [], "mining_reward_tx_list": [], "spend_key": "", @@ -949,17 +864,17 @@ Pseudo-code: ### 7.2. 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. - -| Attribute Name | Type | Option | Description | -|------------------------|--------------|--------|-------------------------------| -| `address_port` | ```u16``` | | The port address of the node. | -| `explorer_base_url` | ```String``` | | The base URL of the explorer. | -| `sp_address_anchorage` | ```String``` | | The SP anchorage address. | -| `sp_address_reward` | ```String``` | | The SP reward address. | -| `nbits` | ```u32``` | | Number of bits. | -| `magic_number` | ```u32``` | | The magic number. | -| `challenge` | ```String``` | | The challenge. | +| Attribute Name | Type | Option | +|------------------------|--------------|--------| +| `address_port` | ```u16``` | | +| `explorer_base_url` | ```String``` | | +| `sp_address_anchorage` | ```String``` | | +| `sp_address_reward` | ```String``` | | +| `nbits` | ```u32``` | | +| `magic_number` | ```u32``` | | +| `challenge` | ```String``` | | +| `spend_key` | ```String``` | Yes | +| `scan_key` | ```String``` | Yes | Pseudo-code: @@ -971,31 +886,29 @@ Pseudo-code: "sp_address_reward": "", "nbits": 0, "magic_number": 0, - "challenge": "" + "challenge": "", + "spend_key": "", + "scan_key": "" } ``` ### 7.3. L2NodeMining -| Attribute Name | Type | Option | Description | -|---------------------------|-------------------|--------|-----------------------------| -| `sp_address_minig_reward` | ```string``` | | SP mining reward address. | -| `sp_address_refunder` | ```string``` | | SP refunder address. | -| `block_hash_mined_list` | ```Vec``` | | List of mined block hashes. | -| `minig_reward_tx_list` | ```Vec``` | Yes | | -| `refunder_tx_list` | ```Vec``` | Yes | | -| `spend_key` | ```String``` | Yes | | -| `scan_key` | ```String``` | Yes | | +| Attribute Name | Type | Option | +|---------------------------|-------------------|--------| +| `sp_address_minig_reward` | ```string``` | | +| `sp_address_refund` | ```string``` | | +| `block_hash_mined_list` | ```Vec``` | | +| `spend_key` | ```String``` | Yes | +| `scan_key` | ```String``` | Yes | Pseudo-code: ```json { "sp_address_minig_reward": "", - "sp_address_refunder": "", + "sp_address_refund": "", "block_hash_mined_list": [], - "minig_reward_tx_list": [], - "refunder_tx_list": [], "spend_key": "", "scan_key": "" } @@ -1003,32 +916,28 @@ Pseudo-code: ### 7.4. L2Certif -`L2Certif` specifies a Layer 2 certification, including its network and certification type, vital for managing certifications on Layer 2 solutions. - -| Attribute Name | Type | Option | Description | -|------------------------|------------------------|--------|--------------------------------| -| `sp_address_certif_l1` | ```String``` | | Level 1 certification address. | -| `sp_address_refunded` | ```string``` | | Refunded address. | -| `block_certified_list` | ```Vec``` | | List of certified blocks. | -| `certif_l1_tx_list` | ```Vec``` | Yes | | -| `refunded_tx_list` | ```Vec``` | Yes | | -| `anchorage_tx_list` | ```Vec``` | Yes | | -| `spend_key` | ```String``` | Yes | | -| `scan_key` | ```String``` | Yes | | +| Attribute Name | Type | Option | +|------------------------|------------------------|--------| +| `l2_block_hash_list` | ```Vec``` | | +| `l1_tx` | ```String``` | Yes | Pseudo-code: ```json +{ + "l2_block_hash_list": [], + "l1_tx": "" +} ``` ### 7.5. BlockCertif -| Attribute Name | Type | Option | Description | -|-------------------|-------------------|--------|-------------------------------| -| `block_hash_list` | ```Vec``` | | List of block hashes. | -| `certif_hash` | ```Vec``` | | List of certification hashes. | -| `l1_tx` | ```String``` | | Level 1 transaction. | +| Attribute Name | Type | Option | +|-------------------|-------------------|--------| +| `block_hash_list` | ```Vec``` | | +| `certif_hash` | ```Vec``` | | +| `l1_tx` | ```String``` | | Pseudo-code: @@ -1047,20 +956,18 @@ Pseudo-code: ## 8. Metadata -`MetaData` aggregates various metadata types, including tags, zones, and key lists, offering a comprehensive view of metadata for diverse applications. - -| Attribute Name | Type | Option | Description | -|------------------------|--------------------------|--------|----------------------------------------------------------------| -| `tag_list` | ```Vec``` | | A list of tags associated with the metadata. | -| `zone_list` | ```Vec``` | | A list of zones associated with the metadata. | -| `label_list` | ```Vec``` | | A list of labels associated with the metadata. | -| `ref_list` | ```Vec``` | | A list of references associated with the metadata. | -| `data_list` | ```Vec``` | | A list of data entries associated with the metadata. | -| `amount` | ```Amount``` | | An amount associated with the metadata. | -| `number` | ```Number``` | | A number associated with the metadata. | -| `render_template_list` | ```Vec``` | | A list of render templates associated with the metadata. | -| `legal_text_list` | ```Vec``` | | A list of legal texts associated with the metadata. | -| `key_list` | ```Vec``` | | A list of key encryption methods associated with the metadata. | +| Attribute Name | Type | Option | +|------------------------|--------------------------|--------| +| `tag_list` | ```Vec``` | | +| `zone_list` | ```Vec``` | | +| `label_list` | ```Vec``` | | +| `ref_list` | ```Vec``` | | +| `data_list` | ```Vec``` | | +| `amount` | ```Amount``` | | +| `number` | ```Number``` | | +| `render_template_list` | ```Vec``` | | +| `legal_text_list` | ```Vec``` | | +| `key_list` | ```Vec``` | | Pseudo-code: @@ -1081,11 +988,9 @@ Pseudo-code: ### 8.1. MetadataContractPublic -The `MetadataContractPublic` struct encapsulates public metadata for contracts, providing transparency and accessibility of contract-related information. - -| Attribute Name | Type | Option | Description | -|----------------|----------------|--------|------------------------------------------------------------| -| `meta_data` | ```MetaData``` | | Represents the public metadata associated with a contract. | +| Attribute Name | Type | Option | +|----------------|----------------|--------| +| `meta_data` | ```MetaData``` | | Pseudo-code: @@ -1097,11 +1002,9 @@ Pseudo-code: ### 8.2. MetadataPrivate -`MetadataPrivate` holds private metadata, ensuring the confidentiality of sensitive information associated with entities or contracts. - -| Attribute Name | Type | Option | Description | -|----------------|----------------|--------|------------------------------------------------------------| -| `meta_data` | ```MetaData``` | | Represents the private metadata associated with an entity. | +| Attribute Name | Type | Option | +|----------------|----------------|--------| +| `meta_data` | ```MetaData``` | | Pseudo-code: @@ -1113,11 +1016,9 @@ Pseudo-code: ### 8.3. MetadataRoleConfidential -This struct contains role-specific confidential metadata, balancing the need for privacy with role-based access and transparency. - -| Attribute Name | Type | Option | Description | -|----------------|----------------|--------|-------------------------------------------------------------------------------| -| `meta_data` | ```MetaData``` | | Represents the role-specific confidential metadata associated with an entity. | +| Attribute Name | Type | Option | +|----------------|----------------|--------| +| `meta_data` | ```MetaData``` | | Pseudo-code: @@ -1129,15 +1030,13 @@ Pseudo-code: ### 8.4. Amount -The `Amount` struct details financial amounts, including its timestamp, unit, and changes, facilitating precise financial transactions and records. - -| Attribute Name | Type | Option | Description | -|----------------------|-------------------|--------|----------------------------------------------------------------------------------| -| `timestamp` | ```u64``` | | A timestamp associated with the amount. | -| `change_source_list` | ```Vec``` | | A list of sources for changes to the amount. | -| `amount_cent` | ```i64``` | | The amount, allowing for precise financial transactions. | -| `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`. | +| Attribute Name | Type | Option | +|----------------------|-------------------|--------| +| `timestamp` | ```u64``` | | +| `change_source_list` | ```Vec``` | | +| `amount_cent` | ```i64``` | | +| `amount_unit` | ```String``` | | +| `amount_unit_ref` | ```String``` | | Pseudo-code: @@ -1153,13 +1052,11 @@ Pseudo-code: ### 8.5. Number -`Number` provides a numeric value and its unit, supporting a wide range of quantitative representations in system operations. - -| Attribute Name | Type | Option | Description | -|----------------|---------------|--------|-----------------------------------------------------------------| -| `fixed_state` | ```boolean``` | | Indicates whether the number is in a fixed state or can change. | -| `number` | ```i32``` | | The numeric value. | -| `number_unit` | ```String``` | | The unit of measurement for the number, if applicable. | +| Attribute Name | Type | Option | +|----------------|---------------|--------| +| `fixed_state` | ```boolean``` | | +| `number` | ```i32``` | | +| `number_unit` | ```String``` | | Pseudo-code: @@ -1173,19 +1070,17 @@ Pseudo-code: ## 9. Request -Defines a general request structure within the system, encapsulating details about the requested item, its type, version, and associated process and document references. - -| Attribute Name | Type | Option | Description | -|------------------------------|--------------|--------|--------------------------------------------------------------------------------------------| -| `item_name` | ```String``` | Yes | Optionally specifies the name of the item being requested. | -| `request_type` | ```String``` | | Specifies the type of request. `type` is a reserved keyword in Rust, hence `request_type`. | -| `version` | ```i64``` | | Specifies the version of the item or process being requested. | -| `process_hash` | ```String``` | | The hash of the process associated with the request. | -| `request_pcd_reference_hash` | ```String``` | Yes | Optionally specifies the hash of RequestPcd related to the request. | -| `request_pcd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPcd. | -| `request_prd_reference_hash` | ```String``` | Yes | Optionally specifies the hash of RequestPrd related to the request. | -| `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. | +| Attribute Name | Type | Option | +|------------------------------|--------------|--------| +| `item_name` | ```String``` | Yes | +| `request_type` | ```String``` | | +| `version` | ```i64``` | | +| `process_hash` | ```String``` | | +| `request_pcd_reference_hash` | ```String``` | Yes | +| `request_pcd_origin_hash` | ```String``` | Yes | +| `request_prd_reference_hash` | ```String``` | Yes | +| `request_prd_origin_hash` | ```String``` | Yes | +| `item_reference_hash` | ```String``` | Yes | Pseudo-code: @@ -1206,13 +1101,11 @@ Pseudo-code: ## 10. 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. - -| Attribute Name | Type | Option | Description | -|-----------------|--------------------------------------|--------|-------------------------------------------------------------------| -| `request` | ```Request``` | | The request, assuming `Request` is a predefined struct. | -| `item_enc_list` | ```Vec< RequestPcdItemGenericEnc>``` | | List of generic encrypted items. | -| `pagination` | ```Pagination``` | Yes | Pagination details, assuming `Pagination` is a predefined struct. | +| Attribute Name | Type | Option | +|-----------------|--------------------------------------|--------| +| `request` | ```Request``` | | +| `item_enc_list` | ```Vec< RequestPcdItemGenericEnc>``` | | +| `pagination` | ```Pagination``` | Yes | Pseudo-code: @@ -1226,14 +1119,12 @@ Pseudo-code: ### 10.1. Pagination -The `Pagination` struct is essential for managing large datasets, detailing the pagination strategy with start index, number of items, and page index. - -| Attribute Name | Type | Option | Description | -|----------------|-------------|--------|--------------------------------------------------| -| `start` | ```usize``` | | L'indice de départ pour la pagination. | -| `number` | ```usize``` | | Le nombre d'éléments par page. | -| `page_index` | ```usize``` | | L'indice de la page actuelle pour la pagination. | -| `page_total` | ```usize``` | | | +| Attribute Name | Type | Option | +|----------------|-------------|--------| +| `start` | ```usize``` | | +| `number` | ```usize``` | | +| `page_index` | ```usize``` | | +| `page_total` | ```usize``` | | Pseudo-code: @@ -1248,16 +1139,14 @@ Pseudo-code: ### 10.2. 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. - -| Attribute Name | Type | Option | Description | -|---------------------------------------------------------|--------------------------------------------------------|--------|----------------------------------------------------------| -| `version` | ```i64``` | | The version of the item. | -| `item_type` | ```String``` | | The type of the item. | -| `name` | ```String``` | | The name of the item. | -| `request_pcd_item_enc_attribute_public_list` | ```Vec< RequestPcdItemEncAttributePublic>``` | Yes | Optional list of public 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. | +| Attribute Name | Type | Option | +|---------------------------------------------------------|--------------------------------------------------------|--------| +| `version` | ```i64``` | | +| `item_type` | ```String``` | | +| `name` | ```String``` | | +| `request_pcd_item_enc_attribute_public_list` | ```Vec< RequestPcdItemEncAttributePublic>``` | Yes | +| `request_pcd_item_enc_attribute_role_confidential_list` | ```Vec< RequestPcdItemEncAttributeRoleConfidential>``` | Yes | +| `request_pcd_item_enc_attribute_private_list` | ```Vec< RequestPcdItemEncAttributePrivate>``` | Yes | Pseudo-code: @@ -1274,12 +1163,10 @@ Pseudo-code: #### 10.2.1. RequestPcdItemEncAttributePublic -This struct outlines public encrypted attributes for RequestPcd items, ensuring the secure transmission of public attribute data. - -| Attribute Name | Type | Option | Description | -|------------------|--------------|--------|---------------------------------------------------| -| `attribute_name` | ```String``` | | The name of the attribute. | -| `data_enc` | ```String``` | | The encrypted data associated with the attribute. | +| Attribute Name | Type | Option | +|------------------|--------------|--------| +| `attribute_name` | ```String``` | | +| `data_enc` | ```String``` | | Pseudo-code: @@ -1292,12 +1179,10 @@ Pseudo-code: #### 10.2.2. RequestPcdItemEncAttributeRoleConfidential - `request_pcdItemEncAttributeRoleConfidential` deals with role-specific confidential encrypted attributes, securing sensitive data while allowing role-based access. - -| Attribute Name | Type | Option | Description | -|------------------|--------------|--------|---------------------------------------------------| -| `attribute_name` | ```String``` | | The name of the attribute. | -| `data_enc` | ```String``` | Yes | The encrypted data associated with the attribute. | +| Attribute Name | Type | Option | +|------------------|--------------|--------| +| `attribute_name` | ```String``` | | +| `data_enc` | ```String``` | Yes | Pseudo-code: @@ -1310,12 +1195,10 @@ Pseudo-code: #### 10.2.3. RequestPcdItemEncAttributePrivate -It specifies private encrypted attributes for `request_pcd` items, protecting the most sensitive information with encryption. - -| Attribute Name | Type | Option | Description | -|------------------|--------------|--------|---------------------------------------------------------| -| `attribute_name` | ```String``` | | The name of the attribute. | -| `data_enc` | ```String``` | Yes | The encrypted data associated with this attribute name. | +| Attribute Name | Type | Option | +|------------------|--------------|--------| +| `attribute_name` | ```String``` | | +| `data_enc` | ```String``` | Yes | Pseudo-code: @@ -1328,35 +1211,33 @@ Pseudo-code: ## 11. 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. - -| Attribute Name | Type | Option | Description | -|----------------------------------------------------------------------------|-------------------|--------|--------------------------------------------------------------------------| -| `request` | ```Request``` | | A predefined struct representing the basic request information. | -| `sig_value` | ```String``` | | Valeur associée à la signature | -| `request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret` | ```Vec``` | | | -| `request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret` | ```Vec``` | | | -| `message_public` | ```String``` | Yes | Optionally specifies a public message associated with the request. | -| `message_confidential` | ```String``` | Yes | Optionally specifies a confidential message associated with the request. | -| `message_private` | ```String``` | Yes | Optionally specifies a private message associated with the request. | -| `sp_address_to` | ```String``` | | The service provider address to which the request is directed. | -| `sp_address_from` | ```String``` | | The service provider address from which the request originates. | -| `sp_address_reply` | ```String``` | | The service provider address for replies to the request. | -| `timestamp_declared` | ```u64``` | | A Unix timestamp indicating when the request was declared. | -| `role_name_from` | ```String``` | | The name of the role from which the request originates. | -| `role_name_to` | ```String``` | | The name of the role to which the request is directed. | -| `payment_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted payment method, encrypted with a shared secret. | -| `deposit_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted deposit method, encrypted with a shared secret. | -| `commitment_method_enc_by_shared_secret` | ```String``` | Yes | Encrypted commitment method, encrypted with a shared secret. | -| `payment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for payment-related RequestPcds. | -| `cap_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for capability-related RequestPcds. | -| `deposit_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for deposit-related RequestPcds. | -| `commitment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | A list of hashes for commitment-related RequestPcds. | -| `ask_payment_method_enc_by_shared_secret` | ```String``` | Yes | The requested payment method. | -| `ask_deposit_method_enc_by_shared_secret` | ```String``` | Yes | The requested deposit method. | -| `ask_commitment_method_enc_by_shared_secret` | ```String``` | Yes | The requested commitment method. | -| `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. | +| Attribute Name | Type | Option | +|-----------------------------|--------|-------- +| `request` | ```Request``` | | +| `sig_value` | ```String``` | | +| `request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret` | ```Vec``` | | +| `request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret` | ```Vec``` | | +| `message_public` | ```String``` | Yes | +| `message_confidential` | ```String``` | Yes | +| `message_private` | ```String``` | Yes | +| `sp_address_to` | ```String``` | | +| `sp_address_from` | ```String``` | | +| `sp_address_reply` | ```String``` | | +| `timestamp_declared` | ```u64``` | | +| `role_name_from` | ```String``` | | +| `role_name_to` | ```String``` | | +| `payment_method_enc_by_shared_secret` | ```String``` | Yes | +| `deposit_method_enc_by_shared_secret` | ```String``` | Yes | +| `commitment_method_enc_by_shared_secret` | ```String``` | Yes | +| `payment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | +| `cap_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | +| `deposit_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | +| `commitment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec``` | Yes | +| `ask_payment_method_enc_by_shared_secret` | ```String``` | Yes | +| `ask_deposit_method_enc_by_shared_secret` | ```String``` | Yes | +| `ask_commitment_method_enc_by_shared_secret` | ```String``` | Yes | +| `certif_key_enc_by_shared_secret` | ```String``` | Yes | +| `device_footprint_enc_by_sp_shared_secret` | ```String``` | | Pseudo-code: @@ -1392,13 +1273,11 @@ Pseudo-code: ### 11.1. 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. - -| Attribute Name | Type | Option | Description | -|---------------------------------------|------------------|--------|-------------------------------------------------------------------------------------------| -| `request_prd` | ```RequestPrd``` | | Represents a Portable Request Document. | -| `item_member_enc_by_sp_shared_secret` | ```String``` | Yes | (only for members manager) ItemMember to add if the `pre_id` not exist to the member list | -| `pre_id_sp_enc_by_shared_secret` | ```string``` | Yes | (only for members manager) An existing member `pre_id`. | +| Attribute Name | Type | Option | +|---------------------------------------|------------------|--------| +| `request_prd` | ```RequestPrd``` | | +| `item_member_enc_by_sp_shared_secret` | ```String``` | Yes | +| `pre_id_sp_enc_by_shared_secret` | ```string``` | Yes | Pseudo-code: @@ -1412,11 +1291,9 @@ Pseudo-code: ### 11.2. 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. - -| Attribute Name | Type | Option | Description | -|----------------|------------------|--------|-----------------------------------------| -| `request_prd` | ```RequestPrd``` | | Represents a Portable Request Document. | +| Attribute Name | Type | Option | +|----------------|------------------|--------| +| `request_prd` | ```RequestPrd``` | | Pseudo-code: @@ -1428,14 +1305,12 @@ Pseudo-code: ### 11.3. RequestPrdResponse -`request_prd` and its variations 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. - -| Attribute Name | Type | Option | Description | -|---------------------------------------------|------------------|--------|------------------------------------------------------------| -| `request_prd` | ```RequestPrd``` | | Represents a Request. | -| `sig_value` | ```String``` | | The signature value for the response. | -| `shared_secret_key_enc_by_sp_shared_secret` | ```String``` | Yes | Optional encryption key used for shared secrets. | -| `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. | +| Attribute Name | Type | Option | +|---------------------------------------------|------------------|--------| +| `request_prd` | ```RequestPrd``` | | +| `sig_value` | ```String``` | | +| `shared_secret_key_enc_by_sp_shared_secret` | ```String``` | Yes | +| `shard_enc_by_sp_shared_secret` | ```String``` | Yes | Pseudo-code: @@ -1450,12 +1325,10 @@ Pseudo-code: ### 11.4. 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. - -| Attribute Name | Type | Option | Description | -|-------------------------------------|------------------|--------|-----------------------------------------------------| -| `request_prd` | ```RequestPrd``` | | The RequestPrd (Portable Request Document) request. | -| `code_confirm_enc_by_shared_secret` | ```String``` | Yes | The confirmation code encrypted by a shared secret. | +| Attribute Name | Type | Option | +|-------------------------------------|------------------|--------| +| `request_prd` | ```RequestPrd``` | | +| `code_confirm_enc_by_shared_secret` | ```String``` | Yes | Pseudo-code: @@ -1468,12 +1341,10 @@ Pseudo-code: ### 11.5. 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. - -| Attribute Name | Type | Option | Description | -|------------------------|-------------------|--------|-----------------------------------------| -| `request_prd` | ```RequestPrd``` | | Represents a Portable Request Document. | -| `raw_transaction_list` | ```Vec``` | Yes | Represents a Portable Request Document. | +| Attribute Name | Type | Option | +|------------------------|-------------------|--------| +| `request_prd` | ```RequestPrd``` | | +| `raw_transaction_list` | ```Vec``` | Yes | Pseudo-code: @@ -1486,12 +1357,10 @@ Pseudo-code: ### 11.6. 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. - -| Attribute Name | Type | Option | Description | -|----------------|------------------|--------|-----------------------------------------| -| `request_prd` | ```RequestPrd``` | | Represents a Portable Request Document. | -| `sig_value` | ```String``` | | The signature value for the response. | +| Attribute Name | Type | Option | +|----------------|------------------|--------| +| `request_prd` | ```RequestPrd``` | | +| `sig_value` | ```String``` | | Pseudo-code: @@ -1504,28 +1373,24 @@ Pseudo-code: ## 12. 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. - ### 12.1. 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. - -| Attribute Name | Type | Option | Description | -|---------------------------------------|-----------------------------------|--------|--------------------------------------------------------| -| `item` | ```Item``` | | The item associated with the role. | -| `sp_output_salt_enc` | ```string``` | Yes | he salt encrypted for the hash in the sp outputs. | -| `required_2fa` | ```bool``` | | Indicates if two-factor authentication is required. | -| `validation_timeout` | ```u64``` | Yes | The timeout for validation in seconds. | -| `condition_prd_address_set_list` | ```Vec``` | | A list of product address set conditions. | -| `condition_publish_list` | ```Vec``` | Yes | The condition for publishing. | -| `condition_cap_list` | ```Vec``` | Yes | A list of capability conditions. | -| `condition_payment_list` | ```Vec``` | Yes | A list of payment conditions. | -| `condition_commitment_list` | ```Vec``` | Yes | A list of commitment conditions. | -| `condition_attribute_encryption_list` | ```Vec``` | | A list of attribute encryption conditions. | -| `condition_orchestration_list` | ```Vec``` | Yes | The condition for orchestration. | -| `role_succession` | ```String``` | Yes | Optional role for succession. | -| `role_resolve` | ```String``` | Yes | Optional role for resolving conflicts. | -| `role_renew` | ```String``` | Yes | Optional role for renewing conditions or capabilities. | +| Attribute Name | Type | Option | +|---------------------------------------|-----------------------------------|--------| +| `item` | ```Item``` | | +| `sp_output_salt_enc` | ```string``` | Yes | +| `required_2fa` | ```bool``` | | +| `validation_timeout` | ```u64``` | Yes | +| `condition_prd_address_set_list` | ```Vec``` | | +| `condition_publish_list` | ```Vec``` | Yes | +| `condition_cap_list` | ```Vec``` | Yes | +| `condition_payment_list` | ```Vec``` | Yes | +| `condition_commitment_list` | ```Vec``` | Yes | +| `condition_attribute_encryption_list` | ```Vec``` | | +| `condition_orchestration_list` | ```Vec``` | Yes | +| `role_succession` | ```String``` | Yes | +| `role_resolve` | ```String``` | Yes | +| `role_renew` | ```String``` | Yes | Pseudo-code: @@ -1552,21 +1417,19 @@ Pseudo-code: #### 12.2.1. 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. - -| Attribute Name | Type | Option | Description | -|------------------|-------------------|--------|------------------------------------------------------------------------------------------| -| `amount` | ```Amount``` | Yes | Montants échangées | -| `number` | ```Number``` | Yes | Unités échangées | -| `hash_ok_list` | ```Vec``` | Yes | Commitments de hash valant pour un résultat "OK" | -| `hash_ko_list` | ```Vec``` | Yes | Commitments de hash valant pour un résultat "KO" | -| `hash_none_list` | ```Vec``` | Yes | Commitments de hash valant pour un résultat "None" | -| `from_list` | ```Vec``` | | Adresse silent payment ou role qui doit opérer le paiement | -| `from_type` | ```String``` | | Soit "addresses" soit "roles" | -| `from_method` | ```String``` | | Méthode de distribution de la somme des prélèvements : "Amount divided" ou "Same Amount" | -| `to_list` | ```Vec``` | | Adresse silent payment ou role qui doit recevoir le Versement | -| `to_type` | ```String``` | | Soit "addresses" soit "roles" | -| `to_method` | ```String``` | | Méthode de distribution de la somme des versements : "Amount divided" ou "Same Amount" | +| Attribute Name | Type | Option | +|------------------|-------------------|--------| +| `amount` | ```Amount``` | Yes | +| `number` | ```Number``` | Yes | +| `hash_ok_list` | ```Vec``` | Yes | +| `hash_ko_list` | ```Vec``` | Yes | +| `hash_none_list` | ```Vec``` | Yes | +| `from_list` | ```Vec``` | | +| `from_type` | ```String``` | | +| `from_method` | ```String``` | | +| `to_list` | ```Vec``` | | +| `to_type` | ```String``` | | +| `to_method` | ```String``` | | Pseudo-code: @@ -1588,14 +1451,12 @@ Pseudo-code: #### 12.2.2. ConditionPayment -This struct outlines the conditions for payments, including the amount, payment method, and transaction mode, setting the parameters for financial transactions. - -| Attribute Name | Type | Option | Description | -|----------------------------|-------------------------------------|--------|--------------------------------------------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `transaction_mode` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | -| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Validation conditions + {sp_address_sender} and {sp_address_receiver} placehoders for Address SP | -| `condition_deposit_list` | ```Vec``` | Yes | A list of deposit conditions. | +| Attribute Name | Type | Option | +|----------------------------|-------------------------------------|--------| +| `request_prd_type` | ```String``` | | +| `transaction_mode` | ```TransactionMode``` | | +| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | +| `condition_deposit_list` | ```Vec``` | Yes | Pseudo-code: @@ -1610,13 +1471,11 @@ Pseudo-code: #### 12.2.3. ConditionCommitment -The `ConditionCommitment` struct specifies a condition involving an artefact role and transaction mode, defining how commitments are handled and verified. - -| Attribute Name | Type | Option | Description | -|----------------------------|-------------------------------------|--------|--------------------------------------------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `transaction_mode` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | -| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Validation conditions + {sp_address_sender} and {sp_address_receiver} placehoders for Address SP | +| Attribute Name | Type | Option | +|----------------------------|-------------------------------------|--------| +| `request_prd_type` | ```String``` | | +| `transaction_mode` | ```TransactionMode``` | | +| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Pseudo-code: @@ -1630,13 +1489,11 @@ Pseudo-code: #### 12.2.4. ConditionDeposit -`ConditionDeposit` is similar to ConditionCap but specifically focuses on deposit-related transactions, establishing the criteria for deposit actions. - -| Attribute Name | Type | Option | Description | -|----------------------------|-------------------------------------|--------|--------------------------------------------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `transaction_mode` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | -| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Validation conditions + {sp_address_sender} and {sp_address_receiver} placehoders for Address SP | +| Attribute Name | Type | Option | +|----------------------------|-------------------------------------|--------| +| `request_prd_type` | ```String``` | | +| `transaction_mode` | ```TransactionMode``` | | +| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Pseudo-code: @@ -1650,14 +1507,12 @@ Pseudo-code: #### 12.2.5. ConditionOrchestration -`ConditionOrchestration` defines success and failure roles for orchestration conditions, guiding the flow of processes based on outcomes. - -| Attribute Name | Type | Option | Description | -|----------------------------|-------------------------------------|--------|--------------------------------------------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `role_ok` | ```String``` | | Represents the successful outcome role in the condition. | -| `role_ko` | ```String``` | | Represents the failed outcome role in the condition. | -| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Validation conditions + {sp_address_sender} and {sp_address_receiver} placehoders for Address SP | +| Attribute Name | Type | Option | +|----------------------------|-------------------------------------|--------| +| `request_prd_type` | ```String``` | | +| `role_ok` | ```String``` | | +| `role_ko` | ```String``` | | +| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Pseudo-code: @@ -1672,13 +1527,11 @@ Pseudo-code: #### 12.2.6. 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. - -| Attribute Name | Type | Option | Description | -|----------------------------|-------------------------------------|--------|--------------------------------------------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `transaction_mode` | ```TransactionMode``` | | Specifies the transaction mode associated with this role. | -| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Validation conditions + {sp_address_sender} and {sp_address_receiver} placehoders for Address SP | +| Attribute Name | Type | Option | +|----------------------------|-------------------------------------|--------| +| `request_prd_type` | ```String``` | | +| `transaction_mode` | ```TransactionMode``` | | +| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | | Pseudo-code: @@ -1692,33 +1545,31 @@ Pseudo-code: #### 12.2.7. ConditionRequestPrdAddressSet -Condition `request_prdAddressSet` involves complex conditions based on RequestPrd addresses, including quotas, values, and scores, to determine condition fulfillment. - -| Attribute Name | Type | Option | Description | -|-------------------------------------------------|-------------------|--------|------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `from_role` | ```String``` | Yes | Identifies the originating role in the condition. | -| `request_prd_sp_address_list` | ```Vec``` | | Lists addresses involved in the condition. | -| `request_prd_sp_address_required_list` | ```Vec``` | | Lists required addresses for the condition to be met. | -| `request_prd_sp_address_quota` | ```i32``` | | Specifies the quota of addresses for the condition. | -| `request_prd_value_ok_list` | ```Vec``` | | Lists the values that are considered acceptable. | -| `request_prd_value_ko_list` | ```Vec``` | | Lists the values that are considered failures. | -| `request_prd_value_none_list` | ```Vec``` | | Lists the values that are considered neutral or no-op. | -| `request_prd_value_auto_ok` | ```boolean``` | | Automatically consider values as OK. | -| `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_sp_address_value_min` | ```i64``` | Yes | The minimum value for an address to be considered. | -| `request_prd_sp_address_value_min_ok` | ```boolean``` | Yes | Indicates if the minimum address value is considered OK. | -| `request_prd_sp_adddress_value_ok_min_per` | ```i64``` | Yes | The minimum percentage for an address value to be OK. | -| `request_prd_sp_address_value_ok_max` | ```i64``` | Yes | The maximum value for an address to be considered OK. | -| `request_prd_sp_adderss_value_ko_max_per` | ```i64``` | Yes | The maximum percentage for an address value to be KO. | -| `request_prd_sp_address_value_ko_max` | ```i64``` | Yes | The maximum value for an address to be considered KO. | -| `request_prd_sp_address_value_none_max` | ```i64``` | Yes | The maximum value for an address to be considered neutral. | -| `request_prd_sp_adderss_value_none_max_per` | ```i64``` | Yes | The maximum percentage for a neutral address value. | -| `request_prd_sp_address_score_min` | ```i32``` | Yes | The minimum score for an address to be considered. | -| `request_prd_sp_address_score_min_min_required` | ```i32``` | Yes | The minimum required score for an address. | -| `request_prd_sp_address_score_min_min_ok` | ```boolean``` | Yes | Indicates if the minimum score is considered OK. | -| `request_prd_sp_address_score_min_min_per` | ```i64``` | Yes | The minimum percentage for the minimum score. | +| Attribute Name | Type | Option | +|-------------------------------------------------|-------------------|--------| +| `request_prd_type` | ```String``` | | +| `from_role` | ```String``` | Yes | +| `request_prd_sp_address_list` | ```Vec``` | | +| `request_prd_sp_address_required_list` | ```Vec``` | | +| `request_prd_sp_address_quota` | ```i32``` | | +| `request_prd_value_ok_list` | ```Vec``` | | +| `request_prd_value_ko_list` | ```Vec``` | | +| `request_prd_value_none_list` | ```Vec``` | | +| `request_prd_value_auto_ok` | ```boolean``` | | +| `request_prd_value_auto_ko` | ```boolean``` | | +| `request_prd_value_auto_none` | ```boolean``` | | +| `request_prd_sp_address_value_min` | ```i64``` | Yes | +| `request_prd_sp_address_value_min_ok` | ```boolean``` | Yes | +| `request_prd_sp_adddress_value_ok_min_per` | ```i64``` | Yes | +| `request_prd_sp_address_value_ok_max` | ```i64``` | Yes | +| `request_prd_sp_adderss_value_ko_max_per` | ```i64``` | Yes | +| `request_prd_sp_address_value_ko_max` | ```i64``` | Yes | +| `request_prd_sp_address_value_none_max` | ```i64``` | Yes | +| `request_prd_sp_adderss_value_none_max_per` | ```i64``` | Yes | +| `request_prd_sp_address_score_min` | ```i32``` | Yes | +| `request_prd_sp_address_score_min_min_required` | ```i32``` | Yes | +| `request_prd_sp_address_score_min_min_ok` | ```boolean``` | Yes | +| `request_prd_sp_address_score_min_min_per` | ```i64``` | Yes | Pseudo-code: @@ -1752,18 +1603,16 @@ Pseudo-code: #### 12.2.8. ConditionPublish -`ConditionPublish` sets the criteria for publishing actions, including data size limits, publication counts, and timeouts, to regulate content distribution. - -| Attribute Name | Type | Option | Description | -|-----------------------------------|--------------|--------|---------------------------------------------------------------| -| `request_prd_type` | ```String``` | | Type of prd request concerned by this conditions | -| `request_pcd_data_size_max_unit` | ```String``` | | Specifies the maximum unit size for published data. | -| `request_pcd_data_size_max_total` | ```i64``` | | Specifies the total maximum data size allowed. | -| `request_pcd_number_min` | ```i32``` | | The minimum number of publications required. | -| `request_pcd_number_max` | ```i32``` | | The maximum number of publications allowed. | -| `request_pcd_amount_max_total` | ```Amount``` | | The maximum total amount for publications. | -| `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. | +| Attribute Name | Type | Option | +|-----------------------------------|--------------|--------| +| `request_prd_type` | ```String``` | | +| `request_pcd_data_size_max_unit` | ```String``` | | +| `request_pcd_data_size_max_total` | ```i64``` | | +| `request_pcd_number_min` | ```i32``` | | +| `request_pcd_number_max` | ```i32``` | | +| `request_pcd_amount_max_total` | ```Amount``` | | +| `request_prd_waiting_timeout` | ```u64``` | | +| `request_pcd_waiting_timeout` | ```u64``` | | Pseudo-code: @@ -1784,12 +1633,12 @@ Pseudo-code: RolesGroup outlines a collection of roles. -| Attribute Name | Type | Option | Description | -|----------------------|-------------------------|--------|---------------------------------------------------------------------------------------------------------------------------| -| `role_peer` | ```RolePeer``` | | Defines the role of peers in the network, responsible for facilitating communications and transactions. | -| `role_member` | ```RoleMember``` | | Specifies the role of members, or users, who actively participate in processes and interactions. | -| `role_process` | ```RoleProcess``` | | Represents the entities charged with defining and managing processes within the system. | -| `role_artefact_list` | ```Vec``` | | A list of artefact roles, allowing customization and extension of functionalities and interactions beyond standard roles. | +| Attribute Name | Type | Option | +|----------------------|-------------------------|--------| +| `role_peer` | ```RolePeer``` | | +| `role_member` | ```RoleMember``` | | +| `role_process` | ```RoleProcess``` | | +| `role_artefact_list` | ```Vec``` | | Pseudo-code: @@ -1804,12 +1653,10 @@ Pseudo-code: #### 12.3.1. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|---------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the deposit. | -| `role` | ```Role``` | | The role associated with this deposit. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1822,13 +1669,10 @@ Pseudo-code: #### 12.3.2. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|----------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the artefact. | -| `role` | ```Role``` | | The role associated with this artefact. | - +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: ```json @@ -1840,12 +1684,10 @@ Pseudo-code: #### 12.3.3. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|------------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the commitment. | -| `role` | ```Role``` | | The role associated with this commitment. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1858,12 +1700,10 @@ Pseudo-code: #### 12.3.4. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|--------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the member. | -| `role` | ```Role``` | | The role associated with this member. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1876,12 +1716,10 @@ Pseudo-code: ### 12.4. 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. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1894,12 +1732,10 @@ Pseudo-code: #### 12.4.1. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|---------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the payment. | -| `role` | ```Role``` | | The role associated with this payment. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1912,12 +1748,10 @@ Pseudo-code: #### 12.4.2. 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. - -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|---------------------------------------------------| -| `item_name` | ```String``` | | The name of the item associated with the process. | -| `role` | ```Role``` | | The role associated with this process. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `item_name` | ```String``` | | +| `role` | ```Role``` | | Pseudo-code: @@ -1934,13 +1768,13 @@ Pseudo-code: #### 13.1.1. StorageKeysPublic -| Attribute Name | Type | Option | Description | -|-------------------------|------------------------------------|--------|--------------------------------------------------| -| `hash` | ```String``` | | | -| `label` | ```String``` | Yes | | -| `device_footprint` | ```String``` | Yes | | -| `third_party_list` | ```Vec``` | | List of third-party devices and their addresses. | -| `key_revoke_sp_address` | ```String``` | | | +| Attribute Name | Type | Option | +|-------------------------|------------------------------------|--------| +| `hash` | ```String``` | | +| `label` | ```String``` | Yes | +| `device_footprint` | ```String``` | Yes | +| `third_party_list` | ```Vec``` | | +| `key_revoke_sp_address` | ```String``` | | Pseudo-code: @@ -1958,10 +1792,10 @@ Pseudo-code: ##### StoragethirdPartyPublic -| Attribute Name | Type | Option | Description | -|--------------------|--------------|--------|-------------------------------| -| `device_footprint` | ```String``` | Yes | The device footprint. | -| `sp_address` | ```String``` | | The service provider address. | +| Attribute Name | Type | Option | +|--------------------|--------------|--------| +| `device_footprint` | ```String``` | Yes | +| `sp_address` | ```String``` | | Pseudo-code: @@ -2000,28 +1834,28 @@ Pseudo-code: #### 13.1.4. StorageMessagePublic -| Attribute Name | Type | Option | Description | -|------------------------------|--------------------------------------|--------|----------------------------------------------------| -| `me_sender` | ```boolean``` | | Indicates if the sender is 'me'. | -| `process_hash` | ```String``` | | The hash of the associated process. | -| `item_name` | ```String``` | | The name of the associated item. | -| `request_type` | ```String``` | | The type of the request. | -| `timestamp` | ```u64``` | | The timestamp of the request. | -| `message_hash` | ```String``` | | The hash of the message. | -| `pcd_hash` | ```String``` | Yes | The hash of the associated PCD. | -| `prd_hash` | ```String``` | Yes | The hash of the associated PRD. | -| `request_pcd_reference_hash` | ```String``` | Yes | The reference hash of the associated PCD. | -| `request_pcd_origin_hash` | ```String``` | Yes | The origin hash of the associated PCD. | -| `request_prd_reference_hash` | ```String``` | Yes | The reference hash of the associated PRD. | -| `request_prd_origin_hash` | ```String``` | Yes | The origin hash of the associated PRD. | -| `item_reference_hash` | ```String``` | Yes | The reference hash of the associated item. | -| `prd_sig_value` | ```String``` | Yes | The signature value of the PRD. | -| `prd_sp_address_from` | ```String``` | Yes | The sender service provider address of the PRD. | -| `prd_role_from` | ```String``` | Yes | The sender role of the PRD. | -| `prd_sp_address_to` | ```String``` | Yes | The recipient service provider address of the PRD. | -| `prd_role_to` | ```String``` | Yes | The recipient role of the PRD. | -| `prd_tx_sp` | ```String``` | Yes | The transaction hash of the PRD. | -| `peer_list` | ```Vec``` | | The list of peers associated with the request. | +| Attribute Name | Type | Option | +|------------------------------|--------------------------------------|--------| +| `me_sender` | ```boolean``` | | +| `process_hash` | ```String``` | | +| `item_name` | ```String``` | | +| `request_type` | ```String``` | | +| `timestamp` | ```u64``` | | +| `message_hash` | ```String``` | | +| `pcd_hash` | ```String``` | Yes | +| `prd_hash` | ```String``` | Yes | +| `request_pcd_reference_hash` | ```String``` | Yes | +| `request_pcd_origin_hash` | ```String``` | Yes | +| `request_prd_reference_hash` | ```String``` | Yes | +| `request_prd_origin_hash` | ```String``` | Yes | +| `item_reference_hash` | ```String``` | Yes | +| `prd_sig_value` | ```String``` | Yes | +| `prd_sp_address_from` | ```String``` | Yes | +| `prd_role_from` | ```String``` | Yes | +| `prd_sp_address_to` | ```String``` | Yes | +| `prd_role_to` | ```String``` | Yes | +| `prd_tx_sp` | ```String``` | Yes | +| `peer_list` | ```Vec``` | | Pseudo-code: @@ -2037,14 +1871,14 @@ Pseudo-code: ##### StorageMessagesPeerPublic -| Attribute Name | Type | Option | Description | -|---------------------|---------------|--------|-----------------------------------------| -| `domain` | ```String``` | | The domain of the peer. | -| `ip` | ```String``` | | The IP address of the peer. | -| `port` | ```String``` | | The port of the peer. | -| `timestamp` | ```u64``` | | The timestamp associated with the peer. | -| `sender` | ```boolean``` | | Indicates if the peer is the sender. | -| `validation_status` | ```String``` | | The validation status of the peer. | +| Attribute Name | Type | Option | +|---------------------|---------------|--------| +| `domain` | ```String``` | | +| `ip` | ```String``` | | +| `port` | ```String``` | | +| `timestamp` | ```u64``` | | +| `sender` | ```boolean``` | | +| `validation_status` | ```String``` | | T Pseudo-code: @@ -2149,13 +1983,13 @@ Pseudo-code: #### 13.2.1. StorageKeysPrivate -| Attribute Name | Type | Option | Description | -|------------------------------|------------------------------------------|--------|----------------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `label` | ```String``` | | The label. | -| `keyrecoverSpend` | ```StorageKeyRecoverSpendPrivate``` | | The part 1 encrypted for key recovery spend. | -| `key_recover_scan` | ```String``` | | The key recovery scan. | -| `process_shards_backup_list` | ```Vec``` | | The index of the process shard backup. | +| Attribute Name | Type | Option | +|------------------------------|------------------------------------------|--------| +| `hash_public` | ```String``` | | +| `label` | ```String``` | | +| `keyrecoverSpend` | ```StorageKeyRecoverSpendPrivate``` | | +| `key_recover_scan` | ```String``` | | +| `process_shards_backup_list` | ```Vec``` | | Pseudo-code: @@ -2173,11 +2007,11 @@ Pseudo-code: #####  StorageKeyRecoverSpendPrivate -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|-----------------------| -| `seed_rand_1` | ```String``` | | The seed random 1. | -| `seed_rand_2` | ```String``` | | The seed random 2. | -| `part1_enc` | ```String``` | | The part 1 encrypted. | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `seed_rand_1` | ```String``` | | +| `seed_rand_2` | ```String``` | | +| `part1_enc` | ```String``` | | Pseudo-code: @@ -2191,11 +2025,11 @@ Pseudo-code: ##### StorageProcessShardsBackupPrivate -| Attribute Name | Type | Option | Description | -|----------------|-------------------|--------|----------------------| -| `hash` | ```String``` | | The hash value. | -| `members` | ```Vec``` | | The list of members. | -| `index` | ```usize``` | | The index value. | +| Attribute Name | Type | Option | +|----------------|-------------------|--------| +| `hash` | ```String``` | | +| `members` | ```Vec``` | | +| `index` | ```usize``` | | Pseudo-code: @@ -2209,10 +2043,10 @@ Pseudo-code: #### 13.2.2. StoragePeerPrivate -| Attribute Name | Type | Option | Description | -|----------------|--------------------------------|--------|------------------------------| -| `hash_public` | ```String``` | | The public hash value. | -| `shared_peer` | ```StorageSharedPeerPrivate``` | | The shared peer information. | +| Attribute Name | Type | Option | +|----------------|--------------------------------|--------| +| `hash_public` | ```String``` | | +| `shared_peer` | ```StorageSharedPeerPrivate``` | | Pseudo-code: @@ -2227,14 +2061,14 @@ Pseudo-code: #####  StorageSharedPeerPrivate -| Attribute Name | Type | Option | Description | -|----------------|---------------------------------|--------|------------------------------------| -| `domain` | ```String``` | | The domain of the shared peer. | -| `address_ip` | ```String``` | | The IP address of the shared peer. | -| `relay` | ```StorageRelayPrivate``` | Yes | The relay information. | -| `l1_node` | ```StorageL1NodePrivate``` | Yes | The L1 node information. | -| `l1_miner` | ```StorageL1MinerPrivate``` | Yes | The L1 miner information. | -| `l2_node_list` | ```Vec``` | | The list of L2 nodes. | +| Attribute Name | Type | Option | +|----------------|---------------------------------|--------| +| `domain` | ```String``` | | +| `address_ip` | ```String``` | | +| `relay` | ```StorageRelayPrivate``` | Yes | +| `l1_node` | ```StorageL1NodePrivate``` | Yes | +| `l1_miner` | ```StorageL1MinerPrivate``` | Yes | +| `l2_node_list` | ```Vec``` | | Pseudo-code: @@ -2251,11 +2085,11 @@ Pseudo-code: ######  StorageRelayPrivate -| Attribute Name | Type | Option | Description | -|------------------|-------------------|--------|----------------------------------------| -| `faucet_tx_list` | ```Vec``` | Yes | The list of faucet transaction hashes. | -| `spend_key` | ```String``` | | The spend key of the relay. | -| `scan_key` | ```String``` | | The scan key of the relay. | +| Attribute Name | Type | Option | +|------------------|-------------------|--------| +| `faucet_tx_list` | ```Vec``` | Yes | +| `spend_key` | ```String``` | | +| `scan_key` | ```String``` | | Pseudo-code: @@ -2269,12 +2103,12 @@ Pseudo-code: ###### StorageL1NodePrivate -| Attribute Name | Type | Option | Description | -|---------------------|-------------------|--------|-------------------------------------------| -| `reward_tx_list` | ```Vec``` | | The list of reward transaction hashes. | -| `anchorage_tx_list` | ```Vec``` | | The list of anchorage transaction hashes. | -| `spend_key` | ```String``` | | The spend key of the L1 node. | -| `scan_key` | ```String``` | | The scan key of the L1 node. | +| Attribute Name | Type | Option | +|---------------------|-------------------|--------| +| `reward_tx_list` | ```Vec``` | | +| `anchorage_tx_list` | ```Vec``` | | +| `spend_key` | ```String``` | | +| `scan_key` | ```String``` | | Pseudo-code: @@ -2289,11 +2123,11 @@ Pseudo-code: ###### StorageL1MinerPrivate -| Attribute Name | Type | Option | Description | -|-------------------------|-------------------|--------|-----------------------------------------------| -| `mining_reward_tx_list` | ```Vec``` | | The list of mining reward transaction hashes. | -| `spend_key` | ```String``` | | The spend key of the L1 miner. | -| `scan_key` | ```String``` | | The scan key of the L1 miner. | +| Attribute Name | Type | Option | +|-------------------------|-------------------|--------| +| `mining_reward_tx_list` | ```Vec``` | | +| `spend_key` | ```String``` | | +| `scan_key` | ```String``` | | Pseudo-code: @@ -2307,10 +2141,10 @@ Pseudo-code: ###### StorageL2NodePrivate -| Attribute Name | Type | Option | Description | -|----------------|----------------------------------|--------|-----------------------------------| -| `l2_miner` | ```StorageL2NodeMinerPrivate``` | | The L2 miner information. | -| `l2_certif` | ```StorageL2NodeCertifPrivate``` | | The L2 certification information. | +| Attribute Name | Type | Option | +|----------------|----------------------------------|--------| +| `l2_miner` | ```StorageL2NodeMinerPrivate``` | | +| `l2_certif` | ```StorageL2NodeCertifPrivate``` | | Pseudo-code: @@ -2323,13 +2157,13 @@ Pseudo-code: ####### StorageL2NodeMinerPrivate -| Attribute Name | Type | Option | Description | -|-------------------------|-------------------|--------|-----------------------------------------------| -| `mining_descriptor` | ```String``` | | The mining descriptor of the L2 miner. | -| `mining_reward_tx_list` | ```Vec``` | | The list of mining reward transaction hashes. | -| `refunder_tx_list` | ```Vec``` | | The list of refunder transaction hashes. | -| `spend_key` | ```String``` | | The spend key of the L2 miner. | -| `scan_key` | ```String``` | | The scan key of the L2 miner. | +| Attribute Name | Type | Option | +|-------------------------|-------------------|--------|- +| `mining_descriptor` | ```String``` | | +| `mining_reward_tx_list` | ```Vec``` | | +| `refunder_tx_list` | ```Vec``` | | +| `spend_key` | ```String``` | | +| `scan_key` | ```String``` | | Pseudo-code: @@ -2345,13 +2179,13 @@ Pseudo-code: ####### StorageL2NodeCertifPrivate -| Attribute Name | Type | Option | Description | -|---------------------|-------------------|--------|--------------------------------------------------| -| `certif_l1_tx_list` | ```Vec``` | | The list of L1 certification transaction hashes. | -| `refunded_tx_list` | ```Vec``` | | The list of refunded transaction hashes. | -| `anchorage_tx_list` | ```Vec``` | | The list of anchorage transaction hashes. | -| `spend_key` | ```String``` | | The spend key of the L2 certification. | -| `scan_key` | ```String``` | | The scan key of the L2 certification. | +| Attribute Name | Type | Option | +|---------------------|-------------------|--------| +| `certif_l1_tx_list` | ```Vec``` | | +| `refunded_tx_list` | ```Vec``` | | +| `anchorage_tx_list` | ```Vec``` | | +| `spend_key` | ```String``` | | +| `scan_key` | ```String``` | | Pseudo-code: @@ -2369,19 +2203,19 @@ Pseudo-code: Public: -| Attribute Name | Type | Option | Description | -|--------------------|-------------------|--------|-----------------------| -| `hash` | ```String``` | | The hash value. | -| `confidential_key` | ```String``` | | The confidential key. | -| `item` | ```ItemProcess``` | | The process item. | +| Attribute Name | Type | Option | +|--------------------|-------------------|--------| +| `hash` | ```String``` | | +| `confidential_key` | ```String``` | | +| `item` | ```ItemProcess``` | | Private: -| Attribute Name | Type | Option | Description | -|-----------------------------------|------------------------------------|--------|------------------------------------------| -| `hash_public` | ```String``` | | The public hash value. | -| `confidential_key` | ```String``` | | The transaction SP key. | -| `metadata_role_confidentiel_keys` | ```MetadataRoleConfidentielKeys``` | | The metadata for role confidential keys. | +| Attribute Name | Type | Option | +|-----------------------------------|------------------------------------|--------| +| `hash_public` | ```String``` | | +| `confidential_key` | ```String``` | | +| `metadata_role_confidentiel_keys` | ```MetadataRoleConfidentielKeys``` | | Pseudo-code: @@ -2404,18 +2238,18 @@ Pseudo-code: ######  MetadataRoleConfidentielKeys -| Attribute Name | Type | Option | Description | -|-----------------------------|--------------|--------|--------------------------------| -| `tag_list_keys` | ```String``` | | The tag list keys. | -| `zone_list_keys` | ```String``` | | The zone list keys. | -| `label_lis_keys` | ```String``` | | The label list keys. | -| `ref_list_keys` | ```String``` | | The reference list keys. | -| `data_list_keys` | ```String``` | | The data list keys. | -| `amount_keys` | ```String``` | | The amount keys. | -| `number_keys` | ```String``` | | The number keys. | -| `render_template_list_keys` | ```String``` | | The render template list keys. | -| `legal_text_list_keys` | ```String``` | | The legal text list keys. | -| `key_list_keys` | ```String``` | | The key list keys. | +| Attribute Name | Type | Option | +|-----------------------------|--------------|--------| +| `tag_list_keys` | ```String``` | | +| `zone_list_keys` | ```String``` | | +| `label_lis_keys` | ```String``` | | +| `ref_list_keys` | ```String``` | | +| `data_list_keys` | ```String``` | | +| `amount_keys` | ```String``` | | +| `number_keys` | ```String``` | | +| `render_template_list_keys` | ```String``` | | +| `legal_text_list_keys` | ```String``` | | +| `key_list_keys` | ```String``` | | Pseudo-code: @@ -2436,10 +2270,10 @@ Pseudo-code: #### 13.2.4. StorageRequestPcdPrivate -| Attribute Name | Type | Option | Description | -|------------------------------|-------------------|--------|-------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `pcd_aes_key_list_decrypted` | ```Vec``` | | The list of decrypted PCD AES keys. | +| Attribute Name | Type | Option | +|------------------------------|-------------------|--------| +| `hash_public` | ```String``` | | +| `pcd_aes_key_list_decrypted` | ```Vec``` | | Pseudo-code: @@ -2454,29 +2288,29 @@ Pseudo-code: ##### 5.5.1. StorageRequestPrdUpdatePrivate -| Attribute Name | Type | Option | Description | -|----------------------------------------------------------------|-------------------|--------|----------------------------------------------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `sig_value` | ```String``` | | The signature value for the request. | -| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | | Decrypted list of reference keys for confidential role in the PCD request. | -| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | | Decrypted origin hash keys for confidential role in the PCD request. | -| `message_public_decrypted` | ```String``` | | Decrypted public message associated with the request. | -| `message_confidential_decrypted` | ```String``` | | Decrypted confidential message associated with the request. | -| `message_private_decrypted` | ```String``` | | Decrypted private message associated with the request. | -| `payment_method_decrypted` | ```String``` | | Decrypted payment method. | -| `deposit_method_decrypted` | ```String``` | | Decrypted deposit method. | -| `commitment_method_decrypted` | ```String``` | | Decrypted commitment method. | -| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | | Decrypted list of payment-related RequestPcd hashes. | -| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | | Decrypted list of capability-related RequestPcd hashes. | -| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | | Decrypted list of deposit-related RequestPcd hashes. | -| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | | Decrypted list of commitment-related RequestPcd hashes. | -| `ask_payment_method_[decrypted` | ```String``` | | Decrypted requested payment method. | -| `ask_deposit_method_decrypted` | ```String``` | | Decrypted requested deposit method. | -| `ask_commitment_method_decrypted` | ```String``` | | Decrypted requested commitment method. | -| `certif_key_decrypted` | ```String``` | | Decrypted certification key. | -| `device_footprint_decrypted` | ```String``` | | Decrypted device footprint. | -| `item_member_decrypted` | ```String``` | | Decrypted member item. | -| `pre_id_sp_decrypted` | ```String``` | | Decrypted pre_id for service provider. | +| Attribute Name | Type | Option | +|----------------------------------------------------------------|-------------------|--------| +| `hash_public` | ```String``` | | +| `sig_value` | ```String``` | | +| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | | +| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | | +| `message_public_decrypted` | ```String``` | | +| `message_confidential_decrypted` | ```String``` | | +| `message_private_decrypted` | ```String``` | | +| `payment_method_decrypted` | ```String``` | | +| `deposit_method_decrypted` | ```String``` | | +| `commitment_method_decrypted` | ```String``` | | +| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | | +| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | | +| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | | +| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | | +| `ask_payment_method_[decrypted` | ```String``` | | +| `ask_deposit_method_decrypted` | ```String``` | | +| `ask_commitment_method_decrypted` | ```String``` | | +| `certif_key_decrypted` | ```String``` | | +| `device_footprint_decrypted` | ```String``` | | +| `item_member_decrypted` | ```String``` | | +| `pre_id_sp_decrypted` | ```String``` | | Pseudo-code: @@ -2510,29 +2344,29 @@ Pseudo-code: ##### 5.5.2. StorageRequestPrdResponsePrivate -| Attribute Name | Type | Option | Description | -|----------------------------------------------------------------|---------------------------------------------------|--------|----------------------------------------------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `sig_value` | ```String``` | Yes | The signature value for the request. | -| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | Decrypted list of reference keys for confidential role in the PCD request. | -| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | Decrypted origin hash keys for confidential role in the PCD request. | -| `message_public_decrypted` | ```String``` | Yes | Decrypted public message associated with the request. | -| `message_confidential_decrypted` | ```String``` | Yes | Decrypted confidential message associated with the request. | -| `message_private_decrypted` | ```String``` | Yes | Decrypted private message associated with the request. | -| `payment_method_decrypted` | ```String``` | Yes | Decrypted payment method. | -| `deposit_method_decrypted` | ```String``` | Yes | Decrypted deposit method. | -| `commitment_method_decrypted` | ```String``` | Yes | Decrypted commitment method. | -| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of payment-related RequestPcd hashes. | -| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of capability-related RequestPcd hashes. | -| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of deposit-related RequestPcd hashes. | -| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of commitment-related RequestPcd hashes. | -| `ask_payment_method_[decrypted` | ```String``` | Yes | Decrypted requested payment method. | -| `ask_deposit_method_decrypted` | ```String``` | Yes | Decrypted requested deposit method. | -| `ask_commitment_method_decrypted` | ```String``` | Yes | Decrypted requested commitment method. | -| `certif_key_decrypted` | ```String``` | Yes | Decrypted certification key. | -| `device_footprint_decrypted` | ```String``` | Yes | Decrypted device footprint. | -| `shared_secret_key_decrypted` | ```Vec``` | | Decrypted list of shared secret keys. | -| `shard_decrypted` | ```String``` | Yes | Decrypted shard value. | +| Attribute Name | Type | Option | +|----------------------------------------------------------------|---------------------------------------------------|--------| +| `hash_public` | ```String``` | | +| `sig_value` | ```String``` | Yes | +| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | +| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | +| `message_public_decrypted` | ```String``` | Yes | +| `message_confidential_decrypted` | ```String``` | Yes | +| `message_private_decrypted` | ```String``` | Yes | +| `payment_method_decrypted` | ```String``` | Yes | +| `deposit_method_decrypted` | ```String``` | Yes | +| `commitment_method_decrypted` | ```String``` | Yes | +| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `ask_payment_method_[decrypted` | ```String``` | Yes | +| `ask_deposit_method_decrypted` | ```String``` | Yes | +| `ask_commitment_method_decrypted` | ```String``` | Yes | +| `certif_key_decrypted` | ```String``` | Yes | +| `device_footprint_decrypted` | ```String``` | Yes | +| `shared_secret_key_decrypted` | ```Vec``` | | +| `shard_decrypted` | ```String``` | Yes | Pseudo-code: @@ -2567,11 +2401,11 @@ Pseudo-code: #### 13.2.6. StorageDecryptedSharedSecretKeyPrivate -| Attribute Name | Type | Option | Description | -|------------------|--------------|--------|----------------------------| -| `attribute_name` | ```String``` | Yes | The name of the attribute. | -| `key` | ```String``` | Yes | The decrypted key. | -| `algorithm` | ```String``` | Yes | The encryption algorithm. | +| Attribute Name | Type | Option | +|------------------|--------------|--------| +| `attribute_name` | ```String``` | Yes | +| `key` | ```String``` | Yes | +| `algorithm` | ```String``` | Yes | Pseudo-code: @@ -2585,28 +2419,28 @@ Pseudo-code: ##### 5.5.3. StorageRequestPrdConfirmPrivate -| Attribute Name | Type | Option | Description | -|----------------------------------------------------------------|-------------------|--------|----------------------------------------------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `sig_value` | ```String``` | Yes | The signature value for the request. | -| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | Decrypted list of reference keys for confidential role in the PCD request. | -| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | Decrypted origin hash keys for confidential role in the PCD request. | -| `message_public_decrypted` | ```String``` | Yes | Decrypted public message associated with the request. | -| `message_confidential_decrypted` | ```String``` | Yes | Decrypted confidential message associated with the request. | -| `message_private_decrypted` | ```String``` | Yes | Decrypted private message associated with the request. | -| `payment_method_decrypted` | ```String``` | Yes | Decrypted payment method. | -| `deposit_method_decrypted` | ```String``` | Yes | Decrypted deposit method. | -| `commitment_method_decrypted` | ```String``` | Yes | Decrypted commitment method. | -| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of payment-related RequestPcd hashes. | -| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of capability-related RequestPcd hashes. | -| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of deposit-related RequestPcd hashes. | -| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of commitment-related RequestPcd hashes. | -| `ask_payment_method_[decrypted` | ```String``` | Yes | Decrypted requested payment method. | -| `ask_deposit_method_decrypted` | ```String``` | Yes | Decrypted requested deposit method. | -| `ask_commitment_method_decrypted` | ```String``` | Yes | Decrypted requested commitment method. | -| `certif_key_decrypted` | ```String``` | Yes | Decrypted certification key. | -| `device_footprint_decrypted` | ```String``` | Yes | Decrypted device footprint. | -| `code_confirm_decrypted` | ```String``` | Yes | Decrypted confirmation code. | +| Attribute Name | Type | Option | +|----------------------------------------------------------------|-------------------|--------| +| `hash_public` | ```String``` | | +| `sig_value` | ```String``` | Yes | +| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | +| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | +| `message_public_decrypted` | ```String``` | Yes | +| `message_confidential_decrypted` | ```String``` | Yes | +| `message_private_decrypted` | ```String``` | Yes | +| `payment_method_decrypted` | ```String``` | Yes | +| `deposit_method_decrypted` | ```String``` | Yes | +| `commitment_method_decrypted` | ```String``` | Yes | +| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `ask_payment_method_[decrypted` | ```String``` | Yes | +| `ask_deposit_method_decrypted` | ```String``` | Yes | +| `ask_commitment_method_decrypted` | ```String``` | Yes | +| `certif_key_decrypted` | ```String``` | Yes | +| `device_footprint_decrypted` | ```String``` | Yes | +| `code_confirm_decrypted` | ```String``` | Yes | Pseudo-code: @@ -2639,27 +2473,27 @@ Pseudo-code: ##### 5.5.4. StorageRequestPrdMessagePrivate -| Attribute Name | Type | Option | Description | -|----------------------------------------------------------------|-------------------|--------|----------------------------------------------------------------------------| -| `hash_public` | ```String``` | | The public hash. | -| `sig_value` | ```String``` | Yes | The signature value for the request. | -| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | Decrypted list of reference keys for confidential role in the PCD request. | -| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | Decrypted origin hash keys for confidential role in the PCD request. | -| `message_public_decrypted` | ```String``` | Yes | Decrypted public message associated with the request. | -| `message_confidential_decrypted` | ```String``` | Yes | Decrypted confidential message associated with the request. | -| `message_private_decrypted` | ```String``` | Yes | Decrypted private message associated with the request. | -| `payment_method_decrypted` | ```String``` | Yes | Decrypted payment method. | -| `deposit_method_decrypted` | ```String``` | Yes | Decrypted deposit method. | -| `commitment_method_decrypted` | ```String``` | Yes | Decrypted commitment method. | -| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of payment-related RequestPcd hashes. | -| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of capability-related RequestPcd hashes. | -| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of deposit-related RequestPcd hashes. | -| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | Decrypted list of commitment-related RequestPcd hashes. | -| `ask_payment_method_[decrypted` | ```String``` | Yes | Decrypted requested payment method. | -| `ask_deposit_method_decrypted` | ```String``` | Yes | Decrypted requested deposit method. | -| `ask_commitment_method_decrypted` | ```String``` | Yes | Decrypted requested commitment method. | -| `certif_key_decrypted` | ```String``` | Yes | Decrypted certification key. | -| `device_footprint_decrypted` | ```String``` | Yes | Decrypted device footprint. | +| Attribute Name | Type | Option | +|----------------------------------------------------------------|-------------------|--------| +| `hash_public` | ```String``` | | +| `sig_value` | ```String``` | Yes | +| `request_pcd_reference_keys_role_confidential_list_decrypted` | ```String``` | Yes | +| `request_pcd_origin_hash_keys_role_confidential_listdecrypted` | ```String``` | Yes | +| `message_public_decrypted` | ```String``` | Yes | +| `message_confidential_decrypted` | ```String``` | Yes | +| `message_private_decrypted` | ```String``` | Yes | +| `payment_method_decrypted` | ```String``` | Yes | +| `deposit_method_decrypted` | ```String``` | Yes | +| `commitment_method_decrypted` | ```String``` | Yes | +| `payment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `cap_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `deposit_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `commitment_request_pcd_hash_list_decrypted` | ```Vec``` | Yes | +| `ask_payment_method_[decrypted` | ```String``` | Yes | +| `ask_deposit_method_decrypted` | ```String``` | Yes | +| `ask_commitment_method_decrypted` | ```String``` | Yes | +| `certif_key_decrypted` | ```String``` | Yes | +| `device_footprint_decrypted` | ```String``` | Yes | Pseudo-code: @@ -2693,13 +2527,13 @@ Pseudo-code: #### 13.2.8. StorageSocketClientListPrivate -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|----------------------------------------------------| -| `address` | ```String``` | | The socket address. | -| `port` | ```u64``` | | The port number. | -| `protocol` | ```String``` | | The protocol used (e.g., TCP, UDP). | -| `status` | ```String``` | | The status of the socket (pending, ok, ko). | -| `type` | ```String``` | | The type of socket (transaction, request, client). | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `address` | ```String``` | | +| `port` | ```u64``` | | +| `protocol` | ```String``` | | +| `status` | ```String``` | | +| `type` | ```String``` | | Pseudo-code: @@ -2720,13 +2554,13 @@ Pseudo-code: ##### 5.6.2. StorageSocketServerListPrivate -| Attribute Name | Type | Option | Description | -|----------------|--------------|--------|----------------------------------------------------| -| `address` | ```String``` | | The socket address. | -| `port` | ```u64``` | | The port number. | -| `protocol` | ```String``` | | The protocol used (e.g., TCP, UDP). | -| `status` | ```String``` | | The status of the socket (pending, ok, ko). | -| `type` | ```String``` | | The type of socket (transaction, request, client). | +| Attribute Name | Type | Option | +|----------------|--------------|--------| +| `address` | ```String``` | | +| `port` | ```u64``` | | +| `protocol` | ```String``` | | +| `status` | ```String``` | | +| `type` | ```String``` | | Pseudo-code: