CCF
Loading...
Searching...
No Matches
serialization.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ccf/ds/json.h"
8#include "enclave/interface.h"
10
11namespace ccf
12{
15 GetState::Out,
16 node_id,
17 state,
18 last_signed_seqno,
19 startup_seqno,
20 stop_notice)
22 GetState::Out, recovery_target_seqno, last_recovered_seqno)
23
24 DECLARE_JSON_TYPE(GetVersion::Out)
26 GetVersion::Out, ccf_version, quickjs_version, unsafe)
27
28 DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(JoinNetworkNodeToNode::In)
30 JoinNetworkNodeToNode::In,
31 node_info_network,
32 quote_info,
33 public_encryption_key,
34 startup_seqno)
36 JoinNetworkNodeToNode::In,
37 certificate_signing_request,
38 node_data,
39 consensus_type)
40
43 {{ccf::IdentityType::REPLICATED, "Replicated"},
44 {ccf::IdentityType::SPLIT, "Split"}})
46 DECLARE_JSON_REQUIRED_FIELDS(NetworkIdentity, cert, priv_key)
47 DECLARE_JSON_OPTIONAL_FIELDS(NetworkIdentity, type, subject_name)
48 DECLARE_JSON_TYPE_WITH_BASE(ReplicatedNetworkIdentity, NetworkIdentity)
49
51 JoinNetworkNodeToNode::Out::NetworkInfo)
53 JoinNetworkNodeToNode::Out::NetworkInfo,
54 public_only,
55 last_recovered_signed_idx,
56 ledger_secrets,
57 identity)
59 JoinNetworkNodeToNode::Out::NetworkInfo,
60 service_status,
61 endorsed_certificate,
62 reconfiguration_type,
63 consensus_type,
64 cose_signatures_config)
65
66 DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(JoinNetworkNodeToNode::Out)
67 DECLARE_JSON_REQUIRED_FIELDS(JoinNetworkNodeToNode::Out, node_status)
69 JoinNetworkNodeToNode::Out, node_id, network_info)
70
71 DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(CreateNetworkNodeToNode::In)
73 CreateNetworkNodeToNode::In,
74 node_id,
75 certificate_signing_request,
76 node_endorsed_certificate,
77 public_key,
78 service_cert,
79 quote_info,
80 public_encryption_key,
81 measurement,
82 node_info_network,
83 create_txid)
85 CreateNetworkNodeToNode::In,
86 genesis_info,
87 recovery_constitution,
88 node_data,
89 service_data,
90 snp_security_policy,
91 snp_uvm_endorsements)
92
94 DECLARE_JSON_REQUIRED_FIELDS(GetCommit::Out, transaction_id)
95 DECLARE_JSON_OPTIONAL_FIELDS(GetCommit::Out, view_history)
96
97 DECLARE_JSON_TYPE(GetTxStatus::Out)
98 DECLARE_JSON_REQUIRED_FIELDS(GetTxStatus::Out, transaction_id, status)
99
100 DECLARE_JSON_TYPE(GetNetworkInfo::Out)
102 GetNetworkInfo::Out,
103 service_status,
104 service_certificate,
105 current_view,
106 primary_id,
107 recovery_count,
108 service_data,
109 current_service_create_txid)
110
111 DECLARE_JSON_TYPE(GetNode::NodeInfo)
113 GetNode::NodeInfo,
114 node_id,
115 status,
116 primary,
117 rpc_interfaces,
118 node_data,
119 last_written)
120
121 DECLARE_JSON_TYPE(GetNodes::Out)
122 DECLARE_JSON_REQUIRED_FIELDS(GetNodes::Out, nodes)
123
124 DECLARE_JSON_TYPE(VerifyReceipt::In)
125 DECLARE_JSON_REQUIRED_FIELDS(VerifyReceipt::In, receipt)
126 DECLARE_JSON_TYPE(VerifyReceipt::Out)
127 DECLARE_JSON_REQUIRED_FIELDS(VerifyReceipt::Out, valid)
128
129 DECLARE_JSON_TYPE(GetCode::Version)
130 DECLARE_JSON_REQUIRED_FIELDS(GetCode::Version, digest, status)
131 DECLARE_JSON_TYPE(GetCode::Out)
132 DECLARE_JSON_REQUIRED_FIELDS(GetCode::Out, versions)
133
134 DECLARE_JSON_TYPE(GetSnpHostDataMap::HostData)
135 DECLARE_JSON_REQUIRED_FIELDS(GetSnpHostDataMap::HostData, raw, metadata)
136 DECLARE_JSON_TYPE(GetSnpHostDataMap::Out)
137 DECLARE_JSON_REQUIRED_FIELDS(GetSnpHostDataMap::Out, host_data)
138
139 DECLARE_JSON_TYPE(GetRecoveryShare::Out)
140 DECLARE_JSON_REQUIRED_FIELDS(GetRecoveryShare::Out, encrypted_share)
141
142 DECLARE_JSON_TYPE(SubmitRecoveryShare::In)
143 DECLARE_JSON_REQUIRED_FIELDS(SubmitRecoveryShare::In, share)
144 DECLARE_JSON_TYPE(SubmitRecoveryShare::Out)
145 DECLARE_JSON_REQUIRED_FIELDS(SubmitRecoveryShare::Out, message)
146
147 DECLARE_JSON_TYPE(MemoryUsage::Out)
149 MemoryUsage::Out,
150 max_total_heap_size,
151 current_allocated_heap_size,
152 peak_allocated_heap_size)
153}
#define DECLARE_JSON_TYPE_WITH_BASE(TYPE, BASE)
Definition json.h:663
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:712
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:661
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:688
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:784
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:835
Definition app_interface.h:15
IdentityType
Definition identity.h:17