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 <cstdint>
24
25#include <xrpl/protocol/LedgerFormats.h>
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;
62constexpr std::uint32_t tfUniversalMask = ~tfUniversal;
63
64// AccountSet flags:
65constexpr std::uint32_t tfRequireDestTag = 0x00010000;
66constexpr std::uint32_t tfOptionalDestTag = 0x00020000;
67constexpr std::uint32_t tfRequireAuth = 0x00040000;
68constexpr std::uint32_t tfOptionalAuth = 0x00080000;
69constexpr std::uint32_t tfDisallowXRP = 0x00100000;
70constexpr std::uint32_t tfAllowXRP = 0x00200000;
74
75// AccountSet SetFlag/ClearFlag values
86/* // reserved for Hooks amendment
87constexpr std::uint32_t asfTshCollect = 11;
88*/
94
95// OfferCreate flags:
96constexpr std::uint32_t tfPassive = 0x00010000;
97constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
98constexpr std::uint32_t tfFillOrKill = 0x00040000;
99constexpr std::uint32_t tfSell = 0x00080000;
102
103// Payment flags:
104constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
105constexpr std::uint32_t tfPartialPayment = 0x00020000;
106constexpr std::uint32_t tfLimitQuality = 0x00040000;
110
111// TrustSet flags:
112constexpr std::uint32_t tfSetfAuth = 0x00010000;
113constexpr std::uint32_t tfSetNoRipple = 0x00020000;
114constexpr std::uint32_t tfClearNoRipple = 0x00040000;
115constexpr std::uint32_t tfSetFreeze = 0x00100000;
116constexpr std::uint32_t tfClearFreeze = 0x00200000;
120
121// EnableAmendment flags:
122constexpr std::uint32_t tfGotMajority = 0x00010000;
123constexpr std::uint32_t tfLostMajority = 0x00020000;
124
125// PaymentChannelClaim flags:
126constexpr std::uint32_t tfRenew = 0x00010000;
127constexpr std::uint32_t tfClose = 0x00020000;
129
130// NFTokenMint flags:
131constexpr std::uint32_t const tfBurnable = 0x00000001;
132constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
133constexpr std::uint32_t const tfTrustLine = 0x00000004;
134constexpr std::uint32_t const tfTransferable = 0x00000008;
135constexpr std::uint32_t const tfMutable = 0x00000010;
136
137// MPTokenIssuanceCreate flags:
138// NOTE - there is intentionally no flag here for lsfMPTLocked, which this transaction cannot mutate.
147
148// MPTokenAuthorize flags:
149constexpr std::uint32_t const tfMPTUnauthorize = 0x00000001;
151
152// MPTokenIssuanceSet flags:
153constexpr std::uint32_t const tfMPTLock = 0x00000001;
154constexpr std::uint32_t const tfMPTUnlock = 0x00000002;
156
157// MPTokenIssuanceDestroy flags:
158constexpr std::uint32_t const tfMPTokenIssuanceDestroyMask = ~tfUniversal;
159
160// Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
161// accounts allowed a TrustLine to be added to the issuer of that token
162// without explicit permission from that issuer. This was enabled by
163// minting the NFToken with the tfTrustLine flag set.
164//
165// That capability could be used to attack the NFToken issuer. It
166// would be possible for two accounts to trade the NFToken back and forth
167// building up any number of TrustLines on the issuer, increasing the
168// issuer's reserve without bound.
169//
170// The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
171// tfTrustLine flag as a way to prevent the attack. But until the
172// amendment passes we still need to keep the old behavior available.
175
177 ~( ~tfNFTokenMintMask | tfTrustLine);
178
179// if featureDynamicNFT enabled then new flag allowing mutable URI available.
181 ~( ~tfNFTokenMintOldMask | tfMutable);
182
184 ~( ~tfNFTokenMintMask | tfMutable);
185
186// NFTokenCreateOffer flags:
187constexpr std::uint32_t const tfSellNFToken = 0x00000001;
190
191// NFTokenCancelOffer flags:
192constexpr std::uint32_t const tfNFTokenCancelOfferMask = ~tfUniversal;
193
194// NFTokenAcceptOffer flags:
195constexpr std::uint32_t const tfNFTokenAcceptOfferMask = ~tfUniversal;
196
197// Clawback flags:
198constexpr std::uint32_t const tfClawbackMask = ~tfUniversal;
199
200// AMM Flags:
201constexpr std::uint32_t tfLPToken = 0x00010000;
202constexpr std::uint32_t tfWithdrawAll = 0x00020000;
204constexpr std::uint32_t tfSingleAsset = 0x00080000;
205constexpr std::uint32_t tfTwoAsset = 0x00100000;
206constexpr std::uint32_t tfOneAssetLPToken = 0x00200000;
207constexpr std::uint32_t tfLimitLPToken = 0x00400000;
208constexpr std::uint32_t tfTwoAssetIfEmpty = 0x00800000;
217
218// AMMClawback flags:
219constexpr std::uint32_t tfClawTwoAssets = 0x00000001;
221
222// BridgeModify flags:
225// clang-format on
226
227} // namespace ripple
228
229#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:155
constexpr std::uint32_t tfAllowXRP
Definition: TxFlags.h:70
constexpr std::uint32_t tfSingleAsset
Definition: TxFlags.h:204
constexpr std::uint32_t asfGlobalFreeze
Definition: TxFlags.h:82
constexpr std::uint32_t tfOneAssetWithdrawAll
Definition: TxFlags.h:203
constexpr std::uint32_t tfBridgeModifyMask
Definition: TxFlags.h:224
constexpr std::uint32_t asfDepositAuth
Definition: TxFlags.h:84
constexpr std::uint32_t const tfOnlyXRP
Definition: TxFlags.h:132
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition: TxFlags.h:89
constexpr std::uint32_t const tfMPTCanTransfer
Definition: TxFlags.h:143
constexpr std::uint32_t asfRequireDest
Definition: TxFlags.h:76
constexpr std::uint32_t const tfNFTokenCreateOfferMask
Definition: TxFlags.h:188
constexpr std::uint32_t tfOfferCreateMask
Definition: TxFlags.h:100
constexpr std::uint32_t tfRenew
Definition: TxFlags.h:126
constexpr std::uint32_t tfWithdrawMask
Definition: TxFlags.h:215
constexpr std::uint32_t const tfNFTokenMintOldMaskWithMutable
Definition: TxFlags.h:180
constexpr std::uint32_t tfMPTPaymentMask
Definition: TxFlags.h:109
constexpr std::uint32_t tfGotMajority
Definition: TxFlags.h:122
constexpr std::uint32_t const tfMPTCanTrade
Definition: TxFlags.h:142
constexpr std::uint32_t const tfMPTUnlock
Definition: TxFlags.h:154
constexpr std::uint32_t const tfClawbackMask
Definition: TxFlags.h:198
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition: TxFlags.h:85
constexpr std::uint32_t const tfSellNFToken
Definition: TxFlags.h:187
constexpr std::uint32_t const tfNFTokenMintMaskWithMutable
Definition: TxFlags.h:183
constexpr std::uint32_t tfOptionalDestTag
Definition: TxFlags.h:66
@ lsfMPTCanTransfer
@ lsfMPTCanTrade
@ lsfMPTCanEscrow
@ lsfMPTCanLock
@ lsfMPTCanClawback
@ lsfMPTRequireAuth
constexpr std::uint32_t const tfMPTokenIssuanceCreateMask
Definition: TxFlags.h:145
constexpr std::uint32_t tfAccountSetMask
Definition: TxFlags.h:71
constexpr std::uint32_t const tfNFTokenMintOldMask
Definition: TxFlags.h:176
constexpr std::uint32_t tfRequireDestTag
Definition: TxFlags.h:65
constexpr std::uint32_t tfLimitLPToken
Definition: TxFlags.h:207
constexpr std::uint32_t const tfMPTokenAuthorizeMask
Definition: TxFlags.h:150
constexpr std::uint32_t tfClawTwoAssets
Definition: TxFlags.h:219
constexpr std::uint32_t const tfBurnable
Definition: TxFlags.h:131
constexpr std::uint32_t asfNoFreeze
Definition: TxFlags.h:81
constexpr std::uint32_t tfFillOrKill
Definition: TxFlags.h:98
constexpr std::uint32_t tfPassive
Definition: TxFlags.h:96
constexpr std::uint32_t tfOneAssetLPToken
Definition: TxFlags.h:206
constexpr std::uint32_t tfImmediateOrCancel
Definition: TxFlags.h:97
constexpr std::uint32_t asfDisableMaster
Definition: TxFlags.h:79
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition: TxFlags.h:92
constexpr std::uint32_t tfTwoAsset
Definition: TxFlags.h:205
constexpr std::uint32_t tfAMMClawbackMask
Definition: TxFlags.h:220
constexpr std::uint32_t tfPartialPayment
Definition: TxFlags.h:105
constexpr std::uint32_t const tfTrustLine
Definition: TxFlags.h:133
constexpr std::uint32_t tfWithdrawAll
Definition: TxFlags.h:202
constexpr std::uint32_t tfClearNoRipple
Definition: TxFlags.h:114
constexpr std::uint32_t const tfMPTUnauthorize
Definition: TxFlags.h:149
constexpr std::uint32_t tfDepositSubTx
Definition: TxFlags.h:212
constexpr std::uint32_t tfClearAccountCreateAmount
Definition: TxFlags.h:223
constexpr std::uint32_t tfSetfAuth
Definition: TxFlags.h:112
constexpr std::uint32_t asfAccountTxnID
Definition: TxFlags.h:80
constexpr std::uint32_t asfDefaultRipple
Definition: TxFlags.h:83
constexpr std::uint32_t asfDisallowIncomingCheck
Definition: TxFlags.h:90
constexpr std::uint32_t tfClearFreeze
Definition: TxFlags.h:116
constexpr std::uint32_t tfRequireAuth
Definition: TxFlags.h:67
constexpr std::uint32_t const tfMPTLock
Definition: TxFlags.h:153
constexpr std::uint32_t tfLPToken
Definition: TxFlags.h:201
constexpr std::uint32_t tfUniversal
Definition: TxFlags.h:61
constexpr std::uint32_t tfNoRippleDirect
Definition: TxFlags.h:104
constexpr std::uint32_t tfOptionalAuth
Definition: TxFlags.h:68
constexpr std::uint32_t tfDisallowXRP
Definition: TxFlags.h:69
constexpr std::uint32_t const tfNFTokenCancelOfferMask
Definition: TxFlags.h:192
constexpr std::uint32_t tfDepositMask
Definition: TxFlags.h:216
constexpr std::uint32_t tfWithdrawSubTx
Definition: TxFlags.h:209
constexpr std::uint32_t tfPaymentMask
Definition: TxFlags.h:107
constexpr std::uint32_t tfLimitQuality
Definition: TxFlags.h:106
constexpr std::uint32_t tfTrustSetMask
Definition: TxFlags.h:117
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition: TxFlags.h:91
constexpr std::uint32_t tfClose
Definition: TxFlags.h:127
constexpr std::uint32_t tfPayChanClaimMask
Definition: TxFlags.h:128
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition: TxFlags.h:60
constexpr std::uint32_t tfTwoAssetIfEmpty
Definition: TxFlags.h:208
constexpr std::uint32_t tfUniversalMask
Definition: TxFlags.h:62
constexpr std::uint32_t asfAllowTrustLineClawback
Definition: TxFlags.h:93
constexpr std::uint32_t tfSell
Definition: TxFlags.h:99
constexpr std::uint32_t asfRequireAuth
Definition: TxFlags.h:77
constexpr std::uint32_t const tfNFTokenAcceptOfferMask
Definition: TxFlags.h:195
constexpr std::uint32_t const tfMPTCanEscrow
Definition: TxFlags.h:141
constexpr std::uint32_t tfLostMajority
Definition: TxFlags.h:123
constexpr std::uint32_t const tfMPTRequireAuth
Definition: TxFlags.h:140
constexpr std::uint32_t tfSetFreeze
Definition: TxFlags.h:115
constexpr std::uint32_t tfSetNoRipple
Definition: TxFlags.h:113
constexpr std::uint32_t const tfMutable
Definition: TxFlags.h:135
constexpr std::uint32_t const tfMPTCanLock
Definition: TxFlags.h:139
constexpr std::uint32_t const tfMPTCanClawback
Definition: TxFlags.h:144
constexpr std::uint32_t const tfTransferable
Definition: TxFlags.h:134
constexpr std::uint32_t const tfNFTokenMintMask
Definition: TxFlags.h:173
constexpr std::uint32_t asfDisallowXRP
Definition: TxFlags.h:78
constexpr std::uint32_t const tfMPTokenIssuanceDestroyMask
Definition: TxFlags.h:158