Skip to content

Commit 5ab0fb0

Browse files
committed
fix test
1 parent 86de9d8 commit 5ab0fb0

16 files changed

+76
-73
lines changed

include/xrpl/protocol/STTxWr.h

+30-30
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ namespace ripple {
3535
class STTxWr
3636
{
3737
private:
38-
STTx tx_; // Wrap an instance of STTx
38+
std::shared_ptr<STTx> tx_; // Wrap an instance of STTx
3939
bool isDelegated_; // if the transaction is delegated by another account
4040

4141
public:
42-
explicit STTxWr(STTx tx, bool isDelegated)
43-
: tx_(tx), isDelegated_(isDelegated)
42+
explicit STTxWr(STTx const& tx, bool isDelegated)
43+
: tx_(std::make_shared<STTx>(tx)), isDelegated_(isDelegated)
4444
{
4545
}
4646

47-
STTx
47+
std::shared_ptr<STTx>
4848
getTx() const
4949
{
5050
return tx_;
@@ -60,9 +60,9 @@ class STTxWr
6060
getAccountID(SField const& field) const
6161
{
6262
if (field == sfAccount)
63-
return tx_.isFieldPresent(sfOnBehalfOf) ? *tx_[~sfOnBehalfOf]
64-
: tx_[sfAccount];
65-
return tx_.getAccountID(field);
63+
return tx_->isFieldPresent(sfOnBehalfOf) ? *(*tx_)[~sfOnBehalfOf]
64+
: (*tx_)[sfAccount];
65+
return tx_->getAccountID(field);
6666
}
6767

6868
template <class T>
@@ -71,7 +71,7 @@ class STTxWr
7171
typename T::value_type>::type
7272
operator[](TypedField<T> const& f) const
7373
{
74-
return tx_[f];
74+
return (*tx_)[f];
7575
}
7676

7777
// When Type is SF_ACCOUNT and also field name is sfAccount, we need to
@@ -84,124 +84,124 @@ class STTxWr
8484
operator[](TypedField<T> const& f) const
8585
{
8686
if (f == sfAccount)
87-
return tx_.isFieldPresent(sfOnBehalfOf) ? *tx_[~sfOnBehalfOf]
88-
: tx_[sfAccount];
89-
return tx_[f];
87+
return tx_->isFieldPresent(sfOnBehalfOf) ? *(*tx_)[~sfOnBehalfOf]
88+
: (*tx_)[sfAccount];
89+
return (*tx_)[f];
9090
}
9191

9292
template <class T>
9393
std::optional<std::decay_t<typename T::value_type>>
9494
operator[](OptionaledField<T> const& of) const
9595
{
96-
return tx_[of];
96+
return (*tx_)[of];
9797
}
9898

9999
uint256
100100
getTransactionID() const
101101
{
102-
return tx_.getTransactionID();
102+
return tx_->getTransactionID();
103103
}
104104

105105
TxType
106106
getTxnType() const
107107
{
108-
return tx_.getTxnType();
108+
return tx_->getTxnType();
109109
}
110110

111111
std::uint32_t
112112
getFlags() const
113113
{
114-
return tx_.getFlags();
114+
return tx_->getFlags();
115115
}
116116

117117
bool
118118
isFieldPresent(SField const& field) const
119119
{
120-
return tx_.isFieldPresent(field);
120+
return tx_->isFieldPresent(field);
121121
}
122122

123123
Json::Value
124124
getJson(JsonOptions options) const
125125
{
126-
return tx_.getJson(options);
126+
return tx_->getJson(options);
127127
}
128128

129129
void
130130
add(Serializer& s) const
131131
{
132-
tx_.add(s);
132+
tx_->add(s);
133133
}
134134

135135
unsigned char
136136
getFieldU8(SField const& field) const
137137
{
138-
return tx_.getFieldU8(field);
138+
return tx_->getFieldU8(field);
139139
}
140140

141141
std::uint32_t
142142
getFieldU32(SField const& field) const
143143
{
144-
return tx_.getFieldU32(field);
144+
return tx_->getFieldU32(field);
145145
}
146146

147147
uint256
148148
getFieldH256(SField const& field) const
149149
{
150-
return tx_.getFieldH256(field);
150+
return tx_->getFieldH256(field);
151151
}
152152

153153
Blob
154154
getFieldVL(SField const& field) const
155155
{
156-
return tx_.getFieldVL(field);
156+
return tx_->getFieldVL(field);
157157
}
158158

159159
STAmount const&
160160
getFieldAmount(SField const& field) const
161161
{
162-
return tx_.getFieldAmount(field);
162+
return tx_->getFieldAmount(field);
163163
}
164164

165165
STPathSet const&
166166
getFieldPathSet(SField const& field) const
167167
{
168-
return tx_.getFieldPathSet(field);
168+
return tx_->getFieldPathSet(field);
169169
}
170170

171171
const STVector256&
172172
getFieldV256(SField const& field) const
173173
{
174-
return tx_.getFieldV256(field);
174+
return tx_->getFieldV256(field);
175175
}
176176

177177
const STArray&
178178
getFieldArray(SField const& field) const
179179
{
180-
return tx_.getFieldArray(field);
180+
return tx_->getFieldArray(field);
181181
}
182182

183183
Blob
184184
getSigningPubKey() const
185185
{
186-
return tx_.getSigningPubKey();
186+
return tx_->getSigningPubKey();
187187
}
188188

189189
Blob
190190
getSignature() const
191191
{
192-
return tx_.getSignature();
192+
return tx_->getSignature();
193193
}
194194

195195
bool
196196
isFlag(std::uint32_t f) const
197197
{
198-
return tx_.isFlag(f);
198+
return tx_->isFlag(f);
199199
}
200200

201201
SeqProxy
202202
getSeqProxy() const
203203
{
204-
return tx_.getSeqProxy();
204+
return tx_->getSeqProxy();
205205
}
206206
};
207207

src/xrpld/app/misc/CredentialHelpers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ verifyDepositPreauth(
243243
bool const credentialsPresent = ctx.tx.isFieldPresent(sfCredentialIDs);
244244

245245
if (credentialsPresent &&
246-
credentials::removeExpired(ctx.view(), ctx.tx.getTx(), ctx.journal))
246+
credentials::removeExpired(ctx.view(), *ctx.tx.getTx(), ctx.journal))
247247
return tecEXPIRED;
248248

249249
if (sleDst && (sleDst->getFlags() & lsfDepositAuth))

src/xrpld/app/tx/detail/AMMWithdraw.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ AMMWithdraw::withdraw(
470470
lpTokensWithdraw,
471471
tfee,
472472
FreezeHandling::fhZERO_IF_FROZEN,
473-
isWithdrawAll(ctx_.tx.getTx()),
473+
isWithdrawAll(*ctx_.tx.getTx()),
474474
mPriorBalance,
475475
j_);
476476
return {ter, newLPTokenBalance};
@@ -707,7 +707,7 @@ AMMWithdraw::equalWithdrawTokens(
707707
lpTokensWithdraw,
708708
tfee,
709709
FreezeHandling::fhZERO_IF_FROZEN,
710-
isWithdrawAll(ctx_.tx.getTx()),
710+
isWithdrawAll(*ctx_.tx.getTx()),
711711
mPriorBalance,
712712
ctx_.journal);
713713
return {ter, newLPTokenBalance};

src/xrpld/app/tx/detail/ApplyContext.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ ApplyContext::discard()
5858
void
5959
ApplyContext::apply(TER ter)
6060
{
61-
view_->apply(base_, tx.getTx(), ter, journal);
61+
view_->apply(base_, *tx.getTx(), ter, journal);
6262
}
6363

6464
std::size_t

src/xrpld/app/tx/detail/CashCheck.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ CashCheck::preclaim(PreclaimContext const& ctx)
138138
STAmount const value{[](STTx const& tx) {
139139
auto const optAmount = tx[~sfAmount];
140140
return optAmount ? *optAmount : tx[sfDeliverMin];
141-
}(ctx.tx.getTx())};
141+
}(*ctx.tx.getTx())};
142142

