@@ -798,10 +798,15 @@ TEST_CASE("TransactionQueue hitting the rate limit",
798
798
auto tx = transaction (*app, account5, 1 , 1 , 300 * 3 , 3 );
799
799
auto addResult = testQueue.add (
800
800
tx, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
801
- REQUIRE (addResult.txResult .value ()->getResultCode () ==
802
- txINSUFFICIENT_FEE);
803
- REQUIRE (addResult.txResult .value ()->getResult ().feeCharged ==
804
- 300 * 3 + 1 );
801
+ REQUIRE (addResult.txResult ->getResultCode () == txINSUFFICIENT_FEE);
802
+ REQUIRE (addResult.txResult ->getResult ().feeCharged == 300 * 3 + 1 );
803
+ }
804
+ SECTION (" cannot add - tx outside of limits" )
805
+ {
806
+ auto tx = transaction (*app, account5, 1 , 1 , 100 * 1'000 , 100 );
807
+ auto addResult = testQueue.add (
808
+ tx, TransactionQueue::AddResultCode::ADD_STATUS_TRY_AGAIN_LATER);
809
+ REQUIRE (!addResult.txResult );
805
810
}
806
811
SECTION (" add high fee tx with eviction" )
807
812
{
@@ -817,9 +822,8 @@ TEST_CASE("TransactionQueue hitting the rate limit",
817
822
auto nextTx = transaction (*app, account6, 1 , 1 , 300 , 1 );
818
823
auto addResult = testQueue.add (
819
824
nextTx, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
820
- REQUIRE (addResult.txResult .value ()->getResultCode () ==
821
- txINSUFFICIENT_FEE);
822
- REQUIRE (addResult.txResult .value ()->getResult ().feeCharged == 301 );
825
+ REQUIRE (addResult.txResult ->getResultCode () == txINSUFFICIENT_FEE);
826
+ REQUIRE (addResult.txResult ->getResult ().feeCharged == 301 );
823
827
}
824
828
SECTION (" then add tx with higher fee than evicted" )
825
829
{
@@ -1239,7 +1243,7 @@ TEST_CASE("Soroban TransactionQueue limits",
1239
1243
REQUIRE (addResult.code ==
1240
1244
TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
1241
1245
REQUIRE (addResult.txResult );
1242
- REQUIRE (addResult.txResult . value () ->getResultCode () == txMALFORMED);
1246
+ REQUIRE (addResult.txResult ->getResultCode () == txMALFORMED);
1243
1247
}
1244
1248
SECTION (" source account limit, soroban and classic tx queue" )
1245
1249
{
@@ -1351,9 +1355,9 @@ TEST_CASE("Soroban TransactionQueue limits",
1351
1355
REQUIRE (!app->getHerder ().isBannedTx (tx->getFullHash ()));
1352
1356
1353
1357
REQUIRE (addResult.txResult );
1354
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
1358
+ REQUIRE (addResult.txResult ->getResultCode () ==
1355
1359
TransactionResultCode::txINSUFFICIENT_FEE);
1356
- REQUIRE (addResult.txResult . value () ->getResult ().feeCharged ==
1360
+ REQUIRE (addResult.txResult ->getResult ().feeCharged ==
1357
1361
expectedFeeCharged);
1358
1362
}
1359
1363
SECTION (" insufficient account balance" )
@@ -1368,7 +1372,7 @@ TEST_CASE("Soroban TransactionQueue limits",
1368
1372
TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
1369
1373
REQUIRE (!app->getHerder ().isBannedTx (tx->getFullHash ()));
1370
1374
REQUIRE (addResult.txResult );
1371
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
1375
+ REQUIRE (addResult.txResult ->getResultCode () ==
1372
1376
TransactionResultCode::txINSUFFICIENT_BALANCE);
1373
1377
}
1374
1378
SECTION (" invalid resources" )
@@ -1397,7 +1401,7 @@ TEST_CASE("Soroban TransactionQueue limits",
1397
1401
TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
1398
1402
REQUIRE (!app->getHerder ().isBannedTx (tx->getFullHash ()));
1399
1403
REQUIRE (addResult.txResult );
1400
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
1404
+ REQUIRE (addResult.txResult ->getResultCode () ==
1401
1405
TransactionResultCode::txSOROBAN_INVALID);
1402
1406
}
1403
1407
SECTION (" too many ops" )
@@ -1411,7 +1415,7 @@ TEST_CASE("Soroban TransactionQueue limits",
1411
1415
TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
1412
1416
REQUIRE (!app->getHerder ().isBannedTx (tx->getFullHash ()));
1413
1417
REQUIRE (addResult.txResult );
1414
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
1418
+ REQUIRE (addResult.txResult ->getResultCode () ==
1415
1419
TransactionResultCode::txMALFORMED);
1416
1420
}
1417
1421
}
@@ -2314,7 +2318,7 @@ TEST_CASE("transaction queue with fee-bump", "[herder][transactionqueue]")
2314
2318
1 , isSoroban);
2315
2319
auto addResult = test.add (
2316
2320
tx2, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2317
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
2321
+ REQUIRE (addResult.txResult ->getResultCode () ==
2318
2322
txINSUFFICIENT_BALANCE);
2319
2323
test.check (
2320
2324
{{{account1, 0 , {fb1}}, {account2}, {account3, 0 }}, {}});
@@ -2326,7 +2330,7 @@ TEST_CASE("transaction queue with fee-bump", "[herder][transactionqueue]")
2326
2330
auto fb2 = feeBump (*app, account3, tx2, newInclusionToPay);
2327
2331
auto addResult = test.add (
2328
2332
fb2, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2329
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
2333
+ REQUIRE (addResult.txResult ->getResultCode () ==
2330
2334
txINSUFFICIENT_BALANCE);
2331
2335
test.check (
2332
2336
{{{account1, 0 , {fb1}}, {account2}, {account3, 0 }}, {}});
@@ -2339,7 +2343,7 @@ TEST_CASE("transaction queue with fee-bump", "[herder][transactionqueue]")
2339
2343
REQUIRE (account3.getAvailableBalance () >= fb2->getFullFee ());
2340
2344
auto addResult = test.add (
2341
2345
fb2, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2342
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
2346
+ REQUIRE (addResult.txResult ->getResultCode () ==
2343
2347
txINSUFFICIENT_BALANCE);
2344
2348
test.check (
2345
2349
{{{account1, 0 , {fb1}}, {account2}, {account3, 0 }}, {}});
@@ -2383,7 +2387,7 @@ TEST_CASE("transaction queue with fee-bump", "[herder][transactionqueue]")
2383
2387
auto addResult = test.add (
2384
2388
fb2, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2385
2389
2386
- REQUIRE (addResult.txResult . value () ->getResultCode () ==
2390
+ REQUIRE (addResult.txResult ->getResultCode () ==
2387
2391
txINSUFFICIENT_BALANCE);
2388
2392
test.check (
2389
2393
{{{account1, 0 , {fb1}}, {account2}, {account3, 0 }},
@@ -2492,7 +2496,7 @@ TEST_CASE("replace by fee", "[herder][transactionqueue]")
2492
2496
auto fb = feeBump (*app, feeSource, tx, 399 );
2493
2497
auto addResult = test.add (
2494
2498
fb, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2495
- auto & txResult = addResult.txResult . value () ;
2499
+ auto & txResult = addResult.txResult ;
2496
2500
REQUIRE (txResult->getResultCode () == txINSUFFICIENT_FEE);
2497
2501
REQUIRE (txResult->getResult ().feeCharged ==
2498
2502
4000 + (tx->getFullFee () - tx->getInclusionFee ()));
@@ -2509,7 +2513,7 @@ TEST_CASE("replace by fee", "[herder][transactionqueue]")
2509
2513
auto fb = feeBump (*app, feeSource, tx, 3999 );
2510
2514
auto addResult = test.add (
2511
2515
fb, TransactionQueue::AddResultCode::ADD_STATUS_ERROR);
2512
- auto & txResult = addResult.txResult . value () ;
2516
+ auto & txResult = addResult.txResult ;
2513
2517
REQUIRE (txResult->getResultCode () == txINSUFFICIENT_FEE);
2514
2518
REQUIRE (txResult->getResult ().feeCharged ==
2515
2519
4000 + (tx->getFullFee () - tx->getInclusionFee ()));
0 commit comments