Skip to content

Commit fd5935a

Browse files
committed
More fixes to fee bump tx tests.
The apply tests were doing something really weird: they used the result generated by `checkValidForTesting` and then proceeded to `apply`. This is not a flow that actually exists in Core - `apply` always uses the result provided by `processFeeSeqNum` and `checkValid` is completely separate from the apply flow. This issue resulted in observing the inner fee charged as 0 and not the inner tx fee charged, i.e. it hid the fact that we always set `feeCharged` in the inner result of fee bump txs. Also updated the whole test to not use `checkValidForTesting` and removed an unnecessary argument from the event manager interface.
1 parent f15679b commit fd5935a

11 files changed

+192
-139
lines changed

Builds/VisualStudio/generate_rust_bridge.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ set "final_source=%out_dir%\RustBridge.cpp"
1010

1111
mkdir "%out_dir%\temp" >nul 2>nul
1212

13-
%1 ..\..\src\rust\src\lib.rs --cfg test=false --header --output "%temp_header%"
13+
%1 ..\..\src\rust\src\bridge.rs --cfg test=false --header --output "%temp_header%"
1414
if %errorlevel% neq 0 (
1515
echo Error generating temporary header file.
1616
exit /b %errorlevel%
1717
)
1818

19-
%1 ..\..\src\rust\src\lib.rs --cfg test=false --output "%temp_source%"
19+
%1 ..\..\src\rust\src\bridge.rs --cfg test=false --output "%temp_source%"
2020
if %errorlevel% neq 0 (
2121
echo Error generating temporary source file.
2222
exit /b %errorlevel%

src/ledger/LedgerManagerImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1826,7 +1826,7 @@ LedgerManagerImpl::applyTransactions(
18261826

18271827
TxEventManager txEventManager(
18281828
ltx.loadHeader().current().ledgerVersion, mApp.getNetworkID(),
1829-
mApp.getConfig(), *tx);
1829+
mApp.getConfig());
18301830
tx->apply(mApp.getAppConnector(), ltx, tm, mutableTxResult,
18311831
txEventManager, subSeed);
18321832
tx->processPostApply(mApp.getAppConnector(), ltx, tm,

src/test/FuzzerImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -927,7 +927,7 @@ class FuzzTransactionFrame : public TransactionFrame
927927
// reset results of operations
928928
mTxResult = createSuccessResultWithFeeCharged(ltx.getHeader(), 0, true);
929929
TxEventManager txEventManager(ltx.loadHeader().current().ledgerVersion,
930-
mNetworkID, app.getConfig(), *this);
930+
mNetworkID, app.getConfig());
931931

932932
// attempt application of transaction without processing the fee or
933933
// committing the LedgerTxn

src/transactions/EventManager.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -556,12 +556,10 @@ OpEventManager::flushContractEvents(xdr::xvector<ContractEvent>& buf)
556556
};
557557

558558
TxEventManager::TxEventManager(uint32_t protocolVersion, Hash const& networkID,
559-
Config const& config,
560-
TransactionFrameBase const& tx)
559+
Config const& config)
561560
: mProtocolVersion(protocolVersion)
562561
, mNetworkID(networkID)
563562
, mConfig(config)
564-
, mTx(tx)
565563
, mDiagnosticEvents(DiagnosticEventBuffer(config))
566564
{
567565
}
@@ -642,4 +640,4 @@ TxEventManager::newFeeEvent(AccountID const& feeSource, int64_t amount)
642640
mTxEvents.emplace_back(std::move(ev));
643641
}
644642

645-
} // namespace stellar
643+
} // namespace stellar

src/transactions/EventManager.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,12 @@ class TxEventManager
104104
uint32_t mProtocolVersion;
105105
Hash const& mNetworkID;
106106
Config const& mConfig;
107-
TransactionFrameBase const& mTx;
108107
xdr::xvector<ContractEvent> mTxEvents;
109108
DiagnosticEventBuffer mDiagnosticEvents;
110109