143143
STAmount const sendMax = sleCheck->at(sfSendMax);
144144
Currency const currency{value.getCurrency()};

src/xrpld/app/tx/detail/Change.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -359,9 +359,9 @@ Change::applyFee()
359359
};
360360
if (view().rules().enabled(featureXRPFees))
361361
{
362-
set(feeObject, ctx_.tx.getTx(), sfBaseFeeDrops);
363-
set(feeObject, ctx_.tx.getTx(), sfReserveBaseDrops);
364-
set(feeObject, ctx_.tx.getTx(), sfReserveIncrementDrops);
362+
set(feeObject, *ctx_.tx.getTx(), sfBaseFeeDrops);
363+
set(feeObject, *ctx_.tx.getTx(), sfReserveBaseDrops);
364+
set(feeObject, *ctx_.tx.getTx(), sfReserveIncrementDrops);
365365
// Ensure the old fields are removed
366366
feeObject->makeFieldAbsent(sfBaseFee);
367367
feeObject->makeFieldAbsent(sfReferenceFeeUnits);
@@ -370,10 +370,10 @@ Change::applyFee()
370370
}
371371
else
372372
{
373-
set(feeObject, ctx_.tx.getTx(), sfBaseFee);
374-
set(feeObject, ctx_.tx.getTx(), sfReferenceFeeUnits);
375-
set(feeObject, ctx_.tx.getTx(), sfReserveBase);
376-
set(feeObject, ctx_.tx.getTx(), sfReserveIncrement);
373+
set(feeObject, *ctx_.tx.getTx(), sfBaseFee);
374+
set(feeObject, *ctx_.tx.getTx(), sfReferenceFeeUnits);
375+
set(feeObject, *ctx_.tx.getTx(), sfReserveBase);
376+
set(feeObject, *ctx_.tx.getTx(), sfReserveIncrement);
377377
}
378378

