xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol_autogen
transactions
protocol_autogen/transactions/TrustSet.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
TrustSetBuilder
;
17
29
class
TrustSet
:
public
TransactionBase
30
{
31
public
:
32
static
constexpr
xrpl::TxType
txType
= ttTRUST_SET;
33
38
explicit
TrustSet
(
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 TrustSet"
);
45
}
46
}
47
48
// Transaction-specific field getters
49
54
[[nodiscard]]
55
protocol_autogen::Optional<SF_AMOUNT::type::value_type>
56
getLimitAmount
()
const
57
{
58
if
(
hasLimitAmount
())
59
{
60
return
this->
tx_
->at(sfLimitAmount);
61
}
62
return
std::nullopt;
63
}
64
69
[[nodiscard]]
70
bool
71
hasLimitAmount
()
const
72
{
73
return
this->
tx_
->isFieldPresent(sfLimitAmount);
74
}
75
80
[[nodiscard]]
81
protocol_autogen::Optional<SF_UINT32::type::value_type>
82
getQualityIn
()
const
83
{
84
if
(
hasQualityIn
())
85
{
86
return
this->
tx_
->at(sfQualityIn);
87
}
88
return
std::nullopt;
89
}
90
95
[[nodiscard]]
96
bool
97
hasQualityIn
()
const
98
{
99
return
this->
tx_
->isFieldPresent(sfQualityIn);
100
}
101
106
[[nodiscard]]
107
protocol_autogen::Optional<SF_UINT32::type::value_type>
108
getQualityOut
()
const
109
{
110
if
(
hasQualityOut
())
111
{
112
return
this->
tx_
->at(sfQualityOut);
113
}
114
return
std::nullopt;
115
}
116
121
[[nodiscard]]
122
bool
123
hasQualityOut
()
const
124
{
125
return
this->
tx_
->isFieldPresent(sfQualityOut);
126
}
127
};
128
136
class
TrustSetBuilder
:
public
TransactionBuilderBase
<TrustSetBuilder>
137
{
138
public
:
145
TrustSetBuilder
(SF_ACCOUNT::type::value_type account,
146
std::optional<SF_UINT32::type::value_type>
sequence = std::nullopt,
147
std::optional<SF_AMOUNT::type::value_type>
fee = std::nullopt
148
)
149
:
TransactionBuilderBase
<
TrustSetBuilder
>(ttTRUST_SET, account, sequence, fee)
150
{
151
}
152
158
TrustSetBuilder
(
std::shared_ptr<STTx const>
tx)
159
{
160
if
(tx->getTxnType() != ttTRUST_SET)
161
{
162
throw
std::runtime_error
(
"Invalid transaction type for TrustSetBuilder"
);
163
}
164
object_
= *tx;
165
}
166
170
175
TrustSetBuilder
&
176
setLimitAmount
(
std::decay_t<typename SF_AMOUNT::type::value_type>
const
& value)
177
{
178
object_
[sfLimitAmount] = value;
179
return
*
this
;
180
}
181
186
TrustSetBuilder
&
187
setQualityIn
(
std::decay_t<typename SF_UINT32::type::value_type>
const
& value)
188
{
189
object_
[sfQualityIn] = value;
190
return
*
this
;
191
}
192
197
TrustSetBuilder
&
198
setQualityOut
(
std::decay_t<typename SF_UINT32::type::value_type>
const
& value)
199
{
200
object_
[sfQualityOut] = value;
201
return
*
this
;
202
}
203
210
TrustSet
211
build
(
PublicKey
const
& publicKey,
SecretKey
const
& secretKey)
212
{
213
sign
(publicKey, secretKey);
214
return
TrustSet
{
std::make_shared<STTx>
(std::move(
object_
))};
215
}
216
};
217
218
}
// namespace xrpl::transactions
xrpl::PublicKey
A public key.
Definition
PublicKey.h:53
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< TrustSetBuilder >::object_
STObject object_
Definition
TransactionBuilderBase.h:266
xrpl::transactions::TransactionBuilderBase< TrustSetBuilder >::TransactionBuilderBase
TransactionBuilderBase()=default
xrpl::transactions::TransactionBuilderBase< TrustSetBuilder >::sign
TrustSetBuilder & sign(PublicKey const &publicKey, SecretKey const &secretKey)
Definition
TransactionBuilderBase.h:248
xrpl::transactions::TrustSetBuilder
Builder for TrustSet transactions.
Definition
protocol_autogen/transactions/TrustSet.h:137
xrpl::transactions::TrustSetBuilder::setQualityOut
TrustSetBuilder & setQualityOut(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfQualityOut (SoeOptional).
Definition
protocol_autogen/transactions/TrustSet.h:198
xrpl::transactions::TrustSetBuilder::TrustSetBuilder
TrustSetBuilder(SF_ACCOUNT::type::value_type account, std::optional< SF_UINT32::type::value_type > sequence=std::nullopt, std::optional< SF_AMOUNT::type::value_type > fee=std::nullopt)
Construct a new TrustSetBuilder with required fields.
Definition
protocol_autogen/transactions/TrustSet.h:145
xrpl::transactions::TrustSetBuilder::setQualityIn
TrustSetBuilder & setQualityIn(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfQualityIn (SoeOptional).
Definition
protocol_autogen/transactions/TrustSet.h:187
xrpl::transactions::TrustSetBuilder::TrustSetBuilder
TrustSetBuilder(std::shared_ptr< STTx const > tx)
Construct a TrustSetBuilder from an existing STTx object.
Definition
protocol_autogen/transactions/TrustSet.h:158
xrpl::transactions::TrustSetBuilder::setLimitAmount
TrustSetBuilder & setLimitAmount(std::decay_t< typename SF_AMOUNT::type::value_type > const &value)
Transaction-specific field setters.
Definition
protocol_autogen/transactions/TrustSet.h:176
xrpl::transactions::TrustSetBuilder::build
TrustSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the TrustSet wrapper.
Definition
protocol_autogen/transactions/TrustSet.h:211
xrpl::transactions::TrustSet
Transaction: TrustSet.
Definition
protocol_autogen/transactions/TrustSet.h:30
xrpl::transactions::TrustSet::getQualityOut
protocol_autogen::Optional< SF_UINT32::type::value_type > getQualityOut() const
Get sfQualityOut (SoeOptional).
Definition
protocol_autogen/transactions/TrustSet.h:108
xrpl::transactions::TrustSet::txType
static constexpr xrpl::TxType txType
Definition
protocol_autogen/transactions/TrustSet.h:32
xrpl::transactions::TrustSet::hasQualityIn
bool hasQualityIn() const
Check if sfQualityIn is present.
Definition
protocol_autogen/transactions/TrustSet.h:97
xrpl::transactions::TrustSet::hasLimitAmount
bool hasLimitAmount() const
Check if sfLimitAmount is present.
Definition
protocol_autogen/transactions/TrustSet.h:71
xrpl::transactions::TrustSet::getLimitAmount
protocol_autogen::Optional< SF_AMOUNT::type::value_type > getLimitAmount() const
Get sfLimitAmount (SoeOptional).
Definition
protocol_autogen/transactions/TrustSet.h:56
xrpl::transactions::TrustSet::TrustSet
TrustSet(std::shared_ptr< STTx const > tx)
Construct a TrustSet transaction wrapper from an existing STTx object.
Definition
protocol_autogen/transactions/TrustSet.h:38
xrpl::transactions::TrustSet::getQualityIn
protocol_autogen::Optional< SF_UINT32::type::value_type > getQualityIn() const
Get sfQualityIn (SoeOptional).
Definition
protocol_autogen/transactions/TrustSet.h:82
xrpl::transactions::TrustSet::hasQualityOut
bool hasQualityOut() const
Check if sfQualityOut is present.
Definition
protocol_autogen/transactions/TrustSet.h:123
std::decay_t
std::make_shared
T make_shared(T... args)
std
STL namespace.
xrpl::protocol_autogen::Optional
std::conditional_t< std::is_reference_v< ValueType >, std::optional< std::reference_wrapper< std::remove_reference_t< ValueType > > >, std::optional< ValueType > > Optional
Definition
Utils.h:9
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