rippled
SField.cpp
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 #include <ripple/protocol/SField.h>
21 #include <cassert>
22 #include <string>
23 #include <string_view>
24 #include <utility>
25 
26 namespace ripple {
27 
28 // Storage for static const members.
30 int SField::num = 0;
32 
33 // Give only this translation unit permission to construct SFields
35 {
36  explicit private_access_tag_t() = default;
37 };
38 
40 
41 template <class T>
42 template <class... Args>
44  : SField(pat, std::forward<Args>(args)...)
45 {
46 }
47 
48 // Construct all compile-time SFields, and register them in the knownCodeToField
49 // database:
50 
51 // Use macros for most SField construction to enforce naming conventions.
52 #pragma push_macro("CONSTRUCT_UNTYPED_SFIELD")
53 #undef CONSTRUCT_UNTYPED_SFIELD
54 
55 // It would be possible to design the macros so that sfName and txtName would
56 // be constructed from a single macro parameter. We chose not to take that
57 // path because then you cannot grep for the exact SField name and find
58 // where it is constructed. These macros allow that grep to succeed.
59 #define CONSTRUCT_UNTYPED_SFIELD(sfName, txtName, stiSuffix, fieldValue, ...) \
60  SField const sfName( \
61  access, STI_##stiSuffix, fieldValue, txtName, ##__VA_ARGS__); \
62  static_assert( \
63  std::string_view(#sfName) == "sf" txtName, \
64  "Declaration of SField does not match its text name")
65 
66 #pragma push_macro("CONSTRUCT_TYPED_SFIELD")
67 #undef CONSTRUCT_TYPED_SFIELD
68 
69 #define CONSTRUCT_TYPED_SFIELD(sfName, txtName, stiSuffix, fieldValue, ...) \
70  SF_##stiSuffix const sfName( \
71  access, STI_##stiSuffix, fieldValue, txtName, ##__VA_ARGS__); \
72  static_assert( \
73  std::string_view(#sfName) == "sf" txtName, \
74  "Declaration of SField does not match its text name")
75 
76 // clang-format off
77 
78 // SFields which, for historical reasons, do not follow naming conventions.
79 SField const sfInvalid(access, -1);
80 SField const sfGeneric(access, 0);
81 SField const sfHash(access, STI_UINT256, 257, "hash");
82 SField const sfIndex(access, STI_UINT256, 258, "index");
83 
84 // Untyped SFields
85 CONSTRUCT_UNTYPED_SFIELD(sfLedgerEntry, "LedgerEntry", LEDGERENTRY, 257);
86 CONSTRUCT_UNTYPED_SFIELD(sfTransaction, "Transaction", TRANSACTION, 257);
87 CONSTRUCT_UNTYPED_SFIELD(sfValidation, "Validation", VALIDATION, 257);
88 CONSTRUCT_UNTYPED_SFIELD(sfMetadata, "Metadata", METADATA, 257);
89 
90 // 8-bit integers
91 CONSTRUCT_TYPED_SFIELD(sfCloseResolution, "CloseResolution", UINT8, 1);
92 CONSTRUCT_TYPED_SFIELD(sfMethod, "Method", UINT8, 2);
93 CONSTRUCT_TYPED_SFIELD(sfTransactionResult, "TransactionResult", UINT8, 3);
94 CONSTRUCT_TYPED_SFIELD(sfScale, "Scale", UINT8, 4);
95 
96 // 8-bit integers (uncommon)
97 CONSTRUCT_TYPED_SFIELD(sfTickSize, "TickSize", UINT8, 16);
98 CONSTRUCT_TYPED_SFIELD(sfUNLModifyDisabling, "UNLModifyDisabling", UINT8, 17);
99 CONSTRUCT_TYPED_SFIELD(sfHookResult, "HookResult", UINT8, 18);
100 CONSTRUCT_TYPED_SFIELD(sfWasLockingChainSend, "WasLockingChainSend", UINT8, 19);
101 
102 // 16-bit integers
103 CONSTRUCT_TYPED_SFIELD(sfLedgerEntryType, "LedgerEntryType", UINT16, 1, SField::sMD_Never);
104 CONSTRUCT_TYPED_SFIELD(sfTransactionType, "TransactionType", UINT16, 2);
105 CONSTRUCT_TYPED_SFIELD(sfSignerWeight, "SignerWeight", UINT16, 3);
106 CONSTRUCT_TYPED_SFIELD(sfTransferFee, "TransferFee", UINT16, 4);
107 CONSTRUCT_TYPED_SFIELD(sfTradingFee, "TradingFee", UINT16, 5);
108 CONSTRUCT_TYPED_SFIELD(sfDiscountedFee, "DiscountedFee", UINT16, 6);
109 
110 // 16-bit integers (uncommon)
111 CONSTRUCT_TYPED_SFIELD(sfVersion, "Version", UINT16, 16);
112 CONSTRUCT_TYPED_SFIELD(sfHookStateChangeCount, "HookStateChangeCount", UINT16, 17);
113 CONSTRUCT_TYPED_SFIELD(sfHookEmitCount, "HookEmitCount", UINT16, 18);
114 CONSTRUCT_TYPED_SFIELD(sfHookExecutionIndex, "HookExecutionIndex", UINT16, 19);
115 CONSTRUCT_TYPED_SFIELD(sfHookApiVersion, "HookApiVersion", UINT16, 20);
116 
117 // 32-bit integers (common)
118 CONSTRUCT_TYPED_SFIELD(sfNetworkID, "NetworkID", UINT32, 1);
119 CONSTRUCT_TYPED_SFIELD(sfFlags, "Flags", UINT32, 2);
120 CONSTRUCT_TYPED_SFIELD(sfSourceTag, "SourceTag", UINT32, 3);
121 CONSTRUCT_TYPED_SFIELD(sfSequence, "Sequence", UINT32, 4);
122 CONSTRUCT_TYPED_SFIELD(sfPreviousTxnLgrSeq, "PreviousTxnLgrSeq", UINT32, 5, SField::sMD_DeleteFinal);
123 CONSTRUCT_TYPED_SFIELD(sfLedgerSequence, "LedgerSequence", UINT32, 6);
124 CONSTRUCT_TYPED_SFIELD(sfCloseTime, "CloseTime", UINT32, 7);
125 CONSTRUCT_TYPED_SFIELD(sfParentCloseTime, "ParentCloseTime", UINT32, 8);
126 CONSTRUCT_TYPED_SFIELD(sfSigningTime, "SigningTime", UINT32, 9);
127 CONSTRUCT_TYPED_SFIELD(sfExpiration, "Expiration", UINT32, 10);
128 CONSTRUCT_TYPED_SFIELD(sfTransferRate, "TransferRate", UINT32, 11);
129 CONSTRUCT_TYPED_SFIELD(sfWalletSize, "WalletSize", UINT32, 12);
130 CONSTRUCT_TYPED_SFIELD(sfOwnerCount, "OwnerCount", UINT32, 13);
131 CONSTRUCT_TYPED_SFIELD(sfDestinationTag, "DestinationTag", UINT32, 14);
132 CONSTRUCT_TYPED_SFIELD(sfLastUpdateTime, "LastUpdateTime", UINT32, 15);
133 
134 // 32-bit integers (uncommon)
135 CONSTRUCT_TYPED_SFIELD(sfHighQualityIn, "HighQualityIn", UINT32, 16);
136 CONSTRUCT_TYPED_SFIELD(sfHighQualityOut, "HighQualityOut", UINT32, 17);
137 CONSTRUCT_TYPED_SFIELD(sfLowQualityIn, "LowQualityIn", UINT32, 18);
138 CONSTRUCT_TYPED_SFIELD(sfLowQualityOut, "LowQualityOut", UINT32, 19);
139 CONSTRUCT_TYPED_SFIELD(sfQualityIn, "QualityIn", UINT32, 20);
140 CONSTRUCT_TYPED_SFIELD(sfQualityOut, "QualityOut", UINT32, 21);
141 CONSTRUCT_TYPED_SFIELD(sfStampEscrow, "StampEscrow", UINT32, 22);
142 CONSTRUCT_TYPED_SFIELD(sfBondAmount, "BondAmount", UINT32, 23);
143 CONSTRUCT_TYPED_SFIELD(sfLoadFee, "LoadFee", UINT32, 24);
144 CONSTRUCT_TYPED_SFIELD(sfOfferSequence, "OfferSequence", UINT32, 25);
145 CONSTRUCT_TYPED_SFIELD(sfFirstLedgerSequence, "FirstLedgerSequence", UINT32, 26);
146 CONSTRUCT_TYPED_SFIELD(sfLastLedgerSequence, "LastLedgerSequence", UINT32, 27);
147 CONSTRUCT_TYPED_SFIELD(sfTransactionIndex, "TransactionIndex", UINT32, 28);
148 CONSTRUCT_TYPED_SFIELD(sfOperationLimit, "OperationLimit", UINT32, 29);
149 CONSTRUCT_TYPED_SFIELD(sfReferenceFeeUnits, "ReferenceFeeUnits", UINT32, 30);
150 CONSTRUCT_TYPED_SFIELD(sfReserveBase, "ReserveBase", UINT32, 31);
151 CONSTRUCT_TYPED_SFIELD(sfReserveIncrement, "ReserveIncrement", UINT32, 32);
152 CONSTRUCT_TYPED_SFIELD(sfSetFlag, "SetFlag", UINT32, 33);
153 CONSTRUCT_TYPED_SFIELD(sfClearFlag, "ClearFlag", UINT32, 34);
154 CONSTRUCT_TYPED_SFIELD(sfSignerQuorum, "SignerQuorum", UINT32, 35);
155 CONSTRUCT_TYPED_SFIELD(sfCancelAfter, "CancelAfter", UINT32, 36);
156 CONSTRUCT_TYPED_SFIELD(sfFinishAfter, "FinishAfter", UINT32, 37);
157 CONSTRUCT_TYPED_SFIELD(sfSignerListID, "SignerListID", UINT32, 38);
158 CONSTRUCT_TYPED_SFIELD(sfSettleDelay, "SettleDelay", UINT32, 39);
159 CONSTRUCT_TYPED_SFIELD(sfTicketCount, "TicketCount", UINT32, 40);
160 CONSTRUCT_TYPED_SFIELD(sfTicketSequence, "TicketSequence", UINT32, 41);
161 CONSTRUCT_TYPED_SFIELD(sfNFTokenTaxon, "NFTokenTaxon", UINT32, 42);
162 CONSTRUCT_TYPED_SFIELD(sfMintedNFTokens, "MintedNFTokens", UINT32, 43);
163 CONSTRUCT_TYPED_SFIELD(sfBurnedNFTokens, "BurnedNFTokens", UINT32, 44);
164 CONSTRUCT_TYPED_SFIELD(sfHookStateCount, "HookStateCount", UINT32, 45);
165 CONSTRUCT_TYPED_SFIELD(sfEmitGeneration, "EmitGeneration", UINT32, 46);
166 // 47 is reserved for LockCount(Hooks)
167 CONSTRUCT_TYPED_SFIELD(sfVoteWeight, "VoteWeight", UINT32, 48);
168 CONSTRUCT_TYPED_SFIELD(sfFirstNFTokenSequence, "FirstNFTokenSequence", UINT32, 50);
169 CONSTRUCT_TYPED_SFIELD(sfOracleDocumentID, "OracleDocumentID", UINT32, 51);
170 
171 // 64-bit integers (common)
172 CONSTRUCT_TYPED_SFIELD(sfIndexNext, "IndexNext", UINT64, 1);
173 CONSTRUCT_TYPED_SFIELD(sfIndexPrevious, "IndexPrevious", UINT64, 2);
174 CONSTRUCT_TYPED_SFIELD(sfBookNode, "BookNode", UINT64, 3);
175 CONSTRUCT_TYPED_SFIELD(sfOwnerNode, "OwnerNode", UINT64, 4);
176 CONSTRUCT_TYPED_SFIELD(sfBaseFee, "BaseFee", UINT64, 5);
177 CONSTRUCT_TYPED_SFIELD(sfExchangeRate, "ExchangeRate", UINT64, 6);
178 CONSTRUCT_TYPED_SFIELD(sfLowNode, "LowNode", UINT64, 7);
179 CONSTRUCT_TYPED_SFIELD(sfHighNode, "HighNode", UINT64, 8);
180 CONSTRUCT_TYPED_SFIELD(sfDestinationNode, "DestinationNode", UINT64, 9);
181 CONSTRUCT_TYPED_SFIELD(sfCookie, "Cookie", UINT64, 10);
182 CONSTRUCT_TYPED_SFIELD(sfServerVersion, "ServerVersion", UINT64, 11);
183 CONSTRUCT_TYPED_SFIELD(sfNFTokenOfferNode, "NFTokenOfferNode", UINT64, 12);
184 CONSTRUCT_TYPED_SFIELD(sfEmitBurden, "EmitBurden", UINT64, 13);
185 
186 // 64-bit integers (uncommon)
187 CONSTRUCT_TYPED_SFIELD(sfHookOn, "HookOn", UINT64, 16);
188 CONSTRUCT_TYPED_SFIELD(sfHookInstructionCount, "HookInstructionCount", UINT64, 17);
189 CONSTRUCT_TYPED_SFIELD(sfHookReturnCode, "HookReturnCode", UINT64, 18);
190 CONSTRUCT_TYPED_SFIELD(sfReferenceCount, "ReferenceCount", UINT64, 19);
191 CONSTRUCT_TYPED_SFIELD(sfXChainClaimID, "XChainClaimID", UINT64, 20);
192 CONSTRUCT_TYPED_SFIELD(sfXChainAccountCreateCount, "XChainAccountCreateCount", UINT64, 21);
193 CONSTRUCT_TYPED_SFIELD(sfXChainAccountClaimCount, "XChainAccountClaimCount", UINT64, 22);
194 CONSTRUCT_TYPED_SFIELD(sfAssetPrice, "AssetPrice", UINT64, 23);
195 
196 // 128-bit
197 CONSTRUCT_TYPED_SFIELD(sfEmailHash, "EmailHash", UINT128, 1);
198 
199 // 160-bit (common)
200 CONSTRUCT_TYPED_SFIELD(sfTakerPaysCurrency, "TakerPaysCurrency", UINT160, 1);
201 CONSTRUCT_TYPED_SFIELD(sfTakerPaysIssuer, "TakerPaysIssuer", UINT160, 2);
202 CONSTRUCT_TYPED_SFIELD(sfTakerGetsCurrency, "TakerGetsCurrency", UINT160, 3);
203 CONSTRUCT_TYPED_SFIELD(sfTakerGetsIssuer, "TakerGetsIssuer", UINT160, 4);
204 
205 // 256-bit (common)
206 CONSTRUCT_TYPED_SFIELD(sfLedgerHash, "LedgerHash", UINT256, 1);
207 CONSTRUCT_TYPED_SFIELD(sfParentHash, "ParentHash", UINT256, 2);
208 CONSTRUCT_TYPED_SFIELD(sfTransactionHash, "TransactionHash", UINT256, 3);
209 CONSTRUCT_TYPED_SFIELD(sfAccountHash, "AccountHash", UINT256, 4);
210 CONSTRUCT_TYPED_SFIELD(sfPreviousTxnID, "PreviousTxnID", UINT256, 5, SField::sMD_DeleteFinal);
211 CONSTRUCT_TYPED_SFIELD(sfLedgerIndex, "LedgerIndex", UINT256, 6);
212 CONSTRUCT_TYPED_SFIELD(sfWalletLocator, "WalletLocator", UINT256, 7);
213 CONSTRUCT_TYPED_SFIELD(sfRootIndex, "RootIndex", UINT256, 8, SField::sMD_Always);
214 CONSTRUCT_TYPED_SFIELD(sfAccountTxnID, "AccountTxnID", UINT256, 9);
215 CONSTRUCT_TYPED_SFIELD(sfNFTokenID, "NFTokenID", UINT256, 10);
216 CONSTRUCT_TYPED_SFIELD(sfEmitParentTxnID, "EmitParentTxnID", UINT256, 11);
217 CONSTRUCT_TYPED_SFIELD(sfEmitNonce, "EmitNonce", UINT256, 12);
218 CONSTRUCT_TYPED_SFIELD(sfEmitHookHash, "EmitHookHash", UINT256, 13);
219 CONSTRUCT_TYPED_SFIELD(sfAMMID, "AMMID", UINT256, 14);
220 
221 // 256-bit (uncommon)
222 CONSTRUCT_TYPED_SFIELD(sfBookDirectory, "BookDirectory", UINT256, 16);
223 CONSTRUCT_TYPED_SFIELD(sfInvoiceID, "InvoiceID", UINT256, 17);
224 CONSTRUCT_TYPED_SFIELD(sfNickname, "Nickname", UINT256, 18);
225 CONSTRUCT_TYPED_SFIELD(sfAmendment, "Amendment", UINT256, 19);
226 // 20 is currently unused
227 CONSTRUCT_TYPED_SFIELD(sfDigest, "Digest", UINT256, 21);
228 CONSTRUCT_TYPED_SFIELD(sfChannel, "Channel", UINT256, 22);
229 CONSTRUCT_TYPED_SFIELD(sfConsensusHash, "ConsensusHash", UINT256, 23);
230 CONSTRUCT_TYPED_SFIELD(sfCheckID, "CheckID", UINT256, 24);
231 CONSTRUCT_TYPED_SFIELD(sfValidatedHash, "ValidatedHash", UINT256, 25);
232 CONSTRUCT_TYPED_SFIELD(sfPreviousPageMin, "PreviousPageMin", UINT256, 26);
233 CONSTRUCT_TYPED_SFIELD(sfNextPageMin, "NextPageMin", UINT256, 27);
234 CONSTRUCT_TYPED_SFIELD(sfNFTokenBuyOffer, "NFTokenBuyOffer", UINT256, 28);
235 CONSTRUCT_TYPED_SFIELD(sfNFTokenSellOffer, "NFTokenSellOffer", UINT256, 29);
236 CONSTRUCT_TYPED_SFIELD(sfHookStateKey, "HookStateKey", UINT256, 30);
237 CONSTRUCT_TYPED_SFIELD(sfHookHash, "HookHash", UINT256, 31);
238 CONSTRUCT_TYPED_SFIELD(sfHookNamespace, "HookNamespace", UINT256, 32);
239 CONSTRUCT_TYPED_SFIELD(sfHookSetTxnID, "HookSetTxnID", UINT256, 33);
240 
241 // currency amount (common)
242 CONSTRUCT_TYPED_SFIELD(sfAmount, "Amount", AMOUNT, 1);
243 CONSTRUCT_TYPED_SFIELD(sfBalance, "Balance", AMOUNT, 2);
244 CONSTRUCT_TYPED_SFIELD(sfLimitAmount, "LimitAmount", AMOUNT, 3);
245 CONSTRUCT_TYPED_SFIELD(sfTakerPays, "TakerPays", AMOUNT, 4);
246 CONSTRUCT_TYPED_SFIELD(sfTakerGets, "TakerGets", AMOUNT, 5);
247 CONSTRUCT_TYPED_SFIELD(sfLowLimit, "LowLimit", AMOUNT, 6);
248 CONSTRUCT_TYPED_SFIELD(sfHighLimit, "HighLimit", AMOUNT, 7);
249 CONSTRUCT_TYPED_SFIELD(sfFee, "Fee", AMOUNT, 8);
250 CONSTRUCT_TYPED_SFIELD(sfSendMax, "SendMax", AMOUNT, 9);
251 CONSTRUCT_TYPED_SFIELD(sfDeliverMin, "DeliverMin", AMOUNT, 10);
252 CONSTRUCT_TYPED_SFIELD(sfAmount2, "Amount2", AMOUNT, 11);
253 CONSTRUCT_TYPED_SFIELD(sfBidMin, "BidMin", AMOUNT, 12);
254 CONSTRUCT_TYPED_SFIELD(sfBidMax, "BidMax", AMOUNT, 13);
255 
256 // currency amount (uncommon)
257 CONSTRUCT_TYPED_SFIELD(sfMinimumOffer, "MinimumOffer", AMOUNT, 16);
258 CONSTRUCT_TYPED_SFIELD(sfRippleEscrow, "RippleEscrow", AMOUNT, 17);
259 CONSTRUCT_TYPED_SFIELD(sfDeliveredAmount, "DeliveredAmount", AMOUNT, 18);
260 CONSTRUCT_TYPED_SFIELD(sfNFTokenBrokerFee, "NFTokenBrokerFee", AMOUNT, 19);
261 
262 // Reserve 20 & 21 for Hooks
263 
264 // currency amount (fees)
265 CONSTRUCT_TYPED_SFIELD(sfBaseFeeDrops, "BaseFeeDrops", AMOUNT, 22);
266 CONSTRUCT_TYPED_SFIELD(sfReserveBaseDrops, "ReserveBaseDrops", AMOUNT, 23);
267 CONSTRUCT_TYPED_SFIELD(sfReserveIncrementDrops, "ReserveIncrementDrops", AMOUNT, 24);
268 
269 // currency amount (AMM)
270 CONSTRUCT_TYPED_SFIELD(sfLPTokenOut, "LPTokenOut", AMOUNT, 25);
271 CONSTRUCT_TYPED_SFIELD(sfLPTokenIn, "LPTokenIn", AMOUNT, 26);
272 CONSTRUCT_TYPED_SFIELD(sfEPrice, "EPrice", AMOUNT, 27);
273 CONSTRUCT_TYPED_SFIELD(sfPrice, "Price", AMOUNT, 28);
274 CONSTRUCT_TYPED_SFIELD(sfSignatureReward, "SignatureReward", AMOUNT, 29);
275 CONSTRUCT_TYPED_SFIELD(sfMinAccountCreateAmount, "MinAccountCreateAmount", AMOUNT, 30);
276 CONSTRUCT_TYPED_SFIELD(sfLPTokenBalance, "LPTokenBalance", AMOUNT, 31);
277 
278 // variable length (common)
279 CONSTRUCT_TYPED_SFIELD(sfPublicKey, "PublicKey", VL, 1);
280 CONSTRUCT_TYPED_SFIELD(sfMessageKey, "MessageKey", VL, 2);
281 CONSTRUCT_TYPED_SFIELD(sfSigningPubKey, "SigningPubKey", VL, 3);
283 CONSTRUCT_TYPED_SFIELD(sfURI, "URI", VL, 5);
285 CONSTRUCT_TYPED_SFIELD(sfDomain, "Domain", VL, 7);
286 CONSTRUCT_TYPED_SFIELD(sfFundCode, "FundCode", VL, 8);
287 CONSTRUCT_TYPED_SFIELD(sfRemoveCode, "RemoveCode", VL, 9);
288 CONSTRUCT_TYPED_SFIELD(sfExpireCode, "ExpireCode", VL, 10);
289 CONSTRUCT_TYPED_SFIELD(sfCreateCode, "CreateCode", VL, 11);
290 CONSTRUCT_TYPED_SFIELD(sfMemoType, "MemoType", VL, 12);
291 CONSTRUCT_TYPED_SFIELD(sfMemoData, "MemoData", VL, 13);
292 CONSTRUCT_TYPED_SFIELD(sfMemoFormat, "MemoFormat", VL, 14);
293 
294 // variable length (uncommon)
295 CONSTRUCT_TYPED_SFIELD(sfFulfillment, "Fulfillment", VL, 16);
296 CONSTRUCT_TYPED_SFIELD(sfCondition, "Condition", VL, 17);
298 CONSTRUCT_TYPED_SFIELD(sfUNLModifyValidator, "UNLModifyValidator", VL, 19);
299 CONSTRUCT_TYPED_SFIELD(sfValidatorToDisable, "ValidatorToDisable", VL, 20);
300 CONSTRUCT_TYPED_SFIELD(sfValidatorToReEnable, "ValidatorToReEnable", VL, 21);
301 CONSTRUCT_TYPED_SFIELD(sfHookStateData, "HookStateData", VL, 22);
302 CONSTRUCT_TYPED_SFIELD(sfHookReturnString, "HookReturnString", VL, 23);
303 CONSTRUCT_TYPED_SFIELD(sfHookParameterName, "HookParameterName", VL, 24);
304 CONSTRUCT_TYPED_SFIELD(sfHookParameterValue, "HookParameterValue", VL, 25);
305 CONSTRUCT_TYPED_SFIELD(sfDIDDocument, "DIDDocument", VL, 26);
306 CONSTRUCT_TYPED_SFIELD(sfData, "Data", VL, 27);
307 CONSTRUCT_TYPED_SFIELD(sfAssetClass, "AssetClass", VL, 28);
308 CONSTRUCT_TYPED_SFIELD(sfProvider, "Provider", VL, 29);
309 
310 // account
311 CONSTRUCT_TYPED_SFIELD(sfAccount, "Account", ACCOUNT, 1);
312 CONSTRUCT_TYPED_SFIELD(sfOwner, "Owner", ACCOUNT, 2);
313 CONSTRUCT_TYPED_SFIELD(sfDestination, "Destination", ACCOUNT, 3);
314 CONSTRUCT_TYPED_SFIELD(sfIssuer, "Issuer", ACCOUNT, 4);
315 CONSTRUCT_TYPED_SFIELD(sfAuthorize, "Authorize", ACCOUNT, 5);
316 CONSTRUCT_TYPED_SFIELD(sfUnauthorize, "Unauthorize", ACCOUNT, 6);
317 // 7 is currently unused
318 CONSTRUCT_TYPED_SFIELD(sfRegularKey, "RegularKey", ACCOUNT, 8);
319 CONSTRUCT_TYPED_SFIELD(sfNFTokenMinter, "NFTokenMinter", ACCOUNT, 9);
320 CONSTRUCT_TYPED_SFIELD(sfEmitCallback, "EmitCallback", ACCOUNT, 10);
321 
322 // account (uncommon)
323 CONSTRUCT_TYPED_SFIELD(sfHookAccount, "HookAccount", ACCOUNT, 16);
324 CONSTRUCT_TYPED_SFIELD(sfOtherChainSource, "OtherChainSource", ACCOUNT, 18);
325 CONSTRUCT_TYPED_SFIELD(sfOtherChainDestination, "OtherChainDestination",ACCOUNT, 19);
326 CONSTRUCT_TYPED_SFIELD(sfAttestationSignerAccount, "AttestationSignerAccount", ACCOUNT, 20);
327 CONSTRUCT_TYPED_SFIELD(sfAttestationRewardAccount, "AttestationRewardAccount", ACCOUNT, 21);
328 CONSTRUCT_TYPED_SFIELD(sfLockingChainDoor, "LockingChainDoor", ACCOUNT, 22);
329 CONSTRUCT_TYPED_SFIELD(sfIssuingChainDoor, "IssuingChainDoor", ACCOUNT, 23);
330 
331 // vector of 256-bit
332 CONSTRUCT_TYPED_SFIELD(sfIndexes, "Indexes", VECTOR256, 1, SField::sMD_Never);
333 CONSTRUCT_TYPED_SFIELD(sfHashes, "Hashes", VECTOR256, 2);
334 CONSTRUCT_TYPED_SFIELD(sfAmendments, "Amendments", VECTOR256, 3);
335 CONSTRUCT_TYPED_SFIELD(sfNFTokenOffers, "NFTokenOffers", VECTOR256, 4);
336 
337 // path set
338 CONSTRUCT_UNTYPED_SFIELD(sfPaths, "Paths", PATHSET, 1);
339 
340 // currency
341 CONSTRUCT_TYPED_SFIELD(sfBaseAsset, "BaseAsset", CURRENCY, 1);
342 CONSTRUCT_TYPED_SFIELD(sfQuoteAsset, "QuoteAsset", CURRENCY, 2);
343 
344 // issue
345 CONSTRUCT_TYPED_SFIELD(sfLockingChainIssue, "LockingChainIssue", ISSUE, 1);
346 CONSTRUCT_TYPED_SFIELD(sfIssuingChainIssue, "IssuingChainIssue", ISSUE, 2);
347 CONSTRUCT_TYPED_SFIELD(sfAsset, "Asset", ISSUE, 3);
348 CONSTRUCT_TYPED_SFIELD(sfAsset2, "Asset2", ISSUE, 4);
349 
350 // Bridge
351 CONSTRUCT_TYPED_SFIELD(sfXChainBridge, "XChainBridge", XCHAIN_BRIDGE,
352  1);
353 // inner object
354 // OBJECT/1 is reserved for end of object
355 CONSTRUCT_UNTYPED_SFIELD(sfTransactionMetaData, "TransactionMetaData", OBJECT, 2);
356 CONSTRUCT_UNTYPED_SFIELD(sfCreatedNode, "CreatedNode", OBJECT, 3);
357 CONSTRUCT_UNTYPED_SFIELD(sfDeletedNode, "DeletedNode", OBJECT, 4);
358 CONSTRUCT_UNTYPED_SFIELD(sfModifiedNode, "ModifiedNode", OBJECT, 5);
359 CONSTRUCT_UNTYPED_SFIELD(sfPreviousFields, "PreviousFields", OBJECT, 6);
360 CONSTRUCT_UNTYPED_SFIELD(sfFinalFields, "FinalFields", OBJECT, 7);
361 CONSTRUCT_UNTYPED_SFIELD(sfNewFields, "NewFields", OBJECT, 8);
362 CONSTRUCT_UNTYPED_SFIELD(sfTemplateEntry, "TemplateEntry", OBJECT, 9);
363 CONSTRUCT_UNTYPED_SFIELD(sfMemo, "Memo", OBJECT, 10);
364 CONSTRUCT_UNTYPED_SFIELD(sfSignerEntry, "SignerEntry", OBJECT, 11);
365 CONSTRUCT_UNTYPED_SFIELD(sfNFToken, "NFToken", OBJECT, 12);
366 CONSTRUCT_UNTYPED_SFIELD(sfEmitDetails, "EmitDetails", OBJECT, 13);
367 CONSTRUCT_UNTYPED_SFIELD(sfHook, "Hook", OBJECT, 14);
368 
369 // inner object (uncommon)
370 CONSTRUCT_UNTYPED_SFIELD(sfSigner, "Signer", OBJECT, 16);
371 // 17 has not been used yet
372 CONSTRUCT_UNTYPED_SFIELD(sfMajority, "Majority", OBJECT, 18);
373 CONSTRUCT_UNTYPED_SFIELD(sfDisabledValidator, "DisabledValidator", OBJECT, 19);
374 CONSTRUCT_UNTYPED_SFIELD(sfEmittedTxn, "EmittedTxn", OBJECT, 20);
375 CONSTRUCT_UNTYPED_SFIELD(sfHookExecution, "HookExecution", OBJECT, 21);
376 CONSTRUCT_UNTYPED_SFIELD(sfHookDefinition, "HookDefinition", OBJECT, 22);
377 CONSTRUCT_UNTYPED_SFIELD(sfHookParameter, "HookParameter", OBJECT, 23);
378 CONSTRUCT_UNTYPED_SFIELD(sfHookGrant, "HookGrant", OBJECT, 24);
379 CONSTRUCT_UNTYPED_SFIELD(sfVoteEntry, "VoteEntry", OBJECT, 25);
380 CONSTRUCT_UNTYPED_SFIELD(sfAuctionSlot, "AuctionSlot", OBJECT, 26);
381 CONSTRUCT_UNTYPED_SFIELD(sfAuthAccount, "AuthAccount", OBJECT, 27);
382 CONSTRUCT_UNTYPED_SFIELD(sfXChainClaimProofSig, "XChainClaimProofSig", OBJECT, 28);
384  "XChainCreateAccountProofSig",
385  OBJECT, 29);
387  "XChainClaimAttestationCollectionElement",
388  OBJECT, 30);
390  "XChainCreateAccountAttestationCollectionElement",
391  OBJECT, 31);
392 CONSTRUCT_UNTYPED_SFIELD(sfPriceData, "PriceData", OBJECT, 32);
393 
394 // array of objects
395 // ARRAY/1 is reserved for end of array
396 // 2 has never been used
398 CONSTRUCT_UNTYPED_SFIELD(sfSignerEntries, "SignerEntries", ARRAY, 4);
399 CONSTRUCT_UNTYPED_SFIELD(sfTemplate, "Template", ARRAY, 5);
400 CONSTRUCT_UNTYPED_SFIELD(sfNecessary, "Necessary", ARRAY, 6);
401 CONSTRUCT_UNTYPED_SFIELD(sfSufficient, "Sufficient", ARRAY, 7);
402 CONSTRUCT_UNTYPED_SFIELD(sfAffectedNodes, "AffectedNodes", ARRAY, 8);
403 CONSTRUCT_UNTYPED_SFIELD(sfMemos, "Memos", ARRAY, 9);
404 CONSTRUCT_UNTYPED_SFIELD(sfNFTokens, "NFTokens", ARRAY, 10);
405 CONSTRUCT_UNTYPED_SFIELD(sfHooks, "Hooks", ARRAY, 11);
406 CONSTRUCT_UNTYPED_SFIELD(sfVoteSlots, "VoteSlots", ARRAY, 12);
407 
408 // array of objects (uncommon)
409 CONSTRUCT_UNTYPED_SFIELD(sfMajorities, "Majorities", ARRAY, 16);
410 CONSTRUCT_UNTYPED_SFIELD(sfDisabledValidators, "DisabledValidators", ARRAY, 17);
411 CONSTRUCT_UNTYPED_SFIELD(sfHookExecutions, "HookExecutions", ARRAY, 18);
412 CONSTRUCT_UNTYPED_SFIELD(sfHookParameters, "HookParameters", ARRAY, 19);
413 CONSTRUCT_UNTYPED_SFIELD(sfHookGrants, "HookGrants", ARRAY, 20);
415  "XChainClaimAttestations",
416  ARRAY, 21);
418  "XChainCreateAccountAttestations",
419  ARRAY, 22);
420 // 23 is unused and available for use
421 CONSTRUCT_UNTYPED_SFIELD(sfPriceDataSeries, "PriceDataSeries", ARRAY, 24);
422 CONSTRUCT_UNTYPED_SFIELD(sfAuthAccounts, "AuthAccounts", ARRAY, 25);
423 
424 // clang-format on
425 
426 #undef CONSTRUCT_TYPED_SFIELD
427 #undef CONSTRUCT_UNTYPED_SFIELD
428 
429 #pragma pop_macro("CONSTRUCT_TYPED_SFIELD")
430 #pragma pop_macro("CONSTRUCT_UNTYPED_SFIELD")
431 
434  SerializedTypeID tid,
435  int fv,
436  const char* fn,
437  int meta,
438  IsSigning signing)
439  : fieldCode(field_code(tid, fv))
440  , fieldType(tid)
441  , fieldValue(fv)
442  , fieldName(fn)
443  , fieldMeta(meta)
444  , fieldNum(++num)
445  , signingField(signing)
446  , jsonName(fieldName.c_str())
447 {
448  knownCodeToField[fieldCode] = this;
449 }
450 
452  : fieldCode(fc)
453  , fieldType(STI_UNKNOWN)
454  , fieldValue(0)
455  , fieldMeta(sMD_Never)
456  , fieldNum(++num)
457  , signingField(IsSigning::yes)
458  , jsonName(fieldName.c_str())
459 {
460  knownCodeToField[fieldCode] = this;
461 }
462 
463 SField const&
465 {
466  auto it = knownCodeToField.find(code);
467 
468  if (it != knownCodeToField.end())
469  {
470  return *(it->second);
471  }
472  return sfInvalid;
473 }
474 
475 int
476 SField::compare(SField const& f1, SField const& f2)
477 {
478  // -1 = f1 comes before f2, 0 = illegal combination, 1 = f1 comes after f2
479  if ((f1.fieldCode <= 0) || (f2.fieldCode <= 0))
480  return 0;
481 
482  if (f1.fieldCode < f2.fieldCode)
483  return -1;
484 
485  if (f2.fieldCode < f1.fieldCode)
486  return 1;
487 
488  return 0;
489 }
490 
491 SField const&
492 SField::getField(std::string const& fieldName)
493 {
494  for (auto const& [_, f] : knownCodeToField)
495  {
496  (void)_;
497  if (f->fieldName == fieldName)
498  return *f;
499  }
500  return sfInvalid;
501 }
502 
503 } // namespace ripple
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::sfScale
const SF_UINT8 sfScale
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::sfLastUpdateTime
const SF_UINT32 sfLastUpdateTime
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:155
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::sfHookExecutionIndex
const SF_UINT16 sfHookExecutionIndex
ripple::sfEmitHookHash
const SF_UINT256 sfEmitHookHash
utility
ripple::sfOwnerNode
const SF_UINT64 sfOwnerNode
ripple::sfHookReturnCode
const SF_UINT64 sfHookReturnCode
ripple::sfMinimumOffer
const SF_AMOUNT sfMinimumOffer
ripple::sfGeneric
const SField sfGeneric(access, 0)
Definition: SField.h:359
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::sfAmount
const SF_AMOUNT sfAmount
ripple::sfBaseAsset
const SF_CURRENCY sfBaseAsset
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::sfLockingChainDoor
const SF_ACCOUNT sfLockingChainDoor
ripple::SField::sMD_Always
@ sMD_Always
Definition: SField.h:150
ripple::SField::sMD_DeleteFinal
@ sMD_DeleteFinal
Definition: SField.h:148
ripple::sfVoteSlots
const SField sfVoteSlots
ripple::sfQualityOut
const SF_UINT32 sfQualityOut
ripple::sfOwner
const SF_ACCOUNT sfOwner
ripple::sfHookStateChangeCount
const SF_UINT16 sfHookStateChangeCount
ripple::sfProvider
const SF_VL sfProvider
ripple::sfSequence
const SF_UINT32 sfSequence
ripple::sfRegularKey
const SF_ACCOUNT sfRegularKey
ripple::sfVoteEntry
const SField sfVoteEntry
ripple::sfLPTokenBalance
const SF_AMOUNT sfLPTokenBalance
ripple::sfHash
const SField sfHash(access, STI_UINT256, 257, "hash")
ripple::SField::private_access_tag_t
Definition: SField.cpp:34
ripple::sfBookDirectory
const SF_UINT256 sfBookDirectory
ripple::field_code
int field_code(SerializedTypeID id, int index)
Definition: SField.h:119
ripple::SField::fieldName
const std::string fieldName
Definition: SField.h:161
ripple::sfTakerPaysCurrency
const SF_UINT160 sfTakerPaysCurrency
ripple::sfSigningPubKey
const SF_VL sfSigningPubKey
ripple::sfEPrice
const SF_AMOUNT sfEPrice
ripple::SerializedTypeID
SerializedTypeID
Definition: SField.h:106
ripple::sfLedgerIndex
const SF_UINT256 sfLedgerIndex
ripple::sfMintedNFTokens
const SF_UINT32 sfMintedNFTokens
ripple::sfXChainCreateAccountAttestationCollectionElement
const SField sfXChainCreateAccountAttestationCollectionElement
ripple::sfHookResult
const SF_UINT8 sfHookResult
ripple::TypedField::TypedField
TypedField(private_access_tag_t pat, Args &&... args)
Definition: SField.cpp:43
ripple::sfHookOn
const SF_UINT64 sfHookOn
ripple::sfOtherChainSource
const SF_ACCOUNT sfOtherChainSource
ripple::sfQualityIn
const SF_UINT32 sfQualityIn
ripple::sfHookReturnString
const SF_VL sfHookReturnString
ripple::sfSetFlag
const SF_UINT32 sfSetFlag
ripple::sfHookParameters
const SField sfHookParameters
ripple::sfFinalFields
const SField sfFinalFields
ripple::sfCloseTime
const SF_UINT32 sfCloseTime
ripple::sfTicketSequence
const SF_UINT32 sfTicketSequence
ripple::sfParentCloseTime
const SF_UINT32 sfParentCloseTime
ripple::sfWasLockingChainSend
const SF_UINT8 sfWasLockingChainSend
ripple::SField::getField
static const SField & getField(int fieldCode)
Definition: SField.cpp:464
ripple::SField::knownCodeToField
static std::map< int, SField const * > knownCodeToField
Definition: SField.h:301
ripple::sfHookStateCount
const SF_UINT32 sfHookStateCount
ripple::sfLPTokenOut
const SF_AMOUNT sfLPTokenOut
ripple::sfXChainAccountClaimCount
const SF_UINT64 sfXChainAccountClaimCount
ripple::sfPrice
const SF_AMOUNT sfPrice
ripple::sfTakerGetsCurrency
const SF_UINT160 sfTakerGetsCurrency
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:358
ripple::sfNFTokenOfferNode
const SF_UINT64 sfNFTokenOfferNode
ripple::sfTradingFee
const SF_UINT16 sfTradingFee
ripple::sfXChainClaimID
const SF_UINT64 sfXChainClaimID
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:151
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::sfVersion
const SF_UINT16 sfVersion
ripple::sfExpireCode
const SF_VL sfExpireCode
ripple::sfTakerGetsIssuer
const SF_UINT160 sfTakerGetsIssuer
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::sfDeliveredAmount
const SF_AMOUNT sfDeliveredAmount
ripple::sfAsset2
const SF_ISSUE sfAsset2
ripple::sfParentHash
const SF_UINT256 sfParentHash
ripple::SField::private_access_tag_t::private_access_tag_t
private_access_tag_t()=default
ripple::sfSettleDelay
const SF_UINT32 sfSettleDelay
ripple::sfUnauthorize
const SF_ACCOUNT sfUnauthorize
ripple::sfSignatureReward
const SF_AMOUNT sfSignatureReward
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::sfLockingChainIssue
const SF_ISSUE sfLockingChainIssue
ripple::sfXChainClaimAttestations
const SField sfXChainClaimAttestations
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:156
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::sfValidatorToDisable
const SF_VL sfValidatorToDisable
ripple::sfTicketCount
const SF_UINT32 sfTicketCount
ripple::sfRippleEscrow
const SF_AMOUNT sfRippleEscrow
ripple::sfAccountTxnID
const SF_UINT256 sfAccountTxnID
ripple::sfModifiedNode
const SField sfModifiedNode
ripple::sfXChainClaimProofSig
const SField sfXChainClaimProofSig
ripple::sfDestinationNode
const SF_UINT64 sfDestinationNode
ripple::sfXChainCreateAccountProofSig
const SField sfXChainCreateAccountProofSig
ripple::sfOracleDocumentID
const SF_UINT32 sfOracleDocumentID
ripple::sfTakerGets
const SF_AMOUNT sfTakerGets
ripple::sfMajority
const SField sfMajority
ripple::sfRemoveCode
const SF_VL sfRemoveCode
ripple::sfTransferRate
const SF_UINT32 sfTransferRate
ripple::sfTickSize
const SF_UINT8 sfTickSize
ripple::sfAttestationSignerAccount
const SF_ACCOUNT sfAttestationSignerAccount
ripple::sfPreviousTxnID
const SF_UINT256 sfPreviousTxnID
ripple::SField::fieldCode
const int fieldCode
Definition: SField.h:158
ripple::sfAuthorize
const SF_ACCOUNT sfAuthorize
ripple::sfHighLimit
const SF_AMOUNT sfHighLimit
ripple::sfExchangeRate
const SF_UINT64 sfExchangeRate
ripple::sfEmitGeneration
const SF_UINT32 sfEmitGeneration
ripple::sfStampEscrow
const SF_UINT32 sfStampEscrow
std::map
STL class.
ripple::sfHookExecutions
const SField sfHookExecutions
ripple::CONSTRUCT_UNTYPED_SFIELD
CONSTRUCT_UNTYPED_SFIELD(sfLedgerEntry, "LedgerEntry", LEDGERENTRY, 257)
ripple::sfAMMID
const SF_UINT256 sfAMMID
ripple::sfAssetClass
const SF_VL sfAssetClass
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::sfNFToken
const SField sfNFToken
ripple::sfUNLModifyDisabling
const SF_UINT8 sfUNLModifyDisabling
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::CONSTRUCT_TYPED_SFIELD
CONSTRUCT_TYPED_SFIELD(sfCloseResolution, "CloseResolution", UINT8, 1)
ripple::sfHashes
const SF_VECTOR256 sfHashes
ripple::sfMemoData
const SF_VL sfMemoData
ripple::sfNFTokenBuyOffer
const SF_UINT256 sfNFTokenBuyOffer
ripple::sfTxnSignature
const SF_VL sfTxnSignature
ripple::access
static SField::private_access_tag_t access
Definition: SField.cpp:39
ripple::sfURI
const SF_VL sfURI
ripple::sfMinAccountCreateAmount
const SF_AMOUNT sfMinAccountCreateAmount
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::sfDIDDocument
const SF_VL sfDIDDocument
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:141
ripple::sfAuthAccount
const SField sfAuthAccount
ripple::sfCondition
const SF_VL sfCondition
ripple::SField::num
static int num
Definition: SField.h:300
ripple::sfTakerPaysIssuer
const SF_UINT160 sfTakerPaysIssuer
ripple::sfIssuer
const SF_ACCOUNT sfIssuer
ripple::sfXChainClaimAttestationCollectionElement
const SField sfXChainClaimAttestationCollectionElement
ripple::sfInvoiceID
const SF_UINT256 sfInvoiceID
ripple::sfFlags
const SF_UINT32 sfFlags
std
STL namespace.
cassert
ripple::sfConsensusHash
const SF_UINT256 sfConsensusHash
ripple::sfDisabledValidator
const SField sfDisabledValidator
ripple::sfDestinationTag
const SF_UINT32 sfDestinationTag
ripple::sfOtherChainDestination
const SF_ACCOUNT sfOtherChainDestination
ripple::sfCreatedNode
const SField sfCreatedNode
ripple::sfHookParameterName
const SF_VL sfHookParameterName
ripple::sfXChainAccountCreateCount
const SF_UINT64 sfXChainAccountCreateCount
ripple::sfSignature
const SF_VL sfSignature
ripple::sfData
const SF_VL sfData
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:476
ripple::sfReferenceFeeUnits
const SF_UINT32 sfReferenceFeeUnits
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::sfXChainCreateAccountAttestations
const SField sfXChainCreateAccountAttestations
ripple::sfEmitCallback
const SF_ACCOUNT sfEmitCallback
ripple::sfValidation
const SField sfValidation
ripple::sfPreviousPageMin
const SF_UINT256 sfPreviousPageMin
ripple::sfFinishAfter
const SF_UINT32 sfFinishAfter
ripple::sfChannel
const SF_UINT256 sfChannel
ripple::sfNFTokenTaxon
const SF_UINT32 sfNFTokenTaxon
ripple::sfFee
const SF_AMOUNT sfFee
ripple::sfMemo
const SField sfMemo
ripple::sfAccount
const SF_ACCOUNT sfAccount
ripple::sfIssuingChainDoor
const SF_ACCOUNT sfIssuingChainDoor
ripple::sfEmittedTxn
const SField sfEmittedTxn
ripple::sfEmitBurden
const SF_UINT64 sfEmitBurden
ripple::sfAttestationRewardAccount
const SF_ACCOUNT sfAttestationRewardAccount
ripple::sfLPTokenIn
const SF_AMOUNT sfLPTokenIn
ripple::sfNetworkID
const SF_UINT32 sfNetworkID
ripple::sfSufficient
const SField sfSufficient
ripple::sfHookNamespace
const SF_UINT256 sfHookNamespace
ripple::sfDomain
const SF_VL sfDomain
ripple::sfLastLedgerSequence
const SF_UINT32 sfLastLedgerSequence
ripple::sfIssuingChainIssue
const SF_ISSUE sfIssuingChainIssue
ripple::sfBurnedNFTokens
const SF_UINT32 sfBurnedNFTokens
ripple::sfIndex
const SField sfIndex(access, STI_UINT256, 258, "index")
ripple::sfAmendment
const SF_UINT256 sfAmendment
ripple::yes
@ yes
Definition: Steps.h:42
ripple::sfQuoteAsset
const SF_CURRENCY sfQuoteAsset
ripple::sfMajorities
const SField sfMajorities
ripple::sfAuctionSlot
const SField sfAuctionSlot
ripple::sfXChainBridge
const SF_XCHAIN_BRIDGE sfXChainBridge
ripple::SField::sMD_Never
@ sMD_Never
Definition: SField.h:145
ripple::sfSigningTime
const SF_UINT32 sfSigningTime
ripple::sfPriceDataSeries
const SField sfPriceDataSeries
ripple::sfDisabledValidators
const SField sfDisabledValidators
ripple::sfFulfillment
const SF_VL sfFulfillment
string_view
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::sfNFTokenBrokerFee
const SF_AMOUNT sfNFTokenBrokerFee
ripple::sfPriceData
const SField sfPriceData
ripple::sfAmendments
const SF_VECTOR256 sfAmendments
ripple::sfMethod
const SF_UINT8 sfMethod
ripple::sfMemoFormat
const SF_VL sfMemoFormat
ripple::sfAssetPrice
const SF_UINT64 sfAssetPrice
ripple::sfValidatorToReEnable
const SF_VL sfValidatorToReEnable
ripple::sfMemoType
const SF_VL sfMemoType
string