2621 lines
87 KiB
Markdown
2621 lines
87 KiB
Markdown
<!-- vscode-markdown-toc -->
|
||
* 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)
|
||
* 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)
|
||
|
||
# Specs - Datas
|
||
|
||
## 1. <a name='Documentsderfrence'></a>Documents de référence
|
||
|
||
Voir [Doc_references.md](Doc_references.md).
|
||
|
||
## 2. <a name='Methods'></a>Methods
|
||
|
||
### 2.1. <a name='DepositMethod'></a>DepositMethod
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `method` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"method": ""
|
||
}
|
||
```
|
||
|
||
### 2.2. <a name='CommitmentMethod'></a>CommitmentMethod
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `method` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"method": ""
|
||
}
|
||
```
|
||
|
||
### 2.3. <a name='PaymentMethod'></a>PaymentMethod
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `method` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"method": ""
|
||
}
|
||
```
|
||
|
||
## 3. <a name='Items'></a>Items
|
||
|
||
### 3.1. <a name='Item'></a>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:
|
||
|
||
```json
|
||
{
|
||
"uuid": "string",
|
||
"version": 0,
|
||
"item_type": "string",
|
||
"name": "string",
|
||
"pagination_number_per_request_pcd": 0,
|
||
"metadata_contract_public": MetadataContractPublic,
|
||
"metadata_role_confidential": MetadataRoleConfidential,
|
||
"metadata_private": MetadataPrivate
|
||
}
|
||
```
|
||
|
||
### 3.2. <a name='ItemArtefact'></a>ItemArtefact
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|-------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `public_attribute_group` | ```Vec<String>``` | |
|
||
| `role_confidential_attribute_group` | ```Vec<String>``` | |
|
||
| `private_attribute_group` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"public_attribute_group": [],
|
||
"role_confidential_attribute_group": [],
|
||
"private_attribute_group": []
|
||
}
|
||
```
|
||
|
||
### 3.3. <a name='ItemMember'></a>ItemMember
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|------------------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `public_attribute_group` | ```ItemMemberPublicAttributeGroup``` | |
|
||
| `role_confidential_attribute_group` | ```ItemMemberRoleConfidentialAttributeGroup``` | |
|
||
| `private_attribute_group` | ```ItemMemberPrivateAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"public_attribute_group": ItemMemberPublicAttributeGroup,
|
||
"role_confidential_attribute_group": ItemMemberRoleConfidentialAttributeGroup,
|
||
"private_attribute_group": ItemMemberPrivateAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.3.1. <a name='ItemMemberPublicAttributeGroup'></a>ItemMemberPublicAttributeGroup
|
||
|
||
| 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<String>``` | |
|
||
| `data_size_max` | ```i64``` | |
|
||
| `payment_method_list_public` | ```Vec<String>``` | |
|
||
| `succession_process_hash` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"sp_address_public": "",
|
||
"sp_address_public_sig": "",
|
||
"sp_address_revoke_public": "",
|
||
"sp_address_revoke_public_sig": "",
|
||
"third_sp_address_list_public": [],
|
||
"data_size_max": 0,
|
||
"payment_method_list_public": [],
|
||
"succession_process_hash": ""
|
||
}
|
||
```
|
||
|
||
#### 3.3.2. <a name='ItemMemberRoleConfidentialAttributeGroup'></a>ItemMemberRoleConfidentialAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|--------------------------------------------|--------------|--------|
|
||
| `shard_confidential` | ```String``` | yes |
|
||
| `pre_id_confidential` | ```String``` | yes |
|
||
| `device_footprint_enc_by_sp_shared_secret` | ```String``` | yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"shard_confidential": "",
|
||
"pre_id_confidential": "",
|
||
"device_footprint_enc_by_sp_shared_secret": ""
|
||
}
|
||
```
|
||
|
||
#### 3.3.3. <a name='ItemMemberRolePrivateAttributeGroup'></a>ItemMemberRolePrivateAttributeGroup
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"priv_key_mainnet_spend": "",
|
||
"priv_key_mainnet_scan": "",
|
||
"priv_key_signet_scan": "",
|
||
"randSeedPart2": ""
|
||
}
|
||
```
|
||
|
||
### 3.4. <a name='ItemCommitment'></a>ItemCommitment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|----------------------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `public_attribute_group` | ```ItemCommitmentPublicAttributeGroup``` | |
|
||
| `role_confidential_attribute_group` | ```ItemCommitmentRoleConfidentialAttributeGroup``` | |
|
||
| `private_attribute_group` | ```ItemCommitmentPrivateAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"public_attribute_group": ItemCommitmentPublicAttributeGroup,
|
||
"role_confidential_attribute_group": ItemCommitmentRoleConfidentialAttributeGroup,
|
||
"private_attribute_group": ItemCommitmentPrivateAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.4.1. <a name='ItemCommitmentRoleConfidentialAttributeGroup'></a>ItemCommitmentRoleConfidentialAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-----------------------------|-------------------|--------|
|
||
| `payload_list_confidential` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"payload_list_confidential": []
|
||
}
|
||
```
|
||
|
||
#### 3.4.2. <a name='ItemCommitmentPrivateAttributeGroup'></a>ItemCommitmentPrivateAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|-------------------|--------|
|
||
| `payload_list_private` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"payload_list_private": []
|
||
}
|
||
```
|
||
|
||
##### 4.2.1. <a name='ItemCommitmentPublicAttributeGroup'></a>ItemCommitmentPublicAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------------------|-------------------|--------|
|
||
| `for_sp_address_list` | ```Vec<String>``` | |
|
||
| `goal_list` | ```Vec<String>``` | |
|
||
| `provider_type` | ```String``` | |
|
||
| `commitment_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `ref_item_hash_list` | ```Vec<String>``` | |
|
||
| `ref_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `payload_public_list` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"for_sp_address_list": [],
|
||
"goal_list": [],
|
||
"provider_type": "",
|
||
"commitment_request_pcd_hash_list": [],
|
||
"ref_item_hash_list": [],
|
||
"ref_request_pcd_hash_list": [],
|
||
"payload_public_list": []
|
||
}
|
||
```
|
||
|
||
### 3.5. <a name='ItemDeposit'></a>ItemDeposit
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|-------------------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `public_attribute_group` | ```ItemDepositPublicAttributeGroup``` | |
|
||
| `role_confidential_attribute_group` | ```ItemDepositRoleConfidentialAttributeGroup``` | |
|
||
| `private_attribute_group` | ```ItemDepositPrivateAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"public_attribute_group": ItemDepositPublicAttributeGroup,
|
||
"role_confidential_attribute_group": ItemDepositRoleConfidentialAttributeGroup,
|
||
"private_attribute_group": ItemDepositPrivateAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.5.1. <a name='ItemDepositPublicAttributeGroup'></a>ItemDepositPublicAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-----------------------------|-------------------|--------|
|
||
| `for_sp_address_list` | ```Vec<String>``` | |
|
||
| `for_address_list` | ```Vec<String>``` | |
|
||
| `goal_list` | ```Vec<String>``` | |
|
||
| `provider_type` | ```String``` | |
|
||
| `ref_item_hash_list` | ```Vec<String>``` | |
|
||
| `ref_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `payload_list_public` | ```Vec<String>``` | |
|
||
| `audit_code_list_public` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"for_sp_address_list": [],
|
||
"for_address_list": [],
|
||
"goal_list": [],
|
||
"provider_type": "",
|
||
"ref_item_hash_list": [],
|
||
"ref_request_pcd_hash_list": [],
|
||
"payload_list_public": [],
|
||
"audit_code_list_public": []
|
||
}
|
||
```
|
||
|
||
#### 3.5.2. <a name='ItemDepositRoleConfidentialAttributeGroup'></a>ItemDepositRoleConfidentialAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|--------------------------------|-------------------|--------|
|
||
| `payload_list_confidential` | ```Vec<String>``` | |
|
||
| `audit_code_list_confidential` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"payload_list_confidential": [],
|
||
"audit_code_list_confidential": []
|
||
}
|
||
```
|
||
|
||
#### 3.5.3. <a name='ItemDepositPrivateAttributeGroup'></a>ItemDepositPrivateAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|-------------------|--------|
|
||
| `payload_list_private` | ```Vec<String>``` | |
|
||
| `audit_code_private` | ```String``` | |
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"payload_list_private": [],
|
||
"audit_code_private": ""
|
||
}
|
||
```
|
||
|
||
### 3.6. <a name='ItemEnum'></a>ItemEnum
|
||
|
||
* **```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.
|
||
* **```Payment(ItemPayment)```**: Contains an item of type ItemPayment, representing a payment.
|
||
* **```Deposit(ItemDeposit)```**: Contains an item of type ItemDeposit, representing a deposit.
|
||
* **```Artefact(ItemArtefact)```**: Contains an item of type ItemArtefact, representing an artefact.
|
||
* **```Commitment(ItemCommitment)```**: Contains an item of type ItemCommitment, representing a commitment.
|
||
|
||
### 3.7. <a name='ItemPayment'></a>ItemPayment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|-------------------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `public_attribute_group` | ```ItemPaymentPublicAttributeGroup``` | |
|
||
| `role_confidential_attribute_group` | ```ItemPaymentRoleConfidentialAttributeGroup``` | |
|
||
| `private_attribute_group` | ```ItemPaymentPrivateAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"public_attribute_group": ItemPaymentPublicAttributeGroup,
|
||
"role_confidential_attribute_group": ItemPaymentRoleConfidentialAttributeGroup,
|
||
"private_attribute_group": ItemPaymentPrivateAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.7.1. <a name='ItemPaymentPublicAttributeGroup'></a>ItemPaymentPublicAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------------------|-------------------|--------|
|
||
| `for_sp_address_list` | ```Vec<String>``` | |
|
||
| `goal_list` | ```Vec<String>``` | |
|
||
| `provider_type` | ```String``` | |
|
||
| `commitment_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `order_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `invoice_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `pay_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `ref_item_hash_list` | ```Vec<String>``` | |
|
||
| `ref_request_pcd_hash_list` | ```Vec<String>``` | |
|
||
| `payload_list_public` | ```Vec<String>``` | |
|
||
| `audit_code_list_public` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
|
||
```
|
||
|
||
#### 3.7.2. <a name='ItemPaymentRoleConfidentialAttributeGroup'></a>ItemPaymentRoleConfidentialAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|--------------------------------|-------------------|--------|
|
||
| `payload_list_confidential` | ```Vec<String>``` | |
|
||
| `audit_code_list_confidential` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"for_sp_address_list": [],
|
||
"goal_list": [],
|
||
"provider_type": "",
|
||
"commitment_request_pcd_hash_list": [],
|
||
"order_request_pcd_hash_list": [],
|
||
"invoice_request_pcd_hash_list": [],
|
||
"pay_request_pcd_hash_list": [],
|
||
"ref_item_hash_list": [],
|
||
"ref_request_pcd_hash_list": [],
|
||
"payload_list_public": [],
|
||
"audit_code_list_public": []
|
||
}
|
||
```
|
||
|
||
#### 3.7.3. <a name='ItemPaymentPrivateAttributeGroup'></a>ItemPaymentPrivateAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|-------------------|--------|
|
||
| `payload_list_private` | ```Vec<String>``` | |
|
||
| `audit_code_private` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"payload_list_private": [],
|
||
"audit_code_private": ""
|
||
}
|
||
```
|
||
|
||
### 3.8. <a name='ItemPeer'></a>ItemPeer
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------------|-------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `layer_list` | ```Vec<String>``` | |
|
||
| `public_attribute_group` | ```ItemPeerPublicAttributeGroup``` | |
|
||
| `private_attribute_group` | ```ItemPeerPrivateAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"layer_list": [],
|
||
"public_attribute_group": ItemPeerPublicAttributeGroup,
|
||
"private_attribute_group": ItemPeerPrivateAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.8.1. <a name='ItemPeerPublicAttributeGroup'></a>ItemPeerPublicAttributeGroup
|
||
|
||
| 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<String>``` | |
|
||
| `daily_sp_tx_mine_list` | ```Vec<String>``` | |
|
||
| `daily_sp_tx_mine_reward_list` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"sp_address": "",
|
||
"domain": "",
|
||
"ip_address": "",
|
||
"pow_difficulty": 0,
|
||
"pow_pattern": "",
|
||
"pow_prefix": "",
|
||
"data_size_max": 0,
|
||
"timestamp_delay_max": 0,
|
||
"daily_hash_list": [],
|
||
"daily_sp_tx_mine_list": [],
|
||
"daily_sp_tx_mine_reward_list": []
|
||
}
|
||
```
|
||
|
||
#### 3.8.2. <a name='ItemPeerPrivateAttributeGroup'></a>ItemPeerPrivateAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `config` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"config": ""
|
||
}
|
||
```
|
||
|
||
### 3.9. <a name='ItemProcess'></a>ItemProcess
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------------------------|---------------------------------------|--------|
|
||
| `item` | ```Item``` | |
|
||
| `item_process_public_attribute_group` | ```ItemProcessPublicAttributeGroup``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": {},
|
||
"item_process_public_attribute_group": ItemProcessPublicAttributeGroup
|
||
}
|
||
```
|
||
|
||
#### 3.9.1. <a name='ItemProcessPublicAttributeGroup'></a>ItemProcessPublicAttributeGroup
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|------------|--------|
|
||
| `roles_group` | RolesGroup | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"roles_group": {}
|
||
}
|
||
```
|
||
|
||
## 4. <a name='Encryption'></a>Encryption
|
||
|
||
### 4.1. <a name='KeyEncryption'></a>KeyEncryption
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|--------------|--------|
|
||
| `attribute_name` | ```String``` | Yes |
|
||
| `key` | ```String``` | Yes |
|
||
| `algorithm` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"attribute_name": "",
|
||
"key": "",
|
||
"algorithm": ""
|
||
}
|
||
```
|
||
|
||
### 4.2. <a name='Aes256GcmIv96Bit'></a>Aes256GcmIv96Bit
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|-----------------------------|--------|
|
||
| `key` | ```GenericArray<u8, u32>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"key": []
|
||
}
|
||
```
|
||
|
||
## 5. <a name='Messages'></a>Messages
|
||
|
||
### 5.1. <a name='Message'></a>Message
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|---------------|--------|
|
||
| `message` | ```MessageGeneric``` | |
|
||
| `request_enc` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"message": Message,
|
||
"request_enc": ""
|
||
}
|
||
```
|
||
|
||
### 5.2. <a name='MessageConnect'></a>MessageConnect
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|---------------|--------|
|
||
| message | ```MessageGeneric``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"message": Message
|
||
}
|
||
```
|
||
|
||
### 5.3. <a name='MessageGeneric'></a>MessageGeneric
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|--------------------------|--------|
|
||
| `shared_peer_list` | ```Vec<SharedPeer>``` | |
|
||
| `shared_process_list` | ```Vec<SharedProcess>``` | |
|
||
| `faucet_sp_address` | ```String``` | |
|
||
| `pow` | ```Pow``` | |
|
||
| `raw_transaction_list` | ```Vec<String>``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"shared_peer_list": [],
|
||
"shared_process_list": [],
|
||
"faucet_sp_address": "",
|
||
"pow": {},
|
||
"raw_transaction_list": []
|
||
}
|
||
```
|
||
|
||
### 5.4. <a name='Pow'></a>Pow
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `data_hash` | ```String``` | |
|
||
| `timestamp` | ```u64``` | Yes |
|
||
| `nonce` | ```u64``` | Yes |
|
||
| `pattern` | ```String``` | |
|
||
| `difficulty` | ```usize``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"data_hash": "",
|
||
"timestamp": 0,
|
||
"nonce": 0,
|
||
"pattern": "",
|
||
"difficulty": 0
|
||
}
|
||
```
|
||
|
||
### 5.5. <a name='SharedProcess'></a>SharedProcess
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------------|--------|
|
||
| `process_list` | `Vec<ItemProcess>` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"process_list": []
|
||
}
|
||
```
|
||
|
||
### 5.6. <a name='SharedPeer'></a>SharedPeer
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"domain": "",
|
||
"address_ip": "",
|
||
"relay": Relay,
|
||
"l1_node": L1Node,
|
||
"l1_miner": L1Miner,
|
||
"l2_node_list": []
|
||
}
|
||
```
|
||
|
||
## 6. <a name='Relay'></a>Relay
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"address_port": 0,
|
||
"data_max_size": 0,
|
||
"pow_difficulty": 0,
|
||
"pow_pattern": "",
|
||
"pow_prefix": "",
|
||
"pow_timeout": 0,
|
||
}
|
||
```
|
||
|
||
## 7. <a name='L1Node'></a>L1Node
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|-------------------|--------|
|
||
| `address_port` | ```u16``` | |
|
||
| `explorer_base_url` | ```String``` | |
|
||
| `l2_mining` | ```L2Mining``` | Yes |
|
||
| `l2_certif` | ```L2Certif``` | Yes |
|
||
| `reward_received_tx_list` | ```Vec<String>``` | Yes |
|
||
| `reward_send_tx_list` | ```Vec<String>``` | Yes |
|
||
| `anchorage_tx_list` | ```Vec<String>``` | Yes |
|
||
| `spend_key` | ```String``` | Yes |
|
||
| `scan_key` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"address_port": 0,
|
||
"explorer_base_url": "",
|
||
"l2_mining": L2Mining,
|
||
"l2_certif": L2Certif,
|
||
"reward_received_tx_list": [],
|
||
"reward_send_tx_list": [],
|
||
"anchorage_tx_list": [],
|
||
"anchorage_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
### 7.1. <a name='L1NodeMining'></a>L1NodeMining
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------------|-------------------|--------|
|
||
| `block_mined_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | Yes |
|
||
| `scan_key` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"block_mined_list": [],
|
||
"mining_reward_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
### 7.2. <a name='L2Node'></a>L2Node
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"address_port": 0,
|
||
"explorer_base_url": "",
|
||
"sp_address_anchorage": "",
|
||
"sp_address_reward": "",
|
||
"nbits": 0,
|
||
"magic_number": 0,
|
||
"challenge": "",
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
### 7.3. <a name='L2NodeMining'></a>L2NodeMining
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------------|-------------------|--------|
|
||
| `sp_address_minig_reward` | ```string``` | |
|
||
| `sp_address_refund` | ```string``` | |
|
||
| `block_hash_mined_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | Yes |
|
||
| `scan_key` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"sp_address_minig_reward": "",
|
||
"sp_address_refund": "",
|
||
"block_hash_mined_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
### 7.4. <a name='L2Certif'></a>L2Certif
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|------------------------|--------|
|
||
| `l2_block_hash_list` | ```Vec<String>``` | |
|
||
| `l1_tx` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"l2_block_hash_list": [],
|
||
"l1_tx": ""
|
||
}
|
||
|
||
```
|
||
|
||
### 7.5. <a name='BlockCertif'></a>BlockCertif
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------|-------------------|--------|
|
||
| `block_hash_list` | ```Vec<String>``` | |
|
||
| `certif_hash` | ```Vec<String>``` | |
|
||
| `l1_tx` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"sp_address_certif_l1": "",
|
||
"sp_address_refunded": "",
|
||
"block_certified_list": [],
|
||
"certif_l1_tx_list": [],
|
||
"refunded_tx_list": [],
|
||
"anchorage_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
## 8. <a name='Metadata'></a>Metadata
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|--------------------------|--------|
|
||
| `tag_list` | ```Vec<String>``` | |
|
||
| `zone_list` | ```Vec<String>``` | |
|
||
| `label_list` | ```Vec<String>``` | |
|
||
| `ref_list` | ```Vec<String>``` | |
|
||
| `data_list` | ```Vec<String>``` | |
|
||
| `amount` | ```Amount``` | |
|
||
| `number` | ```Number``` | |
|
||
| `render_template_list` | ```Vec<String>``` | |
|
||
| `legal_text_list` | ```Vec<String>``` | |
|
||
| `key_list` | ```Vec<KeyEncryption>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"tag_list": [],
|
||
"zone_list": [],
|
||
"label_list": [],
|
||
"ref_list": [],
|
||
"data_list": [],
|
||
"amount": Amount,
|
||
"number": Number,
|
||
"render_template_list": [],
|
||
"legal_text_list": [],
|
||
"key_list": []
|
||
}
|
||
```
|
||
|
||
### 8.1. <a name='MetadataContractPublic'></a>MetadataContractPublic
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|----------------|--------|
|
||
| `meta_data` | ```MetaData``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"meta_data": MetaData
|
||
}
|
||
```
|
||
|
||
### 8.2. <a name='MetadataPrivate'></a>MetadataPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|----------------|--------|
|
||
| `meta_data` | ```MetaData``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"meta_data": MetaData
|
||
}
|
||
```
|
||
|
||
### 8.3. <a name='MetadataRoleConfidential'></a>MetadataRoleConfidential
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|----------------|--------|
|
||
| `meta_data` | ```MetaData``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"meta_data": MetaData
|
||
}
|
||
```
|
||
|
||
### 8.4. <a name='Amount'></a>Amount
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------|-------------------|--------|
|
||
| `timestamp` | ```u64``` | |
|
||
| `change_source_list` | ```Vec<String>``` | |
|
||
| `amount_cent` | ```i64``` | |
|
||
| `amount_unit` | ```String``` | |
|
||
| `amount_unit_ref` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"timestamp": 0,
|
||
"change_source_list": [],
|
||
"amount_cent": 0,
|
||
"amount_unit": "",
|
||
"amount_unit_ref": ""
|
||
}
|
||
```
|
||
|
||
### 8.5. <a name='Number'></a>Number
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|---------------|--------|
|
||
| `fixed_state` | ```boolean``` | |
|
||
| `number` | ```i32``` | |
|
||
| `number_unit` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"fixed_state": false,
|
||
"number": 0,
|
||
"number_unit": ""
|
||
}
|
||
```
|
||
|
||
## 9. <a name='Request'></a>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:
|
||
|
||
```json
|
||
{
|
||
"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": ""
|
||
}
|
||
|
||
```
|
||
|
||
## 10. <a name='RequestPcd'></a> RequestPcd
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-----------------|--------------------------------------|--------|
|
||
| `request` | ```Request``` | |
|
||
| `item_enc_list` | ```Vec< RequestPcdItemGenericEnc>``` | |
|
||
| `pagination` | ```Pagination``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request": Request,
|
||
"item_enc_list": [],
|
||
"pagination": {Pagination
|
||
}
|
||
```
|
||
|
||
### 10.1. <a name='Pagination'></a>Pagination
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|-------------|--------|
|
||
| `start` | ```usize``` | |
|
||
| `number` | ```usize``` | |
|
||
| `page_index` | ```usize``` | |
|
||
| `page_total` | ```usize``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"start": 0,
|
||
"number": 0,
|
||
"page_index": 0,
|
||
"page_total": 0
|
||
}
|
||
```
|
||
|
||
### 10.2. <a name='RequestPcdItemGenericEnc'></a> RequestPcdItemGenericEnc
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"version": 0,
|
||
"item_type": "",
|
||
"name": "",
|
||
"request_pcd_item_enc_attribute_public_list": [],
|
||
"request_pcd_item_enc_attribute_role_confidential_list": [],
|
||
"request_pcd_item_enc_attribute_private_list": []
|
||
}
|
||
```
|
||
|
||
#### 10.2.1. <a name='RequestPcdItemEncAttributePublic'></a> RequestPcdItemEncAttributePublic
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|--------------|--------|
|
||
| `attribute_name` | ```String``` | |
|
||
| `data_enc` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"attribute_name": "",
|
||
"data_enc": ""
|
||
}
|
||
```
|
||
|
||
#### 10.2.2. <a name='RequestPcdItemEncAttributeRoleConfidential'></a> RequestPcdItemEncAttributeRoleConfidential
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|--------------|--------|
|
||
| `attribute_name` | ```String``` | |
|
||
| `data_enc` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"attribute_name": "",
|
||
"data_enc": ""
|
||
}
|
||
```
|
||
|
||
#### 10.2.3. <a name='RequestPcdItemEncAttributePrivate'></a> RequestPcdItemEncAttributePrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|--------------|--------|
|
||
| `attribute_name` | ```String``` | |
|
||
| `data_enc` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"attribute_name": "",
|
||
"data_enc": ""
|
||
}
|
||
```
|
||
|
||
## 11. <a name='RequestPrd'></a>RequestPrd
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-----------------------------|--------|--------
|
||
| `request` | ```Request``` | |
|
||
| `sig_value` | ```String``` | |
|
||
| `request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret` | ```Vec<String>``` | |
|
||
| `request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret` | ```Vec<String>``` | |
|
||
| `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<String>``` | Yes |
|
||
| `cap_request_pcd_hash_list_enc_by_shared_secret` | ```Vec<String>``` | Yes |
|
||
| `deposit_request_pcd_hash_list_enc_by_shared_secret` | ```Vec<String>``` | Yes |
|
||
| `commitment_request_pcd_hash_list_enc_by_shared_secret` | ```Vec<String>``` | 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:
|
||
|
||
```json
|
||
{
|
||
"request": {},
|
||
"sig_value": "",
|
||
"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": ""
|
||
}
|
||
```
|
||
|
||
### 11.1. <a name='RequestPrdList'></a>RequestPrdList
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd,
|
||
"item_member_enc_by_sp_shared_secret": "",
|
||
"pre_id_sp_enc_by_shared_secret": ""
|
||
}
|
||
```
|
||
|
||
### 11.2. <a name='RequestPrdUpdate'></a>RequestPrdUpdate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|------------------|--------|
|
||
| `request_prd` | ```RequestPrd``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd
|
||
}
|
||
```
|
||
|
||
### 11.3. <a name='RequestPrdResponse'></a>RequestPrdResponse
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd,
|
||
"sig_value": "",
|
||
"shared_secret_key_enc_by_sp_shared_secret": "",
|
||
"shard_enc_by_sp_shared_secret": ""
|
||
}
|
||
```
|
||
|
||
### 11.4. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------|------------------|--------|
|
||
| `request_prd` | ```RequestPrd``` | |
|
||
| `code_confirm_enc_by_shared_secret` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd,
|
||
"code_confirm_enc_by_shared_secret": ""
|
||
}
|
||
```
|
||
|
||
### 11.5. <a name='RequestPrdMessage'></a>RequestPrdMessage
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------|-------------------|--------|
|
||
| `request_prd` | ```RequestPrd``` | |
|
||
| `raw_transaction_list` | ```Vec<String>``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd,
|
||
"raw_transaction_list": []
|
||
}
|
||
```
|
||
|
||
### 11.6. <a name='RequestPrdResponse-1'></a>RequestPrdResponse
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|------------------|--------|
|
||
| `request_prd` | ```RequestPrd``` | |
|
||
| `sig_value` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd": RequestPrd,
|
||
"sig_value": ""
|
||
}
|
||
```
|
||
|
||
## 12. <a name='Roles'></a>Roles
|
||
|
||
### 12.1. <a name='Role'></a>Role
|
||
|
||
| 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<ConditionPrdAddressSet>``` | |
|
||
| `condition_publish_list` | ```Vec<ConditionPublish>``` | Yes |
|
||
| `condition_cap_list` | ```Vec<ConditionCap>``` | Yes |
|
||
| `condition_payment_list` | ```Vec<ConditionPayment>``` | Yes |
|
||
| `condition_commitment_list` | ```Vec<ConditionCommitment>``` | Yes |
|
||
| `condition_attribute_encryption_list` | ```Vec<String>``` | |
|
||
| `condition_orchestration_list` | ```Vec<ConditionOrchestration>``` | Yes |
|
||
| `role_succession` | ```String``` | Yes |
|
||
| `role_resolve` | ```String``` | Yes |
|
||
| `role_renew` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item": Item,
|
||
"sp_output_salt_enc": "",
|
||
"required_2fa": false,
|
||
"validation_timeout": 0,
|
||
"condition_prd_address_set_list": [],
|
||
"condition_publish_list": [],
|
||
"condition_cap_list": [],
|
||
"condition_payment_list": [],
|
||
"condition_commitment_list": [],
|
||
"condition_attribute_encryption_list": [],
|
||
"condition_orchestration_list": [],
|
||
"role_succession": "",
|
||
"role_resolve": "",
|
||
"role_renew": ""
|
||
}
|
||
```
|
||
|
||
### 12.2. <a name='Conditions'></a>Conditions
|
||
|
||
#### 12.2.1. <a name='TransactionMode'></a>TransactionMode
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|-------------------|--------|
|
||
| `amount` | ```Amount``` | Yes |
|
||
| `number` | ```Number``` | Yes |
|
||
| `hash_ok_list` | ```Vec<String>``` | Yes |
|
||
| `hash_ko_list` | ```Vec<String>``` | Yes |
|
||
| `hash_none_list` | ```Vec<String>``` | Yes |
|
||
| `from_list` | ```Vec<String>``` | |
|
||
| `from_type` | ```String``` | |
|
||
| `from_method` | ```String``` | |
|
||
| `to_list` | ```Vec<String>``` | |
|
||
| `to_type` | ```String``` | |
|
||
| `to_method` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"amount": Amount,
|
||
"number": Number,
|
||
"hash_ok_list": [],
|
||
"hash_ko_list": [],
|
||
"hash_none_list": [],
|
||
"from_list": [],
|
||
"from_type": "",
|
||
"from_method": "",
|
||
"to_list": [],
|
||
"to_type": "",
|
||
"to_method": ""
|
||
}
|
||
```
|
||
|
||
#### 12.2.2. <a name='ConditionPayment'></a>ConditionPayment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------------|-------------------------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `transaction_mode` | ```TransactionMode``` | |
|
||
| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | |
|
||
| `condition_deposit_list` | ```Vec<ConditionDeposit>``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd_type": "",
|
||
"transaction_mode": TransactionMode,
|
||
"payment_proof_validation": ConditionRequestPrdAddressSet,
|
||
"condition_deposit_list": []
|
||
}
|
||
```
|
||
|
||
#### 12.2.3. <a name='ConditionCommitment'></a>ConditionCommitment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------------|-------------------------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `transaction_mode` | ```TransactionMode``` | |
|
||
| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd_type": "",
|
||
"transaction_mode": TransactionMode,
|
||
"payment_proof_validation": ConditionRequestPrdAddressSet
|
||
}
|
||
```
|
||
|
||
#### 12.2.4. <a name='ConditionDeposit'></a>ConditionDeposit
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------------|-------------------------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `transaction_mode` | ```TransactionMode``` | |
|
||
| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd_type": "",
|
||
"transaction_mode": TransactionMode,
|
||
"payment_proof_validation": ConditionRequestPrdAddressSet
|
||
}
|
||
```
|
||
|
||
#### 12.2.5. <a name='ConditionOrchestration'></a>ConditionOrchestration
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------------|-------------------------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `role_ok` | ```String``` | |
|
||
| `role_ko` | ```String``` | |
|
||
| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd_type": "",
|
||
"role_ok": "",
|
||
"role_ko": "",
|
||
"payment_proof_validation": ConditionRequestPrdAddressSet
|
||
}
|
||
```
|
||
|
||
#### 12.2.6. <a name='ConditionCap'></a>ConditionCap
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------------|-------------------------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `transaction_mode` | ```TransactionMode``` | |
|
||
| `payment_proof_validation` | ```ConditionRequestPrdAddressSet``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"request_prd_type": "",
|
||
"transaction_mode": "",
|
||
"payment_proof_validation": ConditionRequestPrdAddressSet
|
||
}
|
||
```
|
||
|
||
#### 12.2.7. <a name='ConditionRequestPrdAddressSet'></a>ConditionRequestPrdAddressSet
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------------------------------|-------------------|--------|
|
||
| `request_prd_type` | ```String``` | |
|
||
| `from_role` | ```String``` | Yes |
|
||
| `request_prd_sp_address_list` | ```Vec<String>``` | |
|
||
| `request_prd_sp_address_required_list` | ```Vec<String>``` | |
|
||
| `request_prd_sp_address_quota` | ```i32``` | |
|
||
| `request_prd_value_ok_list` | ```Vec<String>``` | |
|
||
| `request_prd_value_ko_list` | ```Vec<String>``` | |
|
||
| `request_prd_value_none_list` | ```Vec<String>``` | |
|
||
| `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:
|
||
|
||
```json
|
||
{
|
||
"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": false,
|
||
"request_prd_value_auto_ko": false,
|
||
"request_prd_value_auto_none": false,
|
||
"request_prd_sp_address_value_min": 0,
|
||
"request_prd_sp_address_value_min_ok": false,
|
||
"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": false,
|
||
"request_prd_sp_address_score_min_min_per": 0
|
||
}
|
||
```
|
||
|
||
#### 12.2.8. <a name='ConditionPublish'></a>ConditionPublish
|
||
|
||
| 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:
|
||
|
||
```json
|
||
{
|
||
"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": Amount,
|
||
"request_prd_waiting_timeout": 0,
|
||
"request_pcd_waiting_timeout": 0
|
||
}
|
||
```
|
||
|
||
### 12.3. <a name='RolesGroup'></a>RolesGroup
|
||
|
||
RolesGroup outlines a collection of roles.
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------------|-------------------------|--------|
|
||
| `role_peer` | ```RolePeer``` | |
|
||
| `role_member` | ```RoleMember``` | |
|
||
| `role_process` | ```RoleProcess``` | |
|
||
| `role_artefact_list` | ```Vec<RoleArtefact>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"role_peer": RolePeer,
|
||
"role_member": RoleMember,
|
||
"role_process": RoleProcess,
|
||
"role_artefact_list": []
|
||
}
|
||
```
|
||
|
||
#### 12.3.1. <a name='RoleArtefact'></a>RoleArtefact
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
#### 12.3.2. <a name='RoleDeposit'></a>RoleDeposit
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
#### 12.3.3. <a name='RoleCommitment'></a>RoleCommitment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
#### 12.3.4. <a name='RoleMember'></a>RoleMember
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
### 12.4. <a name='RolePeer'></a>RolePeer
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
#### 12.4.1. <a name='RolePayment'></a>RolePayment
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
#### 12.4.2. <a name='RoleProcess'></a>RoleProcess
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `item_name` | ```String``` | |
|
||
| `role` | ```Role``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"item_name": "Nom de l'élément",
|
||
"role": Role
|
||
}
|
||
```
|
||
|
||
## 13. <a name='Storage'></a>Storage
|
||
|
||
### 13.1. <a name='StoragePublic'></a>StoragePublic
|
||
|
||
#### 13.1.1. <a name='StorageKeysPublic'></a>StorageKeysPublic
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------|------------------------------------|--------|
|
||
| `hash` | ```String``` | |
|
||
| `label` | ```String``` | Yes |
|
||
| `device_footprint` | ```String``` | Yes |
|
||
| `third_party_list` | ```Vec<StoragethirdPartyPublic>``` | |
|
||
| `key_revoke_sp_address` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"label": "",
|
||
"device_footprint": "",
|
||
"third_party_list": [],
|
||
"key_revoke_sp_address": ""
|
||
}
|
||
]
|
||
```
|
||
|
||
##### StoragethirdPartyPublic
|
||
|
||
| Attribute Name | Type | Option |
|
||
|--------------------|--------------|--------|
|
||
| `device_footprint` | ```String``` | Yes |
|
||
| `sp_address` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"device_footprint": "",
|
||
"sp_address": ""
|
||
}
|
||
```
|
||
|
||
#### 13.1.2. <a name='StorageItemPeerPublic'></a>StorageItemPeerPublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"peer: ItemPeer
|
||
}
|
||
]
|
||
```
|
||
|
||
#### 13.1.3. <a name='StorageItemProcessPublic'></a>StorageItemProcessPublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"process: ItemProcess
|
||
}
|
||
]
|
||
```
|
||
|
||
#### 13.1.4. <a name='StorageMessagePublic'></a>StorageMessagePublic
|
||
|
||
| 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<StorageMessagesPeerPublic>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"message": StorageMessagePublic,
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
```
|
||
|
||
##### StorageMessagesPeerPublic
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------|---------------|--------|
|
||
| `domain` | ```String``` | |
|
||
| `ip` | ```String``` | |
|
||
| `port` | ```String``` | |
|
||
| `timestamp` | ```u64``` | |
|
||
| `sender` | ```boolean``` | |
|
||
| `validation_status` | ```String``` | | T
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"domain": "",
|
||
"ip": "",
|
||
"port": "",
|
||
"timestamp": 0,
|
||
"sender": false,
|
||
"validation_status": "pending|ok|ko"
|
||
}],
|
||
}
|
||
```
|
||
|
||
#### 13.1.5. <a name='StorageRequestPcdPublic'></a>StorageRequestPcdPublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
```
|
||
|
||
#### 13.1.6. <a name='StorageRequestPrdPublic'></a>StorageRequestPrdPublic
|
||
|
||
##### 4.6.1. <a name='RequestPrdList'></a>StorageRequestPrdListPublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"request_prd": RequestPrdList,
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
|
||
```
|
||
|
||
##### 4.6.2. <a name='RequestPrdUpdate'></a>StorageRequestPrdUpdatePublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"request_prd": RequestPrdUpdate,
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
```
|
||
|
||
##### 4.6.3. <a name='RequestPrdResponse'></a>StorageRequestPrdResponsePublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"request_prd": RequestPrdResponse,
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
```
|
||
|
||
##### 4.6.4. <a name='RequestPrdConfirm'></a>StorageRequestPrdConfirmPublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"request_prd": RequestPrdConfirm,
|
||
"validation_status": "pending|ok|ko"
|
||
]
|
||
```
|
||
|
||
##### 4.6.5. <a name='RequestPrdMessage'></a>StorageRequestPrdMessagePublic
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"request_prd": RequestPrdMessage,
|
||
"validation_status": "pending|ok|ko"
|
||
}
|
||
]
|
||
```
|
||
|
||
### 13.2. <a name='StoragePrivate'></a>StoragePrivate
|
||
|
||
#### 13.2.1. <a name='StorageKeysPrivate'></a>StorageKeysPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------------|------------------------------------------|--------|
|
||
| `hash_public` | ```String``` | |
|
||
| `label` | ```String``` | |
|
||
| `keyrecoverSpend` | ```StorageKeyRecoverSpendPrivate``` | |
|
||
| `key_recover_scan` | ```String``` | |
|
||
| `process_shards_backup_list` | ```Vec<StorageKeyRecoverSpendPrivate>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash_public": "",
|
||
"label": "",
|
||
"keyrecoverSpend": StorageKeyRecoverSpendPrivate,
|
||
"key_recover_scan": "",
|
||
"process_shards_backup_list": []
|
||
}
|
||
]
|
||
```
|
||
|
||
##### StorageKeyRecoverSpendPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `seed_rand_1` | ```String``` | |
|
||
| `seed_rand_2` | ```String``` | |
|
||
| `part1_enc` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"seed_rand_1": "",
|
||
"seed_rand_2": "",
|
||
"part1_enc": ""
|
||
}
|
||
```
|
||
|
||
##### StorageProcessShardsBackupPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|-------------------|--------|
|
||
| `hash` | ```String``` | |
|
||
| `members` | ```Vec<String>``` | |
|
||
| `index` | ```usize``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"hash": "",
|
||
"members": [],
|
||
"index": 0
|
||
}
|
||
```
|
||
|
||
#### 13.2.2. <a name='StoragePeerPrivate'></a>StoragePeerPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------------------------|--------|
|
||
| `hash_public` | ```String``` | |
|
||
| `shared_peer` | ```StorageSharedPeerPrivate``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash_public": "",
|
||
"shared_peer": StorageSharedPeerPrivate
|
||
}
|
||
]
|
||
```
|
||
|
||
##### StorageSharedPeerPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|---------------------------------|--------|
|
||
| `domain` | ```String``` | |
|
||
| `address_ip` | ```String``` | |
|
||
| `relay` | ```StorageRelayPrivate``` | Yes |
|
||
| `l1_node` | ```StorageL1NodePrivate``` | Yes |
|
||
| `l1_miner` | ```StorageL1MinerPrivate``` | Yes |
|
||
| `l2_node_list` | ```Vec<StorageL2NodePrivate>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"domain": "",
|
||
"address_ip": "",
|
||
"relay": StorageRelayPrivate,
|
||
"l1_node": StorageL1NodePrivate,
|
||
"l1_miner": StorageL1MinerPrivate,
|
||
"l2_node_list": []
|
||
}
|
||
```
|
||
|
||
###### StorageRelayPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|-------------------|--------|
|
||
| `faucet_tx_list` | ```Vec<String>``` | Yes |
|
||
| `spend_key` | ```String``` | |
|
||
| `scan_key` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"faucet_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
###### StorageL1NodePrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------|-------------------|--------|
|
||
| `reward_tx_list` | ```Vec<String>``` | |
|
||
| `anchorage_tx_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | |
|
||
| `scan_key` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"reward_tx_list": [],
|
||
"anchorage_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
###### StorageL1MinerPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------|-------------------|--------|
|
||
| `mining_reward_tx_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | |
|
||
| `scan_key` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"mining_reward_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
###### StorageL2NodePrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|----------------------------------|--------|
|
||
| `l2_miner` | ```StorageL2NodeMinerPrivate``` | |
|
||
| `l2_certif` | ```StorageL2NodeCertifPrivate``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"l2_miner": StorageL2NodeMinerPrivate,
|
||
"l2_certif": StorageL2NodeCertifPrivate
|
||
}
|
||
```
|
||
|
||
####### StorageL2NodeMinerPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-------------------------|-------------------|--------|-
|
||
| `mining_descriptor` | ```String``` | |
|
||
| `mining_reward_tx_list` | ```Vec<String>``` | |
|
||
| `refunder_tx_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | |
|
||
| `scan_key` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"mining_descriptor": "",
|
||
"minig_reward_tx_list": [],
|
||
"refunder_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": ""
|
||
}
|
||
```
|
||
|
||
####### StorageL2NodeCertifPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|---------------------|-------------------|--------|
|
||
| `certif_l1_tx_list` | ```Vec<String>``` | |
|
||
| `refunded_tx_list` | ```Vec<String>``` | |
|
||
| `anchorage_tx_list` | ```Vec<String>``` | |
|
||
| `spend_key` | ```String``` | |
|
||
| `scan_key` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"certif_l1_tx_list": [],
|
||
"refunded_tx_list": [],
|
||
"anchorage_tx_list": [],
|
||
"spend_key": "",
|
||
"scan_key": "",
|
||
}
|
||
```
|
||
|
||
#### 13.2.3. <a name='StorageProcessPrivate'></a>StorageProcessPrivate
|
||
|
||
Public:
|
||
|
||
| Attribute Name | Type | Option |
|
||
|--------------------|-------------------|--------|
|
||
| `hash` | ```String``` | |
|
||
| `confidential_key` | ```String``` | |
|
||
| `item` | ```ItemProcess``` | |
|
||
|
||
Private:
|
||
|
||
| Attribute Name | Type | Option |
|
||
|-----------------------------------|------------------------------------|--------|
|
||
| `hash_public` | ```String``` | |
|
||
| `confidential_key` | ```String``` | |
|
||
| `metadata_role_confidentiel_keys` | ```MetadataRoleConfidentielKeys``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"private": [
|
||
{
|
||
"hash": "",
|
||
"confidential_key": "",
|
||
"item": ItemProcess
|
||
}
|
||
],
|
||
"public": [{
|
||
"hash_public": "",
|
||
"confidential_key": "",
|
||
"metadata_role_confidentiel_keys": MetadataRoleConfidentielKeys
|
||
}]
|
||
}
|
||
```
|
||
|
||
###### MetadataRoleConfidentielKeys
|
||
|
||
| 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:
|
||
|
||
```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. <a name='StorageRequestPcdPrivate'></a>StorageRequestPcdPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------------------|-------------------|--------|
|
||
| `hash_public` | ```String``` | |
|
||
| `pcd_aes_key_list_decrypted` | ```Vec<String>``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[{
|
||
"hash_public": "",
|
||
"pcd_aes_key_list_decrypted": []
|
||
}]
|
||
```
|
||
|
||
#### 13.2.5. <a name='StorageRequestPrdPrivate'></a>StorageRequestPrdPrivate
|
||
|
||
##### 5.5.1. <a name='RequestPrdUpdate-1'></a>StorageRequestPrdUpdatePrivate
|
||
|
||
| 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<String>``` | |
|
||
| `cap_request_pcd_hash_list_decrypted` | ```Vec<String>``` | |
|
||
| `deposit_request_pcd_hash_list_decrypted` | ```Vec<String>``` | |
|
||
| `commitment_request_pcd_hash_list_decrypted` | ```Vec<String>``` | |
|
||
| `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:
|
||
|
||
```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. <a name='RequestPrdResponse-1'></a>StorageRequestPrdResponsePrivate
|
||
|
||
| 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<String>``` | Yes |
|
||
| `cap_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `deposit_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `commitment_request_pcd_hash_list_decrypted` | ```Vec<String>``` | 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<StorageDecryptedSharedSecretKeyPrivate>``` | |
|
||
| `shard_decrypted` | ```String``` | Yes |
|
||
|
||
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. <a name='StorageDecryptedSharedSecretKeyPrivate'></a>StorageDecryptedSharedSecretKeyPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|------------------|--------------|--------|
|
||
| `attribute_name` | ```String``` | Yes |
|
||
| `key` | ```String``` | Yes |
|
||
| `algorithm` | ```String``` | Yes |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
{
|
||
"attribute_name": "",
|
||
"key": "",
|
||
"algorithm": "",
|
||
}
|
||
```
|
||
|
||
##### 5.5.3. <a name='RequestPrdConfirm-1'></a>StorageRequestPrdConfirmPrivate
|
||
|
||
| 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<String>``` | Yes |
|
||
| `cap_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `deposit_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `commitment_request_pcd_hash_list_decrypted` | ```Vec<String>``` | 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:
|
||
|
||
```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. <a name='RequestPrdMessage-1'></a>StorageRequestPrdMessagePrivate
|
||
|
||
| 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<String>``` | Yes |
|
||
| `cap_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `deposit_request_pcd_hash_list_decrypted` | ```Vec<String>``` | Yes |
|
||
| `commitment_request_pcd_hash_list_decrypted` | ```Vec<String>``` | 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:
|
||
|
||
```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. <a name='StorageocketsPrivate'></a>StorageocketsPrivate
|
||
|
||
#### 13.2.8. <a name='StorageSocketClientListPrivate'></a>StorageSocketClientListPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `address` | ```String``` | |
|
||
| `port` | ```u64``` | |
|
||
| `protocol` | ```String``` | |
|
||
| `status` | ```String``` | |
|
||
| `type` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"socket": {
|
||
"address": "",
|
||
"port": 0,
|
||
"protocol": "",
|
||
"status": "pending|ok|ko",
|
||
"type": "tx|request|client"
|
||
}
|
||
}
|
||
]
|
||
```
|
||
|
||
##### 5.6.2. <a name='SocketServerList'></a>StorageSocketServerListPrivate
|
||
|
||
| Attribute Name | Type | Option |
|
||
|----------------|--------------|--------|
|
||
| `address` | ```String``` | |
|
||
| `port` | ```u64``` | |
|
||
| `protocol` | ```String``` | |
|
||
| `status` | ```String``` | |
|
||
| `type` | ```String``` | |
|
||
|
||
Pseudo-code:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"hash": "",
|
||
"socket": {
|
||
"address": "",
|
||
"port": 0,
|
||
"protocol": "",
|
||
"status": "pending|ok|ko",
|
||
"type": "tx|request|client"
|
||
}
|
||
}
|
||
]
|
||
```
|
||
|
||
## 14. <a name='Rustconsiderations'></a>12. Rust considerations
|
||
|
||
### 14.1. <a name='GeneralImplicationsforProjectObjects'></a> General Implications for Project Objects
|
||
|
||
Incorporating these traits into a struct's definition enhances its utility across various aspects of a project. For instance:
|
||
|
||
* **Serialization traits (Serialize, Deserialize)**: facilitate the easy exchange of data with external services or storage systems.
|
||
* **Traits like Clone, Debug, and Default**: improve the development experience by providing essential functionalities for debugging, testing, and initializing objects.
|
||
* **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.
|
||
|
||
### 14.2. <a name='Debug'></a> Debug
|
||
|
||
The Debug trait allows instances of the struct to be formatted using the {:?} formatter. This is essential for debugging purposes, as it provides a way to output the contents of the struct to the console or logs, aiding in the development and troubleshooting process.
|
||
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.
|
||
|
||
### 14.3. <a name='Default'></a> Default
|
||
|
||
Implementing the Default trait allows for the creation of a struct with default values. This is useful for initializing structs with a set of predetermined values or when a struct needs to be created without specifying every field explicitly.
|
||
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.
|
||
|
||
### 14.4. <a name='PartialEqEq'></a> PartialEq, Eq
|
||
|
||
PartialEq and Eq traits enable comparison operations for instances of the struct. While PartialEq allows for partial equality checks (where some of the comparisons might be indeterminate), Eq denotes that every comparison will either be true or false, ensuring a stricter equality condition that is necessary for certain collections or logic checks.
|
||
|
||
### 14.5. <a name='Hash'></a> Hash
|
||
|
||
The Hash trait is used to compute a hash value for instances of the struct. This is essential for structs that need to be stored in collections such as HashMap or HashSet, where a unique identifier is required to efficiently retrieve or store items.
|
||
|
||
### 14.6. <a name='PartialOrdOrd'></a> PartialOrd, Ord
|
||
|
||
PartialOrd and Ord traits allow for ordering comparisons between instances of the struct. PartialOrd provides functionality for partial ordering, where some comparisons might not produce a clear order, whereas Ord requires a total ordering, ensuring that any two instances can be reliably ordered. This is critical for sorting operations or when structs are stored in ordered collections.
|
||
FromForm (rocket crate)
|
||
|
||
## 15. <a name='Todo'></a>Todo
|