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*/
95
96// OfferCreate flags:
97constexpr std::uint32_t tfPassive = 0x00010000;
98constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
99constexpr std::uint32_t tfFillOrKill = 0x00040000;
100constexpr std::uint32_t tfSell = 0x00080000;
101constexpr std::uint32_t tfHybrid = 0x00100000;
104
105// Payment flags:
106constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
107constexpr std::uint32_t tfPartialPayment = 0x00020000;
108constexpr std::uint32_t tfLimitQuality = 0x00040000;
112
113// TrustSet flags:
114constexpr std::uint32_t tfSetfAuth = 0x00010000;
115constexpr std::uint32_t tfSetNoRipple = 0x00020000;
116constexpr std::uint32_t tfClearNoRipple = 0x00040000;
117constexpr std::uint32_t tfSetFreeze = 0x00100000;
118constexpr std::uint32_t tfClearFreeze = 0x00200000;
119constexpr std::uint32_t tfSetDeepFreeze = 0x00400000;
120constexpr std::uint32_t tfClearDeepFreeze = 0x00800000;
124
125// valid flags for granular permission
127
128// bits representing supportedGranularMask are set to 0 and the bits
129// representing other flags are set to 1 in tfPermissionMask.
131
132// EnableAmendment flags:
133constexpr std::uint32_t tfGotMajority = 0x00010000;
134constexpr std::uint32_t tfLostMajority = 0x00020000;
135
136// PaymentChannelClaim flags:
137constexpr std::uint32_t tfRenew = 0x00010000;
138constexpr std::uint32_t tfClose = 0x00020000;
140
141// NFTokenMint flags:
142constexpr std::uint32_t const tfBurnable = 0x00000001;
143constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
144constexpr std::uint32_t const tfTrustLine = 0x00000004;
145constexpr std::uint32_t const tfTransferable = 0x00000008;
146constexpr std::uint32_t const tfMutable = 0x00000010;
147
148// MPTokenIssuanceCreate flags:
149// NOTE - there is intentionally no flag here for lsfMPTLocked, which this transaction cannot mutate.
158
159// MPTokenAuthorize flags:
160constexpr std::uint32_t const tfMPTUnauthorize = 0x00000001;
162
163// MPTokenIssuanceSet flags:
164constexpr std::uint32_t const tfMPTLock = 0x00000001;
165constexpr std::uint32_t const tfMPTUnlock = 0x00000002;
169
170// MPTokenIssuanceDestroy flags:
171constexpr std::uint32_t const tfMPTokenIssuanceDestroyMask = ~tfUniversal;
172
173// Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
174// accounts allowed a TrustLine to be added to the issuer of that token
175// without explicit permission from that issuer. This was enabled by
176// minting the NFToken with the tfTrustLine flag set.
177//
178// That capability could be used to attack the NFToken issuer. It
179// would be possible for two accounts to trade the NFToken back and forth
180// building up any number of TrustLines on the issuer, increasing the
181// issuer's reserve without bound.
182//
183// The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
184// tfTrustLine flag as a way to prevent the attack. But until the
185// amendment passes we still need to keep the old behavior available.
188
190 ~( ~tfNFTokenMintMask | tfTrustLine);
191
192// if featureDynamicNFT enabled then new flag allowing mutable URI available.
194 ~( ~tfNFTokenMintOldMask | tfMutable);
195
197 ~( ~tfNFTokenMintMask | tfMutable);
198
199// NFTokenCreateOffer flags:
200constexpr std::uint32_t const tfSellNFToken = 0x00000001;
203
204// NFTokenCancelOffer flags:
205constexpr std::uint32_t const tfNFTokenCancelOfferMask = ~tfUniversal;
206
207// NFTokenAcceptOffer flags:
208constexpr std::uint32_t const tfNFTokenAcceptOfferMask = ~tfUniversal;
209
210// Clawback flags:
211constexpr std::uint32_t const tfClawbackMask = ~tfUniversal;
212
213// AMM Flags:
214constexpr std::uint32_t tfLPToken = 0x00010000;
215constexpr std::uint32_t tfWithdrawAll = 0x00020000;
217constexpr std::uint32_t tfSingleAsset = 0x00080000;
218constexpr std::uint32_t tfTwoAsset = 0x00100000;
219constexpr std::uint32_t tfOneAssetLPToken = 0x00200000;
220constexpr std::uint32_t tfLimitLPToken = 0x00400000;
221constexpr std::uint32_t tfTwoAssetIfEmpty = 0x00800000;
230
231// AMMClawback flags:
232constexpr std::uint32_t tfClawTwoAssets = 0x00000001;
234
235// BridgeModify flags:
238
239// VaultCreate flags:
240constexpr std::uint32_t const tfVaultPrivate = 0x00010000;
241static_assert(tfVaultPrivate == lsfVaultPrivate);
242constexpr std::uint32_t const tfVaultShareNonTransferable = 0x00020000;
244
245// Batch Flags:
246constexpr std::uint32_t tfAllOrNothing = 0x00010000;
247constexpr std::uint32_t tfOnlyOne = 0x00020000;
248constexpr std::uint32_t tfUntilFailure = 0x00040000;
249constexpr std::uint32_t tfIndependent = 0x00080000;
255constexpr std::uint32_t const tfBatchMask =
257
258// clang-format on
259
260} // namespace ripple
261
262#endif
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition: algorithm.h:26
constexpr std::uint32_t const tfMPTokenIssuanceSetMask
Definition: TxFlags.h:166
constexpr std::uint32_t tfAllOrNothing
Definition: TxFlags.h:246
constexpr std::uint32_t tfAllowXRP
Definition: TxFlags.h:71
constexpr std::uint32_t tfSingleAsset
Definition: TxFlags.h:217
constexpr std::uint32_t asfGlobalFreeze
Definition: TxFlags.h:83
constexpr std::uint32_t tfOneAssetWithdrawAll
Definition: TxFlags.h:216
constexpr std::uint32_t tfBridgeModifyMask
Definition: TxFlags.h:237
constexpr std::uint32_t const tfMPTokenIssuanceSetPermissionMask
Definition: TxFlags.h:168
constexpr std::uint32_t const tfBatchMask
Definition: TxFlags.h:255
constexpr std::uint32_t asfDepositAuth
Definition: TxFlags.h:85
constexpr std::uint32_t const tfOnlyXRP
Definition: TxFlags.h:143
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition: TxFlags.h:90
constexpr std::uint32_t tfSetDeepFreeze
Definition: TxFlags.h:119
constexpr std::uint32_t const tfMPTCanTransfer
Definition: TxFlags.h:154
constexpr std::uint32_t const tfMPTokenIssuanceSetGranularMask
Definition: TxFlags.h:167
constexpr std::uint32_t tfOnlyOne
Definition: TxFlags.h:247
constexpr std::uint32_t asfRequireDest
Definition: TxFlags.h:77
constexpr std::uint32_t const tfNFTokenCreateOfferMask
Definition: TxFlags.h:201
constexpr std::uint32_t tfOfferCreateMask
Definition: TxFlags.h:102
constexpr std::uint32_t tfRenew
Definition: TxFlags.h:137
constexpr std::uint32_t tfWithdrawMask
Definition: TxFlags.h:228
constexpr std::uint32_t tfIndependent
Definition: TxFlags.h:249
constexpr std::uint32_t const tfNFTokenMintOldMaskWithMutable
Definition: TxFlags.h:193
constexpr std::uint32_t tfMPTPaymentMask
Definition: TxFlags.h:111
constexpr std::uint32_t tfGotMajority
Definition: TxFlags.h:133
constexpr std::uint32_t const tfMPTCanTrade
Definition: TxFlags.h:153
constexpr std::uint32_t const tfMPTUnlock
Definition: TxFlags.h:165
constexpr std::uint32_t const tfClawbackMask
Definition: TxFlags.h:211
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition: TxFlags.h:86
constexpr std::uint32_t const tfSellNFToken
Definition: TxFlags.h:200
constexpr std::uint32_t const tfNFTokenMintMaskWithMutable
Definition: TxFlags.h:196
constexpr std::uint32_t tfOptionalDestTag
Definition: TxFlags.h:67
@ lsfMPTCanTransfer
@ lsfMPTCanTrade
@ lsfMPTCanEscrow
@ lsfMPTCanLock
@ lsfMPTCanClawback
@ lsfVaultPrivate
@ lsfMPTRequireAuth
constexpr std::uint32_t const tfMPTokenIssuanceCreateMask
Definition: TxFlags.h:156
constexpr std::uint32_t tfAccountSetMask
Definition: TxFlags.h:72
constexpr std::uint32_t const tfNFTokenMintOldMask
Definition: TxFlags.h:189
constexpr std::uint32_t tfRequireDestTag
Definition: TxFlags.h:66
constexpr std::uint32_t const tfVaultPrivate
Definition: TxFlags.h:240
constexpr std::uint32_t tfLimitLPToken
Definition: TxFlags.h:220
constexpr std::uint32_t const tfMPTokenAuthorizeMask
Definition: TxFlags.h:161
constexpr std::uint32_t tfHybrid
Definition: TxFlags.h:101
constexpr std::uint32_t tfClawTwoAssets
Definition: TxFlags.h:232
constexpr std::uint32_t const tfBurnable
Definition: TxFlags.h:142
constexpr std::uint32_t asfNoFreeze
Definition: TxFlags.h:82
constexpr std::uint32_t tfFillOrKill
Definition: TxFlags.h:99
constexpr std::uint32_t tfPassive
Definition: TxFlags.h:97
constexpr std::uint32_t tfOneAssetLPToken
Definition: TxFlags.h:219
constexpr std::uint32_t tfImmediateOrCancel
Definition: TxFlags.h:98
constexpr std::uint32_t asfDisableMaster
Definition: TxFlags.h:80
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition: TxFlags.h:93
constexpr std::uint32_t tfTrustSetPermissionMask
Definition: TxFlags.h:130
constexpr std::uint32_t tfTwoAsset
Definition: TxFlags.h:218
constexpr std::uint32_t tfAMMClawbackMask
Definition: TxFlags.h:233
constexpr std::uint32_t tfUntilFailure
Definition: TxFlags.h:248
constexpr std::uint32_t tfPartialPayment
Definition: TxFlags.h:107
constexpr std::uint32_t const tfTrustLine
Definition: TxFlags.h:144
constexpr std::uint32_t tfWithdrawAll
Definition: TxFlags.h:215
constexpr std::uint32_t tfClearNoRipple
Definition: TxFlags.h:116
constexpr std::uint32_t const tfMPTUnauthorize
Definition: TxFlags.h:160
constexpr std::uint32_t tfDepositSubTx
Definition: TxFlags.h:225
constexpr std::uint32_t tfClearAccountCreateAmount
Definition: TxFlags.h:236
constexpr std::uint32_t tfSetfAuth
Definition: TxFlags.h:114
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:118
constexpr std::uint32_t tfRequireAuth
Definition: TxFlags.h:68
constexpr std::uint32_t const tfMPTLock
Definition: TxFlags.h:164
constexpr std::uint32_t tfLPToken
Definition: TxFlags.h:214
constexpr std::uint32_t tfUniversal
Definition: TxFlags.h:62
constexpr std::uint32_t tfNoRippleDirect
Definition: TxFlags.h:106
constexpr std::uint32_t tfOptionalAuth
Definition: TxFlags.h:69
constexpr std::uint32_t const tfVaultShareNonTransferable
Definition: TxFlags.h:242
constexpr std::uint32_t tfClearDeepFreeze
Definition: TxFlags.h:120
constexpr std::uint32_t tfDisallowXRP
Definition: TxFlags.h:70
constexpr std::uint32_t const tfNFTokenCancelOfferMask
Definition: TxFlags.h:205
constexpr std::uint32_t tfDepositMask
Definition: TxFlags.h:229
constexpr std::uint32_t tfWithdrawSubTx
Definition: TxFlags.h:222
constexpr std::uint32_t tfPaymentMask
Definition: TxFlags.h:109
constexpr std::uint32_t tfLimitQuality
Definition: TxFlags.h:108
constexpr std::uint32_t tfTrustSetMask
Definition: TxFlags.h:121
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition: TxFlags.h:92
constexpr std::uint32_t tfClose
Definition: TxFlags.h:138
constexpr std::uint32_t tfPayChanClaimMask
Definition: TxFlags.h:139
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition: TxFlags.h:60
constexpr std::uint32_t tfTwoAssetIfEmpty
Definition: TxFlags.h:221
constexpr std::uint32_t tfUniversalMask
Definition: TxFlags.h:63
constexpr std::uint32_t tfTrustSetGranularMask
Definition: TxFlags.h:126
constexpr std::uint32_t asfAllowTrustLineClawback
Definition: TxFlags.h:94
constexpr std::uint32_t tfSell
Definition: TxFlags.h:100
constexpr std::uint32_t asfRequireAuth
Definition: TxFlags.h:78
constexpr std::uint32_t const tfNFTokenAcceptOfferMask
Definition: TxFlags.h:208
constexpr std::uint32_t const tfMPTCanEscrow
Definition: TxFlags.h:152
constexpr std::uint32_t tfLostMajority
Definition: TxFlags.h:134
constexpr std::uint32_t const tfMPTRequireAuth
Definition: TxFlags.h:151
constexpr std::uint32_t tfSetFreeze
Definition: TxFlags.h:117
constexpr std::uint32_t tfSetNoRipple
Definition: TxFlags.h:115
constexpr std::uint32_t const tfVaultCreateMask
Definition: TxFlags.h:243
constexpr std::uint32_t const tfMutable
Definition: TxFlags.h:146
constexpr std::uint32_t const tfMPTCanLock
Definition: TxFlags.h:150
constexpr std::uint32_t const tfMPTCanClawback
Definition: TxFlags.h:155
constexpr std::uint32_t const tfTransferable
Definition: TxFlags.h:145
constexpr std::uint32_t const tfNFTokenMintMask
Definition: TxFlags.h:186
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:171