379379
view().update(feeObject);

src/xrpld/app/tx/detail/CreateOffer.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ CreateOffer::makeTxConsequences(PreflightContext const& ctx)
3636
return amount.native() ? amount.xrp() : beast::zero;
3737
};
3838

39-
return TxConsequences{ctx.tx.getTx(), calculateMaxXRPSpend(ctx.tx.getTx())};
39+
return TxConsequences{
40+
*ctx.tx.getTx(), calculateMaxXRPSpend(*ctx.tx.getTx())};
4041
}
4142

4243
NotTEC

src/xrpld/app/tx/detail/CreateTicket.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ TxConsequences
3131
CreateTicket::makeTxConsequences(PreflightContext const& ctx)
3232
{
3333
// Create TxConsequences identifying the number of sequences consumed.
34-
return TxConsequences{ctx.tx.getTx(), ctx.tx[sfTicketCount]};
34+
return TxConsequences{*ctx.tx.getTx(), ctx.tx[sfTicketCount]};
3535
}
3636

3737
NotTEC

src/xrpld/app/tx/detail/Escrow.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ after(NetClock::time_point now, std::uint32_t mark)
9494
TxConsequences
9595
EscrowCreate::makeTxConsequences(PreflightContext const& ctx)
9696
{
97-
return TxConsequences{ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
97+
return TxConsequences{*ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
9898
}
9999

100100
NotTEC

src/xrpld/app/tx/detail/PayChan.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ closeChannel(
168168
TxConsequences
169169
PayChanCreate::makeTxConsequences(PreflightContext const& ctx)
170170
{
171-
return TxConsequences{ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
171+
return TxConsequences{*ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
172172
}
173173

174174
NotTEC
@@ -310,7 +310,7 @@ PayChanCreate::doApply()
310310
TxConsequences
311311
PayChanFund::makeTxConsequences(PreflightContext const& ctx)
312312
{
313-
return TxConsequences{ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
313+
return TxConsequences{*ctx.tx.getTx(), ctx.tx[sfAmount].xrp()};
314314
}
315315

316316
NotTEC

src/xrpld/app/tx/detail/Payment.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ Payment::makeTxConsequences(PreflightContext const& ctx)
4242
return maxAmount.native() ? maxAmount.xrp() : beast::zero;
4343
};
4444

45-
return TxConsequences{ctx.tx.getTx(), calculateMaxXRPSpend(ctx.tx.getTx())};
45+
return TxConsequences{
46+
*ctx.tx.getTx(), calculateMaxXRPSpend(*ctx.tx.getTx())};
4647
}
4748

4849
STAmount

src/xrpld/app/tx/detail/SetAccount.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ SetAccount::makeTxConsequences(PreflightContext const& ctx)
5353
};
5454

5555
return TxConsequences{
56-
ctx.tx.getTx(), getTxConsequencesCategory(ctx.tx.getTx())};
56+
*ctx.tx.getTx(), getTxConsequencesCategory(*ctx.tx.getTx())};
5757
}
5858

5959
NotTEC
@@ -263,7 +263,7 @@ SetAccount::doApply()
263263
std::uint32_t const uFlagsIn = sle->getFieldU32(sfFlags);
264264
std::uint32_t uFlagsOut = uFlagsIn;
265265

266-
STTx const& tx{ctx_.tx.getTx()};
266+
STTx const& tx{*ctx_.tx.getTx()};
267267
std::uint32_t const uSetFlag{tx.getFieldU32(sfSetFlag)};
268268
std::uint32_t const uClearFlag{tx.getFieldU32(sfClearFlag)};
269269

src/xrpld/app/tx/detail/SetSignerList.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ SetSignerList::preflight(PreflightContext const& ctx)
8181
if (auto const ret = preflight1(ctx); !isTesSuccess(ret))
8282
return ret;
8383

84-
auto const result = determineOperation(ctx.tx.getTx(), ctx.flags, ctx.j);
84+
auto const result = determineOperation(*ctx.tx.getTx(), ctx.flags, ctx.j);
8585

8686
if (std::get<0>(result) != tesSUCCESS)
8787
return std::get<0>(result);
@@ -136,7 +136,7 @@ void
136136
SetSignerList::preCompute()
137137
{
138138
// Get the quorum and operation info.
139-
auto result = determineOperation(ctx_.tx.getTx(), view().flags(), j_);
139+
auto result = determineOperation(*ctx_.tx.getTx(), view().flags(), j_);
140140
ASSERT(
141141
std::get<0>(result) == tesSUCCESS,
142142
"ripple::SetSignerList::preCompute : result is tesSUCCESS");

0 commit comments

Comments
 (0)