111110
public:
112111
TxEventManager(uint32_t protocolVersion, Hash const& networkID,
113-
Config const& config, TransactionFrameBase const& tx);
112+
Config const& config);
114113

115114
OpEventManager createNewOpEventManager(Memo const& memo);
116115

@@ -137,4 +136,4 @@ class TxEventManager
137136
#endif
138137
};
139138

140-
}
139+
}

src/transactions/test/FeeBumpTransactionTests.cpp

Lines changed: 159 additions & 92 deletions
Large diffs are not rendered by default.

src/transactions/test/InvokeHostFunctionTests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ TEST_CASE("basic contract invocation", "[tx][soroban]")
574574
auto timerBefore = hostFnExecTimer.count();
575575
auto txEventManager = TxEventManager(test.getLedgerVersion(),
576576
test.getApp().getNetworkID(),
577-
test.getApp().getConfig(), *tx);
577+
test.getApp().getConfig());
578578
bool success = tx->apply(test.getApp().getAppConnector(), rootLtx, txm,
579579
result, txEventManager);
580580
REQUIRE(hostFnExecTimer.count() - timerBefore > 0);

src/transactions/test/TransactionTestFrame.cpp

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ TransactionTestFrame::apply(AppConnector& app, AbstractLedgerTxn& ltx,
4848
Hash const& sorobanBasePrngSeed)
4949
{
5050
TxEventManager txEventManager(ltx.loadHeader().current().ledgerVersion,
51-
app.getNetworkID(), app.getConfig(),
52-
*mTransactionFrame);
51+
app.getNetworkID(), app.getConfig());
5352
return mTransactionFrame->apply(app, ltx, meta, mTransactionTxResult,
5453
txEventManager, sorobanBasePrngSeed);
5554
}
@@ -119,13 +118,6 @@ TransactionTestFrame::checkValid(AppConnector& app, LedgerSnapshot const& ls,
119118
return mTransactionTxResult;
120119
}
121120

122-
void
123-
TransactionTestFrame::processFeeSeqNum(AbstractLedgerTxn& ltx,
124-
std::optional<int64_t> baseFee)
125-
{
126-
mTransactionTxResult = mTransactionFrame->processFeeSeqNum(ltx, baseFee);
127-
}
128-
129121
bool
130122
TransactionTestFrame::checkValidForTesting(AppConnector& app,
131123
AbstractLedgerTxn& ltxOuter,
@@ -344,4 +336,4 @@ TransactionTestFrame::XDRProvidesValidFee() const
344336
{
345337
return mTransactionFrame->XDRProvidesValidFee();
346338
}
347-
}
339+
}

src/transactions/test/TransactionTestFrame.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ class TransactionTestFrame : public TransactionFrameBase
4040
uint64_t lowerBoundCloseTimeOffset,
4141
uint64_t upperBoundCloseTimeOffset);
4242

43-
void processFeeSeqNum(AbstractLedgerTxn& ltx,
44-
std::optional<int64_t> baseFee);
45-
4643
void addSignature(SecretKey const& secretKey);
4744
void addSignature(DecoratedSignature const& signature);
4845

@@ -142,4 +139,4 @@ class TransactionTestFrame : public TransactionFrameBase
142139
return true;
143140
}
144141
};
145-
}
142+
}

