rippled
SField.h
1 //------------------------------------------------------------------------------
2 /*
3  This file is part of rippled: https://github.com/ripple/rippled
4  Copyright (c) 2012, 2013 Ripple Labs Inc.
5 
6  Permission to use, copy, modify, and/or distribute this software for any
7  purpose with or without fee is hereby granted, provided that the above
8  copyright notice and this permission notice appear in all copies.
9 
10  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18 //==============================================================================
19 
20 #ifndef RIPPLE_PROTOCOL_SFIELD_H_INCLUDED
21 #define RIPPLE_PROTOCOL_SFIELD_H_INCLUDED
22 
23 #include <ripple/basics/safe_cast.h>
24 #include <ripple/json/json_value.h>
25 
26 #include <cstdint>
27 #include <map>
28 #include <utility>
29 
30 namespace ripple {
31 
32 /*
33 
34 Some fields have a different meaning for their
35  default value versus not present.
36  Example:
37  QualityIn on a TrustLine
38 
39 */
40 
41 //------------------------------------------------------------------------------
42 
43 // Forwards
44 class STAccount;
45 class STAmount;
46 class STIssue;
47 class STBlob;
48 template <int>
50 template <class>
51 class STInteger;
52 class STVector256;
53 
55  // special types
58 
59  // // types (common)
66  STI_VL = 7,
68  // 9-13 are reserved
69  STI_OBJECT = 14,
70  STI_ARRAY = 15,
71 
72  // types (uncommon)
73  STI_UINT8 = 16,
77  STI_UINT96 = 20,
81  STI_ISSUE = 24,
82 
83  // high level types
84  // cannot be serialized inside other types
85  STI_TRANSACTION = 10001,
86  STI_LEDGERENTRY = 10002,
87  STI_VALIDATION = 10003,
88  STI_METADATA = 10004,
89 };
90 
91 // constexpr
92 inline int
94 {
95  return (safe_cast<int>(id) << 16) | index;
96 }
97 
98 // constexpr
99 inline int
100 field_code(int id, int index)
101 {
102  return (id << 16) | index;
103 }
104 
115 class SField
116 {
117 public:
118  enum {
119  sMD_Never = 0x00,
120  sMD_ChangeOrig = 0x01, // original value when it changes
121  sMD_ChangeNew = 0x02, // new value when it changes
122  sMD_DeleteFinal = 0x04, // final value when it is deleted
123  sMD_Create = 0x08, // value when it's created
124  sMD_Always = 0x10, // value when node containing it is affected at all
127  };
128 
129  enum class IsSigning : unsigned char { no, yes };
131 
132  int const fieldCode; // (type<<16)|index
133  SerializedTypeID const fieldType; // STI_*
134  int const fieldValue; // Code number for protocol
136  int const fieldMeta;
137  int const fieldNum;
140 
141  SField(SField const&) = delete;
142  SField&
143  operator=(SField const&) = delete;
144  SField(SField&&) = delete;
145  SField&
146  operator=(SField&&) = delete;
147 
148 public:
149  struct private_access_tag_t; // public, but still an implementation detail
150 
151  // These constructors can only be called from SField.cpp
152  SField(
154  SerializedTypeID tid,
155  int fv,
156  const char* fn,
157  int meta = sMD_Default,
158  IsSigning signing = IsSigning::yes);
159  explicit SField(private_access_tag_t, int fc);
160 
161  static const SField&
162  getField(int fieldCode);
163  static const SField&
165  static const SField&
166  getField(int type, int value)
167  {
168  return getField(field_code(type, value));
169  }
170 
171  static const SField&
172  getField(SerializedTypeID type, int value)
173  {
174  return getField(field_code(type, value));
175  }
176 
177  std::string const&
178  getName() const
179  {
180  return fieldName;
181  }
182 
183  bool
184  hasName() const
185  {
186  return fieldCode > 0;
187  }
188 
189  Json::StaticString const&
190  getJsonName() const
191  {
192  return jsonName;
193  }
194 
195  bool
196  isInvalid() const
197  {
198  return fieldCode == -1;
199  }
200 
201  bool
202  isUseful() const
203  {
204  return fieldCode > 0;
205  }
206 
207  bool
208  isBinary() const
209  {
210  return fieldValue < 256;
211  }
212 
213  // A discardable field is one that cannot be serialized, and
214  // should be discarded during serialization,like 'hash'.
215  // You cannot serialize an object's hash inside that object,
216  // but you can have it in the JSON representation.
217  bool
219  {
220  return fieldValue > 256;
221  }
222 
223  int
224  getCode() const
225  {
226  return fieldCode;
227  }
228  int
229  getNum() const
230  {
231  return fieldNum;
232  }
233  static int
235  {
236  return num;
237  }
238 
239  bool
240  shouldMeta(int c) const
241  {
242  return (fieldMeta & c) != 0;
243  }
244 
245  bool
246  shouldInclude(bool withSigningField) const
247  {
248  return (fieldValue < 256) &&
249  (withSigningField || (signingField == IsSigning::yes));
250  }
251 
252  bool
253  operator==(const SField& f) const
254  {
255  return fieldCode == f.fieldCode;
256  }
257 
258  bool
259  operator!=(const SField& f) const
260  {
261  return fieldCode != f.fieldCode;
262  }
263 
264  static int
265  compare(const SField& f1, const SField& f2);
266 
267 private:
268  static int num;
270 };
271 
273 template <class T>
275 {
276  using type = T;
277 
278  template <class... Args>
279  explicit TypedField(private_access_tag_t pat, Args&&... args);
280 };
281 
283 template <class T>
285 {
286  TypedField<T> const* f;
287 
288  explicit OptionaledField(TypedField<T> const& f_) : f(&f_)
289  {
290  }
291 };
292 
293 template <class T>
294 inline OptionaledField<T>
296 {
297  return OptionaledField<T>(f);
298 }
299 
300 //------------------------------------------------------------------------------
301 
302 //------------------------------------------------------------------------------
303 
315 
321 
322 //------------------------------------------------------------------------------
323 
324 extern SField const sfInvalid;
325 extern SField const sfGeneric;
326 extern SField const sfLedgerEntry;
327 extern SField const sfTransaction;
328 extern SField const sfValidation;
329 extern SField const sfMetadata;
330 
331 // 8-bit integers (common)
332 extern SF_UINT8 const sfCloseResolution;
333 extern SF_UINT8 const sfMethod;
334 extern SF_UINT8 const sfTransactionResult;
335 
336 // 8-bit integers (uncommon)
337 extern SF_UINT8 const sfTickSize;
338 extern SF_UINT8 const sfUNLModifyDisabling;
339 extern SF_UINT8 const sfHookResult;
340 
341 // 16-bit integers (common)
342 extern SF_UINT16 const sfLedgerEntryType;
343 extern SF_UINT16 const sfTransactionType;
344 extern SF_UINT16 const sfSignerWeight;
345 extern SF_UINT16 const sfTransferFee;
346 extern SF_UINT16 const sfTradingFee;
347 
348 // 16-bit integers (uncommon)
349 extern SF_UINT16 const sfVersion;
350 extern SF_UINT16 const sfHookStateChangeCount;
351 extern SF_UINT16 const sfHookEmitCount;
352 extern SF_UINT16 const sfHookExecutionIndex;
353 extern SF_UINT16 const sfHookApiVersion;
354 extern SF_UINT16 const sfDiscountedFee;
355 
356 // 32-bit integers (common)
357 extern SF_UINT32 const sfNetworkID;
358 extern SF_UINT32 const sfFlags;
359 extern SF_UINT32 const sfSourceTag;
360 extern SF_UINT32 const sfSequence;
361 extern SF_UINT32 const sfPreviousTxnLgrSeq;
362 extern SF_UINT32 const sfLedgerSequence;
363 extern SF_UINT32 const sfCloseTime;
364 extern SF_UINT32 const sfParentCloseTime;
365 extern SF_UINT32 const sfSigningTime;
366 extern SF_UINT32 const sfExpiration;
367 extern SF_UINT32 const sfTransferRate;
368 extern SF_UINT32 const sfWalletSize;
369 extern SF_UINT32 const sfOwnerCount;
370 extern SF_UINT32 const sfDestinationTag;
371 
372 // 32-bit integers (uncommon)
373 extern SF_UINT32 const sfHighQualityIn;
374 extern SF_UINT32 const sfHighQualityOut;
375 extern SF_UINT32 const sfLowQualityIn;
376 extern SF_UINT32 const sfLowQualityOut;
377 extern SF_UINT32 const sfQualityIn;
378 extern SF_UINT32 const sfQualityOut;
379 extern SF_UINT32 const sfStampEscrow;
380 extern SF_UINT32 const sfBondAmount;
381 extern SF_UINT32 const sfLoadFee;
382 extern SF_UINT32 const sfOfferSequence;
383 extern SF_UINT32 const sfFirstLedgerSequence;
384 extern SF_UINT32 const sfLastLedgerSequence;
385 extern SF_UINT32 const sfTransactionIndex;
386 extern SF_UINT32 const sfOperationLimit;
387 extern SF_UINT32 const sfReferenceFeeUnits;
388 extern SF_UINT32 const sfReserveBase;
389 extern SF_UINT32 const sfReserveIncrement;
390 extern SF_UINT32 const sfSetFlag;
391 extern SF_UINT32 const sfClearFlag;
392 extern SF_UINT32 const sfSignerQuorum;
393 extern SF_UINT32 const sfCancelAfter;
394 extern SF_UINT32 const sfFinishAfter;
395 extern SF_UINT32 const sfSignerListID;
396 extern SF_UINT32 const sfSettleDelay;
397 extern SF_UINT32 const sfTicketCount;
398 extern SF_UINT32 const sfTicketSequence;
399 extern SF_UINT32 const sfNFTokenTaxon;
400 extern SF_UINT32 const sfMintedNFTokens;
401 extern SF_UINT32 const sfBurnedNFTokens;
402 extern SF_UINT32 const sfHookStateCount;
403 extern SF_UINT32 const sfEmitGeneration;
404 extern SF_UINT32 const sfVoteWeight;
405 extern SF_UINT32 const sfFirstNFTokenSequence;
406 
407 // 64-bit integers (common)
408 extern SF_UINT64 const sfIndexNext;
409 extern SF_UINT64 const sfIndexPrevious;
410 extern SF_UINT64 const sfBookNode;
411 extern SF_UINT64 const sfOwnerNode;
412 extern SF_UINT64 const sfBaseFee;
413 extern SF_UINT64 const sfExchangeRate;
414 extern SF_UINT64 const sfLowNode;
415 extern SF_UINT64 const sfHighNode;
416 extern SF_UINT64 const sfDestinationNode;
417 extern SF_UINT64 const sfCookie;
418 extern SF_UINT64 const sfServerVersion;
419 extern SF_UINT64 const sfNFTokenOfferNode;
420 extern SF_UINT64 const sfEmitBurden;
421 
422 // 64-bit integers (uncommon)
423 extern SF_UINT64 const sfHookOn;
424 extern SF_UINT64 const sfHookInstructionCount;
425 extern SF_UINT64 const sfHookReturnCode;
426 extern SF_UINT64 const sfReferenceCount;
427 
428 // 128-bit
429 extern SF_UINT128 const sfEmailHash;
430 
431 // 160-bit (common)
432 extern SF_UINT160 const sfTakerPaysCurrency;
433 extern SF_UINT160 const sfTakerPaysIssuer;
434 extern SF_UINT160 const sfTakerGetsCurrency;
435 extern SF_UINT160 const sfTakerGetsIssuer;
436 
437 // 256-bit (common)
438 extern SF_UINT256 const sfLedgerHash;
439 extern SF_UINT256 const sfParentHash;
440 extern SF_UINT256 const sfTransactionHash;
441 extern SF_UINT256 const sfAccountHash;
442 extern SF_UINT256 const sfPreviousTxnID;
443 extern SF_UINT256 const sfLedgerIndex;
444 extern SF_UINT256 const sfWalletLocator;
445 extern SF_UINT256 const sfRootIndex;
446 extern SF_UINT256 const sfAccountTxnID;
447 extern SF_UINT256 const sfNFTokenID;
448 extern SF_UINT256 const sfEmitParentTxnID;
449 extern SF_UINT256 const sfEmitNonce;
450 extern SF_UINT256 const sfEmitHookHash;
451 extern SF_UINT256 const sfAMMID;
452 
453 // 256-bit (uncommon)
454 extern SF_UINT256 const sfBookDirectory;
455 extern SF_UINT256 const sfInvoiceID;
456 extern SF_UINT256 const sfNickname;
457 extern SF_UINT256 const sfAmendment;
458 extern SF_UINT256 const sfDigest;
459 extern SF_UINT256 const sfChannel;
460 extern SF_UINT256 const sfConsensusHash;
461 extern SF_UINT256 const sfCheckID;
462 extern SF_UINT256 const sfValidatedHash;
463 extern SF_UINT256 const sfPreviousPageMin;
464 extern SF_UINT256 const sfNextPageMin;
465 extern SF_UINT256 const sfNFTokenBuyOffer;
466 extern SF_UINT256 const sfNFTokenSellOffer;
467 extern SF_UINT256 const sfHookStateKey;
468 extern SF_UINT256 const sfHookHash;
469 extern SF_UINT256 const sfHookNamespace;
470 extern SF_UINT256 const sfHookSetTxnID;
471 
472 // currency amount (common)
473 extern SF_AMOUNT const sfAmount;
474 extern SF_AMOUNT const sfBalance;
475 extern SF_AMOUNT const sfLimitAmount;
476 extern SF_AMOUNT const sfTakerPays;
477 extern SF_AMOUNT const sfTakerGets;
478 extern SF_AMOUNT const sfLowLimit;
479 extern SF_AMOUNT const sfHighLimit;
480 extern SF_AMOUNT const sfFee;
481 extern SF_AMOUNT const sfSendMax;
482 extern SF_AMOUNT const sfDeliverMin;
483 extern SF_AMOUNT const sfAmount2;
484 extern SF_AMOUNT const sfEPrice;
485 extern SF_AMOUNT const sfBidMin;
486 extern SF_AMOUNT const sfBidMax;
487 extern SF_AMOUNT const sfPrice;
488 extern SF_AMOUNT const sfLPTokenBalance;
489 
490 // currency amount (uncommon)
491 extern SF_AMOUNT const sfMinimumOffer;
492 extern SF_AMOUNT const sfRippleEscrow;
493 extern SF_AMOUNT const sfDeliveredAmount;
494 extern SF_AMOUNT const sfNFTokenBrokerFee;
495 extern SF_AMOUNT const sfLPTokenOut;
496 extern SF_AMOUNT const sfLPTokenIn;
497 
498 // currency amount (fees)
499 extern SF_AMOUNT const sfBaseFeeDrops;
500 extern SF_AMOUNT const sfReserveBaseDrops;
502 
503 // variable length (common)
504 extern SF_VL const sfPublicKey;
505 extern SF_VL const sfMessageKey;
506 extern SF_VL const sfSigningPubKey;
507 extern SF_VL const sfTxnSignature;
508 extern SF_VL const sfURI;
509 extern SF_VL const sfSignature;
510 extern SF_VL const sfDomain;
511 extern SF_VL const sfFundCode;
512 extern SF_VL const sfRemoveCode;
513 extern SF_VL const sfExpireCode;
514 extern SF_VL const sfCreateCode;
515 extern SF_VL const sfMemoType;
516 extern SF_VL const sfMemoData;
517 extern SF_VL const sfMemoFormat;
518 
519 // variable length (uncommon)
520 extern SF_VL const sfFulfillment;
521 extern SF_VL const sfCondition;
522 extern SF_VL const sfMasterSignature;
523 extern SF_VL const sfUNLModifyValidator;
524 extern SF_VL const sfValidatorToDisable;
525 extern SF_VL const sfValidatorToReEnable;
526 extern SF_VL const sfHookStateData;
527 extern SF_VL const sfHookReturnString;
528 extern SF_VL const sfHookParameterName;
529 extern SF_VL const sfHookParameterValue;
530 
531 // account
532 extern SF_ACCOUNT const sfAccount;
533 extern SF_ACCOUNT const sfOwner;
534 extern SF_ACCOUNT const sfDestination;
535 extern SF_ACCOUNT const sfIssuer;
536 extern SF_ACCOUNT const sfAuthorize;
537 extern SF_ACCOUNT const sfUnauthorize;
538 extern SF_ACCOUNT const sfRegularKey;
539 extern SF_ACCOUNT const sfNFTokenMinter;
540 extern SF_ACCOUNT const sfEmitCallback;
541 
542 // account (uncommon)
543 extern SF_ACCOUNT const sfHookAccount;
544 
545 // path set
546 extern SField const sfPaths;
547 
548 // issue
549 extern SF_ISSUE const sfAsset;
550 extern SF_ISSUE const sfAsset2;
551 
552 // vector of 256-bit
553 extern SF_VECTOR256 const sfIndexes;
554 extern SF_VECTOR256 const sfHashes;
555 extern SF_VECTOR256 const sfAmendments;
556 extern SF_VECTOR256 const sfNFTokenOffers;
557 
558 // inner object
559 // OBJECT/1 is reserved for end of object
560 extern SField const sfTransactionMetaData;
561 extern SField const sfCreatedNode;
562 extern SField const sfDeletedNode;
563 extern SField const sfModifiedNode;
564 extern SField const sfPreviousFields;
565 extern SField const sfFinalFields;
566 extern SField const sfNewFields;
567 extern SField const sfTemplateEntry;
568 extern SField const sfMemo;
569 extern SField const sfSignerEntry;
570 extern SField const sfNFToken;
571 extern SField const sfEmitDetails;
572 extern SField const sfHook;
573 extern SField const sfVoteEntry;
574 extern SField const sfAuctionSlot;
575 extern SField const sfAuthAccount;
576 
577 extern SField const sfSigner;
578 extern SField const sfMajority;
579 extern SField const sfDisabledValidator;
580 extern SField const sfEmittedTxn;
581 extern SField const sfHookExecution;
582 extern SField const sfHookDefinition;
583 extern SField const sfHookParameter;
584 extern SField const sfHookGrant;
585 
586 // array of objects (common)
587 // ARRAY/1 is reserved for end of array
588 // extern SField const sfSigningAccounts; // Never been used.
589 extern SField const sfSigners;
590 extern SField const sfSignerEntries;
591 extern SField const sfTemplate;
592 extern SField const sfNecessary;
593 extern SField const sfSufficient;
594 extern SField const sfAffectedNodes;
595 extern SField const sfMemos;
596 extern SField const sfNFTokens;
597 extern SField const sfHooks;
598 extern SField const sfVoteSlots;
599 extern SField const sfAuthAccounts;
600 
601 // array of objects (uncommon)
602 extern SField const sfMajorities;
603 extern SField const sfDisabledValidators;
604 extern SField const sfHookExecutions;
605 extern SField const sfHookParameters;
606 extern SField const sfHookGrants;
607 
608 //------------------------------------------------------------------------------
609 
610 } // namespace ripple
611 
612 #endif
ripple::sfHookAccount
const SF_ACCOUNT sfHookAccount
ripple::sfIndexNext
const SF_UINT64 sfIndexNext
ripple::sfSignerListID
const SF_UINT32 sfSignerListID
ripple::sfHighQualityIn
const SF_UINT32 sfHighQualityIn
ripple::sfOfferSequence
const SF_UINT32 sfOfferSequence
ripple::sfPreviousTxnLgrSeq
const SF_UINT32 sfPreviousTxnLgrSeq
ripple::sfHookHash
const SF_UINT256 sfHookHash
ripple::sfOwnerCount
const SF_UINT32 sfOwnerCount
ripple::sfFirstNFTokenSequence
const SF_UINT32 sfFirstNFTokenSequence
ripple::sfSignerWeight
const SF_UINT16 sfSignerWeight
ripple::sfHookApiVersion
const SF_UINT16 sfHookApiVersion
ripple::sfHooks
const SField sfHooks
ripple::sfPaths
const SField sfPaths
ripple::sfHookParameterValue
const SF_VL sfHookParameterValue
ripple::sfUNLModifyValidator
const SF_VL sfUNLModifyValidator
ripple::sfRootIndex
const SF_UINT256 sfRootIndex
ripple::sfSourceTag
const SF_UINT32 sfSourceTag
ripple::sfBaseFeeDrops
const SF_AMOUNT sfBaseFeeDrops
ripple::sfReserveBase
const SF_UINT32 sfReserveBase
ripple::sfCreateCode
const SF_VL sfCreateCode
ripple::sfDiscountedFee
const SF_UINT16 sfDiscountedFee
ripple::sfEmitParentTxnID
const SF_UINT256 sfEmitParentTxnID
ripple::SField::IsSigning
IsSigning
Definition: SField.h:129
ripple::sfMetadata
const SField sfMetadata
ripple::sfAsset
const SF_ISSUE sfAsset
ripple::sfSendMax
const SF_AMOUNT sfSendMax
std::string
STL class.
ripple::sfSigners
const SField sfSigners
ripple::STI_UINT128
@ STI_UINT128
Definition: SField.h:63
ripple::sfHookExecutionIndex
const SF_UINT16 sfHookExecutionIndex
ripple::SField::getField
static const SField & getField(SerializedTypeID type, int value)
Definition: SField.h:172
ripple::sfEmitHookHash
const SF_UINT256 sfEmitHookHash
utility
ripple::sfOwnerNode
const SF_UINT64 sfOwnerNode
ripple::TypedField
A field with a type known at compile time.
Definition: SField.h:274
ripple::sfHookReturnCode
const SF_UINT64 sfHookReturnCode
ripple::sfMinimumOffer
const SF_AMOUNT sfMinimumOffer
ripple::STI_METADATA
@ STI_METADATA
Definition: SField.h:88
ripple::sfGeneric
const SField sfGeneric(access, 0)
Definition: SField.h:325
ripple::SField::fieldValue
const int fieldValue
Definition: SField.h:134
ripple::sfLedgerSequence
const SF_UINT32 sfLedgerSequence
ripple::sfNFTokenOffers
const SF_VECTOR256 sfNFTokenOffers
ripple::sfDestination
const SF_ACCOUNT sfDestination
ripple::sfAmount2
const SF_AMOUNT sfAmount2
ripple::sfTransactionMetaData
const SField sfTransactionMetaData
ripple::SField::isBinary
bool isBinary() const
Definition: SField.h:208
ripple::sfAmount
const SF_AMOUNT sfAmount
ripple::sfNFTokenID
const SF_UINT256 sfNFTokenID
ripple::sfWalletSize
const SF_UINT32 sfWalletSize
ripple::sfFirstLedgerSequence
const SF_UINT32 sfFirstLedgerSequence
ripple::sfCheckID
const SF_UINT256 sfCheckID
ripple::SField::sMD_Always
@ sMD_Always
Definition: SField.h:124
ripple::SField::sMD_DeleteFinal
@ sMD_DeleteFinal
Definition: SField.h:122
ripple::SField::isInvalid
bool isInvalid() const
Definition: SField.h:196
ripple::sfVoteSlots
const SField sfVoteSlots
ripple::sfQualityOut
const SF_UINT32 sfQualityOut
ripple::sfOwner
const SF_ACCOUNT sfOwner
ripple::sfHookStateChangeCount
const SF_UINT16 sfHookStateChangeCount
ripple::sfSequence
const SF_UINT32 sfSequence
ripple::sfRegularKey
const SF_ACCOUNT sfRegularKey
ripple::sfVoteEntry
const SField sfVoteEntry
ripple::sfLPTokenBalance
const SF_AMOUNT sfLPTokenBalance
ripple::SField::private_access_tag_t
Definition: SField.cpp:34
ripple::sfBookDirectory
const SF_UINT256 sfBookDirectory
ripple::STI_AMOUNT
@ STI_AMOUNT
Definition: SField.h:65
ripple::STI_UINT8
@ STI_UINT8
Definition: SField.h:73
ripple::field_code
int field_code(SerializedTypeID id, int index)
Definition: SField.h:93
ripple::SField::fieldName
const std::string fieldName
Definition: SField.h:135
ripple::STI_UINT192
@ STI_UINT192
Definition: SField.h:78
ripple::sfTakerPaysCurrency
const SF_UINT160 sfTakerPaysCurrency
ripple::STI_PATHSET
@ STI_PATHSET
Definition: SField.h:75
ripple::sfSigningPubKey
const SF_VL sfSigningPubKey
ripple::sfEPrice
const SF_AMOUNT sfEPrice
ripple::SField::hasName
bool hasName() const
Definition: SField.h:184
ripple::SerializedTypeID
SerializedTypeID
Definition: SField.h:54
ripple::sfLedgerIndex
const SF_UINT256 sfLedgerIndex
ripple::SField::isUseful
bool isUseful() const
Definition: SField.h:202
ripple::sfMintedNFTokens
const SF_UINT32 sfMintedNFTokens
ripple::STI_VALIDATION
@ STI_VALIDATION
Definition: SField.h:87
ripple::STI_LEDGERENTRY
@ STI_LEDGERENTRY
Definition: SField.h:86
ripple::STI_UINT512
@ STI_UINT512
Definition: SField.h:80
ripple::SField::signingField
const IsSigning signingField
Definition: SField.h:138
ripple::sfHookResult
const SF_UINT8 sfHookResult
ripple::TypedField::TypedField
TypedField(private_access_tag_t pat, Args &&... args)
Definition: SField.cpp:43
ripple::SField::getField
static const SField & getField(int type, int value)
Definition: SField.h:166
ripple::sfHookOn
const SF_UINT64 sfHookOn
ripple::STI_UINT160
@ STI_UINT160
Definition: SField.h:74
ripple::sfQualityIn
const SF_UINT32 sfQualityIn
ripple::sfHookReturnString
const SF_VL sfHookReturnString
ripple::SField::operator!=
bool operator!=(const SField &f) const
Definition: SField.h:259
ripple::SField::getNum
int getNum() const
Definition: SField.h:229
ripple::sfSetFlag
const SF_UINT32 sfSetFlag
ripple::sfHookParameters
const SField sfHookParameters
ripple::STI_UINT384
@ STI_UINT384
Definition: SField.h:79
ripple::sfFinalFields
const SField sfFinalFields
ripple::OptionaledField
Indicate std::optional field semantics.
Definition: SField.h:284
ripple::sfCloseTime
const SF_UINT32 sfCloseTime
ripple::sfTicketSequence
const SF_UINT32 sfTicketSequence
ripple::sfParentCloseTime
const SF_UINT32 sfParentCloseTime
ripple::SField::getField
static const SField & getField(int fieldCode)
Definition: SField.cpp:418
ripple::STI_ACCOUNT
@ STI_ACCOUNT
Definition: SField.h:67
ripple::STI_ARRAY
@ STI_ARRAY
Definition: SField.h:70
ripple::SField::knownCodeToField
static std::map< int, SField const * > knownCodeToField
Definition: SField.h:269
ripple::sfHookStateCount
const SF_UINT32 sfHookStateCount
ripple::SField::sMD_ChangeOrig
@ sMD_ChangeOrig
Definition: SField.h:120
ripple::sfLPTokenOut
const SF_AMOUNT sfLPTokenOut
ripple::SField::getJsonName
Json::StaticString const & getJsonName() const
Definition: SField.h:190
ripple::SField::operator==
bool operator==(const SField &f) const
Definition: SField.h:253
ripple::sfPrice
const SF_AMOUNT sfPrice
ripple::sfTakerGetsCurrency
const SF_UINT160 sfTakerGetsCurrency
ripple::STBitString
Definition: SField.h:49
ripple::STI_ISSUE
@ STI_ISSUE
Definition: SField.h:81
ripple::SField::operator=
SField & operator=(SField const &)=delete
ripple::SField::jsonName
const Json::StaticString jsonName
Definition: SField.h:139
ripple::sfVoteWeight
const SF_UINT32 sfVoteWeight
ripple::sfEmitDetails
const SField sfEmitDetails
ripple::sfDeletedNode
const SField sfDeletedNode
ripple::sfHookInstructionCount
const SF_UINT64 sfHookInstructionCount
ripple::sfHookEmitCount
const SF_UINT16 sfHookEmitCount
ripple::sfInvalid
const SField sfInvalid(access, -1)
Definition: SField.h:324
ripple::SField::sMD_Create
@ sMD_Create
Definition: SField.h:123
ripple::sfNFTokenOfferNode
const SF_UINT64 sfNFTokenOfferNode
ripple::sfTradingFee
const SF_UINT16 sfTradingFee
ripple::sfTransferFee
const SF_UINT16 sfTransferFee
ripple::sfHookStateData
const SF_VL sfHookStateData
ripple::sfLedgerEntry
const SField sfLedgerEntry
ripple::SField::sMD_Default
@ sMD_Default
Definition: SField.h:125
ripple::sfExpiration
const SF_UINT32 sfExpiration
ripple::sfTransactionHash
const SF_UINT256 sfTransactionHash
ripple::sfSignerQuorum
const SF_UINT32 sfSignerQuorum
ripple::sfIndexes
const SF_VECTOR256 sfIndexes
ripple::SField::fieldType
const SerializedTypeID fieldType
Definition: SField.h:133
ripple::sfVersion
const SF_UINT16 sfVersion
ripple::sfExpireCode
const SF_VL sfExpireCode
ripple::sfTakerGetsIssuer
const SF_UINT160 sfTakerGetsIssuer
ripple::STI_UINT96
@ STI_UINT96
Definition: SField.h:77
ripple::sfLowNode
const SF_UINT64 sfLowNode
ripple::sfEmitNonce
const SF_UINT256 sfEmitNonce
ripple::sfValidatedHash
const SF_UINT256 sfValidatedHash
ripple::sfTakerPays
const SF_AMOUNT sfTakerPays
ripple::SField::SField
SField(SField const &)=delete
ripple::sfTransactionType
const SF_UINT16 sfTransactionType
ripple::sfHookExecution
const SField sfHookExecution
ripple::sfDeliverMin
const SF_AMOUNT sfDeliverMin
ripple::sfLowQualityOut
const SF_UINT32 sfLowQualityOut
ripple::sfLimitAmount
const SF_AMOUNT sfLimitAmount
ripple::sfLowLimit
const SF_AMOUNT sfLowLimit
ripple::sfHookParameter
const SField sfHookParameter
ripple::OptionaledField::OptionaledField
OptionaledField(TypedField< T > const &f_)
Definition: SField.h:288
ripple::sfDeliveredAmount
const SF_AMOUNT sfDeliveredAmount
ripple::sfAsset2
const SF_ISSUE sfAsset2
ripple::sfParentHash
const SF_UINT256 sfParentHash
ripple::sfSettleDelay
const SF_UINT32 sfSettleDelay
ripple::sfUnauthorize
const SF_ACCOUNT sfUnauthorize
ripple::sfMemos
const SField sfMemos
ripple::sfBidMax
const SF_AMOUNT sfBidMax
ripple::sfServerVersion
const SF_UINT64 sfServerVersion
ripple::sfBondAmount
const SF_UINT32 sfBondAmount
ripple::sfLoadFee
const SF_UINT32 sfLoadFee
ripple::sfNFTokenMinter
const SF_ACCOUNT sfNFTokenMinter
ripple::sfNewFields
const SField sfNewFields
ripple::sfReserveIncrement
const SF_UINT32 sfReserveIncrement
ripple::sfMasterSignature
const SF_VL sfMasterSignature
ripple::sfNickname
const SF_UINT256 sfNickname
ripple::sfIndexPrevious
const SF_UINT64 sfIndexPrevious
ripple::sfAffectedNodes
const SField sfAffectedNodes
ripple::sfTemplate
const SField sfTemplate
ripple::sfAuthAccounts
const SField sfAuthAccounts
ripple::sfBookNode
const SF_UINT64 sfBookNode
ripple::sfLedgerHash
const SF_UINT256 sfLedgerHash
ripple::sfFundCode
const SF_VL sfFundCode
ripple::SField::notSigning
static const IsSigning notSigning
Definition: SField.h:130
ripple::sfCookie
const SF_UINT64 sfCookie
ripple::sfLowQualityIn
const SF_UINT32 sfLowQualityIn
ripple::sfDigest
const SF_UINT256 sfDigest
ripple::sfHookStateKey
const SF_UINT256 sfHookStateKey
ripple::STI_UNKNOWN
@ STI_UNKNOWN
Definition: SField.h:56
ripple::sfValidatorToDisable
const SF_VL sfValidatorToDisable
ripple::sfTicketCount
const SF_UINT32 sfTicketCount
ripple::STI_VL
@ STI_VL
Definition: SField.h:66
ripple::sfRippleEscrow
const SF_AMOUNT sfRippleEscrow
ripple::sfAccountTxnID
const SF_UINT256 sfAccountTxnID
ripple::STI_UINT16
@ STI_UINT16
Definition: SField.h:60
ripple::sfModifiedNode
const SField sfModifiedNode
ripple::sfDestinationNode
const SF_UINT64 sfDestinationNode
ripple::sfTakerGets
const SF_AMOUNT sfTakerGets
ripple::sfMajority
const SField sfMajority
cstdint
ripple::sfRemoveCode
const SF_VL sfRemoveCode
ripple::sfTransferRate
const SF_UINT32 sfTransferRate
ripple::sfTickSize
const SF_UINT8 sfTickSize
ripple::sfPreviousTxnID
const SF_UINT256 sfPreviousTxnID
ripple::SField::fieldCode
const int fieldCode
Definition: SField.h:132
ripple::sfAuthorize
const SF_ACCOUNT sfAuthorize
ripple::sfHighLimit
const SF_AMOUNT sfHighLimit
ripple::sfExchangeRate
const SF_UINT64 sfExchangeRate
ripple::STI_VECTOR256
@ STI_VECTOR256
Definition: SField.h:76
ripple::sfEmitGeneration
const SF_UINT32 sfEmitGeneration
ripple::sfStampEscrow
const SF_UINT32 sfStampEscrow
map
ripple::SField::getNumFields
static int getNumFields()
Definition: SField.h:234
ripple::sfHookExecutions
const SField sfHookExecutions
ripple::sfAMMID
const SF_UINT256 sfAMMID
ripple::sfSigner
const SField sfSigner
ripple::sfReserveIncrementDrops
const SF_AMOUNT sfReserveIncrementDrops
ripple::sfClearFlag
const SF_UINT32 sfClearFlag
ripple::sfSignerEntry
const SField sfSignerEntry
ripple::sfBidMin
const SF_AMOUNT sfBidMin
ripple::sfReserveBaseDrops
const SF_AMOUNT sfReserveBaseDrops
ripple::STInteger
Definition: SField.h:51
ripple::sfNFToken
const SField sfNFToken
ripple::sfUNLModifyDisabling
const SF_UINT8 sfUNLModifyDisabling
ripple::SField::IsSigning::yes
@ yes
ripple::SField::shouldInclude
bool shouldInclude(bool withSigningField) const
Definition: SField.h:246
ripple::TypedField::type
T type
Definition: SField.h:276
ripple::sfPreviousFields
const SField sfPreviousFields
ripple::sfReferenceCount
const SF_UINT64 sfReferenceCount
ripple::sfTransactionIndex
const SF_UINT32 sfTransactionIndex
ripple::sfEmailHash
const SF_UINT128 sfEmailHash
ripple::sfNFTokens
const SField sfNFTokens
ripple::sfSignerEntries
const SField sfSignerEntries
ripple::sfOperationLimit
const SF_UINT32 sfOperationLimit
ripple::sfBaseFee
const SF_UINT64 sfBaseFee
ripple::sfHashes
const SF_VECTOR256 sfHashes
ripple::sfMemoData
const SF_VL sfMemoData
ripple::sfNFTokenBuyOffer
const SF_UINT256 sfNFTokenBuyOffer
ripple::STI_UINT32
@ STI_UINT32
Definition: SField.h:61
ripple::sfTxnSignature
const SF_VL sfTxnSignature
ripple::sfURI
const SF_VL sfURI
ripple
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition: RCLCensorshipDetector.h:29
ripple::sfHookGrants
const SField sfHookGrants
ripple::sfHookGrant
const SField sfHookGrant
ripple::sfCloseResolution
const SF_UINT8 sfCloseResolution
ripple::sfTransactionResult
const SF_UINT8 sfTransactionResult
ripple::sfWalletLocator
const SF_UINT256 sfWalletLocator
ripple::sfAccountHash
const SF_UINT256 sfAccountHash
ripple::sfTemplateEntry
const SField sfTemplateEntry
ripple::sfLedgerEntryType
const SF_UINT16 sfLedgerEntryType
ripple::SField
Identifies fields.
Definition: SField.h:115
ripple::sfAuthAccount
const SField sfAuthAccount
ripple::sfCondition
const SF_VL sfCondition
ripple::STI_UINT64
@ STI_UINT64
Definition: SField.h:62
ripple::SField::num
static int num
Definition: SField.h:268
ripple::sfTakerPaysIssuer
const SF_UINT160 sfTakerPaysIssuer
ripple::sfIssuer
const SF_ACCOUNT sfIssuer
ripple::SField::getName
std::string const & getName() const
Definition: SField.h:178
ripple::sfInvoiceID
const SF_UINT256 sfInvoiceID
Json::StaticString
Lightweight wrapper to tag static string.
Definition: json_value.h:60
ripple::sfFlags
const SF_UINT32 sfFlags
ripple::SField::isDiscardable
bool isDiscardable() const
Definition: SField.h:218
ripple::sfConsensusHash
const SF_UINT256 sfConsensusHash
ripple::sfDisabledValidator
const SField sfDisabledValidator
ripple::sfDestinationTag
const SF_UINT32 sfDestinationTag
ripple::sfCreatedNode
const SField sfCreatedNode
ripple::sfHookParameterName
const SF_VL sfHookParameterName
ripple::sfSignature
const SF_VL sfSignature
ripple::sfBalance
const SF_AMOUNT sfBalance
ripple::sfHook
const SField sfHook
ripple::SField::compare
static int compare(const SField &f1, const SField &f2)
Definition: SField.cpp:430
ripple::sfReferenceFeeUnits
const SF_UINT32 sfReferenceFeeUnits
ripple::STVector256
Definition: STVector256.h:29
ripple::sfNextPageMin
const SF_UINT256 sfNextPageMin
ripple::sfCancelAfter
const SF_UINT32 sfCancelAfter
ripple::sfHookDefinition
const SField sfHookDefinition
ripple::sfMessageKey
const SF_VL sfMessageKey
ripple::sfHighQualityOut
const SF_UINT32 sfHighQualityOut
ripple::sfEmitCallback
const SF_ACCOUNT sfEmitCallback
ripple::SField::getCode
int getCode() const
Definition: SField.h:224
ripple::sfValidation
const SField sfValidation
ripple::sfPreviousPageMin
const SF_UINT256 sfPreviousPageMin
ripple::SField::fieldMeta
const int fieldMeta
Definition: SField.h:136
ripple::sfFinishAfter
const SF_UINT32 sfFinishAfter
ripple::sfChannel
const SF_UINT256 sfChannel
ripple::OptionaledField::f
TypedField< T > const * f
Definition: SField.h:286
ripple::sfNFTokenTaxon
const SF_UINT32 sfNFTokenTaxon
ripple::sfFee
const SF_AMOUNT sfFee
ripple::sfMemo
const SField sfMemo
ripple::sfAccount
const SF_ACCOUNT sfAccount
ripple::sfEmittedTxn
const SField sfEmittedTxn
ripple::sfEmitBurden
const SF_UINT64 sfEmitBurden
ripple::sfLPTokenIn
const SF_AMOUNT sfLPTokenIn
ripple::sfNetworkID
const SF_UINT32 sfNetworkID
ripple::STI_OBJECT
@ STI_OBJECT
Definition: SField.h:69
ripple::sfSufficient
const SField sfSufficient
ripple::sfHookNamespace
const SF_UINT256 sfHookNamespace
ripple::sfDomain
const SF_VL sfDomain
ripple::sfLastLedgerSequence
const SF_UINT32 sfLastLedgerSequence
ripple::SField::shouldMeta
bool shouldMeta(int c) const
Definition: SField.h:240
ripple::sfBurnedNFTokens
const SF_UINT32 sfBurnedNFTokens
ripple::SField::sMD_ChangeNew
@ sMD_ChangeNew
Definition: SField.h:121
ripple::sfAmendment
const SF_UINT256 sfAmendment
ripple::STI_UINT256
@ STI_UINT256
Definition: SField.h:64
ripple::sfMajorities
const SField sfMajorities
ripple::sfAuctionSlot
const SField sfAuctionSlot
ripple::SField::sMD_Never
@ sMD_Never
Definition: SField.h:119
ripple::sfSigningTime
const SF_UINT32 sfSigningTime
ripple::sfDisabledValidators
const SField sfDisabledValidators
ripple::sfFulfillment
const SF_VL sfFulfillment
ripple::SField::IsSigning::no
@ no
ripple::sfPublicKey
const SF_VL sfPublicKey
ripple::sfNecessary
const SField sfNecessary
ripple::sfHighNode
const SF_UINT64 sfHighNode
ripple::sfNFTokenSellOffer
const SF_UINT256 sfNFTokenSellOffer
ripple::sfTransaction
const SField sfTransaction
ripple::sfHookSetTxnID
const SF_UINT256 sfHookSetTxnID
ripple::SField::fieldNum
const int fieldNum
Definition: SField.h:137
ripple::sfNFTokenBrokerFee
const SF_AMOUNT sfNFTokenBrokerFee
ripple::sfAmendments
const SF_VECTOR256 sfAmendments
ripple::sfMethod
const SF_UINT8 sfMethod
ripple::STI_TRANSACTION
@ STI_TRANSACTION
Definition: SField.h:85
ripple::STI_NOTPRESENT
@ STI_NOTPRESENT
Definition: SField.h:57
ripple::sfMemoFormat
const SF_VL sfMemoFormat
ripple::operator~
constexpr ApplyFlags operator~(ApplyFlags const &flags)
Definition: ApplyView.h:71
ripple::sfValidatorToReEnable
const SF_VL sfValidatorToReEnable
ripple::sfMemoType
const SF_VL sfMemoType