122 defs_[jss::TYPES][
"Done"] = -1;
124 for (
auto const& [rawName, typeValue] :
sTypeMap)
127 defs_[jss::TYPES][typeName] = typeValue;
128 typeMap[typeValue] = typeName;
133 defs_[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1;
137 defs_[jss::LEDGER_ENTRY_TYPES][f.getName()] = f.getType();
149 v[jss::isVLEncoded] =
false;
150 v[jss::isSerialized] =
false;
151 v[jss::isSigningField] =
false;
152 v[jss::type] =
"Unknown";
154 defs_[jss::FIELDS][i++] = a;
162 v[jss::isVLEncoded] =
false;
163 v[jss::isSerialized] =
false;
164 v[jss::isSigningField] =
false;
165 v[jss::type] =
"Unknown";
167 defs_[jss::FIELDS][i++] = a;
172 a[0U] =
"ObjectEndMarker";
175 v[jss::isVLEncoded] =
false;
176 v[jss::isSerialized] =
true;
177 v[jss::isSigningField] =
true;
178 v[jss::type] =
"STObject";
180 defs_[jss::FIELDS][i++] = a;
185 a[0U] =
"ArrayEndMarker";
188 v[jss::isVLEncoded] =
false;
189 v[jss::isSerialized] =
true;
190 v[jss::isSigningField] =
true;
191 v[jss::type] =
"STArray";
193 defs_[jss::FIELDS][i++] = a;
198 a[0U] =
"taker_gets_funded";
201 v[jss::isVLEncoded] =
false;
202 v[jss::isSerialized] =
false;
203 v[jss::isSigningField] =
false;
204 v[jss::type] =
"Amount";
206 defs_[jss::FIELDS][i++] = a;
211 a[0U] =
"taker_pays_funded";
214 v[jss::isVLEncoded] =
false;
215 v[jss::isSerialized] =
false;
216 v[jss::isSigningField] =
false;
217 v[jss::type] =
"Amount";
219 defs_[jss::FIELDS][i++] = a;
224 if (field->fieldName.empty())
229 uint32_t type = field->fieldType;
231 innerObj[jss::nth] = field->fieldValue;
235 innerObj[jss::isVLEncoded] =
236 (type == 7U || type == 8U || type == 19U );
239 innerObj[jss::isSerialized] =
240 (type < 10000 && field->fieldName !=
"hash" &&
245 innerObj[jss::isSigningField] = field->shouldInclude(
false);
247 innerObj[jss::type] = typeMap[type];
250 innerArray[0U] = field->fieldName;
251 innerArray[1U] = innerObj;
253 defs_[jss::FIELDS][i++] = innerArray;
261 defs_[jss::TRANSACTION_RESULTS][terInfo.first] = code;
266 defs_[jss::TRANSACTION_TYPES][jss::Invalid] = -1;
269 defs_[jss::TRANSACTION_TYPES][f.getName()] = f.getType();
280 elementObj[jss::name] = element.sField().getName();
281 elementObj[jss::optionality] = element.style();
282 defs_[jss::TRANSACTION_FORMATS][jss::common].
append(elementObj);
283 txCommonFields.insert(element.sField().getName());
288 auto const& soTemplate = format.getSOTemplate();
290 for (
auto const& element : soTemplate)
292 if (txCommonFields.contains(element.sField().getName()))
295 elementObj[jss::name] = element.sField().getName();
296 elementObj[jss::optionality] = element.style();
297 templateArray.
append(elementObj);
299 defs_[jss::TRANSACTION_FORMATS][format.getName()] = templateArray;
309 elementObj[jss::name] = element.sField().getName();
310 elementObj[jss::optionality] = element.style();
311 defs_[jss::LEDGER_ENTRY_FORMATS][jss::common].
append(elementObj);
312 ledgerCommonFields.insert(element.sField().getName());
316 auto const& soTemplate = format.getSOTemplate();
318 for (
auto const& element : soTemplate)
320 if (ledgerCommonFields.contains(element.sField().getName()))
323 elementObj[jss::name] = element.sField().getName();
324 elementObj[jss::optionality] = element.style();
325 templateArray.
append(elementObj);
327 defs_[jss::LEDGER_ENTRY_FORMATS][format.getName()] = templateArray;
334 for (
auto const& [flagName, flagValue] : value)
336 txObj[flagName] = flagValue;
338 defs_[jss::TRANSACTION_FLAGS][name] = txObj;
345 for (
auto const& [flagName, flagValue] : value)
347 ledgerObj[flagName] = flagValue;
349 defs_[jss::LEDGER_ENTRY_FLAGS][name] = ledgerObj;
355 defs_[jss::ACCOUNT_SET_FLAGS][name] = value;
Value get(UInt index, Value const &defaultValue) const
If the array contains at least index+1 elements, returns the element value, otherwise returns default...