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