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