129 defs_[jss::TYPES][
"Done"] = -1;
131 for (
auto const& [rawName, typeValue] :
kSTypeMap)
134 defs_[jss::TYPES][typeName] = typeValue;
135 typeMap[typeValue] = typeName;
140 defs_[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1;
144 defs_[jss::LEDGER_ENTRY_TYPES][f.getName()] = f.getType();
157 v[jss::isVLEncoded] =
false;
158 v[jss::isSerialized] =
false;
159 v[jss::isSigningField] =
false;
160 v[jss::type] =
"Unknown";
162 defs_[jss::FIELDS][i++] = a;
167 a[0U] =
"ObjectEndMarker";
170 v[jss::isVLEncoded] =
false;
171 v[jss::isSerialized] =
true;
172 v[jss::isSigningField] =
true;
173 v[jss::type] =
"STObject";
175 defs_[jss::FIELDS][i++] = a;
180 a[0U] =
"ArrayEndMarker";
183 v[jss::isVLEncoded] =
false;
184 v[jss::isSerialized] =
true;
185 v[jss::isSigningField] =
true;
186 v[jss::type] =
"STArray";
188 defs_[jss::FIELDS][i++] = a;
193 a[0U] =
"taker_gets_funded";
196 v[jss::isVLEncoded] =
false;
197 v[jss::isSerialized] =
false;
198 v[jss::isSigningField] =
false;
199 v[jss::type] =
"Amount";
201 defs_[jss::FIELDS][i++] = a;
206 a[0U] =
"taker_pays_funded";
209 v[jss::isVLEncoded] =
false;
210 v[jss::isSerialized] =
false;
211 v[jss::isSigningField] =
false;
212 v[jss::type] =
"Amount";
214 defs_[jss::FIELDS][i++] = a;
221 for (
auto const& [code, field] : kSortedFields)
223 if (field->fieldName.empty())
228 int32_t
const type = field->fieldType;
230 innerObj[jss::nth] = field->fieldValue;
234 innerObj[jss::isVLEncoded] =
235 (type == STI_VL || type == STI_ACCOUNT || type == STI_VECTOR256);
237 STI_VL == 7U && STI_ACCOUNT == 8U && STI_VECTOR256 == 19U,
238 "STI_VL, STI_ACCOUNT, STI_VECTOR256 must be 7, 8, 19 respectively");
241 innerObj[jss::isSerialized] =
242 (type < 10000 && field->fieldName !=
"hash" &&
247 innerObj[jss::isSigningField] = field->shouldInclude(
false);
249 innerObj[jss::type] = typeMap[type];
252 innerArray[0U] = field->fieldName;
253 innerArray[1U] = innerObj;
255 defs_[jss::FIELDS][i++] = innerArray;
263 defs_[jss::TRANSACTION_RESULTS][terInfo.first] = code;
268 defs_[jss::TRANSACTION_TYPES][jss::Invalid] = -1;
271 defs_[jss::TRANSACTION_TYPES][f.getName()] = f.getType();
282 elementObj[jss::name] = element.sField().getName();
283 elementObj[jss::optionality] = element.style();
284 defs_[jss::TRANSACTION_FORMATS][jss::common].append(elementObj);
285 txCommonFields.insert(element.sField().getName());
290 auto const& soTemplate = format.getSOTemplate();
292 for (
auto const& element : soTemplate)
294 if (txCommonFields.contains(element.sField().getName()))
297 elementObj[jss::name] = element.sField().getName();
298 elementObj[jss::optionality] = element.style();
299 templateArray.
append(elementObj);
301 defs_[jss::TRANSACTION_FORMATS][format.getName()] = templateArray;
311 elementObj[jss::name] = element.sField().getName();
312 elementObj[jss::optionality] = element.style();
313 defs_[jss::LEDGER_ENTRY_FORMATS][jss::common].append(elementObj);
314 ledgerCommonFields.insert(element.sField().getName());
318 auto const& soTemplate = format.getSOTemplate();
320 for (
auto const& element : soTemplate)
322 if (ledgerCommonFields.contains(element.sField().getName()))
325 elementObj[jss::name] = element.sField().getName();
326 elementObj[jss::optionality] = element.style();
327 templateArray.
append(elementObj);
329 defs_[jss::LEDGER_ENTRY_FORMATS][format.getName()] = templateArray;
336 for (
auto const& [flagName, flagValue] : value)
338 txObj[flagName] = flagValue;
340 defs_[jss::TRANSACTION_FLAGS][name] = txObj;
347 for (
auto const& [flagName, flagValue] : value)
349 ledgerObj[flagName] = flagValue;
351 defs_[jss::LEDGER_ENTRY_FLAGS][name] = ledgerObj;
357 defs_[jss::ACCOUNT_SET_FLAGS][name] = value;