rippled
TxFormats.cpp
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 #include <ripple/protocol/TxFormats.h>
21 #include <ripple/protocol/jss.h>
22 
23 namespace ripple {
24 
26 {
27  // Fields shared by all txFormats:
28  static const std::initializer_list<SOElement> commonFields{
34  {sfPreviousTxnID, soeOPTIONAL}, // emulate027
37  {sfFee, soeREQUIRED},
42  {sfSigners, soeOPTIONAL}, // submit_multisigned
43  };
44 
45  add(jss::AccountSet,
47  {
58  },
59  commonFields);
60 
61  add(jss::TrustSet,
63  {
68  },
69  commonFields);
70 
71  add(jss::OfferCreate,
73  {
79  },
80  commonFields);
81 
82  add(jss::OfferCancel,
84  {
87  },
88  commonFields);
89 
90  add(jss::SetRegularKey,
92  {
95  },
96  commonFields);
97 
98  add(jss::Payment,
99  ttPAYMENT,
100  {
104  {sfPaths, soeDEFAULT},
109  },
110  commonFields);
111 
112  add(jss::EscrowCreate,
114  {
122  },
123  commonFields);
124 
125  add(jss::EscrowFinish,
127  {
128  {sfOwner, soeREQUIRED},
133  },
134  commonFields);
135 
136  add(jss::EscrowCancel,
138  {
139  {sfOwner, soeREQUIRED},
142  },
143  commonFields);
144 
145  add(jss::EnableAmendment,
146  ttAMENDMENT,
147  {
150  },
151  commonFields);
152 
153  add(jss::SetFee,
154  ttFEE,
155  {
161  },
162  commonFields);
163 
164  add(jss::UNLModify,
165  ttUNL_MODIFY,
166  {
170  },
171  commonFields);
172 
173  add(jss::TicketCreate,
175  {
178  },
179  commonFields);
180 
181  // The SignerEntries are optional because a SignerList is deleted by
182  // setting the SignerQuorum to zero and omitting SignerEntries.
183  add(jss::SignerListSet,
185  {
189  },
190  commonFields);
191 
192  add(jss::PaymentChannelCreate,
194  {
202  },
203  commonFields);
204 
205  add(jss::PaymentChannelFund,
207  {
212  },
213  commonFields);
214 
215  add(jss::PaymentChannelClaim,
217  {
224  },
225  commonFields);
226 
227  add(jss::CheckCreate,
229  {
236  },
237  commonFields);
238 
239  add(jss::CheckCash,
240  ttCHECK_CASH,
241  {
246  },
247  commonFields);
248 
249  add(jss::CheckCancel,
251  {
254  },
255  commonFields);
256 
257  add(jss::AccountDelete,
259  {
263  },
264  commonFields);
265 
266  add(jss::DepositPreauth,
268  {
272  },
273  commonFields);
274 }
275 
276 TxFormats const&
278 {
279  static TxFormats const instance;
280  return instance;
281 }
282 
283 } // namespace ripple
ripple::ttPAYCHAN_CLAIM
@ ttPAYCHAN_CLAIM
Definition: TxFormats.h:51
ripple::ttCHECK_CANCEL
@ ttCHECK_CANCEL
Definition: TxFormats.h:54
ripple::sfOfferSequence
const SF_UINT32 sfOfferSequence
ripple::sfPreviousTxnID
const SF_HASH256 sfPreviousTxnID
ripple::KnownFormats< TxType >::add
Item const & add(char const *name, TxType type, std::initializer_list< SOElement > uniqueFields, std::initializer_list< SOElement > commonFields={})
Add a new format.
Definition: KnownFormats.h:168
ripple::sfPaths
const SField sfPaths
ripple::sfUNLModifyValidator
const SF_VL sfUNLModifyValidator
ripple::sfSourceTag
const SF_UINT32 sfSourceTag
ripple::sfReserveBase
const SF_UINT32 sfReserveBase
ripple::ttACCOUNT_DELETE
@ ttACCOUNT_DELETE
Definition: TxFormats.h:57
ripple::sfSendMax
const SF_AMOUNT sfSendMax
ripple::sfSigners
const SField sfSigners
ripple::sfLedgerSequence
const SF_UINT32 sfLedgerSequence
ripple::sfDestination
const SF_ACCOUNT sfDestination
ripple::sfAmount
const SF_AMOUNT sfAmount
ripple::sfWalletSize
const SF_UINT32 sfWalletSize
ripple::sfQualityOut
const SF_UINT32 sfQualityOut
ripple::sfOwner
const SF_ACCOUNT sfOwner
ripple::sfSequence
const SF_UINT32 sfSequence
ripple::sfRegularKey
const SF_ACCOUNT sfRegularKey
ripple::ttOFFER_CREATE
@ ttOFFER_CREATE
Definition: TxFormats.h:43
ripple::sfWalletLocator
const SF_HASH256 sfWalletLocator
ripple::sfSigningPubKey
const SF_VL sfSigningPubKey
ripple::sfQualityIn
const SF_UINT32 sfQualityIn
ripple::sfSetFlag
const SF_UINT32 sfSetFlag
ripple::soeREQUIRED
@ soeREQUIRED
Definition: SOTemplate.h:35
ripple::sfEmailHash
const SF_HASH128 sfEmailHash
ripple::sfTicketSequence
const SF_UINT32 sfTicketSequence
ripple::sfAmendment
const SF_HASH256 sfAmendment
ripple::ttESCROW_FINISH
@ ttESCROW_FINISH
Definition: TxFormats.h:38
ripple::ttPAYMENT
@ ttPAYMENT
Definition: TxFormats.h:36
ripple::sfExpiration
const SF_UINT32 sfExpiration
ripple::sfSignerQuorum
const SF_UINT32 sfSignerQuorum
ripple::ttFEE
@ ttFEE
Definition: TxFormats.h:62
ripple::sfTakerPays
const SF_AMOUNT sfTakerPays
ripple::sfTransactionType
const SF_UINT16 sfTransactionType
ripple::sfDeliverMin
const SF_AMOUNT sfDeliverMin
ripple::sfLimitAmount
const SF_AMOUNT sfLimitAmount
ripple::sfSettleDelay
const SF_UINT32 sfSettleDelay
ripple::sfUnauthorize
const SF_ACCOUNT sfUnauthorize
ripple::sfMemos
const SField sfMemos
ripple::TxFormats::getInstance
static TxFormats const & getInstance()
Definition: TxFormats.cpp:277
ripple::ttTRUST_SET
@ ttTRUST_SET
Definition: TxFormats.h:56
ripple::sfReserveIncrement
const SF_UINT32 sfReserveIncrement
ripple::soeOPTIONAL
@ soeOPTIONAL
Definition: SOTemplate.h:36
ripple::TxFormats::TxFormats
TxFormats()
Create the object.
Definition: TxFormats.cpp:25
ripple::sfTicketCount
const SF_UINT32 sfTicketCount
ripple::sfTakerGets
const SF_AMOUNT sfTakerGets
ripple::sfTransferRate
const SF_UINT32 sfTransferRate
ripple::sfTickSize
const SF_UINT8 sfTickSize
ripple::ttCHECK_CASH
@ ttCHECK_CASH
Definition: TxFormats.h:53
ripple::sfAuthorize
const SF_ACCOUNT sfAuthorize
ripple::ttTICKET_CREATE
@ ttTICKET_CREATE
Definition: TxFormats.h:46
ripple::ttAMENDMENT
@ ttAMENDMENT
Definition: TxFormats.h:61
ripple::sfClearFlag
const SF_UINT32 sfClearFlag
ripple::TxFormats
Manages the list of known transaction formats.
Definition: TxFormats.h:68
ripple::ttPAYCHAN_CREATE
@ ttPAYCHAN_CREATE
Definition: TxFormats.h:49
ripple::sfChannel
const SF_HASH256 sfChannel
ripple::sfCheckID
const SF_HASH256 sfCheckID
ripple::sfUNLModifyDisabling
const SF_UINT8 sfUNLModifyDisabling
ripple::sfSignerEntries
const SField sfSignerEntries
ripple::sfOperationLimit
const SF_UINT32 sfOperationLimit
ripple::ttESCROW_CREATE
@ ttESCROW_CREATE
Definition: TxFormats.h:37
ripple::sfBaseFee
const SF_UINT64 sfBaseFee
ripple::ttCHECK_CREATE
@ ttCHECK_CREATE
Definition: TxFormats.h:52
ripple::sfTxnSignature
const SF_VL sfTxnSignature
ripple
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition: RCLCensorshipDetector.h:29
ripple::ttESCROW_CANCEL
@ ttESCROW_CANCEL
Definition: TxFormats.h:40
ripple::sfAccountTxnID
const SF_HASH256 sfAccountTxnID
ripple::sfCondition
const SF_VL sfCondition
ripple::ttACCOUNT_SET
@ ttACCOUNT_SET
Definition: TxFormats.h:39
ripple::sfFlags
const SF_UINT32 sfFlags
ripple::sfInvoiceID
const SF_HASH256 sfInvoiceID
ripple::sfDestinationTag
const SF_UINT32 sfDestinationTag
ripple::ttOFFER_CANCEL
@ ttOFFER_CANCEL
Definition: TxFormats.h:44
ripple::sfSignature
const SF_VL sfSignature
ripple::sfBalance
const SF_AMOUNT sfBalance
ripple::sfReferenceFeeUnits
const SF_UINT32 sfReferenceFeeUnits
ripple::sfCancelAfter
const SF_UINT32 sfCancelAfter
ripple::sfMessageKey
const SF_VL sfMessageKey
ripple::ttUNL_MODIFY
@ ttUNL_MODIFY
Definition: TxFormats.h:63
ripple::sfFinishAfter
const SF_UINT32 sfFinishAfter
ripple::sfFee
const SF_AMOUNT sfFee
ripple::sfAccount
const SF_ACCOUNT sfAccount
ripple::sfDomain
const SF_VL sfDomain
ripple::sfLastLedgerSequence
const SF_UINT32 sfLastLedgerSequence
ripple::ttPAYCHAN_FUND
@ ttPAYCHAN_FUND
Definition: TxFormats.h:50
ripple::sfFulfillment
const SF_VL sfFulfillment
ripple::sfPublicKey
const SF_VL sfPublicKey
ripple::ttREGULAR_KEY_SET
@ ttREGULAR_KEY_SET
Definition: TxFormats.h:41
ripple::ttDEPOSIT_PREAUTH
@ ttDEPOSIT_PREAUTH
Definition: TxFormats.h:55
ripple::soeDEFAULT
@ soeDEFAULT
Definition: SOTemplate.h:37
ripple::ttSIGNER_LIST_SET
@ ttSIGNER_LIST_SET
Definition: TxFormats.h:48
std::initializer_list