diff --git a/doc/ClientDataStorage-Specs.md b/doc/ClientDataStorage-Specs.md deleted file mode 100644 index 5ec9f18..0000000 --- a/doc/ClientDataStorage-Specs.md +++ /dev/null @@ -1,1836 +0,0 @@ - -* 1. [Objectif](#Objectif) -* 2. [Portée](#Porte) -* 3. [Documents de référence](#Documentsderfrence) -* 4. [Data publique](#Datapublique) - * 4.1. [Clés](#Cls) - * 4.2. [Peers](#Peers) - * 4.3. [Process](#Process) - * 4.4. [Messages](#Messages) - * 4.5. [RequestPcd](#RequestPcd) - * 4.6. [RequestPrd](#RequestPrd) - * 4.6.1. [RequestPrdList](#RequestPrdList) - * 4.6.2. [RequestPrdUpdate](#RequestPrdUpdate) - * 4.6.3. [RequestPrdResponse](#RequestPrdResponse) - * 4.6.4. [RequestPrdConfirm](#RequestPrdConfirm) - * 4.6.5. [RequestPrdMessage](#RequestPrdMessage) -* 5. [Data privée](#Dataprive) - * 5.1. [Clés](#Cls-1) - * 5.2. [Peers](#Peers-1) - * 5.3. [Process](#Process-1) - * 5.4. [RequestPcd](#RequestPcd-1) - * 5.5. [RequestPrd](#RequestPrd-1) - * 5.5.1. [RequestPrdUpdate](#RequestPrdUpdate-1) - * 5.5.2. [RequestPrdResponse](#RequestPrdResponse-1) - * 5.5.3. [RequestPrdConfirm](#RequestPrdConfirm-1) - * 5.5.4. [RequestPrdMessage](#RequestPrdMessage-1) - - - -## 1. Objectif - -## 2. Portée - -## 3. Documents de référence - -Voir [_Doc_references.md](_Doc_references.md). - -## 4. Data publique - -### 4.1. Clés - -pseudo-code: - -```json -[ - { - "hash": "", - "label": "", - "device_footprint": "", - "third_party_list": [ - { - "device_footprint": "", - "sp_address": "" - } - ], - "key_revoke_sp_address": "" - } -] -``` - -### 4.2. Peers - -pseudo-code: - -```json -[ - { - "hash": "", - "shared_peer": { - "domain": "String", - "address_ip": "String", - "relay": { - "address_port": "", - "data_max_size": 0, - "pow_difficulty": 0, - "pow_pattern": "", - "pow_prefix": "", - "pow_timeout": 0, - "faucet_sp_address": "" - }, - "l1_node": { - "address_port": "", - "explorer_base_url": "", - "sp_address_anchorage": "", - "sp_address_reward": "" - }, - "l1_miner": { - "sp_address_minig_reward": "", - "block_mined_list": [{ - "block_hash_list": [""], - "certif_hash": [""], - "tx": "" - }] - }, - "l2_node_list": [ - { - "address_port": 0, - "explorer_base_url": "", - "sp_address_anchorage": "", - "sp_address_reward": "", - "nbits": "", - "magic_number": "", - "challenge": "", - "l2_miner": { - "sp_address_minig_reward": "", - "sp_address_refunder": "", - "block_hash_mined_list": [""] - }, - "l2_certif": { - "sp_address_certif_l1": "", - "sp_address_refunded": "", - "block_certified_list": [{ - "block_hash_list": [""], - "certif_hash": [""], - "tx": "" - }] - } - } - ] - } - } -] -``` - -### 4.3. Process - -pseudo-code: - -```json -[ - { - "hash": "", - "item": { - "uuid": "", - "version": 0, - "item_type": "", - "pagination_number_per_request_pcd": 0, - "metadata_contract_public": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - }, - "metadata_role_confidential": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - }, - "item_process_public_attribute_group": { - "roles_group": { - "role_peer": { - "item_name": "", - "role": { - "item": { - "uuid": "", - "version": 0, - "item_type": "", - "pagination_number_per_request_pcd": 0, - "metadata_contract_public": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - }, - "metadata_role_confidential": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - }, - "sp_output_salt_enc": "", - "required_2fa": true, - "validation_timeout": 0, - "condition_prd_address_set_list": [ - { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - ], - "condition_publish": [ - { - "request_prd_type": "", - "request_pcd_data_size_max_unit": "", - "request_pcd_data_size_max_total": 0, - "request_pcd_number_min": 0, - "request_pcd_number_max": 0, - "request_pcd_amount_max_total": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "request_prd_waiting_timeout": 0, - "request_pcd_waiting_timeout": 0 - } - ], - "condition_cap_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_payment_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - }, - "condition_deposit_list": [{ - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - }] - } - ], - "condition_commitment_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_attribute_encryption_list": [ - { - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_orchestration": [ - { - "request_prd_type": "", - "role_ok": "", - "role_ko": "", - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "role_succession": "", - "role_resolve": "", - "role_renew": "" - } - }, - "role_member": { - "item_name": "", - "role": {} - }, - "role_process": { - "item_name": "", - "role": {} - }, - "role_artefact_list": [ - { - "item_name": "", - "role": {} - } - ] - } - } - } -] -``` - -### 4.4. Messages - -pseudo-code: - -```json -[{ - "hash": "", - "me_sender": false, - "process_hash": "", - "item_name": "", - "request_type": "", - "timestamp": 0, - "message_hash":"pending|", - "pcd_hash": "pending|", - "prd_hash": "pending|", - "request_pcd_reference_hash": "pending|", - "request_pcd_origin_hash": "pending|", - "request_prd_reference_hash": "pending|", - "request_prd_origin_hash": "pending|", - "item_reference_hash": "pending|", - "prd_sig_value": "", - "prd_sp_address_from": "", - "prd_role_from": "", - "prd_sp_address_to": "", - "prd_role_to": "", - "prd_tx_sp": "pending|", - "peer_list": [{ - "domain": "", - "ip": "", - "port": "", - "timestamp": 0, - "sender": false, - "validation_status": "pending|ok|ko" - }], -}] - -``` - -### 4.5. RequestPcd - -pseudo-code: - -```json -[ - { - "hash": "", - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "item_list": [{ - "version": "", - "item_type": "", - "name": "", - "request_pcd_item_enc_attribute_public_list": [{ - "attribute_name": "", - "data_enc": "" - }], - "request_pcd_item_enc_attribute_role_confidential_list": [{ - "attribute_name": "", - "data_enc": "", - }], - "request_pcd_item_enc_attribute_private_list": [{ - "attribute_name": "", - "data_enc": "" - }], - }], - "pagination": { - "start": 0, - "number": 0, - "page_index": 0, - "page_total": 0 - }, - "validation_status": "pending|ok|ko" - } -] -``` - -### 4.6. RequestPrd - -#### 4.6.1. RequestPrdList - -pseudo-code: - -```json -[ - { - "hash": "", - "request_prd": { - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret": "", - "request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret": "", - "message_public": "", - "message_confidential": "", - "message_private": "", - "sp_address_to": "", - "sp_address_from": "", - "sp_address_reply": "", - "timestamp_declared": 0, - "role_name_from": "", - "role_name_to": "", - "payment_method_enc_by_shared_secret": "", - "deposit_method_enc_by_shared_secret": "", - "commitment_method_enc_by_shared_secret": "", - "payment_request_pcd_hash_list_enc_by_shared_secret": [""], - "cap_request_pcd_hash_list_enc_by_shared_secret": [""], - "deposit_request_pcd_hash_list_enc_by_shared_secret": [""], - "commitment_request_pcd_hash_list_enc_by_shared_secret": [""], - "ask_payment_method_enc_by_shared_secret": "", - "ask_deposit_method_enc_by_shared_secret": "", - "ask_commitment_method_enc_by_shared_secret": "", - "certif_key_enc_by_shared_secret": "", - "device_footprint_enc_by_sp_shared_secret": "" - }, - "item_member_enc_by_sp_shared_secret": "", - "pre_id_sp_enc_by_shared_secret": "", - "validation_status": "pending|ok|ko" - } -] -``` - -#### 4.6.2. RequestPrdUpdate - -pseudo-code: - -```json -[ - { - "hash": "", - "request_prd": { - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret": "", - "request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret": "", - "message_public": "", - "message_confidential": "", - "message_private": "", - "sp_address_to": "", - "sp_address_from": "", - "sp_address_reply": "", - "timestamp_declared": 0, - "role_name_from": "", - "role_name_to": "", - "payment_method_enc_by_shared_secret": "", - "deposit_method_enc_by_shared_secret": "", - "commitment_method_enc_by_shared_secret": "", - "payment_request_pcd_hash_list_enc_by_shared_secret": [""], - "cap_request_pcd_hash_list_enc_by_shared_secret": [""], - "deposit_request_pcd_hash_list_enc_by_shared_secret": [""], - "commitment_request_pcd_hash_list_enc_by_shared_secret": [""], - "ask_payment_method_enc_by_shared_secret": "", - "ask_deposit_method_enc_by_shared_secret": "", - "ask_commitment_method_enc_by_shared_secret": "", - "certif_key_enc_by_shared_secret": "", - "device_footprint_enc_by_sp_shared_secret": "" - }, - "validation_status": "pending|ok|ko" - } -] -``` - -#### 4.6.3. RequestPrdResponse - -pseudo-code: - -```json -[ - { - "hash": "", - "request_prd": { - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret": "", - "request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret": "", - "message_public": "", - "message_confidential": "", - "message_private": "", - "sp_address_to": "", - "sp_address_from": "", - "sp_address_reply": "", - "timestamp_declared": 0, - "role_name_from": "", - "role_name_to": "", - "payment_method_enc_by_shared_secret": "", - "deposit_method_enc_by_shared_secret": "", - "commitment_method_enc_by_shared_secret": "", - "payment_request_pcd_hash_list_enc_by_shared_secret": [""], - "cap_request_pcd_hash_list_enc_by_shared_secret": [""], - "deposit_request_pcd_hash_list_enc_by_shared_secret": [""], - "commitment_request_pcd_hash_list_enc_by_shared_secret": [""], - "ask_payment_method_enc_by_shared_secret": "", - "ask_deposit_method_enc_by_shared_secret": "", - "ask_commitment_method_enc_by_shared_secret": "", - "certif_key_enc_by_shared_secret": "", - "device_footprint_enc_by_sp_shared_secret": "" - }, - "shared_secret_key_enc_by_sp_shared_secret": "", - "shard_enc_by_sp_shared_secret":"", - "validation_status": "pending|ok|ko" - } -] -``` - -#### 4.6.4. RequestPrdConfirm - -pseudo-code: - -```json -[ - { - "hash": "", - "request_prd": { - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret": "", - "request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret": "", - "message_public": "", - "message_confidential": "", - "message_private": "", - "sp_address_to": "", - "sp_address_from": "", - "sp_address_reply": "", - "timestamp_declared": 0, - "role_name_from": "", - "role_name_to": "", - "payment_method_enc_by_shared_secret": "", - "deposit_method_enc_by_shared_secret": "", - "commitment_method_enc_by_shared_secret": "", - "payment_request_pcd_hash_list_enc_by_shared_secret": [""], - "cap_request_pcd_hash_list_enc_by_shared_secret": [""], - "deposit_request_pcd_hash_list_enc_by_shared_secret": [""], - "commitment_request_pcd_hash_list_enc_by_shared_secret": [""], - "ask_payment_method_enc_by_shared_secret": "", - "ask_deposit_method_enc_by_shared_secret": "", - "ask_commitment_method_enc_by_shared_secret": "", - "certif_key_enc_by_shared_secret": "", - "device_footprint_enc_by_sp_shared_secret": "" - }, - "code_confirm_enc_by_shared_secret": "", - "validation_status": "pending|ok|ko" - } -] -``` - -#### 4.6.5. RequestPrdMessage - -pseudo-code: - -```json -[ - { - "hash": "", - "request_prd": { - "request": { - "item_name": "", - "request_type": "", - "version": 0, - "process_hash": "", - "request_pcd_reference_hash": "", - "request_pcd_origin_hash": "", - "request_prd_reference_hash": "", - "request_prd_origin_hash": "", - "item_reference_hash": "" - }, - "request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret": "", - "request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret": "", - "message_public": "", - "message_confidential": "", - "message_private": "", - "sp_address_to": "", - "sp_address_from": "", - "sp_address_reply": "", - "timestamp_declared": 0, - "role_name_from": "", - "role_name_to": "", - "payment_method_enc_by_shared_secret": "", - "deposit_method_enc_by_shared_secret": "", - "commitment_method_enc_by_shared_secret": "", - "payment_request_pcd_hash_list_enc_by_shared_secret": [""], - "cap_request_pcd_hash_list_enc_by_shared_secret": [""], - "deposit_request_pcd_hash_list_enc_by_shared_secret": [""], - "commitment_request_pcd_hash_list_enc_by_shared_secret": [""], - "ask_payment_method_enc_by_shared_secret": "", - "ask_deposit_method_enc_by_shared_secret": "", - "ask_commitment_method_enc_by_shared_secret": "", - "certif_key_enc_by_shared_secret": "", - "device_footprint_enc_by_sp_shared_secret": "" - }, - "raw_transaction_list": [{ - "raw": "", - "received": false, - }], - "validation_status": "pending|ok|ko" - } -] -``` - -## 5. Data privée - -### 5.1. Clés - -pseudo-code: - -```json -[ - { - "hash_public": "", - "label": "", - "keyrecoverSpend": { - "seed_rand_1": "", - "seed_rand_2": "", - "part1_enc": "" - }, - "key_recover_scan": "", - "process_shards_backup_list": [ - { - "hash": "", - "members": [], - "index": 0 - } - ] - } -] -``` - -### 5.2. Peers - -pseudo-code: - -```json -[ - { - "hash_public": "", - "shared_peer": { - "domain": "", - "address_ip": "", - "relay": { - "faucet_tx_list": [""], - "spend_key": "", - "scan_key": "" - }, - "l1_node": { - "reward_tx_list": [""], - "anchorage_tx_list": [""], - "spend_key": "", - "scan_key": "" - }, - "l1_miner": { - "mining_reward_tx_list": [""], - "spend_key": "", - "scan_key": "" - }, - "l2_node_list": [ - { - "l2_miner": { - "mining_descriptor": "", - "minig_reward_tx_list": [""], - "refunder_tx_list": [""], - "spend_key": "", - "scan_key": "" - }, - "l2_certif": { - "certif_l1_tx_list": [""], - "refunded_tx_list": [""], - "anchorage_tx_list": [""], - "spend_key": "", - "scan_key": "", - } - } - ] - } - } -] -``` - -### 5.3. Process - -pseudo-code: - -```json -{ - "private": -[ - { - "hash": "", - "item": { - "uuid": "", - "version": 0, - "item_type": "", - "pagination_number_per_request_pcd": 0, - "metadata_contract_public": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - }, - "metadata_role_confidential": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - }, - "item_process_public_attribute_group": { - "roles_group": { - "role_peer": { - "item_name": "", - "role": { - "item": { - "uuid": "", - "version": 0, - "item_type": "", - "pagination_number_per_request_pcd": 0, - "metadata_contract_public": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - }, - "metadata_role_confidential": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - }, - "sp_output_salt_enc": "", - "required_2fa": true, - "validation_timeout": 0, - "condition_prd_address_set_list": [ - { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - ], - "condition_publish": [ - { - "request_prd_type": "", - "request_pcd_data_size_max_unit": "", - "request_pcd_data_size_max_total": 0, - "request_pcd_number_min": 0, - "request_pcd_number_max": 0, - "request_pcd_amount_max_total": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "request_prd_waiting_timeout": 0, - "request_pcd_waiting_timeout": 0 - } - ], - "condition_cap_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_payment_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - }, - "condition_deposit_list": [{ - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - }] - } - ], - "condition_commitment_list": [ - { - "request_prd_type": "", - "transaction_mode": { - "value": "", - "hash_ok_list": [""], - "hash_ko_list": [""], - "hash_none_list": [""], - "from_list": [""], - "from_type": "", - "from_method": "", - "to_list": [""], - "to_type": "", - "to_method": "" - }, - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_attribute_encryption_list": [ - { - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "condition_orchestration": [ - { - "request_prd_type": "", - "role_ok": "", - "role_ko": "", - "payment_proof_validation": { - "request_prd_type": "", - "from_role": "", - "request_prd_sp_address_list": [""], - "request_prd_sp_address_required_list": [""], - "request_prd_sp_address_quota": 0, - "request_prd_value_ok_list": [""], - "request_prd_value_ko_list": [""], - "request_prd_value_none_list": [""], - "request_prd_value_auto_ok": true, - "request_prd_value_auto_ko": true, - "request_prd_value_auto_none": true, - "request_prd_sp_address_value_min": 0, - "request_prd_sp_address_value_min_ok": true, - "request_prd_sp_adddress_value_ok_min_per": 0, - "request_prd_sp_address_value_ok_max": 0, - "request_prd_sp_adderss_value_ko_max_per": 0, - "request_prd_sp_address_value_ko_max": 0, - "request_prd_sp_address_value_none_max": 0, - "request_prd_sp_adderss_value_none_max_per": 0, - "request_prd_sp_address_score_min": 0, - "request_prd_sp_address_score_min_min_required": 0, - "request_prd_sp_address_score_min_min_ok": true, - "request_prd_sp_address_score_min_min_per": 0 - } - } - ], - "role_succession": "", - "role_resolve": "", - "role_renew": "" - } - }, - "role_member": { - "item_name": "", - "role": {} - }, - "role_process": { - "item_name": "", - "role": {} - }, - "role_artefact_list": [ - { - "item_name": "", - "role": {} - } - ] - } - } - } -], - "public": [{ - "hash_public": "", - "item": { - "metadata_private": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - }, - "item_process_public_attribute_group": { - "roles_group": { - "role_peer": { - "item_name": "", - "role": { - "item": { - "metadata_private": { - "metadata": { - "tag_list": [ - "" - ], - "zone_list": [ - "" - ], - "label_list": [ - "" - ], - "ref_list": [ - "" - ], - "data_list": [ - {} - ], - "amount": { - "timestamp": 0, - "change_source_list": [ - "" - ], - "amount_cent": 0, - "amount_unit": "", - "amount_unit_ref": "" - }, - "number": { - "fixed_state": true, - "number": 0, - "number_unit": "" - }, - "render_template_list": [ - {} - ], - "legal_text_list": [ - "" - ], - "key_list": [ - "" - ] - } - } - } - } - } - } - } - }] -} -``` - -### 5.4. RequestPcd - -pseudo-code: - -```json -[{ - "hash_public": "", - "pcd_aes_key_list_decrypted": [""] -}] -``` - -### 5.5. RequestPrd - -#### 5.5.1. RequestPrdUpdate - -```json -[ - { - "hash_public": "", - "request_prd": { - "sig_value": "", - "request_pcd_reference_keys_role_confidential_list_decrypted": "", - "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", - "message_public_decrypted": "", - "message_confidential_decrypted": "", - "message_private_decrypted": "", - "payment_method_decrypted": "", - "deposit_method_decrypted": "", - "commitment_method_decrypted": "", - "payment_request_pcd_hash_list_decrypted": [""], - "cap_request_pcd_hash_list_decrypted": [""], - "deposit_request_pcd_hash_list_decrypted": [""], - "commitment_request_pcd_hash_list_decrypted": [""], - "ask_payment_method_decryptedt": "", - "ask_deposit_method_decrypted": "", - "ask_commitment_method_decrypted": "", - "certif_key_decrypted": "", - "device_footprint_decrypted": "" - }, - "item_member_decrypted": "", - "pre_id_sp_decrypted": "", - "validation_status": "pending|ok|ko" - } -] -``` - -#### 5.5.2. RequestPrdResponse - -```json -[ - { - "hash_public": "", - "request_prd": { - "sig_value": "", - "request_pcd_reference_keys_role_confidential_list_decrypted": "", - "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", - "message_public_decrypted": "", - "message_confidential_decrypted": "", - "message_private_decrypted": "", - "payment_method_decrypted": "", - "deposit_method_decrypted": "", - "commitment_method_decrypted": "", - "payment_request_pcd_hash_list_decrypted": [""], - "cap_request_pcd_hash_list_decrypted": [""], - "deposit_request_pcd_hash_list_decrypted": [""], - "commitment_request_pcd_hash_list_decrypted": [""], - "ask_payment_method_decryptedt": "", - "ask_deposit_method_decrypted": "", - "ask_commitment_method_decrypted": "", - "certif_key_decrypted": "", - "device_footprint_decrypted": "" - }, - "sig_value":"", - "shared_secret_key_decrypted": [ - { - "attribute_name": "", - "key": "", - "algorithm": "", - } - ], - "shard_decrypted":"" - } -] -``` - -#### 5.5.3. RequestPrdConfirm - -```json -[ - { - "hash_public": "", - "request_prd": { - "sig_value": "", - "request_pcd_reference_keys_role_confidential_list_decrypted": "", - "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", - "message_public_decrypted": "", - "message_confidential_decrypted": "", - "message_private_decrypted": "", - "payment_method_decrypted": "", - "deposit_method_decrypted": "", - "commitment_method_decrypted": "", - "payment_request_pcd_hash_list_decrypted": [""], - "cap_request_pcd_hash_list_decrypted": [""], - "deposit_request_pcd_hash_list_decrypted": [""], - "commitment_request_pcd_hash_list_decrypted": [""], - "ask_payment_method_decryptedt": "", - "ask_deposit_method_decrypted": "", - "ask_commitment_method_decrypted": "", - "certif_key_decrypted": "", - "device_footprint_decrypted": "" - }, - "code_confirm_decrypted": "" - } -] -``` - -#### 5.5.4. RequestPrdMessage - -```json -[ - { - "hash_public": "", - "request_prd": { - "sig_value": "", - "request_pcd_reference_keys_role_confidential_list_decrypted": "", - "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", - "message_public_decrypted": "", - "message_confidential_decrypted": "", - "message_private_decrypted": "", - "payment_method_decrypted": "", - "deposit_method_decrypted": "", - "commitment_method_decrypted": "", - "payment_request_pcd_hash_list_decrypted": [""], - "cap_request_pcd_hash_list_decrypted": [""], - "deposit_request_pcd_hash_list_decrypted": [""], - "commitment_request_pcd_hash_list_decrypted": [""], - "ask_payment_method_decryptedt": "", - "ask_deposit_method_decrypted": "", - "ask_commitment_method_decrypted": "", - "certif_key_decrypted": "", - "device_footprint_decrypted": "" - } - } -] -``` - -### Sockets - -#### SocketClientList - -```json -[ - { - "hash": "", - "socket": { - "address": "", - "port": 0, - "protocol": "", - "status": "pending|ok|ko", - "type": "tx|request|client" - } - } -] -``` - -#### SocketServerList - -```json -[ - { - "hash": "", - "socket": { - "address": "", - "port": 0, - "protocol": "", - "status": "pending|ok|ko", - "type": "tx|request|client" - } - } -] -``` diff --git a/doc/Specs-Datamodel.md b/doc/Specs-Datamodel.md index 7ef47db..90962e6 100644 --- a/doc/Specs-Datamodel.md +++ b/doc/Specs-Datamodel.md @@ -52,6 +52,122 @@ * 8.4. [Amount](#Amount) * 8.5. [Number](#Number) * 9. [Request](#Request) +* 10. [RequestPcd](#RequestPcd) + * 10.1. [Pagination](#Pagination) + * 10.2. [RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc) + * 10.2.1. [RequestPcdItemEncAttributePublic](#RequestPcdItemEncAttributePublic) + * 10.2.2. [RequestPcdItemEncAttributeRoleConfidential](#RequestPcdItemEncAttributeRoleConfidential) + * 10.2.3. [RequestPcdItemEncAttributePrivate](#RequestPcdItemEncAttributePrivate) +* 11. [RequestPrd](#RequestPrd) + * 11.1. [RequestPrdList](#RequestPrdList) + * 11.2. [RequestPrdUpdate](#RequestPrdUpdate) + * 11.3. [RequestPrdResponse](#RequestPrdResponse) + * 11.4. [RequestPrdConfirm](#RequestPrdConfirm) + * 11.5. [RequestPrdMessage](#RequestPrdMessage) + * 11.6. [RequestPrdResponse](#RequestPrdResponse-1) +* 12. [Roles](#Roles) + * 12.1. [Role](#Role) + * 12.2. [Conditions](#Conditions) + * 12.2.1. [TransactionMode](#TransactionMode) + * 12.2.2. [ConditionPayment](#ConditionPayment) + * 12.2.3. [ConditionCommitment](#ConditionCommitment) + * 12.2.4. [ConditionDeposit](#ConditionDeposit) + * 12.2.5. [ConditionOrchestration](#ConditionOrchestration) + * 12.2.6. [ConditionCap](#ConditionCap) + * 12.2.7. [ConditionRequestPrdAddressSet](#ConditionRequestPrdAddressSet) + * 12.2.8. [ConditionPublish](#ConditionPublish) + * 12.3. [RolesGroup](#RolesGroup) + * 12.3.1. [RoleArtefact](#RoleArtefact) + * 12.3.2. [RoleDeposit](#RoleDeposit) + * 12.3.3. [RoleCommitment](#RoleCommitment) + * 12.3.4. [RoleMember](#RoleMember) + * 12.4. [RolePeer](#RolePeer) + * 12.4.1. [RolePayment](#RolePayment) + * 12.4.2. [RoleProcess](#RoleProcess) +* 13. [Storage](#Storage) + * 13.1. [StoragePublic](#StoragePublic) + * 13.1.1. [StorageKeysPublic](#StorageKeysPublic) + * 13.1.2. [StorageItemPeerPublic](#StorageItemPeerPublic) + * 13.1.3. [StorageItemProcessPublic](#StorageItemProcessPublic) + * 13.1.4. [StorageMessagePublic](#StorageMessagePublic) + * 13.1.5. [StorageRequestPcdPublic](#StorageRequestPcdPublic) + * 13.1.6. [StorageRequestPrdPublic](#StorageRequestPrdPublic) + * 13.2. [StoragePrivate](#StoragePrivate) + * 13.2.1. [StorageKeysPrivate](#StorageKeysPrivate) + * 13.2.2. [StoragePeerPrivate](#StoragePeerPrivate) + * 13.2.3. [StorageProcessPrivate](#StorageProcessPrivate) + * 13.2.4. [StorageRequestPcdPrivate](#StorageRequestPcdPrivate) + * 13.2.5. [StorageRequestPrdPrivate](#StorageRequestPrdPrivate) + * 13.2.6. [StorageDecryptedSharedSecretKeyPrivate](#StorageDecryptedSharedSecretKeyPrivate) + * 13.2.7. [StorageocketsPrivate](#StorageocketsPrivate) + * 13.2.8. [StorageSocketClientListPrivate](#StorageSocketClientListPrivate) +* 14. [12. Rust considerations](#Rustconsiderations) + * 14.1. [General Implications for Project Objects](#GeneralImplicationsforProjectObjects) + * 14.2. [Debug](#Debug) + * 14.3. [Default](#Default) + * 14.4. [PartialEq, Eq](#PartialEqEq) + * 14.5. [Hash](#Hash) + * 14.6. [PartialOrd, Ord](#PartialOrdOrd) +* 15. [Todo](#Todo) + + + +* 1. [Documents de référence](#Documentsderfrence) +* 2. [Methods](#Methods) + * 2.1. [DepositMethod](#DepositMethod) + * 2.2. [CommitmentMethod](#CommitmentMethod) + * 2.3. [PaymentMethod](#PaymentMethod) +* 3. [Items](#Items) + * 3.1. [Item](#Item) + * 3.2. [ItemArtefact](#ItemArtefact) + * 3.3. [ItemMember](#ItemMember) + * 3.3.1. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup) + * 3.3.2. [ItemMemberRoleConfidentialAttributeGroup](#ItemMemberRoleConfidentialAttributeGroup) + * 3.3.3. [ItemMemberRolePrivateAttributeGroup](#ItemMemberRolePrivateAttributeGroup) + * 3.4. [ItemCommitment](#ItemCommitment) + * 3.4.1. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup) + * 3.4.2. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup) + * 3.5. [ItemDeposit](#ItemDeposit) + * 3.5.1. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup) + * 3.5.2. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup) + * 3.5.3. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup) + * 3.6. [ItemEnum](#ItemEnum) + * 3.7. [ItemPayment](#ItemPayment) + * 3.7.1. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup) + * 3.7.2. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup) + * 3.7.3. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup) + * 3.8. [ItemPeer](#ItemPeer) + * 3.8.1. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup) + * 3.8.2. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup) + * 3.9. [ItemProcess](#ItemProcess) + * 3.9.1. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup) +* 4. [Encryption](#Encryption) + * 4.1. [KeyEncryption](#KeyEncryption) + * 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit) +* 5. [Messages](#Messages) + * 5.1. [Message](#Message) + * 5.2. [MessageConnect](#MessageConnect) + * 5.3. [MessageGeneric](#MessageGeneric) + * 5.4. [Pow](#Pow) + * 5.5. [SharedProcess](#SharedProcess) + * 5.6. [SharedPeer](#SharedPeer) +* 6. [Relay](#Relay) +* 7. [L1Node](#L1Node) + * 7.1. [L1NodeMining](#L1NodeMining) + * 7.2. [L2Node](#L2Node) + * 7.3. [L2NodeMining](#L2NodeMining) + * 7.4. [L2Certif](#L2Certif) + * 7.5. [BlockCertif](#BlockCertif) +* 8. [Metadata](#Metadata) + * 8.1. [MetadataContractPublic](#MetadataContractPublic) + * 8.2. [MetadataPrivate](#MetadataPrivate) + * 8.3. [MetadataRoleConfidential](#MetadataRoleConfidential) + * 8.4. [Amount](#Amount) + * 8.5. [Number](#Number) +* 9. [Request](#Request) * 10. [RequestPcd](#RequestPcd) * 10.1. [Pagination](#Pagination) * 10.2. [RequestPcdItemGenericEnc](#RequestPcdItemGenericEnc) @@ -273,7 +389,6 @@ Pseudo-code: } ``` - #### 3.3.3. ItemMemberRolePrivateAttributeGroup `ItemMemberRolePrivateAttributeGroup` @@ -296,7 +411,6 @@ Pseudo-code: } ``` - ### 3.4. ItemCommitment `ItemCommitment` links an item with commitment-specific attributes across public, confidential, and private spheres, fully representing a commitment. @@ -319,7 +433,6 @@ Pseudo-code: } ``` - #### 3.4.1. ItemCommitmentRoleConfidentialAttributeGroup This struct encompasses role-specific confidential attributes for commitments, securing sensitive commitment information. @@ -571,7 +684,6 @@ Pseudo-code: } ``` - ### 3.8. ItemPeer `ItemPeer` combines basic item information with layers, public, and private attributes, fully detailing a peer within the system. @@ -802,7 +914,6 @@ Pseudo-code: } ``` - ### 5.5. SharedProcess `SharedProcess` identifies a shared process within the system, aiding in the management and coordination of collaborative processes. @@ -819,7 +930,6 @@ Pseudo-code: } ``` - ### 5.6. SharedPeer `SharedPeer` specifies a peer within the network, playing a key role in distributed information sharing and communication. @@ -1379,7 +1489,7 @@ Pseudo-code: } ``` -### 11.3. RequestPrdList +### 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. @@ -1399,7 +1509,7 @@ Pseudo-code: } ``` -### 11.6. RequestPrdUpdate +### 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. @@ -1415,7 +1525,7 @@ Pseudo-code: } ``` -### 11.1. RequestPrdResponse +### 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. @@ -1437,7 +1547,7 @@ Pseudo-code: } ``` -### 11.2. RequestPrdConfirm +### 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. @@ -1455,7 +1565,7 @@ Pseudo-code: } ``` -### 11.4. RequestPrdMessage +### 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. @@ -1473,7 +1583,7 @@ Pseudo-code: } ``` -### 11.5. RequestPrdResponse +### 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. @@ -1917,9 +2027,826 @@ Pseudo-code: } ``` -## 13. 12. Rust considerations +## 13. Storage -### 13.1.  General Implications for Project Objects +### 13.1. StoragePublic + +#### 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``` | | | + +Pseudo-code: + +```json +[ + { + "hash": "", + "label": "", + "device_footprint": "", + "third_party_list": [], + "key_revoke_sp_address": "" + } +] +``` + +##### StoragethirdPartyPublic + +| Attribute Name | Type | Option | Description | +|--------------------|--------------|--------|-------------------------------| +| `device_footprint` | ```String``` | Yes | The device footprint. | +| `sp_address` | ```String``` | | The service provider address. | + +Pseudo-code: + +```json +{ + "device_footprint": "", + "sp_address": "" +} +``` + +#### 13.1.2. StorageItemPeerPublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "peer: ItemPeer + } +] +``` + +#### 13.1.3. StorageItemProcessPublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "process: ItemProcess + } +] +``` + +#### 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. | + +Pseudo-code: + +```json +[ + { + "hash": "", + "message": StorageMessagePublic, + "validation_status": "pending|ok|ko" + } +] +``` + +##### 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. | + +Pseudo-code: + +```json +{ + "domain": "", + "ip": "", + "port": "", + "timestamp": 0, + "sender": false, + "validation_status": "pending|ok|ko" + }], +} +``` + +#### 13.1.5. StorageRequestPcdPublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "validation_status": "pending|ok|ko" + } +] +``` + +#### 13.1.6. StorageRequestPrdPublic + +##### 4.6.1. StorageRequestPrdListPublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "request_prd": RequestPrdList, + "validation_status": "pending|ok|ko" + } +] + +``` + +##### 4.6.2. StorageRequestPrdUpdatePublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "request_prd": RequestPrdUpdate, + "validation_status": "pending|ok|ko" + } +] +``` + +##### 4.6.3. StorageRequestPrdResponsePublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "request_prd": RequestPrdResponse, + "validation_status": "pending|ok|ko" + } +] +``` + +##### 4.6.4. StorageRequestPrdConfirmPublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "request_prd": RequestPrdConfirm, + "validation_status": "pending|ok|ko" +] +``` + +##### 4.6.5. StorageRequestPrdMessagePublic + +Pseudo-code: + +```json +[ + { + "hash": "", + "request_prd": RequestPrdMessage, + "validation_status": "pending|ok|ko" + } +] +``` + +### 13.2. StoragePrivate + +#### 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. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "label": "", + "keyrecoverSpend": StorageKeyRecoverSpendPrivate, + "key_recover_scan": "", + "process_shards_backup_list": [] + } +] +``` + +#####  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. | + +Pseudo-code: + +```json +{ + "seed_rand_1": "", + "seed_rand_2": "", + "part1_enc": "" +} +``` + +##### StorageProcessShardsBackupPrivate + +| Attribute Name | Type | Option | Description | +|----------------|-------------------|--------|----------------------| +| `hash` | ```String``` | | The hash value. | +| `members` | ```Vec``` | | The list of members. | +| `index` | ```usize``` | | The index value. | + +Pseudo-code: + +```json +{ + "hash": "", + "members": [], + "index": 0 +} +``` + +#### 13.2.2. StoragePeerPrivate + +| Attribute Name | Type | Option | Description | +|----------------|--------------------------------|--------|------------------------------| +| `hash_public` | ```String``` | | The public hash value. | +| `shared_peer` | ```StorageSharedPeerPrivate``` | | The shared peer information. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "shared_peer": StorageSharedPeerPrivate + } +] +``` + +#####  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. | + +Pseudo-code: + +```json +{ + "domain": "", + "address_ip": "", + "relay": StorageRelayPrivate, + "l1_node": StorageL1NodePrivate, + "l1_miner": StorageL1MinerPrivate, + "l2_node_list": [] +} +``` + +######  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. | + +Pseudo-code: + +```json +{ + "faucet_tx_list": [], + "spend_key": "", + "scan_key": "" +} +``` + +###### 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. | + +Pseudo-code: + +```json +{ + "reward_tx_list": [], + "anchorage_tx_list": [], + "spend_key": "", + "scan_key": "" +} +``` + +###### 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. | + +Pseudo-code: + +```json +{ + "mining_reward_tx_list": [], + "spend_key": "", + "scan_key": "" +} +``` + +###### StorageL2NodePrivate + +| Attribute Name | Type | Option | Description | +|----------------|----------------------------------|--------|-----------------------------------| +| `l2_miner` | ```StorageL2NodeMinerPrivate``` | | The L2 miner information. | +| `l2_certif` | ```StorageL2NodeCertifPrivate``` | | The L2 certification information. | + +Pseudo-code: + +```json +{ + "l2_miner": StorageL2NodeMinerPrivate, + "l2_certif": StorageL2NodeCertifPrivate +} +``` + +####### 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. | + +Pseudo-code: + +```json +{ + "mining_descriptor": "", + "minig_reward_tx_list": [], + "refunder_tx_list": [], + "spend_key": "", + "scan_key": "" +} +``` + +####### 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. | + +Pseudo-code: + +```json +{ + "certif_l1_tx_list": [], + "refunded_tx_list": [], + "anchorage_tx_list": [], + "spend_key": "", + "scan_key": "", +} +``` + +#### 13.2.3. StorageProcessPrivate + +Public: + +| Attribute Name | Type | Option | Description | +|--------------------|-------------------|--------|-----------------------| +| `hash` | ```String``` | | The hash value. | +| `confidential_key` | ```String``` | | The confidential key. | +| `item` | ```ItemProcess``` | | The process item. | + +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. | + +Pseudo-code: + +```json +{ + "private": [ + { + "hash": "", + "confidential_key": "", + "item": ItemProcess + } + ], + "public": [{ + "hash_public": "", + "confidential_key": "", + "metadata_role_confidentiel_keys":  MetadataRoleConfidentielKeys + }] +} +``` + +######  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. | + +Pseudo-code: + +```json +{ + "tag_list_keys": "", + "zone_list_keys": "", + "label_lis_keys": "", + "ref_list_keys": "", + "data_list_keys": "", + "amount_keys": "", + "number_keys": "", + "render_template_list_keys": "", + "legal_text_list_keys": "", + "key_list_keys": "" +} +``` + +#### 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. | + +Pseudo-code: + +```json +[{ + "hash_public": "", + "pcd_aes_key_list_decrypted": [] +}] +``` + +#### 13.2.5. StorageRequestPrdPrivate + +##### 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. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "sig_value": "", + "request_pcd_reference_keys_role_confidential_list_decrypted": "", + "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", + "message_public_decrypted": "", + "message_confidential_decrypted": "", + "message_private_decrypted": "", + "payment_method_decrypted": "", + "deposit_method_decrypted": "", + "commitment_method_decrypted": "", + "payment_request_pcd_hash_list_decrypted": [], + "cap_request_pcd_hash_list_decrypted": [], + "deposit_request_pcd_hash_list_decrypted": [], + "commitment_request_pcd_hash_list_decrypted": [], + "ask_payment_method_[decrypted": "", + "ask_deposit_method_decrypted": "", + "ask_commitment_method_decrypted": "", + "certif_key_decrypted": "", + "device_footprint_decrypted": "", + "item_member_decrypted": "", + "pre_id_sp_decrypted": "" + } +] +``` + +##### 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. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "sig_value": "", + "request_pcd_reference_keys_role_confidential_list_decrypted": "", + "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", + "message_public_decrypted": "", + "message_confidential_decrypted": "", + "message_private_decrypted": "", + "payment_method_decrypted": "", + "deposit_method_decrypted": "", + "commitment_method_decrypted": "", + "payment_request_pcd_hash_list_decrypted": [], + "cap_request_pcd_hash_list_decrypted": [], + "deposit_request_pcd_hash_list_decrypted": [], + "commitment_request_pcd_hash_list_decrypted": [], + "ask_payment_method_[decrypted": "", + "ask_deposit_method_decrypted": "", + "ask_commitment_method_decrypted": "", + "certif_key_decrypted": "", + "device_footprint_decrypted": "", + "sig_value":"", + "shared_secret_key_decrypted": [], + "shard_decrypted":"" + } +] +``` + +#### 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. | + +Pseudo-code: + +```json +{ + "attribute_name": "", + "key": "", + "algorithm": "", +} +``` + +##### 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. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "sig_value": "", + "request_pcd_reference_keys_role_confidential_list_decrypted": "", + "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", + "message_public_decrypted": "", + "message_confidential_decrypted": "", + "message_private_decrypted": "", + "payment_method_decrypted": "", + "deposit_method_decrypted": "", + "commitment_method_decrypted": "", + "payment_request_pcd_hash_list_decrypted": [], + "cap_request_pcd_hash_list_decrypted": [], + "deposit_request_pcd_hash_list_decrypted": [], + "commitment_request_pcd_hash_list_decrypted": [], + "ask_payment_method_decrypted": "", + "ask_deposit_method_decrypted": "", + "ask_commitment_method_decrypted": "", + "certif_key_decrypted": "", + "device_footprint_decrypted": "", + "code_confirm_decrypted": "" + } +] +``` + +##### 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. | + +Pseudo-code: + +```json +[ + { + "hash_public": "", + "sig_value": "", + "request_pcd_reference_keys_role_confidential_list_decrypted": "", + "request_pcd_origin_hash_keys_role_confidential_listdecrypted": "", + "message_public_decrypted": "", + "message_confidential_decrypted": "", + "message_private_decrypted": "", + "payment_method_decrypted": "", + "deposit_method_decrypted": "", + "commitment_method_decrypted": "", + "payment_request_pcd_hash_list_decrypted": [], + "cap_request_pcd_hash_list_decrypted": [], + "deposit_request_pcd_hash_list_decrypted": [], + "commitment_request_pcd_hash_list_decrypted": [], + "ask_payment_method_[decrypted": "", + "ask_deposit_method_decrypted": "", + "ask_commitment_method_decrypted": "", + "certif_key_decrypted": "", + "device_footprint_decrypted": "" + } +] +``` + +#### 13.2.7. StorageocketsPrivate + +#### 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). | + +Pseudo-code: + +```json +[ + { + "hash": "", + "socket": { + "address": "", + "port": 0, + "protocol": "", + "status": "pending|ok|ko", + "type": "tx|request|client" + } + } +] +``` + +##### 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). | + +Pseudo-code: + +```json +[ + { + "hash": "", + "socket": { + "address": "", + "port": 0, + "protocol": "", + "status": "pending|ok|ko", + "type": "tx|request|client" + } + } +] +``` + +## 14. 12. Rust considerations + +### 14.1.  General Implications for Project Objects Incorporating these traits into a struct's definition enhances its utility across various aspects of a project. For instance: @@ -1928,31 +2855,31 @@ Incorporating these traits into a struct's definition enhances its utility acros * **Comparison and ordering traits (PartialEq, Eq, PartialOrd, Ord)**: are crucial for logic checks, sorting, and storing objects in data structures that require ordering or uniqueness. * **The Hash trait**: expands the struct's utility in hash-based collections, enabling efficient data retrieval and storage. -### 13.2.  Debug +### 14.2.  Debug The Debug trait allows instances of the struct to be formatted using the {:?} formatter. This is essential for debugging purposes, as it provides a way to output the contents of the struct to the console or logs, aiding in the development and troubleshooting process. Serialize, Deserialize (serde crate) Serialize and Deserialize traits from the serde crate enable the struct to be easily converted to and from data formats such as JSON, YAML, or TOML. This is particularly useful for web applications or services that need to send or receive data in a structured format over the network. -### 13.3.  Default +### 14.3.  Default Implementing the Default trait allows for the creation of a struct with default values. This is useful for initializing structs with a set of predetermined values or when a struct needs to be created without specifying every field explicitly. Clone The Clone trait allows for the creation of an exact copy of a struct instance. This is crucial for cases where a mutable copy of a struct is needed, while keeping the original instance unchanged. -### 13.4.  PartialEq, Eq +### 14.4.  PartialEq, Eq PartialEq and Eq traits enable comparison operations for instances of the struct. While PartialEq allows for partial equality checks (where some of the comparisons might be indeterminate), Eq denotes that every comparison will either be true or false, ensuring a stricter equality condition that is necessary for certain collections or logic checks. -### 13.5.  Hash +### 14.5.  Hash The Hash trait is used to compute a hash value for instances of the struct. This is essential for structs that need to be stored in collections such as HashMap or HashSet, where a unique identifier is required to efficiently retrieve or store items. -### 13.6.  PartialOrd, Ord +### 14.6.  PartialOrd, Ord PartialOrd and Ord traits allow for ordering comparisons between instances of the struct. PartialOrd provides functionality for partial ordering, where some comparisons might not produce a clear order, whereas Ord requires a total ordering, ensuring that any two instances can be reliably ordered. This is critical for sorting operations or when structs are stored in ordered collections. FromForm (rocket crate) -## 14. Todo +## 15. Todo diff --git a/doc/_Doc_references.md b/doc/_Doc_references.md index 794807a..a034af5 100644 --- a/doc/_Doc_references.md +++ b/doc/_Doc_references.md @@ -19,7 +19,6 @@ * **Messages des relais**: [Message-Specs.md] * **Process et roles**: [Process-Role-Specs.md](Process-Role-Specs.md) * **Transactions Silent Payment**: [Silent-Payment-Specs.md](Silent-Payment-Specs.md) -* **Client Data Storage** : [ClientDataStorage-Specs.md](ClientDataStorage-Specs.md) ## 2. Transverse