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 // clang-format off
55 // Universal Transaction flags:
56 constexpr std::uint32_t tfFullyCanonicalSig = 0x80000000;
59 
60 // AccountSet flags:
61 constexpr std::uint32_t tfRequireDestTag = 0x00010000;
62 constexpr std::uint32_t tfOptionalDestTag = 0x00020000;
63 constexpr std::uint32_t tfRequireAuth = 0x00040000;
64 constexpr std::uint32_t tfOptionalAuth = 0x00080000;
65 constexpr std::uint32_t tfDisallowXRP = 0x00100000;
66 constexpr std::uint32_t tfAllowXRP = 0x00200000;
70 
71 // AccountSet SetFlag/ClearFlag values
77 constexpr std::uint32_t asfNoFreeze = 6;
82 /* // reserved for Hooks amendment
83 constexpr std::uint32_t asfTshCollect = 11;
84 */
89 
90 // OfferCreate flags:
91 constexpr std::uint32_t tfPassive = 0x00010000;
92 constexpr std::uint32_t tfImmediateOrCancel = 0x00020000;
93 constexpr std::uint32_t tfFillOrKill = 0x00040000;
94 constexpr std::uint32_t tfSell = 0x00080000;
97 
98 // Payment flags:
99 constexpr std::uint32_t tfNoRippleDirect = 0x00010000;
100 constexpr std::uint32_t tfPartialPayment = 0x00020000;
101 constexpr std::uint32_t tfLimitQuality = 0x00040000;
104 
105 // TrustSet flags:
106 constexpr std::uint32_t tfSetfAuth = 0x00010000;
107 constexpr std::uint32_t tfSetNoRipple = 0x00020000;
108 constexpr std::uint32_t tfClearNoRipple = 0x00040000;
109 constexpr std::uint32_t tfSetFreeze = 0x00100000;
110 constexpr std::uint32_t tfClearFreeze = 0x00200000;
113  tfClearFreeze);
114 
115 // EnableAmendment flags:
116 constexpr std::uint32_t tfGotMajority = 0x00010000;
117 constexpr std::uint32_t tfLostMajority = 0x00020000;
118 
119 // PaymentChannelClaim flags:
120 constexpr std::uint32_t tfRenew = 0x00010000;
121 constexpr std::uint32_t tfClose = 0x00020000;
123 
124 // NFTokenMint flags:
125 constexpr std::uint32_t const tfBurnable = 0x00000001;
126 constexpr std::uint32_t const tfOnlyXRP = 0x00000002;
127 constexpr std::uint32_t const tfTrustLine = 0x00000004;
128 constexpr std::uint32_t const tfTransferable = 0x00000008;
129 
130 // Prior to fixRemoveNFTokenAutoTrustLine, transfer of an NFToken between
131 // accounts allowed a TrustLine to be added to the issuer of that token
132 // without explicit permission from that issuer. This was enabled by
133 // minting the NFToken with the tfTrustLine flag set.
134 //
135 // That capability could be used to attack the NFToken issuer. It
136 // would be possible for two accounts to trade the NFToken back and forth
137 // building up any number of TrustLines on the issuer, increasing the
138 // issuer's reserve without bound.
139 //
140 // The fixRemoveNFTokenAutoTrustLine amendment disables minting with the
141 // tfTrustLine flag as a way to prevent the attack. But until the
142 // amendment passes we still need to keep the old behavior available.
145 
148 
149 // NFTokenCreateOffer flags:
150 constexpr std::uint32_t const tfSellNFToken = 0x00000001;
153 
154 // NFTokenCancelOffer flags:
156 
157 // NFTokenAcceptOffer flags:
159 
160 // clang-format on
161 
162 } // namespace ripple
163 
164 #endif
ripple::tfGotMajority
constexpr std::uint32_t tfGotMajority
Definition: TxFlags.h:116
ripple::tfTransferable
constexpr const std::uint32_t tfTransferable
Definition: TxFlags.h:128
ripple::tfLostMajority
constexpr std::uint32_t tfLostMajority
Definition: TxFlags.h:117
ripple::asfDisallowXRP
constexpr std::uint32_t asfDisallowXRP
Definition: TxFlags.h:74
ripple::asfDepositAuth
constexpr std::uint32_t asfDepositAuth
Definition: TxFlags.h:80
ripple::tfTrustSetMask
constexpr std::uint32_t tfTrustSetMask
Definition: TxFlags.h:111
ripple::tfNFTokenAcceptOfferMask
constexpr const std::uint32_t tfNFTokenAcceptOfferMask
Definition: TxFlags.h:158
ripple::tfDisallowXRP
constexpr std::uint32_t tfDisallowXRP
Definition: TxFlags.h:65
ripple::tfNFTokenMintOldMask
constexpr const std::uint32_t tfNFTokenMintOldMask
Definition: TxFlags.h:143
ripple::asfNoFreeze
constexpr std::uint32_t asfNoFreeze
Definition: TxFlags.h:77
ripple::tfSetNoRipple
constexpr std::uint32_t tfSetNoRipple
Definition: TxFlags.h:107
ripple::tfClose
constexpr std::uint32_t tfClose
Definition: TxFlags.h:121
ripple::tfFullyCanonicalSig
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
Definition: TxFlags.h:56
ripple::tfOfferCreateMask
constexpr std::uint32_t tfOfferCreateMask
Definition: TxFlags.h:95
ripple::tfAllowXRP
constexpr std::uint32_t tfAllowXRP
Definition: TxFlags.h:66
ripple::asfDisallowIncomingPayChan
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition: TxFlags.h:87
ripple::tfPassive
constexpr std::uint32_t tfPassive
Definition: TxFlags.h:91
ripple::asfDisallowIncomingTrustline
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition: TxFlags.h:88
ripple::tfAccountSetMask
constexpr std::uint32_t tfAccountSetMask
Definition: TxFlags.h:67
ripple::asfDisallowIncomingCheck
constexpr std::uint32_t asfDisallowIncomingCheck
Definition: TxFlags.h:86
ripple::tfLimitQuality
constexpr std::uint32_t tfLimitQuality
Definition: TxFlags.h:101
ripple::asfDisableMaster
constexpr std::uint32_t asfDisableMaster
Definition: TxFlags.h:75
ripple::tfBurnable
constexpr const std::uint32_t tfBurnable
Definition: TxFlags.h:125
ripple::tfPartialPayment
constexpr std::uint32_t tfPartialPayment
Definition: TxFlags.h:100
ripple::tfClearNoRipple
constexpr std::uint32_t tfClearNoRipple
Definition: TxFlags.h:108
ripple::tfSellNFToken
constexpr const std::uint32_t tfSellNFToken
Definition: TxFlags.h:150
cstdint
std::uint32_t
ripple::tfPayChanClaimMask
constexpr std::uint32_t tfPayChanClaimMask
Definition: TxFlags.h:122
ripple::tfOptionalAuth
constexpr std::uint32_t tfOptionalAuth
Definition: TxFlags.h:64
ripple::tfRequireAuth
constexpr std::uint32_t tfRequireAuth
Definition: TxFlags.h:63
ripple::tfRenew
constexpr std::uint32_t tfRenew
Definition: TxFlags.h:120
ripple::tfFillOrKill
constexpr std::uint32_t tfFillOrKill
Definition: TxFlags.h:93
ripple::tfNFTokenCancelOfferMask
constexpr const std::uint32_t tfNFTokenCancelOfferMask
Definition: TxFlags.h:155
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:94
ripple::tfSetFreeze
constexpr std::uint32_t tfSetFreeze
Definition: TxFlags.h:109
ripple::tfSetfAuth
constexpr std::uint32_t tfSetfAuth
Definition: TxFlags.h:106
ripple::tfNFTokenCreateOfferMask
constexpr const std::uint32_t tfNFTokenCreateOfferMask
Definition: TxFlags.h:151
ripple::asfRequireAuth
constexpr std::uint32_t asfRequireAuth
Definition: TxFlags.h:73
ripple::asfDefaultRipple
constexpr std::uint32_t asfDefaultRipple
Definition: TxFlags.h:79
ripple::asfRequireDest
constexpr std::uint32_t asfRequireDest
Definition: TxFlags.h:72
ripple::asfGlobalFreeze
constexpr std::uint32_t asfGlobalFreeze
Definition: TxFlags.h:78
ripple::tfTrustLine
constexpr const std::uint32_t tfTrustLine
Definition: TxFlags.h:127
ripple::tfClearFreeze
constexpr std::uint32_t tfClearFreeze
Definition: TxFlags.h:110
ripple::tfOnlyXRP
constexpr const std::uint32_t tfOnlyXRP
Definition: TxFlags.h:126
ripple::tfPaymentMask
constexpr std::uint32_t tfPaymentMask
Definition: TxFlags.h:102
ripple::tfRequireDestTag
constexpr std::uint32_t tfRequireDestTag
Definition: TxFlags.h:61
ripple::asfDisallowIncomingNFTOffer
constexpr std::uint32_t asfDisallowIncomingNFTOffer
Definition: TxFlags.h:85
ripple::tfUniversal
constexpr std::uint32_t tfUniversal
Definition: TxFlags.h:57
ripple::tfOptionalDestTag
constexpr std::uint32_t tfOptionalDestTag
Definition: TxFlags.h:62
ripple::tfUniversalMask
constexpr std::uint32_t tfUniversalMask
Definition: TxFlags.h:58
ripple::asfAccountTxnID
constexpr std::uint32_t asfAccountTxnID
Definition: TxFlags.h:76
ripple::tfImmediateOrCancel
constexpr std::uint32_t tfImmediateOrCancel
Definition: TxFlags.h:92
ripple::tfNoRippleDirect
constexpr std::uint32_t tfNoRippleDirect
Definition: TxFlags.h:99
ripple::asfAuthorizedNFTokenMinter
constexpr std::uint32_t asfAuthorizedNFTokenMinter
Definition: TxFlags.h:81
ripple::tfNFTokenMintMask
constexpr const std::uint32_t tfNFTokenMintMask
Definition: TxFlags.h:146