test-tx-meta-baseline-current/FeeBumpTransactionTests.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
"fee bump transactions|protocol version 12|validity|valid" : [ "xVjUo8vzo2Q=" ],
9292
"fee bump transactions|protocol version 13|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
9393
"fee bump transactions|protocol version 13|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
94-
"fee bump transactions|protocol version 13|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
94+
"fee bump transactions|protocol version 13|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
9595
"fee bump transactions|protocol version 13|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
9696
"fee bump transactions|protocol version 13|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
9797
"fee bump transactions|protocol version 13|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -107,7 +107,7 @@
107107
"fee bump transactions|protocol version 13|validity|valid" : [ "xVjUo8vzo2Q=" ],
108108
"fee bump transactions|protocol version 14|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
109109
"fee bump transactions|protocol version 14|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
110-
"fee bump transactions|protocol version 14|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
110+
"fee bump transactions|protocol version 14|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
111111
"fee bump transactions|protocol version 14|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
112112
"fee bump transactions|protocol version 14|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
113113
"fee bump transactions|protocol version 14|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -124,7 +124,7 @@
124124
"fee bump transactions|protocol version 14|validity|valid" : [ "xVjUo8vzo2Q=" ],
125125
"fee bump transactions|protocol version 15|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
126126
"fee bump transactions|protocol version 15|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
127-
"fee bump transactions|protocol version 15|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
127+
"fee bump transactions|protocol version 15|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
128128
"fee bump transactions|protocol version 15|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
129129
"fee bump transactions|protocol version 15|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
130130
"fee bump transactions|protocol version 15|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -141,7 +141,7 @@
141141
"fee bump transactions|protocol version 15|validity|valid" : [ "xVjUo8vzo2Q=" ],
142142
"fee bump transactions|protocol version 16|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
143143
"fee bump transactions|protocol version 16|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
144-
"fee bump transactions|protocol version 16|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
144+
"fee bump transactions|protocol version 16|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
145145
"fee bump transactions|protocol version 16|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
146146
"fee bump transactions|protocol version 16|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
147147
"fee bump transactions|protocol version 16|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -158,7 +158,7 @@
158158
"fee bump transactions|protocol version 16|validity|valid" : [ "xVjUo8vzo2Q=" ],
159159
"fee bump transactions|protocol version 17|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
160160
"fee bump transactions|protocol version 17|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
161-
"fee bump transactions|protocol version 17|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
161+
"fee bump transactions|protocol version 17|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
162162
"fee bump transactions|protocol version 17|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
163163
"fee bump transactions|protocol version 17|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
164164
"fee bump transactions|protocol version 17|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -175,7 +175,7 @@
175175
"fee bump transactions|protocol version 17|validity|valid" : [ "xVjUo8vzo2Q=" ],
176176
"fee bump transactions|protocol version 18|apply|bad signatures" : [ "yBA6fSUSbfk=", "edVLcYVg2uU=" ],
177177
"fee bump transactions|protocol version 18|apply|extra signatures" : [ "Ai4B0vnogns=", "uentwW2oan8=", "MFJBMeCW+nE=" ],
178-
"fee bump transactions|protocol version 18|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "kBNyxXyMy3w=" ],
178+
"fee bump transactions|protocol version 18|apply|fee source does not exist" : [ "yBA6fSUSbfk=", "6vF8WYsyny4=" ],
179179
"fee bump transactions|protocol version 18|apply|inner transaction fails, operation level" : [ "yBA6fSUSbfk=" ],
180180
"fee bump transactions|protocol version 18|apply|inner transaction fails, transaction level" : [ "yBA6fSUSbfk=", "9q0W0W8WRGY=" ],
181181
"fee bump transactions|protocol version 18|apply|insufficient balance" : [ "yBA6fSUSbfk=", "eeqG9xT+CnE=" ],
@@ -192,7 +192,7 @@
192192
"fee bump transactions|protocol version 18|validity|valid" : [ "xVjUo8vzo2Q=" ],
193193
"fee bump transactions|protocol version 19|apply|bad signatures" : [ "liXKpc6omVU=", "E9++XFx985Q=" ],
194194
"fee bump transactions|protocol version 19|apply|extra signatures" : [ "yMi8mNnA+z8=", "BJxa1AvCWhU=", "U9HtTBRBJRE=" ],
195-
"fee bump transactions|protocol version 19|apply|fee source does not exist" : [ "liXKpc6omVU=", "I0h6USDr4vI=" ],
195+
"fee bump transactions|protocol version 19|apply|fee source does not exist" : [ "liXKpc6omVU=", "cku6/VBG2Hs=" ],
196196
"fee bump transactions|protocol version 19|apply|inner transaction fails, operation level" : [ "liXKpc6omVU=" ],
197197
"fee bump transactions|protocol version 19|apply|inner transaction fails, transaction level" : [ "liXKpc6omVU=", "OqLmcePeqzU=" ],
198198
"fee bump transactions|protocol version 19|apply|insufficient balance" : [ "liXKpc6omVU=", "0G4Li9bOzuE=" ],
@@ -224,7 +224,7 @@
224224
"fee bump transactions|protocol version 1|validity|valid" : [ "9uN0oJ2mwX0=" ],
225225
"fee bump transactions|protocol version 20|apply|bad signatures" : [ "Efz5uZa7U84=", "ofyE/F/i2I0=" ],
226226
"fee bump transactions|protocol version 20|apply|extra signatures" : [ "eAy5C7YazX0=", "YY06OIIOp/w=", "+366qVuw7RI=" ],
227-
"fee bump transactions|protocol version 20|apply|fee source does not exist" : [ "Efz5uZa7U84=", "UnwqqyolEMk=" ],
227+
"fee bump transactions|protocol version 20|apply|fee source does not exist" : [ "Efz5uZa7U84=", "ythK0ALwS9g=" ],
228228
"fee bump transactions|protocol version 20|apply|inner transaction fails, operation level" : [ "Efz5uZa7U84=" ],
229229
"fee bump transactions|protocol version 20|apply|inner transaction fails, transaction level" : [ "Efz5uZa7U84=", "0kuWmO0K+zM=" ],
230230
"fee bump transactions|protocol version 20|apply|insufficient balance" : [ "Efz5uZa7U84=", "jtss133AcPA=" ],
@@ -241,7 +241,7 @@
241241
"fee bump transactions|protocol version 20|validity|valid" : [ "g4SMgLdHmkY=" ],
242242
"fee bump transactions|protocol version 21|apply|bad signatures" : [ "Efz5uZa7U84=", "ofyE/F/i2I0=" ],
243243
"fee bump transactions|protocol version 21|apply|extra signatures" : [ "eAy5C7YazX0=", "YY06OIIOp/w=", "+366qVuw7RI=" ],
244-
"fee bump transactions|protocol version 21|apply|fee source does not exist" : [ "Efz5uZa7U84=", "UnwqqyolEMk=" ],
244+
"fee bump transactions|protocol version 21|apply|fee source does not exist" : [ "Efz5uZa7U84=", "ythK0ALwS9g=" ],
245245
"fee bump transactions|protocol version 21|apply|inner transaction fails, operation level" : [ "Efz5uZa7U84=" ],
246246
"fee bump transactions|protocol version 21|apply|inner transaction fails, transaction level" : [ "Efz5uZa7U84=", "0kuWmO0K+zM=" ],
247247
"fee bump transactions|protocol version 21|apply|insufficient balance" : [ "Efz5uZa7U84=", "jtss133AcPA=" ],
@@ -258,7 +258,7 @@
258258
"fee bump transactions|protocol version 21|validity|valid" : [ "g4SMgLdHmkY=" ],
259259
"fee bump transactions|protocol version 22|apply|bad signatures" : [ "Efz5uZa7U84=", "ofyE/F/i2I0=" ],
260260
"fee bump transactions|protocol version 22|apply|extra signatures" : [ "eAy5C7YazX0=", "YY06OIIOp/w=", "+366qVuw7RI=" ],
261-
"fee bump transactions|protocol version 22|apply|fee source does not exist" : [ "Efz5uZa7U84=", "UnwqqyolEMk=" ],
261+
"fee bump transactions|protocol version 22|apply|fee source does not exist" : [ "Efz5uZa7U84=", "ythK0ALwS9g=" ],
262262
"fee bump transactions|protocol version 22|apply|inner transaction fails, operation level" : [ "Efz5uZa7U84=" ],
263263
"fee bump transactions|protocol version 22|apply|inner transaction fails, transaction level" : [ "Efz5uZa7U84=", "0kuWmO0K+zM=" ],
264264
"fee bump transactions|protocol version 22|apply|insufficient balance" : [ "Efz5uZa7U84=", "jtss133AcPA=" ],

0 commit comments

Comments
 (0)