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 */
91 
92 // OfferCreate flags:
93 constexpr std::uint32_t tfPassive = 0x00010000;
94 constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
95 constexpr std::uint32_t tfFillOrKill = 0x00040000;
96 constexpr std::uint32_t tfSell = 0x00080000;
99 
100 // Payment flags:
101 constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
102 constexpr std::uint32_t tfPartialPayment = 0x00020000;
103 constexpr std::uint32_t tfLimitQuality = 0x00040000;
106 
107 // TrustSet flags:
108 constexpr std::uint32_t tfSetfAuth = 0x00010000;
109 constexpr std::uint32_t tfSetNoRipple = 0x00020000;
110 constexpr std::uint32_t tfClearNoRipple = 0x00040000;
111 constexpr std::uint32_t tfSetFreeze = 0x00100000;
112 constexpr std::uint32_t tfClearFreeze = 0x00200000;
115  tfClearFreeze);
116 
117 // EnableAmendment flags:
118 constexpr std::uint32_t tfGotMajority = 0x00010000;
119 constexpr std::uint32_t tfLostMajority = 0x00020000;
120 
121 // PaymentChannelClaim flags:
122 constexpr std::uint32_t tfRenew = 0x00010000;
123 constexpr std::uint32_t tfClose = 0x00020000;
125 
126 // NFTokenMint flags:
127 constexpr std::uint32_t const tfBurnable = 0x00000001;
128 constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
129 constexpr std::uint32_t const tfTrustLine = 0x00000004;
130 constexpr std::uint32_t const tfTransferable = 0x00000008;
131 
132 // Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
133 // accounts allowed a TrustLine to be added to the issuer of that token
134 // without explicit permission from that issuer. This was enabled by
135 // minting the NFToken with the tfTrustLine flag set.
136 //
137 // That capability could be used to attack the NFToken issuer. It
138 // would be possible for two accounts to trade the NFToken back and forth
139 // building up any number of TrustLines on the issuer, increasing the
140 // issuer's reserve without bound.
141 //
142 // The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
143 // tfTrustLine flag as a way to prevent the attack. But until the
144 // amendment passes we still need to keep the old behavior available.
147 
150 
151 // NFTokenCreateOffer flags:
152 constexpr std::uint32_t const tfSellNFToken = 0x00000001;
155 
156 // NFTokenCancelOffer flags:
158 
159 // NFTokenAcceptOffer flags:
161 
162 // clang-format on
163 
164 } // namespace ripple
165 
166 #endif
ripple::tfGotMajority
constexpr std::uint32_t tfGotMajority
Definition: TxFlags.h:118
ripple::tfTransferable
constexpr const std::uint32_t tfTransferable
Definition: TxFlags.h:130
ripple::tfLostMajority
constexpr std::uint32_t tfLostMajority
Definition: TxFlags.h:119
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:113
ripple::tfNFTokenAcceptOfferMask
constexpr const std::uint32_t tfNFTokenAcceptOfferMask
Definition: TxFlags.h:160
ripple::tfDisallowXRP
constexpr std::uint32_t tfDisallowXRP
Definition: TxFlags.h:67
ripple::tfNFTokenMintOldMask
constexpr const std::uint32_t tfNFTokenMintOldMask
Definition: TxFlags.h:145
ripple::asfNoFreeze
constexpr std::uint32_t asfNoFreeze
Definition: TxFlags.h:79
ripple::tfSetNoRipple
constexpr std::uint32_t tfSetNoRipple
Definition: TxFlags.h:109
ripple::tfClose
constexpr std::uint32_t tfClose
Definition: TxFlags.h:123
ripple::tfFullyCanonicalSig
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition: TxFlags.h:58
ripple::tfOfferCreateMask
constexpr std::uint32_t tfOfferCreateMask
Definition: TxFlags.h:97
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:93
ripple::asfDisallowIncomingTrustline
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition: TxFlags.h:90
ripple::tfAccountSetMask
constexpr std::uint32_t tfAccountSetMask
Definition: TxFlags.h:69
ripple::asfDisallowIncomingCheck
constexpr std::uint32_t asfDisallowIncomingCheck
Definition: TxFlags.h:88
ripple::tfLimitQuality
constexpr std::uint32_t tfLimitQuality
Definition: TxFlags.h:103
ripple::asfDisableMaster
constexpr std::uint32_t asfDisableMaster
Definition: TxFlags.h:77
ripple::tfBurnable
constexpr const std::uint32_t tfBurnable
Definition: TxFlags.h:127
ripple::tfPartialPayment
constexpr std::uint32_t tfPartialPayment
Definition: TxFlags.h:102
ripple::tfClearNoRipple
constexpr std::uint32_t tfClearNoRipple
Definition: TxFlags.h:110
ripple::tfSellNFToken
constexpr const std::uint32_t tfSellNFToken
Definition: TxFlags.h:152
cstdint
std::uint32_t
ripple::tfPayChanClaimMask
constexpr std::uint32_t tfPayChanClaimMask
Definition: TxFlags.h:124
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:122
ripple::tfFillOrKill
constexpr std::uint32_t tfFillOrKill
Definition: TxFlags.h:95
ripple::tfNFTokenCancelOfferMask
constexpr const std::uint32_t tfNFTokenCancelOfferMask
Definition: TxFlags.h:157
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:96
ripple::tfSetFreeze
constexpr std::uint32_t tfSetFreeze
Definition: TxFlags.h:111
ripple::tfSetfAuth
constexpr std::uint32_t tfSetfAuth
Definition: TxFlags.h:108
ripple::tfNFTokenCreateOfferMask
constexpr const std::uint32_t tfNFTokenCreateOfferMask
Definition: TxFlags.h:153
ripple::asfRequireAuth
constexpr std::uint32_t asfRequireAuth
Definition: TxFlags.h:75
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:129
ripple::tfClearFreeze
constexpr std::uint32_t tfClearFreeze
Definition: TxFlags.h:112
ripple::tfOnlyXRP
constexpr const std::uint32_t tfOnlyXRP
Definition: TxFlags.h:128
ripple::tfPaymentMask
constexpr std::uint32_t tfPaymentMask
Definition: TxFlags.h:104
ripple::tfRequireDestTag
constexpr std::uint32_t tfRequireDestTag
Definition: TxFlags.h:63
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::asfAccountTxnID
constexpr std::uint32_t asfAccountTxnID
Definition: TxFlags.h:78
ripple::tfImmediateOrCancel
constexpr std::uint32_t tfImmediateOrCancel
Definition: TxFlags.h:94
ripple::asfDisallowIncomingNFTokenOffer
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition: TxFlags.h:87
ripple::tfNoRippleDirect
constexpr std::uint32_t tfNoRippleDirect
Definition: TxFlags.h:101
ripple::asfAuthorizedNFTokenMinter
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition: TxFlags.h:83
ripple::tfNFTokenMintMask
constexpr const std::uint32_t tfNFTokenMintMask
Definition: TxFlags.h:148