rippled
Loading...
Searching...
No Matches
TxFlags.h
1#ifndef XRPL_PROTOCOL_TXFLAGS_H_INCLUDED
2#define XRPL_PROTOCOL_TXFLAGS_H_INCLUDED
3
4#include <xrpl/protocol/LedgerFormats.h>
5
6#include <cstdint>
7
8namespace ripple {
9
37// Formatting equals sign aligned 4 spaces after longest prefix, except for
38// wrapped lines
39// clang-format off
40// Universal Transaction flags:
41constexpr std::uint32_t tfFullyCanonicalSig = 0x80000000;
42constexpr std::uint32_t tfInnerBatchTxn = 0x40000000;
44constexpr std::uint32_t tfUniversalMask = ~tfUniversal;
45
46// AccountSet flags:
47constexpr std::uint32_t tfRequireDestTag = 0x00010000;
48constexpr std::uint32_t tfOptionalDestTag = 0x00020000;
49constexpr std::uint32_t tfRequireAuth = 0x00040000;
50constexpr std::uint32_t tfOptionalAuth = 0x00080000;
51constexpr std::uint32_t tfDisallowXRP = 0x00100000;
52constexpr std::uint32_t tfAllowXRP = 0x00200000;
56
57// AccountSet SetFlag/ClearFlag values
68/* // reserved for Hooks amendment
69constexpr std::uint32_t asfTshCollect = 11;
70*/
77
78// OfferCreate flags:
79constexpr std::uint32_t tfPassive = 0x00010000;
80constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
81constexpr std::uint32_t tfFillOrKill = 0x00040000;
82constexpr std::uint32_t tfSell = 0x00080000;
83constexpr std::uint32_t tfHybrid = 0x00100000;
86
87// Payment flags:
88constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
89constexpr std::uint32_t tfPartialPayment = 0x00020000;
90constexpr std::uint32_t tfLimitQuality = 0x00040000;
94
95// TrustSet flags:
96constexpr std::uint32_t tfSetfAuth = 0x00010000;
97constexpr std::uint32_t tfSetNoRipple = 0x00020000;
98constexpr std::uint32_t tfClearNoRipple = 0x00040000;
99constexpr std::uint32_t tfSetFreeze = 0x00100000;
100constexpr std::uint32_t tfClearFreeze = 0x00200000;
101constexpr std::uint32_t tfSetDeepFreeze = 0x00400000;
102constexpr std::uint32_t tfClearDeepFreeze = 0x00800000;
107
108// EnableAmendment flags:
109constexpr std::uint32_t tfGotMajority = 0x00010000;
110constexpr std::uint32_t tfLostMajority = 0x00020000;
113
114// PaymentChannelClaim flags:
115constexpr std::uint32_t tfRenew = 0x00010000;
116constexpr std::uint32_t tfClose = 0x00020000;
118
119// NFTokenMint flags:
120constexpr std::uint32_t const tfBurnable = 0x00000001;
121constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
122constexpr std::uint32_t const tfTrustLine = 0x00000004;
123constexpr std::uint32_t const tfTransferable = 0x00000008;
124constexpr std::uint32_t const tfMutable = 0x00000010;
125
126// MPTokenIssuanceCreate flags:
127// Note: tf/lsfMPTLocked is intentionally omitted, since this transaction
128// is not allowed to modify it.
137
138// MPTokenIssuanceCreate MutableFlags:
139// Indicating specific fields or flags may be changed after issuance.
151
152// MPTokenAuthorize flags:
153constexpr std::uint32_t const tfMPTUnauthorize = 0x00000001;
155
156// MPTokenIssuanceSet flags:
157constexpr std::uint32_t const tfMPTLock = 0x00000001;
158constexpr std::uint32_t const tfMPTUnlock = 0x00000002;
161
162// MPTokenIssuanceSet MutableFlags:
163// Set or Clear flags.
164constexpr std::uint32_t const tmfMPTSetCanLock = 0x00000001;
165constexpr std::uint32_t const tmfMPTClearCanLock = 0x00000002;
166constexpr std::uint32_t const tmfMPTSetRequireAuth = 0x00000004;
167constexpr std::uint32_t const tmfMPTClearRequireAuth = 0x00000008;
168constexpr std::uint32_t const tmfMPTSetCanEscrow = 0x00000010;
169constexpr std::uint32_t const tmfMPTClearCanEscrow = 0x00000020;
170constexpr std::uint32_t const tmfMPTSetCanTrade = 0x00000040;
171constexpr std::uint32_t const tmfMPTClearCanTrade = 0x00000080;
172constexpr std::uint32_t const tmfMPTSetCanTransfer = 0x00000100;
173constexpr std::uint32_t const tmfMPTClearCanTransfer = 0x00000200;
174constexpr std::uint32_t const tmfMPTSetCanClawback = 0x00000400;
175constexpr std::uint32_t const tmfMPTClearCanClawback = 0x00000800;
180
181// MPTokenIssuanceDestroy flags:
182constexpr std::uint32_t const tfMPTokenIssuanceDestroyMask = ~tfUniversal;
183
184// Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
185// accounts allowed a TrustLine to be added to the issuer of that token
186// without explicit permission from that issuer. This was enabled by
187// minting the NFToken with the tfTrustLine flag set.
188//
189// That capability could be used to attack the NFToken issuer. It
190// would be possible for two accounts to trade the NFToken back and forth
191// building up any number of TrustLines on the issuer, increasing the
192// issuer's reserve without bound.
193//
194// The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
195// tfTrustLine flag as a way to prevent the attack. But until the
196// amendment passes we still need to keep the old behavior available.
199
201 ~( ~tfNFTokenMintMask | tfTrustLine);
202
203// if featureDynamicNFT enabled then new flag allowing mutable URI available.
205 ~( ~tfNFTokenMintOldMask | tfMutable);
206
208 ~( ~tfNFTokenMintMask | tfMutable);
209
210// NFTokenCreateOffer flags:
211constexpr std::uint32_t const tfSellNFToken = 0x00000001;
214
215// NFTokenCancelOffer flags:
216constexpr std::uint32_t const tfNFTokenCancelOfferMask = ~tfUniversal;
217
218// NFTokenAcceptOffer flags:
219constexpr std::uint32_t const tfNFTokenAcceptOfferMask = ~tfUniversal;
220
221// Clawback flags:
222constexpr std::uint32_t const tfClawbackMask = ~tfUniversal;
223
224// AMM Flags:
225constexpr std::uint32_t tfLPToken = 0x00010000;
226constexpr std::uint32_t tfWithdrawAll = 0x00020000;
228constexpr std::uint32_t tfSingleAsset = 0x00080000;
229constexpr std::uint32_t tfTwoAsset = 0x00100000;
230constexpr std::uint32_t tfOneAssetLPToken = 0x00200000;
231constexpr std::uint32_t tfLimitLPToken = 0x00400000;
232constexpr std::uint32_t tfTwoAssetIfEmpty = 0x00800000;
241
242// AMMClawback flags:
243constexpr std::uint32_t tfClawTwoAssets = 0x00000001;
245
246// BridgeModify flags:
249
250// VaultCreate flags:
251constexpr std::uint32_t const tfVaultPrivate = 0x00010000;
252static_assert(tfVaultPrivate == lsfVaultPrivate);
253constexpr std::uint32_t const tfVaultShareNonTransferable = 0x00020000;
255
256// Batch Flags:
257constexpr std::uint32_t tfAllOrNothing = 0x00010000;
258constexpr std::uint32_t tfOnlyOne = 0x00020000;
259constexpr std::uint32_t tfUntilFailure = 0x00040000;
260constexpr std::uint32_t tfIndependent = 0x00080000;
266constexpr std::uint32_t const tfBatchMask =
268
269// clang-format on
270
271} // namespace ripple
272
273#endif
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr std::uint32_t const tfMPTokenIssuanceSetMask
Definition TxFlags.h:159
constexpr std::uint32_t tfAllOrNothing
Definition TxFlags.h:257
constexpr std::uint32_t tfAllowXRP
Definition TxFlags.h:52
constexpr std::uint32_t tfSingleAsset
Definition TxFlags.h:228
constexpr std::uint32_t asfGlobalFreeze
Definition TxFlags.h:64
constexpr std::uint32_t tfOneAssetWithdrawAll
Definition TxFlags.h:227
constexpr std::uint32_t tfBridgeModifyMask
Definition TxFlags.h:248
constexpr std::uint32_t const tfMPTokenIssuanceSetPermissionMask
Definition TxFlags.h:160
constexpr std::uint32_t const tmfMPTClearCanClawback
Definition TxFlags.h:175
constexpr std::uint32_t const tmfMPTokenIssuanceSetMutableMask
Definition TxFlags.h:176
constexpr std::uint32_t const tmfMPTCanMutateMetadata
Definition TxFlags.h:146
constexpr std::uint32_t const tfBatchMask
Definition TxFlags.h:266
constexpr std::uint32_t const tmfMPTClearCanEscrow
Definition TxFlags.h:169
constexpr std::uint32_t const tmfMPTCanMutateCanEscrow
Definition TxFlags.h:142
constexpr std::uint32_t asfDepositAuth
Definition TxFlags.h:66
constexpr std::uint32_t const tfOnlyXRP
Definition TxFlags.h:121
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition TxFlags.h:71
constexpr std::uint32_t tfSetDeepFreeze
Definition TxFlags.h:101
constexpr std::uint32_t const tmfMPTCanMutateCanTrade
Definition TxFlags.h:143
constexpr std::uint32_t asfAllowTrustLineLocking
Definition TxFlags.h:76
constexpr std::uint32_t const tfMPTCanTransfer
Definition TxFlags.h:133
constexpr std::uint32_t const tmfMPTSetCanClawback
Definition TxFlags.h:174
constexpr std::uint32_t tfOnlyOne
Definition TxFlags.h:258
constexpr std::uint32_t asfRequireDest
Definition TxFlags.h:58
constexpr std::uint32_t const tfNFTokenCreateOfferMask
Definition TxFlags.h:212
constexpr std::uint32_t tfOfferCreateMask
Definition TxFlags.h:84
constexpr std::uint32_t tfRenew
Definition TxFlags.h:115
constexpr std::uint32_t const tmfMPTSetRequireAuth
Definition TxFlags.h:166
constexpr std::uint32_t const tmfMPTClearCanTrade
Definition TxFlags.h:171
constexpr std::uint32_t tfWithdrawMask
Definition TxFlags.h:239
constexpr std::uint32_t tfIndependent
Definition TxFlags.h:260
constexpr std::uint32_t const tfNFTokenMintOldMaskWithMutable
Definition TxFlags.h:204
constexpr std::uint32_t const tmfMPTCanMutateTransferFee
Definition TxFlags.h:147
constexpr std::uint32_t tfMPTPaymentMask
Definition TxFlags.h:93
constexpr std::uint32_t tfGotMajority
Definition TxFlags.h:109
constexpr std::uint32_t const tfMPTCanTrade
Definition TxFlags.h:132
constexpr std::uint32_t const tfMPTUnlock
Definition TxFlags.h:158
constexpr std::uint32_t const tfClawbackMask
Definition TxFlags.h:222
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition TxFlags.h:67
constexpr std::uint32_t const tfSellNFToken
Definition TxFlags.h:211
constexpr std::uint32_t const tfNFTokenMintMaskWithMutable
Definition TxFlags.h:207
constexpr std::uint32_t tfOptionalDestTag
Definition TxFlags.h:48
@ lsmfMPTCanMutateRequireAuth
@ lsfMPTCanTransfer
@ lsmfMPTCanMutateCanTransfer
@ lsmfMPTCanMutateCanTrade
@ lsfMPTCanEscrow
@ lsmfMPTCanMutateCanEscrow
@ lsfMPTCanClawback
@ lsmfMPTCanMutateCanClawback
@ lsmfMPTCanMutateMetadata
@ lsfVaultPrivate
@ lsmfMPTCanMutateCanLock
@ lsfMPTRequireAuth
@ lsmfMPTCanMutateTransferFee
constexpr std::uint32_t const tfMPTokenIssuanceCreateMask
Definition TxFlags.h:135
constexpr std::uint32_t tfAccountSetMask
Definition TxFlags.h:53
constexpr std::uint32_t const tfNFTokenMintOldMask
Definition TxFlags.h:200
constexpr std::uint32_t const tmfMPTClearRequireAuth
Definition TxFlags.h:167
constexpr std::uint32_t const tmfMPTSetCanLock
Definition TxFlags.h:164
constexpr std::uint32_t tfRequireDestTag
Definition TxFlags.h:47
constexpr std::uint32_t const tfVaultPrivate
Definition TxFlags.h:251
constexpr std::uint32_t tfLimitLPToken
Definition TxFlags.h:231
constexpr std::uint32_t const tmfMPTCanMutateCanLock
Definition TxFlags.h:140
constexpr std::uint32_t const tfMPTokenAuthorizeMask
Definition TxFlags.h:154
constexpr std::uint32_t tfHybrid
Definition TxFlags.h:83
constexpr std::uint32_t tfClawTwoAssets
Definition TxFlags.h:243
constexpr std::uint32_t const tmfMPTokenIssuanceCreateMutableMask
Definition TxFlags.h:148
constexpr std::uint32_t const tfBurnable
Definition TxFlags.h:120
constexpr std::uint32_t asfNoFreeze
Definition TxFlags.h:63
constexpr std::uint32_t tfFillOrKill
Definition TxFlags.h:81
constexpr std::uint32_t tfPassive
Definition TxFlags.h:79
constexpr std::uint32_t tfOneAssetLPToken
Definition TxFlags.h:230
constexpr std::uint32_t tfImmediateOrCancel
Definition TxFlags.h:80
constexpr std::uint32_t const tmfMPTSetCanTrade
Definition TxFlags.h:170
constexpr std::uint32_t asfDisableMaster
Definition TxFlags.h:61
constexpr std::uint32_t const tmfMPTCanMutateCanClawback
Definition TxFlags.h:145
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition TxFlags.h:74
constexpr std::uint32_t tfTrustSetPermissionMask
Definition TxFlags.h:106
constexpr std::uint32_t tfTwoAsset
Definition TxFlags.h:229
constexpr std::uint32_t tfAMMClawbackMask
Definition TxFlags.h:244
constexpr std::uint32_t tfUntilFailure
Definition TxFlags.h:259
constexpr std::uint32_t tfPartialPayment
Definition TxFlags.h:89
constexpr std::uint32_t const tfTrustLine
Definition TxFlags.h:122
constexpr std::uint32_t tfWithdrawAll
Definition TxFlags.h:226
constexpr std::uint32_t tfClearNoRipple
Definition TxFlags.h:98
constexpr std::uint32_t const tfMPTUnauthorize
Definition TxFlags.h:153
constexpr std::uint32_t tfDepositSubTx
Definition TxFlags.h:236
constexpr std::uint32_t const tmfMPTSetCanEscrow
Definition TxFlags.h:168
constexpr std::uint32_t const tmfMPTClearCanLock
Definition TxFlags.h:165
constexpr std::uint32_t tfClearAccountCreateAmount
Definition TxFlags.h:247
constexpr std::uint32_t tfSetfAuth
Definition TxFlags.h:96
constexpr std::uint32_t asfAccountTxnID
Definition TxFlags.h:62
constexpr std::uint32_t asfDefaultRipple
Definition TxFlags.h:65
constexpr std::uint32_t asfDisallowIncomingCheck
Definition TxFlags.h:72
constexpr std::uint32_t tfClearFreeze
Definition TxFlags.h:100
constexpr std::uint32_t const tmfMPTSetCanTransfer
Definition TxFlags.h:172
constexpr std::uint32_t tfRequireAuth
Definition TxFlags.h:49
constexpr std::uint32_t const tfMPTLock
Definition TxFlags.h:157
constexpr std::uint32_t tfLPToken
Definition TxFlags.h:225
constexpr std::uint32_t tfUniversal
Definition TxFlags.h:43
constexpr std::uint32_t tfNoRippleDirect
Definition TxFlags.h:88
constexpr std::uint32_t const tmfMPTCanMutateRequireAuth
Definition TxFlags.h:141
constexpr std::uint32_t tfOptionalAuth
Definition TxFlags.h:50
constexpr std::uint32_t const tfVaultShareNonTransferable
Definition TxFlags.h:253
constexpr std::uint32_t tfClearDeepFreeze
Definition TxFlags.h:102
constexpr std::uint32_t tfDisallowXRP
Definition TxFlags.h:51
constexpr std::uint32_t const tfNFTokenCancelOfferMask
Definition TxFlags.h:216
constexpr std::uint32_t tfDepositMask
Definition TxFlags.h:240
constexpr std::uint32_t const tmfMPTCanMutateCanTransfer
Definition TxFlags.h:144
constexpr std::uint32_t tfWithdrawSubTx
Definition TxFlags.h:233
constexpr std::uint32_t tfPaymentMask
Definition TxFlags.h:91
constexpr std::uint32_t tfLimitQuality
Definition TxFlags.h:90
constexpr std::uint32_t tfTrustSetMask
Definition TxFlags.h:103
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition TxFlags.h:73
constexpr std::uint32_t tfClose
Definition TxFlags.h:116
constexpr std::uint32_t tfPayChanClaimMask
Definition TxFlags.h:117
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition TxFlags.h:41
constexpr std::uint32_t tfTwoAssetIfEmpty
Definition TxFlags.h:232
constexpr std::uint32_t tfUniversalMask
Definition TxFlags.h:44
constexpr std::uint32_t asfAllowTrustLineClawback
Definition TxFlags.h:75
constexpr std::uint32_t tfSell
Definition TxFlags.h:82
constexpr std::uint32_t asfRequireAuth
Definition TxFlags.h:59
constexpr std::uint32_t const tfNFTokenAcceptOfferMask
Definition TxFlags.h:219
constexpr std::uint32_t const tfMPTCanEscrow
Definition TxFlags.h:131
constexpr std::uint32_t tfLostMajority
Definition TxFlags.h:110
constexpr std::uint32_t const tfMPTRequireAuth
Definition TxFlags.h:130
constexpr std::uint32_t tfSetFreeze
Definition TxFlags.h:99
constexpr std::uint32_t tfSetNoRipple
Definition TxFlags.h:97
constexpr std::uint32_t const tfVaultCreateMask
Definition TxFlags.h:254
constexpr std::uint32_t const tfMutable
Definition TxFlags.h:124
constexpr std::uint32_t tfChangeMask
Definition TxFlags.h:111
constexpr std::uint32_t const tfMPTCanLock
Definition TxFlags.h:129
constexpr std::uint32_t const tfMPTCanClawback
Definition TxFlags.h:134
constexpr std::uint32_t const tmfMPTClearCanTransfer
Definition TxFlags.h:173
constexpr std::uint32_t const tfTransferable
Definition TxFlags.h:123
constexpr std::uint32_t const tfNFTokenMintMask
Definition TxFlags.h:197
constexpr std::uint32_t asfDisallowXRP
Definition TxFlags.h:60
constexpr std::uint32_t tfInnerBatchTxn
Definition TxFlags.h:42
constexpr std::uint32_t const tfMPTokenIssuanceDestroyMask
Definition TxFlags.h:182