rippled
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 namespace ripple {
26 
54 // Formatting equals sign aligned 4 spaces after longest prefix, except for
55 // wrapped lines
56 // clang-format off
57 // Universal Transaction flags:
58 constexpr std::uint32_t tfFullyCanonicalSig = 0x80000000;
61 
62 // AccountSet flags:
63 constexpr std::uint32_t tfRequireDestTag = 0x00010000;
64 constexpr std::uint32_t tfOptionalDestTag = 0x00020000;
65 constexpr std::uint32_t tfRequireAuth = 0x00040000;
66 constexpr std::uint32_t tfOptionalAuth = 0x00080000;
67 constexpr std::uint32_t tfDisallowXRP = 0x00100000;
68 constexpr std::uint32_t tfAllowXRP = 0x00200000;
72 
73 // AccountSet SetFlag/ClearFlag values
79 constexpr std::uint32_t asfNoFreeze = 6;
84 /* // reserved for Hooks amendment
85 constexpr std::uint32_t asfTshCollect = 11;
86 */
92 
93 // OfferCreate flags:
94 constexpr std::uint32_t tfPassive = 0x00010000;
95 constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
96 constexpr std::uint32_t tfFillOrKill = 0x00040000;
97 constexpr std::uint32_t tfSell = 0x00080000;
100 
101 // Payment flags:
102 constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
103 constexpr std::uint32_t tfPartialPayment = 0x00020000;
104 constexpr std::uint32_t tfLimitQuality = 0x00040000;
107 
108 // TrustSet flags:
109 constexpr std::uint32_t tfSetfAuth = 0x00010000;
110 constexpr std::uint32_t tfSetNoRipple = 0x00020000;
111 constexpr std::uint32_t tfClearNoRipple = 0x00040000;
112 constexpr std::uint32_t tfSetFreeze = 0x00100000;
113 constexpr std::uint32_t tfClearFreeze = 0x00200000;
116  tfClearFreeze);
117 
118 // EnableAmendment flags:
119 constexpr std::uint32_t tfGotMajority = 0x00010000;
120 constexpr std::uint32_t tfLostMajority = 0x00020000;
121 
122 // PaymentChannelClaim flags:
123 constexpr std::uint32_t tfRenew = 0x00010000;
124 constexpr std::uint32_t tfClose = 0x00020000;
126 
127 // NFTokenMint flags:
128 constexpr std::uint32_t const tfBurnable = 0x00000001;
129 constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
130 constexpr std::uint32_t const tfTrustLine = 0x00000004;
131 constexpr std::uint32_t const tfTransferable = 0x00000008;
132 
133 // Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
134 // accounts allowed a TrustLine to be added to the issuer of that token
135 // without explicit permission from that issuer. This was enabled by
136 // minting the NFToken with the tfTrustLine flag set.
137 //
138 // That capability could be used to attack the NFToken issuer. It
139 // would be possible for two accounts to trade the NFToken back and forth
140 // building up any number of TrustLines on the issuer, increasing the
141 // issuer's reserve without bound.
142 //
143 // The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
144 // tfTrustLine flag as a way to prevent the attack. But until the
145 // amendment passes we still need to keep the old behavior available.
148 
151 
152 // NFTokenCreateOffer flags:
153 constexpr std::uint32_t const tfSellNFToken = 0x00000001;
156 
157 // NFTokenCancelOffer flags:
159 
160 // NFTokenAcceptOffer flags:
162 
163 // Clawback flags:
165 
166 // AMM Flags:
167 constexpr std::uint32_t tfLPToken = 0x00010000;
168 constexpr std::uint32_t tfWithdrawAll = 0x00020000;
169 constexpr std::uint32_t tfOneAssetWithdrawAll = 0x00040000;
170 constexpr std::uint32_t tfSingleAsset = 0x00080000;
171 constexpr std::uint32_t tfTwoAsset = 0x00100000;
172 constexpr std::uint32_t tfOneAssetLPToken = 0x00200000;
173 constexpr std::uint32_t tfLimitLPToken = 0x00400000;
174 constexpr std::uint32_t tfTwoAssetIfEmpty = 0x00800000;
183 
184 // clang-format on
185 
186 } // namespace ripple
187 
188 #endif
ripple::tfGotMajority
constexpr std::uint32_t tfGotMajority
Definition: TxFlags.h:119
ripple::tfTransferable
constexpr const std::uint32_t tfTransferable
Definition: TxFlags.h:131
ripple::tfLostMajority
constexpr std::uint32_t tfLostMajority
Definition: TxFlags.h:120
ripple::asfDisallowXRP
constexpr std::uint32_t asfDisallowXRP
Definition: TxFlags.h:76
ripple::asfDepositAuth
constexpr std::uint32_t asfDepositAuth
Definition: TxFlags.h:82
ripple::tfTrustSetMask
constexpr std::uint32_t tfTrustSetMask
Definition: TxFlags.h:114
ripple::tfNFTokenAcceptOfferMask
constexpr const std::uint32_t tfNFTokenAcceptOfferMask
Definition: TxFlags.h:161
ripple::tfDisallowXRP
constexpr std::uint32_t tfDisallowXRP
Definition: TxFlags.h:67
ripple::tfNFTokenMintOldMask
constexpr const std::uint32_t tfNFTokenMintOldMask
Definition: TxFlags.h:146
ripple::asfNoFreeze
constexpr std::uint32_t asfNoFreeze
Definition: TxFlags.h:79
ripple::tfSetNoRipple
constexpr std::uint32_t tfSetNoRipple
Definition: TxFlags.h:110
ripple::tfClose
constexpr std::uint32_t tfClose
Definition: TxFlags.h:124
ripple::tfFullyCanonicalSig
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition: TxFlags.h:58
ripple::tfClawbackMask
constexpr const std::uint32_t tfClawbackMask
Definition: TxFlags.h:164
ripple::tfOfferCreateMask
constexpr std::uint32_t tfOfferCreateMask
Definition: TxFlags.h:98
ripple::tfAllowXRP
constexpr std::uint32_t tfAllowXRP
Definition: TxFlags.h:68
ripple::asfDisallowIncomingPayChan
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition: TxFlags.h:89
ripple::tfPassive
constexpr std::uint32_t tfPassive
Definition: TxFlags.h:94
ripple::asfDisallowIncomingTrustline
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition: TxFlags.h:90
ripple::tfAccountSetMask
constexpr std::uint32_t tfAccountSetMask
Definition: TxFlags.h:69
ripple::tfOneAssetWithdrawAll
constexpr std::uint32_t tfOneAssetWithdrawAll
Definition: TxFlags.h:169
ripple::asfDisallowIncomingCheck
constexpr std::uint32_t asfDisallowIncomingCheck
Definition: TxFlags.h:88
ripple::tfLimitQuality
constexpr std::uint32_t tfLimitQuality
Definition: TxFlags.h:104
ripple::tfWithdrawMask
constexpr std::uint32_t tfWithdrawMask
Definition: TxFlags.h:181
ripple::tfWithdrawAll
constexpr std::uint32_t tfWithdrawAll
Definition: TxFlags.h:168
ripple::asfDisableMaster
constexpr std::uint32_t asfDisableMaster
Definition: TxFlags.h:77
ripple::tfBurnable
constexpr const std::uint32_t tfBurnable
Definition: TxFlags.h:128
ripple::tfPartialPayment
constexpr std::uint32_t tfPartialPayment
Definition: TxFlags.h:103
ripple::tfWithdrawSubTx
constexpr std::uint32_t tfWithdrawSubTx
Definition: TxFlags.h:175
ripple::tfClearNoRipple
constexpr std::uint32_t tfClearNoRipple
Definition: TxFlags.h:111
ripple::tfSellNFToken
constexpr const std::uint32_t tfSellNFToken
Definition: TxFlags.h:153
cstdint
std::uint32_t
ripple::tfPayChanClaimMask
constexpr std::uint32_t tfPayChanClaimMask
Definition: TxFlags.h:125
ripple::tfSingleAsset
constexpr std::uint32_t tfSingleAsset
Definition: TxFlags.h:170
ripple::tfOptionalAuth
constexpr std::uint32_t tfOptionalAuth
Definition: TxFlags.h:66
ripple::tfRequireAuth
constexpr std::uint32_t tfRequireAuth
Definition: TxFlags.h:65
ripple::tfRenew
constexpr std::uint32_t tfRenew
Definition: TxFlags.h:123
ripple::tfFillOrKill
constexpr std::uint32_t tfFillOrKill
Definition: TxFlags.h:96
ripple::tfNFTokenCancelOfferMask
constexpr const std::uint32_t tfNFTokenCancelOfferMask
Definition: TxFlags.h:158
ripple
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition: RCLCensorshipDetector.h:29
ripple::tfSell
constexpr std::uint32_t tfSell
Definition: TxFlags.h:97
ripple::tfDepositMask
constexpr std::uint32_t tfDepositMask
Definition: TxFlags.h:182
ripple::tfLPToken
constexpr std::uint32_t tfLPToken
Definition: TxFlags.h:167
ripple::tfDepositSubTx
constexpr std::uint32_t tfDepositSubTx
Definition: TxFlags.h:178
ripple::tfSetFreeze
constexpr std::uint32_t tfSetFreeze
Definition: TxFlags.h:112
ripple::tfSetfAuth
constexpr std::uint32_t tfSetfAuth
Definition: TxFlags.h:109
ripple::tfNFTokenCreateOfferMask
constexpr const std::uint32_t tfNFTokenCreateOfferMask
Definition: TxFlags.h:154
ripple::asfRequireAuth
constexpr std::uint32_t asfRequireAuth
Definition: TxFlags.h:75
ripple::tfTwoAsset
constexpr std::uint32_t tfTwoAsset
Definition: TxFlags.h:171
ripple::asfDefaultRipple
constexpr std::uint32_t asfDefaultRipple
Definition: TxFlags.h:81
ripple::asfRequireDest
constexpr std::uint32_t asfRequireDest
Definition: TxFlags.h:74
ripple::asfGlobalFreeze
constexpr std::uint32_t asfGlobalFreeze
Definition: TxFlags.h:80
ripple::tfTrustLine
constexpr const std::uint32_t tfTrustLine
Definition: TxFlags.h:130
ripple::tfClearFreeze
constexpr std::uint32_t tfClearFreeze
Definition: TxFlags.h:113
ripple::tfOnlyXRP
constexpr const std::uint32_t tfOnlyXRP
Definition: TxFlags.h:129
ripple::tfPaymentMask
constexpr std::uint32_t tfPaymentMask
Definition: TxFlags.h:105
ripple::tfRequireDestTag
constexpr std::uint32_t tfRequireDestTag
Definition: TxFlags.h:63
ripple::asfAllowTrustLineClawback
constexpr std::uint32_t asfAllowTrustLineClawback
Definition: TxFlags.h:91
ripple::tfOneAssetLPToken
constexpr std::uint32_t tfOneAssetLPToken
Definition: TxFlags.h:172
ripple::tfUniversal
constexpr std::uint32_t tfUniversal
Definition: TxFlags.h:59
ripple::tfOptionalDestTag
constexpr std::uint32_t tfOptionalDestTag
Definition: TxFlags.h:64
ripple::tfUniversalMask
constexpr std::uint32_t tfUniversalMask
Definition: TxFlags.h:60
ripple::tfTwoAssetIfEmpty
constexpr std::uint32_t tfTwoAssetIfEmpty
Definition: TxFlags.h:174
ripple::asfAccountTxnID
constexpr std::uint32_t asfAccountTxnID
Definition: TxFlags.h:78
ripple::tfImmediateOrCancel
constexpr std::uint32_t tfImmediateOrCancel
Definition: TxFlags.h:95
ripple::asfDisallowIncomingNFTokenOffer
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition: TxFlags.h:87
ripple::tfNoRippleDirect
constexpr std::uint32_t tfNoRippleDirect
Definition: TxFlags.h:102
ripple::tfLimitLPToken
constexpr std::uint32_t tfLimitLPToken
Definition: TxFlags.h:173
ripple::asfAuthorizedNFTokenMinter
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition: TxFlags.h:83
ripple::tfNFTokenMintMask
constexpr const std::uint32_t tfNFTokenMintMask
Definition: TxFlags.h:149