xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol_autogen
transactions
protocol_autogen/transactions/TransactionProposalCreate.h
1
// This file is auto-generated. Do not edit.
2
#pragma once
3
4
#include <xrpl/protocol/STTx.h>
5
#include <xrpl/protocol/STParsedJSON.h>
6
#include <xrpl/protocol/jss.h>
7
#include <xrpl/protocol_autogen/TransactionBase.h>
8
#include <xrpl/protocol_autogen/TransactionBuilderBase.h>
9
#include <xrpl/json/json_value.h>
10
11
#include <
stdexcept
>
12
#include <
optional
>
13
14
namespace
xrpl::transactions
{
15
16
class
TransactionProposalCreateBuilder
;
17
29
class
TransactionProposalCreate
:
public
TransactionBase
30
{
31
public
:
32
static
constexpr
xrpl::TxType
txType
= ttTRANSACTION_PROPOSAL_CREATE;
33
38
explicit
TransactionProposalCreate
(
std::shared_ptr<STTx const>
tx)
39
:
TransactionBase
(
std
::move(tx))
40
{
41
// Verify transaction type
42
if
(
tx_
->getTxnType() !=
txType
)
43
{
44
throw std::runtime_error(
"Invalid transaction type for TransactionProposalCreate"
);
45
}
46
}
47
48
// Transaction-specific field getters
54
[[nodiscard]]
55
STObject
56
getProposedTransaction
()
const
57
{
58
return
this->
tx_
->getFieldObject(sfProposedTransaction);
59
}
60
65
[[nodiscard]]
66
SF_UINT32::type::value_type
67
getExpiration
()
const
68
{
69
return
this->
tx_
->at(sfExpiration);
70
}
71
};
72
80
class
TransactionProposalCreateBuilder
:
public
TransactionBuilderBase
<TransactionProposalCreateBuilder>
81
{
82
public
:
91
TransactionProposalCreateBuilder
(SF_ACCOUNT::type::value_type account,
92
STObject
const
& proposedTransaction,
std::decay_t<typename SF_UINT32::type::value_type>
const
& expiration,
std::optional<SF_UINT32::type::value_type>
sequence = std::nullopt,
93
std::optional<SF_AMOUNT::type::value_type>
fee = std::nullopt
94
)
95
:
TransactionBuilderBase
<
TransactionProposalCreateBuilder
>(ttTRANSACTION_PROPOSAL_CREATE, account, sequence, fee)
96
{
97
setProposedTransaction
(proposedTransaction);
98
setExpiration
(expiration);
99
}
100
106
TransactionProposalCreateBuilder
(
std::shared_ptr<STTx const>
tx)
107
{
108
if
(tx->getTxnType() != ttTRANSACTION_PROPOSAL_CREATE)
109
{
110
throw
std::runtime_error
(
"Invalid transaction type for TransactionProposalCreateBuilder"
);
111
}
112
object_
= *tx;
113
}
114
118
123
TransactionProposalCreateBuilder
&
124
setProposedTransaction
(
STObject
const
& value)
125
{
126
object_
.setFieldObject(sfProposedTransaction, value);
127
return
*
this
;
128
}
129
134
TransactionProposalCreateBuilder
&
135
setExpiration
(
std::decay_t<typename SF_UINT32::type::value_type>
const
& value)
136
{
137
object_
[sfExpiration] = value;
138
return
*
this
;
139
}
140
147
TransactionProposalCreate
148
build
(
PublicKey
const
& publicKey,
SecretKey
const
& secretKey)
149
{
150
sign
(publicKey, secretKey);
151
return
TransactionProposalCreate
{
std::make_shared<STTx>
(std::move(
object_
))};
152
}
153
};
154
155
}
// namespace xrpl::transactions
xrpl::PublicKey
A public key.
Definition
PublicKey.h:53
xrpl::STObject
Definition
STObject.h:49
xrpl::SecretKey
A secret key.
Definition
SecretKey.h:24
xrpl::transactions::TransactionBase::tx_
std::shared_ptr< STTx const > tx_
The underlying transaction object being wrapped.
Definition
TransactionBase.h:456
xrpl::transactions::TransactionBase::TransactionBase
TransactionBase(std::shared_ptr< STTx const > tx)
Construct a transaction wrapper from an existing STTx object.
Definition
TransactionBase.h:31
xrpl::transactions::TransactionBuilderBase< TransactionProposalCreateBuilder >::object_
STObject object_
Definition
TransactionBuilderBase.h:266
xrpl::transactions::TransactionBuilderBase< TransactionProposalCreateBuilder >::TransactionBuilderBase
TransactionBuilderBase()=default
xrpl::transactions::TransactionBuilderBase< TransactionProposalCreateBuilder >::sign
TransactionProposalCreateBuilder & sign(PublicKey const &publicKey, SecretKey const &secretKey)
Definition
TransactionBuilderBase.h:248
xrpl::transactions::TransactionProposalCreateBuilder
Builder for TransactionProposalCreate transactions.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:81
xrpl::transactions::TransactionProposalCreateBuilder::setProposedTransaction
TransactionProposalCreateBuilder & setProposedTransaction(STObject const &value)
Transaction-specific field setters.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:124
xrpl::transactions::TransactionProposalCreateBuilder::TransactionProposalCreateBuilder
TransactionProposalCreateBuilder(std::shared_ptr< STTx const > tx)
Construct a TransactionProposalCreateBuilder from an existing STTx object.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:106
xrpl::transactions::TransactionProposalCreateBuilder::build
TransactionProposalCreate build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the TransactionProposalCreate wrapper.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:148
xrpl::transactions::TransactionProposalCreateBuilder::setExpiration
TransactionProposalCreateBuilder & setExpiration(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfExpiration (SoeRequired).
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:135
xrpl::transactions::TransactionProposalCreateBuilder::TransactionProposalCreateBuilder
TransactionProposalCreateBuilder(SF_ACCOUNT::type::value_type account, STObject const &proposedTransaction, std::decay_t< typename SF_UINT32::type::value_type > const &expiration, std::optional< SF_UINT32::type::value_type > sequence=std::nullopt, std::optional< SF_AMOUNT::type::value_type > fee=std::nullopt)
Construct a new TransactionProposalCreateBuilder with required fields.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:91
xrpl::transactions::TransactionProposalCreate
Transaction: TransactionProposalCreate.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:30
xrpl::transactions::TransactionProposalCreate::txType
static constexpr xrpl::TxType txType
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:32
xrpl::transactions::TransactionProposalCreate::TransactionProposalCreate
TransactionProposalCreate(std::shared_ptr< STTx const > tx)
Construct a TransactionProposalCreate transaction wrapper from an existing STTx object.
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:38
xrpl::transactions::TransactionProposalCreate::getExpiration
SF_UINT32::type::value_type getExpiration() const
Get sfExpiration (SoeRequired).
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:67
xrpl::transactions::TransactionProposalCreate::getProposedTransaction
STObject getProposedTransaction() const
Get sfProposedTransaction (SoeRequired).
Definition
protocol_autogen/transactions/TransactionProposalCreate.h:56
std::decay_t
std::make_shared
T make_shared(T... args)
std
STL namespace.
xrpl::transactions
Definition
TransactionBase.h:15
xrpl::TxType
TxType
Transaction type identifiers.
Definition
TxFormats.h:45
optional
std::runtime_error
std::shared_ptr
stdexcept
Generated by
1.17.0