Compare commits

...

9 Commits

Author SHA1 Message Date
Jingchen
0976b2b68b refactor: Modularize app/tx (#6228) 2026-02-17 18:10:07 +00:00
Jingchen
36240116a5 refactor: Decouple app/tx from Application and Config (#6227)
This change decouples app/tx from `Application` and `Config` to clear the way to moving transactors to `libxrpl`.
2026-02-17 11:29:53 -05:00
Sergey Kuznetsov
958d8f3754 chore: Update clang-format to 21.1.8 (#6352) 2026-02-16 14:31:18 -05:00
Jingchen
ac0ad3627f refactor: Modularize HashRouter, Conditions, and OrderBookDB (#6226)
This change modularizes additional components by moving code to `libxrpl`.
2026-02-13 10:34:37 -05:00
nuxtreact
cd218346ff chore: Fix minor issues in comments (#6346) 2026-02-12 14:55:27 -05:00
Jingchen
5edd3566f7 refactor: Modularize the NetworkOPs interface (#6225)
This change moves the NetworkOPs interface into `libxrpl` and it leaves its implementation in `xrpld`.
2026-02-12 13:15:03 -05:00
Pratik Mankawde
11e8d1f8a2 chore: Fix gcov lib coverage build failure on macOS (#6350)
For coverage builds, we try to link against the `gcov` library (specific to the environment). But as macOS doesn't have this library and thus doesn't have the coverage tools to generate reports, the coverage builds on that platform were failing on linking.

We actually don't need to explicitly force this linking, as the `CodeCoverage` file already has correct detection logic (currently on lines 177-193), which is invoked when the `--coverage` flag is provided:
* AppleClang: Uses `xcrun -f llvm-cov` to set `GCOV_TOOL="llvm-cov gcov"`.
* Clang: Finds `llvm-cov` to set `GCOV_TOOL="llvm-cov gcov"`.
* GCC: Finds `gcov` to set `GCOV_TOOL="gcov"`.
The `GCOV_TOOL` is then passed to `gcovr` on line 416, so the correct tool is used for processing coverage data.

This change therefore removes the `gcov` suffix from lines 473 and 475 in the `CodeCoverage.cmake` file.
2026-02-12 06:11:26 -05:00
Jingchen
9f17d10348 refactor: Modularize RelationalDB (#6224)
The rdb module was not properly designed, which is fixed in this change. The module had three classes:
1) The abstract class `RelationalDB`.
2) The abstract class `SQLiteDatabase`, which inherited from `RelationalDB` and added some pure virtual methods.
3) The concrete class `SQLiteDatabaseImp`, which inherited from `SQLiteDatabase` and implemented all methods.

The updated code simplifies this as follows:
* The `SQLiteDatabaseImp` has become `SQLiteDatabase`, and
* The former `SQLiteDatabase `has merged with `RelationalDatabase`.
2026-02-11 16:22:01 +00:00
Jingchen
ef284692db refactor: Modularize WalletDB and Manifest (#6223)
This change modularizes the `WalletDB` and `Manifest`. Note that the wallet db has nothing to do with account wallets and it stores node configuration, which is why it depends on the manifest code.
2026-02-11 13:42:31 +00:00
406 changed files with 3383 additions and 2707 deletions

View File

@@ -4,14 +4,11 @@ Loop: test.jtx test.toplevel
Loop: test.jtx test.unit_test Loop: test.jtx test.unit_test
test.unit_test == test.jtx test.unit_test == test.jtx
Loop: xrpld.app xrpld.core
xrpld.app > xrpld.core
Loop: xrpld.app xrpld.overlay Loop: xrpld.app xrpld.overlay
xrpld.overlay > xrpld.app xrpld.overlay ~= xrpld.app
Loop: xrpld.app xrpld.peerfinder Loop: xrpld.app xrpld.peerfinder
xrpld.peerfinder ~= xrpld.app xrpld.peerfinder == xrpld.app
Loop: xrpld.app xrpld.rpc Loop: xrpld.app xrpld.rpc
xrpld.rpc > xrpld.app xrpld.rpc > xrpld.app

View File

@@ -1,4 +1,6 @@
libxrpl.basics > xrpl.basics libxrpl.basics > xrpl.basics
libxrpl.conditions > xrpl.basics
libxrpl.conditions > xrpl.conditions
libxrpl.core > xrpl.basics libxrpl.core > xrpl.basics
libxrpl.core > xrpl.core libxrpl.core > xrpl.core
libxrpl.crypto > xrpl.basics libxrpl.crypto > xrpl.basics
@@ -17,16 +19,27 @@ libxrpl.nodestore > xrpl.protocol
libxrpl.protocol > xrpl.basics libxrpl.protocol > xrpl.basics
libxrpl.protocol > xrpl.json libxrpl.protocol > xrpl.json
libxrpl.protocol > xrpl.protocol libxrpl.protocol > xrpl.protocol
libxrpl.rdb > xrpl.basics
libxrpl.rdb > xrpl.rdb
libxrpl.resource > xrpl.basics libxrpl.resource > xrpl.basics
libxrpl.resource > xrpl.json libxrpl.resource > xrpl.json
libxrpl.resource > xrpl.resource libxrpl.resource > xrpl.resource
libxrpl.server > xrpl.basics libxrpl.server > xrpl.basics
libxrpl.server > xrpl.json libxrpl.server > xrpl.json
libxrpl.server > xrpl.protocol libxrpl.server > xrpl.protocol
libxrpl.server > xrpl.rdb
libxrpl.server > xrpl.server libxrpl.server > xrpl.server
libxrpl.shamap > xrpl.basics libxrpl.shamap > xrpl.basics
libxrpl.shamap > xrpl.protocol libxrpl.shamap > xrpl.protocol
libxrpl.shamap > xrpl.shamap libxrpl.shamap > xrpl.shamap
libxrpl.tx > xrpl.basics
libxrpl.tx > xrpl.conditions
libxrpl.tx > xrpl.core
libxrpl.tx > xrpl.json
libxrpl.tx > xrpl.ledger
libxrpl.tx > xrpl.protocol
libxrpl.tx > xrpl.server
libxrpl.tx > xrpl.tx
test.app > test.jtx test.app > test.jtx
test.app > test.rpc test.app > test.rpc
test.app > test.toplevel test.app > test.toplevel
@@ -41,7 +54,10 @@ test.app > xrpl.json
test.app > xrpl.ledger test.app > xrpl.ledger
test.app > xrpl.nodestore test.app > xrpl.nodestore
test.app > xrpl.protocol test.app > xrpl.protocol
test.app > xrpl.rdb
test.app > xrpl.resource test.app > xrpl.resource
test.app > xrpl.server
test.app > xrpl.tx
test.basics > test.jtx test.basics > test.jtx
test.basics > test.unit_test test.basics > test.unit_test
test.basics > xrpl.basics test.basics > xrpl.basics
@@ -51,7 +67,7 @@ test.basics > xrpl.json
test.basics > xrpl.protocol test.basics > xrpl.protocol
test.beast > xrpl.basics test.beast > xrpl.basics
test.conditions > xrpl.basics test.conditions > xrpl.basics
test.conditions > xrpld.conditions test.conditions > xrpl.conditions
test.consensus > test.csf test.consensus > test.csf
test.consensus > test.toplevel test.consensus > test.toplevel
test.consensus > test.unit_test test.consensus > test.unit_test
@@ -60,6 +76,7 @@ test.consensus > xrpld.app
test.consensus > xrpld.consensus test.consensus > xrpld.consensus
test.consensus > xrpl.json test.consensus > xrpl.json
test.consensus > xrpl.ledger test.consensus > xrpl.ledger
test.consensus > xrpl.tx
test.core > test.jtx test.core > test.jtx
test.core > test.toplevel test.core > test.toplevel
test.core > test.unit_test test.core > test.unit_test
@@ -67,6 +84,7 @@ test.core > xrpl.basics
test.core > xrpl.core test.core > xrpl.core
test.core > xrpld.core test.core > xrpld.core
test.core > xrpl.json test.core > xrpl.json
test.core > xrpl.rdb
test.core > xrpl.server test.core > xrpl.server
test.csf > xrpl.basics test.csf > xrpl.basics
test.csf > xrpld.consensus test.csf > xrpld.consensus
@@ -75,6 +93,7 @@ test.csf > xrpl.protocol
test.json > test.jtx test.json > test.jtx
test.json > xrpl.json test.json > xrpl.json
test.jtx > xrpl.basics test.jtx > xrpl.basics
test.jtx > xrpl.core
test.jtx > xrpld.app test.jtx > xrpld.app
test.jtx > xrpld.core test.jtx > xrpld.core
test.jtx > xrpld.rpc test.jtx > xrpld.rpc
@@ -84,6 +103,7 @@ test.jtx > xrpl.net
test.jtx > xrpl.protocol test.jtx > xrpl.protocol
test.jtx > xrpl.resource test.jtx > xrpl.resource
test.jtx > xrpl.server test.jtx > xrpl.server
test.jtx > xrpl.tx
test.ledger > test.jtx test.ledger > test.jtx
test.ledger > test.toplevel test.ledger > test.toplevel
test.ledger > xrpl.basics test.ledger > xrpl.basics
@@ -95,8 +115,8 @@ test.nodestore > test.jtx
test.nodestore > test.toplevel test.nodestore > test.toplevel
test.nodestore > test.unit_test test.nodestore > test.unit_test
test.nodestore > xrpl.basics test.nodestore > xrpl.basics
test.nodestore > xrpld.core
test.nodestore > xrpl.nodestore test.nodestore > xrpl.nodestore
test.nodestore > xrpl.rdb
test.overlay > test.jtx test.overlay > test.jtx
test.overlay > test.toplevel test.overlay > test.toplevel
test.overlay > test.unit_test test.overlay > test.unit_test
@@ -129,8 +149,11 @@ test.rpc > xrpld.core
test.rpc > xrpld.overlay test.rpc > xrpld.overlay
test.rpc > xrpld.rpc test.rpc > xrpld.rpc
test.rpc > xrpl.json test.rpc > xrpl.json
test.rpc > xrpl.ledger
test.rpc > xrpl.protocol test.rpc > xrpl.protocol
test.rpc > xrpl.resource test.rpc > xrpl.resource
test.rpc > xrpl.server
test.rpc > xrpl.tx
test.server > test.jtx test.server > test.jtx
test.server > test.toplevel test.server > test.toplevel
test.server > test.unit_test test.server > test.unit_test
@@ -151,40 +174,57 @@ test.unit_test > xrpl.basics
tests.libxrpl > xrpl.basics tests.libxrpl > xrpl.basics
tests.libxrpl > xrpl.json tests.libxrpl > xrpl.json
tests.libxrpl > xrpl.net tests.libxrpl > xrpl.net
xrpl.conditions > xrpl.basics
xrpl.conditions > xrpl.protocol
xrpl.core > xrpl.basics xrpl.core > xrpl.basics
xrpl.core > xrpl.json xrpl.core > xrpl.json
xrpl.core > xrpl.ledger xrpl.core > xrpl.ledger
xrpl.core > xrpl.protocol
xrpl.json > xrpl.basics xrpl.json > xrpl.basics
xrpl.ledger > xrpl.basics xrpl.ledger > xrpl.basics
xrpl.ledger > xrpl.protocol xrpl.ledger > xrpl.protocol
xrpl.ledger > xrpl.server
xrpl.ledger > xrpl.shamap
xrpl.net > xrpl.basics xrpl.net > xrpl.basics
xrpl.nodestore > xrpl.basics xrpl.nodestore > xrpl.basics
xrpl.nodestore > xrpl.protocol xrpl.nodestore > xrpl.protocol
xrpl.protocol > xrpl.basics xrpl.protocol > xrpl.basics
xrpl.protocol > xrpl.json xrpl.protocol > xrpl.json
xrpl.rdb > xrpl.basics
xrpl.rdb > xrpl.core
xrpl.rdb > xrpl.protocol
xrpl.resource > xrpl.basics xrpl.resource > xrpl.basics
xrpl.resource > xrpl.json xrpl.resource > xrpl.json
xrpl.resource > xrpl.protocol xrpl.resource > xrpl.protocol
xrpl.server > xrpl.basics xrpl.server > xrpl.basics
xrpl.server > xrpl.core
xrpl.server > xrpl.json xrpl.server > xrpl.json
xrpl.server > xrpl.protocol xrpl.server > xrpl.protocol
xrpl.server > xrpl.rdb
xrpl.server > xrpl.resource
xrpl.server > xrpl.shamap
xrpl.shamap > xrpl.basics xrpl.shamap > xrpl.basics
xrpl.shamap > xrpl.nodestore xrpl.shamap > xrpl.nodestore
xrpl.shamap > xrpl.protocol xrpl.shamap > xrpl.protocol
xrpl.tx > xrpl.basics
xrpl.tx > xrpl.core
xrpl.tx > xrpl.ledger
xrpl.tx > xrpl.protocol
xrpld.app > test.unit_test xrpld.app > test.unit_test
xrpld.app > xrpl.basics xrpld.app > xrpl.basics
xrpld.app > xrpl.core xrpld.app > xrpl.core
xrpld.app > xrpld.conditions
xrpld.app > xrpld.consensus xrpld.app > xrpld.consensus
xrpld.app > xrpld.core
xrpld.app > xrpl.json xrpld.app > xrpl.json
xrpld.app > xrpl.ledger xrpld.app > xrpl.ledger
xrpld.app > xrpl.net xrpld.app > xrpl.net
xrpld.app > xrpl.nodestore xrpld.app > xrpl.nodestore
xrpld.app > xrpl.protocol xrpld.app > xrpl.protocol
xrpld.app > xrpl.rdb
xrpld.app > xrpl.resource xrpld.app > xrpl.resource
xrpld.app > xrpl.server
xrpld.app > xrpl.shamap xrpld.app > xrpl.shamap
xrpld.conditions > xrpl.basics xrpld.app > xrpl.tx
xrpld.conditions > xrpl.protocol
xrpld.consensus > xrpl.basics xrpld.consensus > xrpl.basics
xrpld.consensus > xrpl.json xrpld.consensus > xrpl.json
xrpld.consensus > xrpl.protocol xrpld.consensus > xrpl.protocol
@@ -193,17 +233,21 @@ xrpld.core > xrpl.core
xrpld.core > xrpl.json xrpld.core > xrpl.json
xrpld.core > xrpl.net xrpld.core > xrpl.net
xrpld.core > xrpl.protocol xrpld.core > xrpl.protocol
xrpld.core > xrpl.rdb
xrpld.overlay > xrpl.basics xrpld.overlay > xrpl.basics
xrpld.overlay > xrpl.core xrpld.overlay > xrpl.core
xrpld.overlay > xrpld.core xrpld.overlay > xrpld.core
xrpld.overlay > xrpld.peerfinder xrpld.overlay > xrpld.peerfinder
xrpld.overlay > xrpl.json xrpld.overlay > xrpl.json
xrpld.overlay > xrpl.protocol xrpld.overlay > xrpl.protocol
xrpld.overlay > xrpl.rdb
xrpld.overlay > xrpl.resource xrpld.overlay > xrpl.resource
xrpld.overlay > xrpl.server xrpld.overlay > xrpl.server
xrpld.overlay > xrpl.tx
xrpld.peerfinder > xrpl.basics xrpld.peerfinder > xrpl.basics
xrpld.peerfinder > xrpld.core xrpld.peerfinder > xrpld.core
xrpld.peerfinder > xrpl.protocol xrpld.peerfinder > xrpl.protocol
xrpld.peerfinder > xrpl.rdb
xrpld.perflog > xrpl.basics xrpld.perflog > xrpl.basics
xrpld.perflog > xrpl.core xrpld.perflog > xrpl.core
xrpld.perflog > xrpld.rpc xrpld.perflog > xrpld.rpc
@@ -216,6 +260,8 @@ xrpld.rpc > xrpl.ledger
xrpld.rpc > xrpl.net xrpld.rpc > xrpl.net
xrpld.rpc > xrpl.nodestore xrpld.rpc > xrpl.nodestore
xrpld.rpc > xrpl.protocol xrpld.rpc > xrpl.protocol
xrpld.rpc > xrpl.rdb
xrpld.rpc > xrpl.resource xrpld.rpc > xrpl.resource
xrpld.rpc > xrpl.server xrpld.rpc > xrpl.server
xrpld.rpc > xrpl.tx
xrpld.shamap > xrpl.shamap xrpld.shamap > xrpl.shamap

3
.gitignore vendored
View File

@@ -71,3 +71,6 @@ DerivedData
/.augment /.augment
/.claude /.claude
/CLAUDE.md /CLAUDE.md
# clangd cache
/.cache

View File

@@ -20,7 +20,7 @@ repos:
args: [--assume-in-merge] args: [--assume-in-merge]
- repo: https://github.com/pre-commit/mirrors-clang-format - repo: https://github.com/pre-commit/mirrors-clang-format
rev: 7d85583be209cb547946c82fbe51f4bc5dd1d017 # frozen: v18.1.8 rev: 75ca4ad908dc4a99f57921f29b7e6c1521e10b26 # frozen: v21.1.8
hooks: hooks:
- id: clang-format - id: clang-format
args: [--style=file] args: [--style=file]

View File

@@ -219,7 +219,7 @@ coherent rather than a set of _thou shalt not_ commandments.
## Formatting ## Formatting
All code must conform to `clang-format` version 18, All code must conform to `clang-format` version 21,
according to the settings in [`.clang-format`](./.clang-format), according to the settings in [`.clang-format`](./.clang-format),
unless the result would be unreasonably difficult to read or maintain. unless the result would be unreasonably difficult to read or maintain.
To demarcate lines that should be left as-is, surround them with comments like To demarcate lines that should be left as-is, surround them with comments like

View File

@@ -466,11 +466,6 @@ function (add_code_coverage_to_target name scope)
target_compile_options(${name} ${scope} $<$<COMPILE_LANGUAGE:CXX>:${COVERAGE_CXX_COMPILER_FLAGS}> target_compile_options(${name} ${scope} $<$<COMPILE_LANGUAGE:CXX>:${COVERAGE_CXX_COMPILER_FLAGS}>
$<$<COMPILE_LANGUAGE:C>:${COVERAGE_C_COMPILER_FLAGS}>) $<$<COMPILE_LANGUAGE:C>:${COVERAGE_C_COMPILER_FLAGS}>)
target_link_libraries( target_link_libraries(${name} ${scope} $<$<LINK_LANGUAGE:CXX>:${COVERAGE_CXX_LINKER_FLAGS}>
${name} $<$<LINK_LANGUAGE:C>:${COVERAGE_C_LINKER_FLAGS}>)
${scope}
$<$<LINK_LANGUAGE:CXX>:${COVERAGE_CXX_LINKER_FLAGS}
gcov>
$<$<LINK_LANGUAGE:C>:${COVERAGE_C_LINKER_FLAGS}
gcov>)
endfunction () # add_code_coverage_to_target endfunction () # add_code_coverage_to_target

View File

@@ -84,9 +84,6 @@ add_module(xrpl net)
target_link_libraries(xrpl.libxrpl.net PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol target_link_libraries(xrpl.libxrpl.net PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol
xrpl.libxrpl.resource) xrpl.libxrpl.resource)
add_module(xrpl server)
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)
add_module(xrpl nodestore) add_module(xrpl nodestore)
target_link_libraries(xrpl.libxrpl.nodestore PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol) target_link_libraries(xrpl.libxrpl.nodestore PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol)
@@ -94,8 +91,29 @@ add_module(xrpl shamap)
target_link_libraries(xrpl.libxrpl.shamap PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.crypto xrpl.libxrpl.protocol target_link_libraries(xrpl.libxrpl.shamap PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.crypto xrpl.libxrpl.protocol
xrpl.libxrpl.nodestore) xrpl.libxrpl.nodestore)
add_module(xrpl rdb)
target_link_libraries(xrpl.libxrpl.rdb PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.core)
add_module(xrpl server)
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol xrpl.libxrpl.core xrpl.libxrpl.rdb
xrpl.libxrpl.resource)
add_module(xrpl conditions)
target_link_libraries(xrpl.libxrpl.conditions PUBLIC xrpl.libxrpl.server)
add_module(xrpl ledger) add_module(xrpl ledger)
target_link_libraries(xrpl.libxrpl.ledger PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol) target_link_libraries(
xrpl.libxrpl.ledger
PUBLIC xrpl.libxrpl.basics
xrpl.libxrpl.json
xrpl.libxrpl.protocol
xrpl.libxrpl.rdb
xrpl.libxrpl.server
xrpl.libxrpl.shamap
xrpl.libxrpl.conditions)
add_module(xrpl tx)
target_link_libraries(xrpl.libxrpl.tx PUBLIC xrpl.libxrpl.ledger)
add_library(xrpl.libxrpl) add_library(xrpl.libxrpl)
set_target_properties(xrpl.libxrpl PROPERTIES OUTPUT_NAME xrpl) set_target_properties(xrpl.libxrpl PROPERTIES OUTPUT_NAME xrpl)
@@ -110,16 +128,19 @@ target_link_modules(
PUBLIC PUBLIC
basics basics
beast beast
conditions
core core
crypto crypto
json json
ledger
net
nodestore
protocol protocol
rdb
resource resource
server server
nodestore
shamap shamap
net tx)
ledger)
# All headers in libxrpl are in modules. # All headers in libxrpl are in modules.
# Uncomment this stanza if you have not yet moved new headers into a module. # Uncomment this stanza if you have not yet moved new headers into a module.

View File

@@ -20,9 +20,11 @@ install(TARGETS common
xrpl.libxrpl xrpl.libxrpl
xrpl.libxrpl.basics xrpl.libxrpl.basics
xrpl.libxrpl.beast xrpl.libxrpl.beast
xrpl.libxrpl.conditions
xrpl.libxrpl.core xrpl.libxrpl.core
xrpl.libxrpl.crypto xrpl.libxrpl.crypto
xrpl.libxrpl.json xrpl.libxrpl.json
xrpl.libxrpl.rdb
xrpl.libxrpl.ledger xrpl.libxrpl.ledger
xrpl.libxrpl.net xrpl.libxrpl.net
xrpl.libxrpl.nodestore xrpl.libxrpl.nodestore
@@ -30,6 +32,7 @@ install(TARGETS common
xrpl.libxrpl.resource xrpl.libxrpl.resource
xrpl.libxrpl.server xrpl.libxrpl.server
xrpl.libxrpl.shamap xrpl.libxrpl.shamap
xrpl.libxrpl.tx
antithesis-sdk-cpp antithesis-sdk-cpp
EXPORT XrplExports EXPORT XrplExports
LIBRARY DESTINATION lib LIBRARY DESTINATION lib

View File

@@ -17,8 +17,8 @@ guideline is to maintain the standards that are used in those libraries.
## Guidelines ## Guidelines
If you want to do something contrary to these guidelines, understand If you want to do something contrary to these guidelines, understand
why you're doing it. Think, use common sense, and consider that this why you're doing it. Think, use common sense, and consider that these
your changes will probably need to be maintained long after you've changes will probably need to be maintained long after you've
moved on to other projects. moved on to other projects.
- Use white space and blank lines to guide the eye and keep your intent clear. - Use white space and blank lines to guide the eye and keep your intent clear.

View File

@@ -208,7 +208,8 @@ SharedIntrusive<T>::operator->() const noexcept
} }
template <class T> template <class T>
SharedIntrusive<T>::operator bool() const noexcept SharedIntrusive<T>::
operator bool() const noexcept
{ {
return bool(unsafeGetRawPtr()); return bool(unsafeGetRawPtr());
} }
@@ -503,7 +504,8 @@ SharedWeakUnion<T>::getStrong() const
} }
template <class T> template <class T>
SharedWeakUnion<T>::operator bool() const noexcept SharedWeakUnion<T>::
operator bool() const noexcept
{ {
return bool(get()); return bool(get());
} }

View File

@@ -63,7 +63,8 @@ SharedWeakCachePointer<T>::getStrong() const
} }
template <class T> template <class T>
SharedWeakCachePointer<T>::operator bool() const noexcept SharedWeakCachePointer<T>::
operator bool() const noexcept
{ {
return !!std::get_if<std::shared_ptr<T>>(&combo_); return !!std::get_if<std::shared_ptr<T>>(&combo_);
} }

View File

@@ -215,7 +215,7 @@ public:
// clang-format off // clang-format off
if (!buf) [[unlikely]] if (!buf) [[unlikely]]
return nullptr; return nullptr;
// clang-format on // clang-format on
#if BOOST_OS_LINUX #if BOOST_OS_LINUX
// When allocating large blocks, attempt to leverage Linux's // When allocating large blocks, attempt to leverage Linux's

View File

@@ -1,9 +1,8 @@
#pragma once #pragma once
#include <xrpld/conditions/detail/utils.h>
#include <xrpl/basics/Buffer.h> #include <xrpl/basics/Buffer.h>
#include <xrpl/basics/Slice.h> #include <xrpl/basics/Slice.h>
#include <xrpl/conditions/detail/utils.h>
#include <cstdint> #include <cstdint>
#include <set> #include <set>

View File

@@ -1,9 +1,8 @@
#pragma once #pragma once
#include <xrpld/conditions/Condition.h>
#include <xrpl/basics/Buffer.h> #include <xrpl/basics/Buffer.h>
#include <xrpl/basics/Slice.h> #include <xrpl/basics/Slice.h>
#include <xrpl/conditions/Condition.h>
namespace xrpl { namespace xrpl {
namespace cryptoconditions { namespace cryptoconditions {

View File

@@ -1,11 +1,10 @@
#pragma once #pragma once
#include <xrpld/conditions/Condition.h>
#include <xrpld/conditions/Fulfillment.h>
#include <xrpld/conditions/detail/error.h>
#include <xrpl/basics/Buffer.h> #include <xrpl/basics/Buffer.h>
#include <xrpl/basics/Slice.h> #include <xrpl/basics/Slice.h>
#include <xrpl/conditions/Condition.h>
#include <xrpl/conditions/Fulfillment.h>
#include <xrpl/conditions/detail/error.h>
#include <xrpl/protocol/digest.h> #include <xrpl/protocol/digest.h>
#include <memory> #include <memory>

View File

@@ -1,9 +1,8 @@
#pragma once #pragma once
#include <xrpld/conditions/detail/error.h>
#include <xrpl/basics/Buffer.h> #include <xrpl/basics/Buffer.h>
#include <xrpl/basics/Slice.h> #include <xrpl/basics/Slice.h>
#include <xrpl/conditions/detail/error.h>
#include <boost/dynamic_bitset.hpp> #include <boost/dynamic_bitset.hpp>

View File

@@ -251,7 +251,4 @@ private:
beast::aged_unordered_map<uint256, Entry, Stopwatch::clock_type, hardened_hash<strong_hash>> suppressionMap_; beast::aged_unordered_map<uint256, Entry, Stopwatch::clock_type, hardened_hash<strong_hash>> suppressionMap_;
}; };
HashRouter::Setup
setup_HashRouter(Config const&);
} // namespace xrpl } // namespace xrpl

View File

@@ -0,0 +1,33 @@
#pragma once
#include <cstdint>
namespace xrpl {
/** Service that provides access to the network ID.
This service provides read-only access to the network ID configured
for this server. The network ID identifies which network (mainnet,
testnet, devnet, or custom network) this server is configured to
connect to.
Well-known network IDs:
- 0: Mainnet
- 1: Testnet
- 2: Devnet
- 1025+: Custom networks (require NetworkID field in transactions)
*/
class NetworkIDService
{
public:
virtual ~NetworkIDService() = default;
/** Get the configured network ID
*
* @return The network ID this server is configured for
*/
virtual std::uint32_t
getNetworkID() const noexcept = 0;
};
} // namespace xrpl

View File

@@ -5,6 +5,8 @@
#include <xrpl/basics/TaggedCache.h> #include <xrpl/basics/TaggedCache.h>
#include <xrpl/ledger/CachedSLEs.h> #include <xrpl/ledger/CachedSLEs.h>
#include <boost/asio.hpp>
namespace xrpl { namespace xrpl {
// Forward declarations // Forward declarations
@@ -18,6 +20,10 @@ namespace perf {
class PerfLog; class PerfLog;
} }
// This is temporary until we migrate all code to use ServiceRegistry.
class Application;
// Forward declarations
class AcceptedLedger; class AcceptedLedger;
class AmendmentTable; class AmendmentTable;
class Cluster; class Cluster;
@@ -35,6 +41,7 @@ class LoadFeeTrack;
class LoadManager; class LoadManager;
class ManifestCache; class ManifestCache;
class NetworkOPs; class NetworkOPs;
class NetworkIDService;
class OpenLedger; class OpenLedger;
class OrderBookDB; class OrderBookDB;
class Overlay; class Overlay;
@@ -93,6 +100,9 @@ public:
virtual CachedSLEs& virtual CachedSLEs&
cachedSLEs() = 0; cachedSLEs() = 0;
virtual NetworkIDService&
getNetworkIDService() = 0;
// Protocol and validation services // Protocol and validation services
virtual AmendmentTable& virtual AmendmentTable&
getAmendmentTable() = 0; getAmendmentTable() = 0;
@@ -194,6 +204,31 @@ public:
virtual perf::PerfLog& virtual perf::PerfLog&
getPerfLog() = 0; getPerfLog() = 0;
// Configuration and state
virtual bool
isStopping() const = 0;
virtual beast::Journal
journal(std::string const& name) = 0;
virtual boost::asio::io_context&
getIOContext() = 0;
virtual Logs&
logs() = 0;
virtual std::optional<uint256> const&
trapTxID() const = 0;
/** Retrieve the "wallet database" */
virtual DatabaseCon&
getWalletDB() = 0;
// Temporary: Get the underlying Application for functions that haven't
// been migrated yet. This should be removed once all code is migrated.
virtual Application&
app() = 0;
}; };
} // namespace xrpl } // namespace xrpl

View File

@@ -0,0 +1,16 @@
#pragma once
#include <iosfwd>
#include <type_traits>
namespace xrpl {
enum class StartUpType { FRESH, NORMAL, LOAD, LOAD_FILE, REPLAY, NETWORK };
inline std::ostream&
operator<<(std::ostream& os, StartUpType const& type)
{
return os << static_cast<std::underlying_type_t<StartUpType>>(type);
}
} // namespace xrpl

View File

@@ -1,15 +1,15 @@
#pragma once #pragma once
#include <xrpld/app/ledger/Ledger.h> #include <xrpl/basics/CountedObject.h>
#include <xrpl/ledger/ReadView.h>
#include <xrpl/protocol/AccountID.h> #include <xrpl/protocol/AccountID.h>
#include <xrpl/protocol/STTx.h>
#include <xrpl/protocol/TxMeta.h>
#include <boost/container/flat_set.hpp> #include <boost/container/flat_set.hpp>
namespace xrpl { namespace xrpl {
class Logs;
/** /**
A transaction that is in a closed ledger. A transaction that is in a closed ledger.

View File

@@ -1,16 +1,18 @@
#pragma once #pragma once
#include <xrpld/app/ledger/Ledger.h> #include <xrpl/ledger/ReadView.h>
#include <xrpld/core/ConfigSections.h> #include <xrpl/ledger/View.h>
#include <xrpl/protocol/Feature.h> #include <xrpl/protocol/Feature.h>
#include <xrpl/protocol/Protocol.h> #include <xrpl/protocol/Protocol.h>
#include <xrpl/protocol/STValidation.h> #include <xrpl/protocol/STValidation.h>
#include <xrpl/shamap/SHAMap.h>
#include <optional> #include <optional>
namespace xrpl { namespace xrpl {
class ServiceRegistry;
/** The amendment table stores the list of enabled and potential amendments. /** The amendment table stores the list of enabled and potential amendments.
Individuals amendments are voted on by validators during the consensus Individuals amendments are voted on by validators during the consensus
process. process.
@@ -163,7 +165,7 @@ public:
std::unique_ptr<AmendmentTable> std::unique_ptr<AmendmentTable>
make_AmendmentTable( make_AmendmentTable(
Application& app, ServiceRegistry& registry,
std::chrono::seconds majorityTime, std::chrono::seconds majorityTime,
std::vector<AmendmentTable::FeatureInfo> const& supported, std::vector<AmendmentTable::FeatureInfo> const& supported,
Section const& enabled, Section const& enabled,

View File

@@ -1,8 +1,7 @@
#pragma once #pragma once
#include <xrpld/rpc/InfoSub.h>
#include <xrpl/protocol/MultiApiJson.h> #include <xrpl/protocol/MultiApiJson.h>
#include <xrpl/server/InfoSub.h>
#include <memory> #include <memory>
#include <mutex> #include <mutex>

View File

@@ -0,0 +1,93 @@
#pragma once
#include <xrpl/ledger/AcceptedLedgerTx.h>
#include <xrpl/ledger/BookListeners.h>
#include <xrpl/ledger/ReadView.h>
#include <xrpl/protocol/Book.h>
#include <xrpl/protocol/Issue.h>
#include <xrpl/protocol/MultiApiJson.h>
#include <xrpl/protocol/UintTypes.h>
#include <memory>
#include <optional>
#include <vector>
namespace xrpl {
/** Tracks order books in the ledger.
This interface provides access to order book information, including:
- Which order books exist in the ledger
- Querying order books by issue
- Managing order book subscriptions
The order book database is updated as ledgers are accepted and provides
efficient lookup of order book information for pathfinding and client
subscriptions.
*/
class OrderBookDB
{
public:
virtual ~OrderBookDB() = default;
/** Initialize or update the order book database with a new ledger.
This method should be called when a new ledger is accepted to update
the order book database with the current state of all order books.
@param ledger The ledger to scan for order books
*/
virtual void
setup(std::shared_ptr<ReadView const> const& ledger) = 0;
/** Add an order book to track.
@param book The order book to add
*/
virtual void
addOrderBook(Book const& book) = 0;
/** Get all order books that want a specific issue.
Returns a list of all order books where the taker pays the specified
issue. This is useful for pathfinding to find all possible next hops
from a given currency.
@param issue The issue to search for
@param domain Optional domain restriction for the order book
@return Vector of books that want this issue
*/
virtual std::vector<Book>
getBooksByTakerPays(Issue const& issue, std::optional<Domain> const& domain = std::nullopt) = 0;
/** Get the count of order books that want a specific issue.
@param issue The issue to search for
@param domain Optional domain restriction for the order book
@return Number of books that want this issue
*/
virtual int
getBookSize(Issue const& issue, std::optional<Domain> const& domain = std::nullopt) = 0;
/** Check if an order book to XRP exists for the given issue.
@param issue The issue to check
@param domain Optional domain restriction for the order book
@return true if a book from this issue to XRP exists
*/
virtual bool
isBookToXRP(Issue const& issue, std::optional<Domain> domain = std::nullopt) = 0;
virtual void
processTxn(
std::shared_ptr<ReadView const> const& ledger,
AcceptedLedgerTx const& alTx,
MultiApiJson const& jvObj) = 0;
virtual BookListeners::pointer
getBookListeners(Book const&) = 0;
virtual BookListeners::pointer
makeBookListeners(Book const&) = 0;
};
} // namespace xrpl

View File

@@ -296,7 +296,7 @@ public:
friend FeatureBitset friend FeatureBitset
operator^(FeatureBitset const& lhs, uint256 const& rhs) operator^(FeatureBitset const& lhs, uint256 const& rhs)
{ {
return lhs ^ FeatureBitset { rhs }; return lhs ^ FeatureBitset{rhs};
} }
friend FeatureBitset friend FeatureBitset

View File

@@ -110,7 +110,8 @@ IOUAmount::operator=(beast::Zero)
return *this; return *this;
} }
inline IOUAmount::operator Number() const inline IOUAmount::
operator Number() const
{ {
return Number{mantissa_, exponent_}; return Number{mantissa_, exponent_};
} }
@@ -140,7 +141,8 @@ IOUAmount::operator<(IOUAmount const& other) const
return Number{*this} < Number{other}; return Number{*this} < Number{other};
} }
inline IOUAmount::operator bool() const noexcept inline IOUAmount::
operator bool() const noexcept
{ {
return mantissa_ != 0; return mantissa_ != 0;
} }

View File

@@ -0,0 +1,22 @@
#pragma once
namespace xrpl {
/**
* @brief Enumeration of ledger shortcuts for specifying which ledger to use.
*
* These shortcuts provide a convenient way to reference commonly used ledgers
* without needing to specify their exact hash or sequence number.
*/
enum class LedgerShortcut {
/** The current working ledger (open, not yet closed) */
Current,
/** The most recently closed ledger (may not be validated) */
Closed,
/** The most recently validated ledger */
Validated
};
} // namespace xrpl

View File

@@ -93,7 +93,8 @@ MPTAmount::operator=(beast::Zero)
} }
/** Returns true if the amount is not zero */ /** Returns true if the amount is not zero */
constexpr MPTAmount::operator bool() const noexcept constexpr MPTAmount::
operator bool() const noexcept
{ {
return value_ != 0; return value_ != 0;
} }

View File

@@ -107,7 +107,7 @@ struct MultiApiJson
// unsigned int version, extra arguments // unsigned int version, extra arguments
template <typename Json, typename Version, typename... Args, typename Fn> template <typename Json, typename Version, typename... Args, typename Fn>
requires(!some_integral_constant<Version>) && std::convertible_to<Version, unsigned> && requires(!some_integral_constant<Version>) && std::convertible_to<Version, unsigned> &&
std::same_as<std::remove_cvref_t<Json>, MultiApiJson> std::same_as<std::remove_cvref_t<Json>, MultiApiJson>
auto auto
operator()(Json& json, Version version, Fn fn, Args&&... args) const operator()(Json& json, Version version, Fn fn, Args&&... args) const
-> std::invoke_result_t<Fn, decltype(json.val[0]), Version, Args&&...> -> std::invoke_result_t<Fn, decltype(json.val[0]), Version, Args&&...>
@@ -122,7 +122,7 @@ struct MultiApiJson
// unsigned int version, Json only // unsigned int version, Json only
template <typename Json, typename Version, typename Fn> template <typename Json, typename Version, typename Fn>
requires(!some_integral_constant<Version>) && std::convertible_to<Version, unsigned> && requires(!some_integral_constant<Version>) && std::convertible_to<Version, unsigned> &&
std::same_as<std::remove_cvref_t<Json>, MultiApiJson> std::same_as<std::remove_cvref_t<Json>, MultiApiJson>
auto auto
operator()(Json& json, Version version, Fn fn) const -> std::invoke_result_t<Fn, decltype(json.val[0])> operator()(Json& json, Version version, Fn fn) const -> std::invoke_result_t<Fn, decltype(json.val[0])>
{ {

View File

@@ -253,6 +253,16 @@ std::uint8_t constexpr maxAssetCheckDepth = 5;
/** A ledger index. */ /** A ledger index. */
using LedgerIndex = std::uint32_t; using LedgerIndex = std::uint32_t;
std::uint32_t constexpr FLAG_LEDGER_INTERVAL = 256;
/** Returns true if the given ledgerIndex is a voting ledgerIndex */
bool
isVotingLedger(LedgerIndex seq);
/** Returns true if the given ledgerIndex is a flag ledgerIndex */
bool
isFlagLedger(LedgerIndex seq);
/** A transaction identifier. /** A transaction identifier.
The value is computed as the hash of the The value is computed as the hash of the
canonicalized, serialized transaction object. canonicalized, serialized transaction object.

View File

@@ -480,12 +480,14 @@ STAmount::zeroed() const
return STAmount(mAsset); return STAmount(mAsset);
} }
inline STAmount::operator bool() const noexcept inline STAmount::
operator bool() const noexcept
{ {
return *this != beast::zero; return *this != beast::zero;
} }
inline STAmount::operator Number() const inline STAmount::
operator Number() const
{ {
if (native()) if (native())
return xrp(); return xrp();

View File

@@ -169,7 +169,8 @@ STBitString<Bits>::value() const
} }
template <int Bits> template <int Bits>
STBitString<Bits>::operator value_type() const STBitString<Bits>::
operator value_type() const
{ {
return value_; return value_;
} }

View File

@@ -134,7 +134,8 @@ STInteger<Integer>::setValue(Integer v)
} }
template <typename Integer> template <typename Integer>
inline STInteger<Integer>::operator Integer() const inline STInteger<Integer>::
operator Integer() const
{ {
return value_; return value_;
} }

View File

@@ -147,9 +147,12 @@ public:
int int
getCount() const; getCount() const;
bool setFlag(std::uint32_t); bool
bool clearFlag(std::uint32_t); setFlag(std::uint32_t);
bool isFlag(std::uint32_t) const; bool
clearFlag(std::uint32_t);
bool
isFlag(std::uint32_t) const;
std::uint32_t std::uint32_t
getFlags() const; getFlags() const;
@@ -799,7 +802,8 @@ STObject::ValueProxy<T>::operator-=(U const& u)
} }
template <class T> template <class T>
STObject::ValueProxy<T>::operator value_type() const STObject::ValueProxy<T>::
operator value_type() const
{ {
return this->value(); return this->value();
} }
@@ -812,13 +816,15 @@ STObject::ValueProxy<T>::ValueProxy(STObject* st, TypedField<T> const* f) : Prox
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
template <class T> template <class T>
STObject::OptionalProxy<T>::operator bool() const noexcept STObject::OptionalProxy<T>::
operator bool() const noexcept
{ {
return engaged(); return engaged();
} }
template <class T> template <class T>
STObject::OptionalProxy<T>::operator typename STObject::OptionalProxy<T>::optional_type() const STObject::OptionalProxy<T>::
operator typename STObject::OptionalProxy<T>::optional_type() const
{ {
return optional_value(); return optional_value();
} }

View File

@@ -135,7 +135,8 @@ STVector256::setValue(STVector256 const& v)
} }
/** Retrieve a copy of the vector we contain */ /** Retrieve a copy of the vector we contain */
inline STVector256::operator std::vector<uint256>() const inline STVector256::
operator std::vector<uint256>() const
{ {
return mValue; return mValue;
} }

View File

@@ -484,60 +484,54 @@ public:
// Only enabled if both arguments return int if TERtiInt is called with them. // Only enabled if both arguments return int if TERtiInt is called with them.
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator==(L const& lhs, R const& rhs) operator==(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) == TERtoInt(rhs); return TERtoInt(lhs) == TERtoInt(rhs);
} }
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator!=(L const& lhs, R const& rhs) operator!=(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) != TERtoInt(rhs); return TERtoInt(lhs) != TERtoInt(rhs);
} }
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator<(L const& lhs, R const& rhs) operator<(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) < TERtoInt(rhs); return TERtoInt(lhs) < TERtoInt(rhs);
} }
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator<=(L const& lhs, R const& rhs) operator<=(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) <= TERtoInt(rhs); return TERtoInt(lhs) <= TERtoInt(rhs);
} }
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator>(L const& lhs, R const& rhs) operator>(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) > TERtoInt(rhs); return TERtoInt(lhs) > TERtoInt(rhs);
} }
template <typename L, typename R> template <typename L, typename R>
constexpr auto constexpr auto
operator>=(L const& lhs, R const& rhs) operator>=(L const& lhs, R const& rhs) -> std::enable_if_t<
-> std::enable_if_t< std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value,
std::is_same<decltype(TERtoInt(lhs)), int>::value && std::is_same<decltype(TERtoInt(rhs)), int>::value, bool>
bool>
{ {
return TERtoInt(lhs) >= TERtoInt(rhs); return TERtoInt(lhs) >= TERtoInt(rhs);
} }

View File

@@ -0,0 +1,7 @@
#pragma once
namespace xrpl {
enum class TxSearched { all, some, unknown };
}

View File

@@ -8,11 +8,11 @@
* To ease maintenance, you may replace any unneeded values with "..." * To ease maintenance, you may replace any unneeded values with "..."
* e.g. #define TRANSACTION(tag, value, name, ...) * e.g. #define TRANSACTION(tag, value, name, ...)
* *
* You must define a transactor class in the `ripple` namespace named `name`, * You must define a transactor class in the `xrpl` namespace named `name`,
* and include its header alongside the TRANSACTOR definition using this * and include its header alongside the TRANSACTOR definition using this
* format: * format:
* #if TRANSACTION_INCLUDE * #if TRANSACTION_INCLUDE
* # include <xrpld/app/tx/detail/HEADER.h> * # include <xrpl/tx/transactors/HEADER.h>
* #endif * #endif
* *
* The `privileges` parameter of the TRANSACTION macro is a bitfield * The `privileges` parameter of the TRANSACTION macro is a bitfield
@@ -22,7 +22,7 @@
/** This transaction type executes a payment. */ /** This transaction type executes a payment. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Payment.h> # include <xrpl/tx/transactors/Payment.h>
#endif #endif
TRANSACTION(ttPAYMENT, 0, Payment, TRANSACTION(ttPAYMENT, 0, Payment,
Delegation::delegable, Delegation::delegable,
@@ -42,7 +42,7 @@ TRANSACTION(ttPAYMENT, 0, Payment,
/** This transaction type creates an escrow object. */ /** This transaction type creates an escrow object. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Escrow.h> # include <xrpl/tx/transactors/Escrow.h>
#endif #endif
TRANSACTION(ttESCROW_CREATE, 1, EscrowCreate, TRANSACTION(ttESCROW_CREATE, 1, EscrowCreate,
Delegation::delegable, Delegation::delegable,
@@ -73,7 +73,7 @@ TRANSACTION(ttESCROW_FINISH, 2, EscrowFinish,
/** This transaction type adjusts various account settings. */ /** This transaction type adjusts various account settings. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/SetAccount.h> # include <xrpl/tx/transactors/SetAccount.h>
#endif #endif
TRANSACTION(ttACCOUNT_SET, 3, AccountSet, TRANSACTION(ttACCOUNT_SET, 3, AccountSet,
Delegation::notDelegable, Delegation::notDelegable,
@@ -94,7 +94,7 @@ TRANSACTION(ttACCOUNT_SET, 3, AccountSet,
/** This transaction type cancels an existing escrow. */ /** This transaction type cancels an existing escrow. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Escrow.h> # include <xrpl/tx/transactors/Escrow.h>
#endif #endif
TRANSACTION(ttESCROW_CANCEL, 4, EscrowCancel, TRANSACTION(ttESCROW_CANCEL, 4, EscrowCancel,
Delegation::delegable, Delegation::delegable,
@@ -107,7 +107,7 @@ TRANSACTION(ttESCROW_CANCEL, 4, EscrowCancel,
/** This transaction type sets or clears an account's "regular key". */ /** This transaction type sets or clears an account's "regular key". */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/SetRegularKey.h> # include <xrpl/tx/transactors/SetRegularKey.h>
#endif #endif
TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey, TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey,
Delegation::notDelegable, Delegation::notDelegable,
@@ -121,7 +121,7 @@ TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey,
/** This transaction type creates an offer to trade one asset for another. */ /** This transaction type creates an offer to trade one asset for another. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CreateOffer.h> # include <xrpl/tx/transactors/Offer/CreateOffer.h>
#endif #endif
TRANSACTION(ttOFFER_CREATE, 7, OfferCreate, TRANSACTION(ttOFFER_CREATE, 7, OfferCreate,
Delegation::delegable, Delegation::delegable,
@@ -137,7 +137,7 @@ TRANSACTION(ttOFFER_CREATE, 7, OfferCreate,
/** This transaction type cancels existing offers to trade one asset for another. */ /** This transaction type cancels existing offers to trade one asset for another. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CancelOffer.h> # include <xrpl/tx/transactors/Offer/CancelOffer.h>
#endif #endif
TRANSACTION(ttOFFER_CANCEL, 8, OfferCancel, TRANSACTION(ttOFFER_CANCEL, 8, OfferCancel,
Delegation::delegable, Delegation::delegable,
@@ -151,7 +151,7 @@ TRANSACTION(ttOFFER_CANCEL, 8, OfferCancel,
/** This transaction type creates a new set of tickets. */ /** This transaction type creates a new set of tickets. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CreateTicket.h> # include <xrpl/tx/transactors/CreateTicket.h>
#endif #endif
TRANSACTION(ttTICKET_CREATE, 10, TicketCreate, TRANSACTION(ttTICKET_CREATE, 10, TicketCreate,
Delegation::delegable, Delegation::delegable,
@@ -167,7 +167,7 @@ TRANSACTION(ttTICKET_CREATE, 10, TicketCreate,
// The SignerEntries are optional because a SignerList is deleted by // The SignerEntries are optional because a SignerList is deleted by
// setting the SignerQuorum to zero and omitting SignerEntries. // setting the SignerQuorum to zero and omitting SignerEntries.
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/SetSignerList.h> # include <xrpl/tx/transactors/SetSignerList.h>
#endif #endif
TRANSACTION(ttSIGNER_LIST_SET, 12, SignerListSet, TRANSACTION(ttSIGNER_LIST_SET, 12, SignerListSet,
Delegation::notDelegable, Delegation::notDelegable,
@@ -180,7 +180,7 @@ TRANSACTION(ttSIGNER_LIST_SET, 12, SignerListSet,
/** This transaction type creates a new unidirectional XRP payment channel. */ /** This transaction type creates a new unidirectional XRP payment channel. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/PayChan.h> # include <xrpl/tx/transactors/PayChan.h>
#endif #endif
TRANSACTION(ttPAYCHAN_CREATE, 13, PaymentChannelCreate, TRANSACTION(ttPAYCHAN_CREATE, 13, PaymentChannelCreate,
Delegation::delegable, Delegation::delegable,
@@ -222,7 +222,7 @@ TRANSACTION(ttPAYCHAN_CLAIM, 15, PaymentChannelClaim,
/** This transaction type creates a new check. */ /** This transaction type creates a new check. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CreateCheck.h> # include <xrpl/tx/transactors/Check/CreateCheck.h>
#endif #endif
TRANSACTION(ttCHECK_CREATE, 16, CheckCreate, TRANSACTION(ttCHECK_CREATE, 16, CheckCreate,
Delegation::delegable, Delegation::delegable,
@@ -238,7 +238,7 @@ TRANSACTION(ttCHECK_CREATE, 16, CheckCreate,
/** This transaction type cashes an existing check. */ /** This transaction type cashes an existing check. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CashCheck.h> # include <xrpl/tx/transactors/Check/CashCheck.h>
#endif #endif
TRANSACTION(ttCHECK_CASH, 17, CheckCash, TRANSACTION(ttCHECK_CASH, 17, CheckCash,
Delegation::delegable, Delegation::delegable,
@@ -252,7 +252,7 @@ TRANSACTION(ttCHECK_CASH, 17, CheckCash,
/** This transaction type cancels an existing check. */ /** This transaction type cancels an existing check. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/CancelCheck.h> # include <xrpl/tx/transactors/Check/CancelCheck.h>
#endif #endif
TRANSACTION(ttCHECK_CANCEL, 18, CheckCancel, TRANSACTION(ttCHECK_CANCEL, 18, CheckCancel,
Delegation::delegable, Delegation::delegable,
@@ -264,7 +264,7 @@ TRANSACTION(ttCHECK_CANCEL, 18, CheckCancel,
/** This transaction type grants or revokes authorization to transfer funds. */ /** This transaction type grants or revokes authorization to transfer funds. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/DepositPreauth.h> # include <xrpl/tx/transactors/DepositPreauth.h>
#endif #endif
TRANSACTION(ttDEPOSIT_PREAUTH, 19, DepositPreauth, TRANSACTION(ttDEPOSIT_PREAUTH, 19, DepositPreauth,
Delegation::delegable, Delegation::delegable,
@@ -279,7 +279,7 @@ TRANSACTION(ttDEPOSIT_PREAUTH, 19, DepositPreauth,
/** This transaction type modifies a trustline between two accounts. */ /** This transaction type modifies a trustline between two accounts. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/SetTrust.h> # include <xrpl/tx/transactors/SetTrust.h>
#endif #endif
TRANSACTION(ttTRUST_SET, 20, TrustSet, TRANSACTION(ttTRUST_SET, 20, TrustSet,
Delegation::delegable, Delegation::delegable,
@@ -293,7 +293,7 @@ TRANSACTION(ttTRUST_SET, 20, TrustSet,
/** This transaction type deletes an existing account. */ /** This transaction type deletes an existing account. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/DeleteAccount.h> # include <xrpl/tx/transactors/DeleteAccount.h>
#endif #endif
TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete, TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete,
Delegation::notDelegable, Delegation::notDelegable,
@@ -309,7 +309,7 @@ TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete,
/** This transaction mints a new NFT. */ /** This transaction mints a new NFT. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenMint.h> # include <xrpl/tx/transactors/NFT/NFTokenMint.h>
#endif #endif
TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint, TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint,
Delegation::delegable, Delegation::delegable,
@@ -327,7 +327,7 @@ TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint,
/** This transaction burns (i.e. destroys) an existing NFT. */ /** This transaction burns (i.e. destroys) an existing NFT. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenBurn.h> # include <xrpl/tx/transactors/NFT/NFTokenBurn.h>
#endif #endif
TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn, TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn,
Delegation::delegable, Delegation::delegable,
@@ -340,7 +340,7 @@ TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn,
/** This transaction creates a new offer to buy or sell an NFT. */ /** This transaction creates a new offer to buy or sell an NFT. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenCreateOffer.h> # include <xrpl/tx/transactors/NFT/NFTokenCreateOffer.h>
#endif #endif
TRANSACTION(ttNFTOKEN_CREATE_OFFER, 27, NFTokenCreateOffer, TRANSACTION(ttNFTOKEN_CREATE_OFFER, 27, NFTokenCreateOffer,
Delegation::delegable, Delegation::delegable,
@@ -356,7 +356,7 @@ TRANSACTION(ttNFTOKEN_CREATE_OFFER, 27, NFTokenCreateOffer,
/** This transaction cancels an existing offer to buy or sell an existing NFT. */ /** This transaction cancels an existing offer to buy or sell an existing NFT. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenCancelOffer.h> # include <xrpl/tx/transactors/NFT/NFTokenCancelOffer.h>
#endif #endif
TRANSACTION(ttNFTOKEN_CANCEL_OFFER, 28, NFTokenCancelOffer, TRANSACTION(ttNFTOKEN_CANCEL_OFFER, 28, NFTokenCancelOffer,
Delegation::delegable, Delegation::delegable,
@@ -368,7 +368,7 @@ TRANSACTION(ttNFTOKEN_CANCEL_OFFER, 28, NFTokenCancelOffer,
/** This transaction accepts an existing offer to buy or sell an existing NFT. */ /** This transaction accepts an existing offer to buy or sell an existing NFT. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenAcceptOffer.h> # include <xrpl/tx/transactors/NFT/NFTokenAcceptOffer.h>
#endif #endif
TRANSACTION(ttNFTOKEN_ACCEPT_OFFER, 29, NFTokenAcceptOffer, TRANSACTION(ttNFTOKEN_ACCEPT_OFFER, 29, NFTokenAcceptOffer,
Delegation::delegable, Delegation::delegable,
@@ -382,7 +382,7 @@ TRANSACTION(ttNFTOKEN_ACCEPT_OFFER, 29, NFTokenAcceptOffer,
/** This transaction claws back issued tokens. */ /** This transaction claws back issued tokens. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Clawback.h> # include <xrpl/tx/transactors/Clawback.h>
#endif #endif
TRANSACTION(ttCLAWBACK, 30, Clawback, TRANSACTION(ttCLAWBACK, 30, Clawback,
Delegation::delegable, Delegation::delegable,
@@ -395,7 +395,7 @@ TRANSACTION(ttCLAWBACK, 30, Clawback,
/** This transaction claws back tokens from an AMM pool. */ /** This transaction claws back tokens from an AMM pool. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMClawback.h> # include <xrpl/tx/transactors/AMM/AMMClawback.h>
#endif #endif
TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback, TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback,
Delegation::delegable, Delegation::delegable,
@@ -410,7 +410,7 @@ TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback,
/** This transaction type creates an AMM instance */ /** This transaction type creates an AMM instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMCreate.h> # include <xrpl/tx/transactors/AMM/AMMCreate.h>
#endif #endif
TRANSACTION(ttAMM_CREATE, 35, AMMCreate, TRANSACTION(ttAMM_CREATE, 35, AMMCreate,
Delegation::delegable, Delegation::delegable,
@@ -424,7 +424,7 @@ TRANSACTION(ttAMM_CREATE, 35, AMMCreate,
/** This transaction type deposits into an AMM instance */ /** This transaction type deposits into an AMM instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMDeposit.h> # include <xrpl/tx/transactors/AMM/AMMDeposit.h>
#endif #endif
TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit, TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit,
Delegation::delegable, Delegation::delegable,
@@ -442,7 +442,7 @@ TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit,
/** This transaction type withdraws from an AMM instance */ /** This transaction type withdraws from an AMM instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMWithdraw.h> # include <xrpl/tx/transactors/AMM/AMMWithdraw.h>
#endif #endif
TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw, TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw,
Delegation::delegable, Delegation::delegable,
@@ -459,7 +459,7 @@ TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw,
/** This transaction type votes for the trading fee */ /** This transaction type votes for the trading fee */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMVote.h> # include <xrpl/tx/transactors/AMM/AMMVote.h>
#endif #endif
TRANSACTION(ttAMM_VOTE, 38, AMMVote, TRANSACTION(ttAMM_VOTE, 38, AMMVote,
Delegation::delegable, Delegation::delegable,
@@ -473,7 +473,7 @@ TRANSACTION(ttAMM_VOTE, 38, AMMVote,
/** This transaction type bids for the auction slot */ /** This transaction type bids for the auction slot */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMBid.h> # include <xrpl/tx/transactors/AMM/AMMBid.h>
#endif #endif
TRANSACTION(ttAMM_BID, 39, AMMBid, TRANSACTION(ttAMM_BID, 39, AMMBid,
Delegation::delegable, Delegation::delegable,
@@ -489,7 +489,7 @@ TRANSACTION(ttAMM_BID, 39, AMMBid,
/** This transaction type deletes AMM in the empty state */ /** This transaction type deletes AMM in the empty state */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/AMMDelete.h> # include <xrpl/tx/transactors/AMM/AMMDelete.h>
#endif #endif
TRANSACTION(ttAMM_DELETE, 40, AMMDelete, TRANSACTION(ttAMM_DELETE, 40, AMMDelete,
Delegation::delegable, Delegation::delegable,
@@ -502,7 +502,7 @@ TRANSACTION(ttAMM_DELETE, 40, AMMDelete,
/** This transactions creates a crosschain sequence number */ /** This transactions creates a crosschain sequence number */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/XChainBridge.h> # include <xrpl/tx/transactors/XChainBridge.h>
#endif #endif
TRANSACTION(ttXCHAIN_CREATE_CLAIM_ID, 41, XChainCreateClaimID, TRANSACTION(ttXCHAIN_CREATE_CLAIM_ID, 41, XChainCreateClaimID,
Delegation::delegable, Delegation::delegable,
@@ -617,7 +617,7 @@ TRANSACTION(ttXCHAIN_CREATE_BRIDGE, 48, XChainCreateBridge,
/** This transaction type creates or updates a DID */ /** This transaction type creates or updates a DID */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/DID.h> # include <xrpl/tx/transactors/DID.h>
#endif #endif
TRANSACTION(ttDID_SET, 49, DIDSet, TRANSACTION(ttDID_SET, 49, DIDSet,
Delegation::delegable, Delegation::delegable,
@@ -638,7 +638,7 @@ TRANSACTION(ttDID_DELETE, 50, DIDDelete,
/** This transaction type creates an Oracle instance */ /** This transaction type creates an Oracle instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/SetOracle.h> # include <xrpl/tx/transactors/SetOracle.h>
#endif #endif
TRANSACTION(ttORACLE_SET, 51, OracleSet, TRANSACTION(ttORACLE_SET, 51, OracleSet,
Delegation::delegable, Delegation::delegable,
@@ -655,7 +655,7 @@ TRANSACTION(ttORACLE_SET, 51, OracleSet,
/** This transaction type deletes an Oracle instance */ /** This transaction type deletes an Oracle instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/DeleteOracle.h> # include <xrpl/tx/transactors/DeleteOracle.h>
#endif #endif
TRANSACTION(ttORACLE_DELETE, 52, OracleDelete, TRANSACTION(ttORACLE_DELETE, 52, OracleDelete,
Delegation::delegable, Delegation::delegable,
@@ -667,7 +667,7 @@ TRANSACTION(ttORACLE_DELETE, 52, OracleDelete,
/** This transaction type fixes a problem in the ledger state */ /** This transaction type fixes a problem in the ledger state */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LedgerStateFix.h> # include <xrpl/tx/transactors/LedgerStateFix.h>
#endif #endif
TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix, TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix,
Delegation::delegable, Delegation::delegable,
@@ -680,7 +680,7 @@ TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix,
/** This transaction type creates a MPTokensIssuance instance */ /** This transaction type creates a MPTokensIssuance instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/MPTokenIssuanceCreate.h> # include <xrpl/tx/transactors/MPT/MPTokenIssuanceCreate.h>
#endif #endif
TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate, TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate,
Delegation::delegable, Delegation::delegable,
@@ -697,7 +697,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate,
/** This transaction type destroys a MPTokensIssuance instance */ /** This transaction type destroys a MPTokensIssuance instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/MPTokenIssuanceDestroy.h> # include <xrpl/tx/transactors/MPT/MPTokenIssuanceDestroy.h>
#endif #endif
TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy, TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy,
Delegation::delegable, Delegation::delegable,
@@ -709,7 +709,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy,
/** This transaction type sets flags on a MPTokensIssuance or MPToken instance */ /** This transaction type sets flags on a MPTokensIssuance or MPToken instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/MPTokenIssuanceSet.h> # include <xrpl/tx/transactors/MPT/MPTokenIssuanceSet.h>
#endif #endif
TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet, TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet,
Delegation::delegable, Delegation::delegable,
@@ -726,7 +726,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet,
/** This transaction type authorizes a MPToken instance */ /** This transaction type authorizes a MPToken instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/MPTokenAuthorize.h> # include <xrpl/tx/transactors/MPT/MPTokenAuthorize.h>
#endif #endif
TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize, TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize,
Delegation::delegable, Delegation::delegable,
@@ -739,7 +739,7 @@ TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize,
/** This transaction type create an Credential instance */ /** This transaction type create an Credential instance */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Credentials.h> # include <xrpl/tx/transactors/Credentials.h>
#endif #endif
TRANSACTION(ttCREDENTIAL_CREATE, 58, CredentialCreate, TRANSACTION(ttCREDENTIAL_CREATE, 58, CredentialCreate,
Delegation::delegable, Delegation::delegable,
@@ -775,7 +775,7 @@ TRANSACTION(ttCREDENTIAL_DELETE, 60, CredentialDelete,
/** This transaction type modify a NFToken */ /** This transaction type modify a NFToken */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/NFTokenModify.h> # include <xrpl/tx/transactors/NFT/NFTokenModify.h>
#endif #endif
TRANSACTION(ttNFTOKEN_MODIFY, 61, NFTokenModify, TRANSACTION(ttNFTOKEN_MODIFY, 61, NFTokenModify,
Delegation::delegable, Delegation::delegable,
@@ -789,7 +789,7 @@ TRANSACTION(ttNFTOKEN_MODIFY, 61, NFTokenModify,
/** This transaction type creates or modifies a Permissioned Domain */ /** This transaction type creates or modifies a Permissioned Domain */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/PermissionedDomainSet.h> # include <xrpl/tx/transactors/PermissionedDomain/PermissionedDomainSet.h>
#endif #endif
TRANSACTION(ttPERMISSIONED_DOMAIN_SET, 62, PermissionedDomainSet, TRANSACTION(ttPERMISSIONED_DOMAIN_SET, 62, PermissionedDomainSet,
Delegation::delegable, Delegation::delegable,
@@ -802,7 +802,7 @@ TRANSACTION(ttPERMISSIONED_DOMAIN_SET, 62, PermissionedDomainSet,
/** This transaction type deletes a Permissioned Domain */ /** This transaction type deletes a Permissioned Domain */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/PermissionedDomainDelete.h> # include <xrpl/tx/transactors/PermissionedDomain/PermissionedDomainDelete.h>
#endif #endif
TRANSACTION(ttPERMISSIONED_DOMAIN_DELETE, 63, PermissionedDomainDelete, TRANSACTION(ttPERMISSIONED_DOMAIN_DELETE, 63, PermissionedDomainDelete,
Delegation::delegable, Delegation::delegable,
@@ -814,7 +814,7 @@ TRANSACTION(ttPERMISSIONED_DOMAIN_DELETE, 63, PermissionedDomainDelete,
/** This transaction type delegates authorized account specified permissions */ /** This transaction type delegates authorized account specified permissions */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/DelegateSet.h> # include <xrpl/tx/transactors/Delegate/DelegateSet.h>
#endif #endif
TRANSACTION(ttDELEGATE_SET, 64, DelegateSet, TRANSACTION(ttDELEGATE_SET, 64, DelegateSet,
Delegation::notDelegable, Delegation::notDelegable,
@@ -827,7 +827,7 @@ TRANSACTION(ttDELEGATE_SET, 64, DelegateSet,
/** This transaction creates a single asset vault. */ /** This transaction creates a single asset vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultCreate.h> # include <xrpl/tx/transactors/Vault/VaultCreate.h>
#endif #endif
TRANSACTION(ttVAULT_CREATE, 65, VaultCreate, TRANSACTION(ttVAULT_CREATE, 65, VaultCreate,
Delegation::delegable, Delegation::delegable,
@@ -845,7 +845,7 @@ TRANSACTION(ttVAULT_CREATE, 65, VaultCreate,
/** This transaction updates a single asset vault. */ /** This transaction updates a single asset vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultSet.h> # include <xrpl/tx/transactors/Vault/VaultSet.h>
#endif #endif
TRANSACTION(ttVAULT_SET, 66, VaultSet, TRANSACTION(ttVAULT_SET, 66, VaultSet,
Delegation::delegable, Delegation::delegable,
@@ -860,7 +860,7 @@ TRANSACTION(ttVAULT_SET, 66, VaultSet,
/** This transaction deletes a single asset vault. */ /** This transaction deletes a single asset vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultDelete.h> # include <xrpl/tx/transactors/Vault/VaultDelete.h>
#endif #endif
TRANSACTION(ttVAULT_DELETE, 67, VaultDelete, TRANSACTION(ttVAULT_DELETE, 67, VaultDelete,
Delegation::delegable, Delegation::delegable,
@@ -872,7 +872,7 @@ TRANSACTION(ttVAULT_DELETE, 67, VaultDelete,
/** This transaction trades assets for shares with a vault. */ /** This transaction trades assets for shares with a vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultDeposit.h> # include <xrpl/tx/transactors/Vault/VaultDeposit.h>
#endif #endif
TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit, TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit,
Delegation::delegable, Delegation::delegable,
@@ -885,7 +885,7 @@ TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit,
/** This transaction trades shares for assets with a vault. */ /** This transaction trades shares for assets with a vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultWithdraw.h> # include <xrpl/tx/transactors/Vault/VaultWithdraw.h>
#endif #endif
TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw, TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw,
Delegation::delegable, Delegation::delegable,
@@ -900,7 +900,7 @@ TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw,
/** This transaction claws back tokens from a vault. */ /** This transaction claws back tokens from a vault. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/VaultClawback.h> # include <xrpl/tx/transactors/Vault/VaultClawback.h>
#endif #endif
TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback, TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback,
Delegation::delegable, Delegation::delegable,
@@ -914,7 +914,7 @@ TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback,
/** This transaction type batches together transactions. */ /** This transaction type batches together transactions. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Batch.h> # include <xrpl/tx/transactors/Batch.h>
#endif #endif
TRANSACTION(ttBATCH, 71, Batch, TRANSACTION(ttBATCH, 71, Batch,
Delegation::notDelegable, Delegation::notDelegable,
@@ -929,7 +929,7 @@ TRANSACTION(ttBATCH, 71, Batch,
/** This transaction creates and updates a Loan Broker */ /** This transaction creates and updates a Loan Broker */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanBrokerSet.h> # include <xrpl/tx/transactors/Lending/LoanBrokerSet.h>
#endif #endif
TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet, TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet,
Delegation::delegable, Delegation::delegable,
@@ -946,7 +946,7 @@ TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet,
/** This transaction deletes a Loan Broker */ /** This transaction deletes a Loan Broker */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanBrokerDelete.h> # include <xrpl/tx/transactors/Lending/LoanBrokerDelete.h>
#endif #endif
TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete, TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete,
Delegation::delegable, Delegation::delegable,
@@ -957,7 +957,7 @@ TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete,
/** This transaction deposits First Loss Capital into a Loan Broker */ /** This transaction deposits First Loss Capital into a Loan Broker */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanBrokerCoverDeposit.h> # include <xrpl/tx/transactors/Lending/LoanBrokerCoverDeposit.h>
#endif #endif
TRANSACTION(ttLOAN_BROKER_COVER_DEPOSIT, 76, LoanBrokerCoverDeposit, TRANSACTION(ttLOAN_BROKER_COVER_DEPOSIT, 76, LoanBrokerCoverDeposit,
Delegation::delegable, Delegation::delegable,
@@ -969,7 +969,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_DEPOSIT, 76, LoanBrokerCoverDeposit,
/** This transaction withdraws First Loss Capital from a Loan Broker */ /** This transaction withdraws First Loss Capital from a Loan Broker */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanBrokerCoverWithdraw.h> # include <xrpl/tx/transactors/Lending/LoanBrokerCoverWithdraw.h>
#endif #endif
TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw, TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw,
Delegation::delegable, Delegation::delegable,
@@ -984,7 +984,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw,
/** This transaction claws back First Loss Capital from a Loan Broker to /** This transaction claws back First Loss Capital from a Loan Broker to
the issuer of the capital */ the issuer of the capital */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanBrokerCoverClawback.h> # include <xrpl/tx/transactors/Lending/LoanBrokerCoverClawback.h>
#endif #endif
TRANSACTION(ttLOAN_BROKER_COVER_CLAWBACK, 78, LoanBrokerCoverClawback, TRANSACTION(ttLOAN_BROKER_COVER_CLAWBACK, 78, LoanBrokerCoverClawback,
Delegation::delegable, Delegation::delegable,
@@ -996,7 +996,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_CLAWBACK, 78, LoanBrokerCoverClawback,
/** This transaction creates a Loan */ /** This transaction creates a Loan */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanSet.h> # include <xrpl/tx/transactors/Lending/LoanSet.h>
#endif #endif
TRANSACTION(ttLOAN_SET, 80, LoanSet, TRANSACTION(ttLOAN_SET, 80, LoanSet,
Delegation::delegable, Delegation::delegable,
@@ -1023,7 +1023,7 @@ TRANSACTION(ttLOAN_SET, 80, LoanSet,
/** This transaction deletes an existing Loan */ /** This transaction deletes an existing Loan */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanDelete.h> # include <xrpl/tx/transactors/Lending/LoanDelete.h>
#endif #endif
TRANSACTION(ttLOAN_DELETE, 81, LoanDelete, TRANSACTION(ttLOAN_DELETE, 81, LoanDelete,
Delegation::delegable, Delegation::delegable,
@@ -1034,7 +1034,7 @@ TRANSACTION(ttLOAN_DELETE, 81, LoanDelete,
/** This transaction is used to change the delinquency status of an existing Loan */ /** This transaction is used to change the delinquency status of an existing Loan */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanManage.h> # include <xrpl/tx/transactors/Lending/LoanManage.h>
#endif #endif
TRANSACTION(ttLOAN_MANAGE, 82, LoanManage, TRANSACTION(ttLOAN_MANAGE, 82, LoanManage,
Delegation::delegable, Delegation::delegable,
@@ -1048,7 +1048,7 @@ TRANSACTION(ttLOAN_MANAGE, 82, LoanManage,
/** The Borrower uses this transaction to make a Payment on the Loan. */ /** The Borrower uses this transaction to make a Payment on the Loan. */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/LoanPay.h> # include <xrpl/tx/transactors/Lending/LoanPay.h>
#endif #endif
TRANSACTION(ttLOAN_PAY, 84, LoanPay, TRANSACTION(ttLOAN_PAY, 84, LoanPay,
Delegation::delegable, Delegation::delegable,
@@ -1063,7 +1063,7 @@ TRANSACTION(ttLOAN_PAY, 84, LoanPay,
For details, see: https://xrpl.org/amendments.html For details, see: https://xrpl.org/amendments.html
*/ */
#if TRANSACTION_INCLUDE #if TRANSACTION_INCLUDE
# include <xrpld/app/tx/detail/Change.h> # include <xrpl/tx/transactors/Change.h>
#endif #endif
TRANSACTION(ttAMENDMENT, 100, EnableAmendment, TRANSACTION(ttAMENDMENT, 100, EnableAmendment,
Delegation::notDelegable, Delegation::notDelegable,

View File

@@ -1,10 +1,9 @@
#pragma once #pragma once
#include <xrpld/app/main/DBInit.h>
#include <xrpld/core/Config.h>
#include <xrpld/core/SociDB.h>
#include <xrpl/core/PerfLog.h> #include <xrpl/core/PerfLog.h>
#include <xrpl/core/StartUpType.h>
#include <xrpl/rdb/DBInit.h>
#include <xrpl/rdb/SociDB.h>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
@@ -68,7 +67,7 @@ public:
{ {
explicit Setup() = default; explicit Setup() = default;
Config::StartUpType startUp = Config::NORMAL; StartUpType startUp = StartUpType::NORMAL;
bool standAlone = false; bool standAlone = false;
boost::filesystem::path dataDir; boost::filesystem::path dataDir;
// Indicates whether or not to return the `globalPragma` // Indicates whether or not to return the `globalPragma`
@@ -105,8 +104,8 @@ public:
beast::Journal journal) beast::Journal journal)
// Use temporary files or regular DB files? // Use temporary files or regular DB files?
: DatabaseCon( : DatabaseCon(
setup.standAlone && setup.startUp != Config::LOAD && setup.startUp != Config::LOAD_FILE && setup.standAlone && setup.startUp != StartUpType::LOAD && setup.startUp != StartUpType::LOAD_FILE &&
setup.startUp != Config::REPLAY setup.startUp != StartUpType::REPLAY
? "" ? ""
: (setup.dataDir / dbName), : (setup.dataDir / dbName),
setup.commonPragma(), setup.commonPragma(),
@@ -229,7 +228,4 @@ private:
std::shared_ptr<Checkpointer> std::shared_ptr<Checkpointer>
checkpointerFromId(std::uintptr_t id); checkpointerFromId(std::uintptr_t id);
DatabaseCon::Setup
setup_DatabaseCon(Config const& c, std::optional<beast::Journal> j = std::nullopt);
} // namespace xrpl } // namespace xrpl

View File

@@ -0,0 +1,475 @@
#pragma once
#include <xrpl/basics/RangeSet.h>
#include <xrpl/beast/utility/instrumentation.h>
#include <xrpl/core/ServiceRegistry.h>
#include <xrpl/protocol/ErrorCodes.h>
#include <xrpl/protocol/LedgerHeader.h>
#include <xrpl/protocol/LedgerShortcut.h>
#include <xrpl/protocol/TxMeta.h>
#include <xrpl/protocol/TxSearched.h>
#include <xrpl/rdb/DatabaseCon.h>
#include <boost/filesystem.hpp>
#include <boost/variant.hpp>
namespace xrpl {
class Transaction;
class Ledger;
struct LedgerHashPair
{
uint256 ledgerHash;
uint256 parentHash;
};
struct LedgerRange
{
uint32_t min;
uint32_t max;
};
class RelationalDatabase
{
public:
struct CountMinMax
{
std::size_t numberOfRows;
LedgerIndex minLedgerSequence;
LedgerIndex maxLedgerSequence;
};
struct AccountTxMarker
{
std::uint32_t ledgerSeq = 0;
std::uint32_t txnSeq = 0;
};
struct AccountTxOptions
{
AccountID const& account;
std::uint32_t minLedger;
std::uint32_t maxLedger;
std::uint32_t offset;
std::uint32_t limit;
bool bUnlimited;
};
struct AccountTxPageOptions
{
AccountID const& account;
std::uint32_t minLedger;
std::uint32_t maxLedger;
std::optional<AccountTxMarker> marker;
std::uint32_t limit;
bool bAdmin;
};
using AccountTx = std::pair<std::shared_ptr<Transaction>, std::shared_ptr<TxMeta>>;
using AccountTxs = std::vector<AccountTx>;
using txnMetaLedgerType = std::tuple<Blob, Blob, std::uint32_t>;
using MetaTxsList = std::vector<txnMetaLedgerType>;
using LedgerSequence = uint32_t;
using LedgerHash = uint256;
using LedgerSpecifier = std::variant<LedgerRange, LedgerShortcut, LedgerSequence, LedgerHash>;
struct AccountTxArgs
{
AccountID account;
std::optional<LedgerSpecifier> ledger;
bool binary = false;
bool forward = false;
uint32_t limit = 0;
std::optional<AccountTxMarker> marker;
};
struct AccountTxResult
{
std::variant<AccountTxs, MetaTxsList> transactions;
LedgerRange ledgerRange;
uint32_t limit;
std::optional<AccountTxMarker> marker;
};
virtual ~RelationalDatabase() = default;
/**
* @brief getMinLedgerSeq Returns the minimum ledger sequence in the Ledgers
* table.
* @return Ledger sequence or no value if no ledgers exist.
*/
virtual std::optional<LedgerIndex>
getMinLedgerSeq() = 0;
/**
* @brief getMaxLedgerSeq Returns the maximum ledger sequence in the Ledgers
* table.
* @return Ledger sequence or none if no ledgers exist.
*/
virtual std::optional<LedgerIndex>
getMaxLedgerSeq() = 0;
/**
* @brief getLedgerInfoByIndex Returns a ledger by its sequence.
* @param ledgerSeq Ledger sequence.
* @return The ledger if found, otherwise no value.
*/
virtual std::optional<LedgerHeader>
getLedgerInfoByIndex(LedgerIndex ledgerSeq) = 0;
/**
* @brief getNewestLedgerInfo Returns the info of the newest saved ledger.
* @return Ledger info if found, otherwise no value.
*/
virtual std::optional<LedgerHeader>
getNewestLedgerInfo() = 0;
/**
* @brief getLedgerInfoByHash Returns the info of the ledger with given
* hash.
* @param ledgerHash Hash of the ledger.
* @return Ledger if found, otherwise no value.
*/
virtual std::optional<LedgerHeader>
getLedgerInfoByHash(uint256 const& ledgerHash) = 0;
/**
* @brief getHashByIndex Returns the hash of the ledger with the given
* sequence.
* @param ledgerIndex Ledger sequence.
* @return Hash of the ledger.
*/
virtual uint256
getHashByIndex(LedgerIndex ledgerIndex) = 0;
/**
* @brief getHashesByIndex Returns the hashes of the ledger and its parent
* as specified by the ledgerIndex.
* @param ledgerIndex Ledger sequence.
* @return Struct LedgerHashPair which contains hashes of the ledger and
* its parent.
*/
virtual std::optional<LedgerHashPair>
getHashesByIndex(LedgerIndex ledgerIndex) = 0;
/**
* @brief getHashesByIndex Returns hashes of each ledger and its parent for
* all ledgers within the provided range.
* @param minSeq Minimum ledger sequence.
* @param maxSeq Maximum ledger sequence.
* @return Container that maps the sequence number of a found ledger to the
* struct LedgerHashPair which contains the hashes of the ledger and
* its parent.
*/
virtual std::map<LedgerIndex, LedgerHashPair>
getHashesByIndex(LedgerIndex minSeq, LedgerIndex maxSeq) = 0;
/**
* @brief getTxHistory Returns the 20 most recent transactions starting from
* the given number.
* @param startIndex First number of returned entry.
* @return Vector of shared pointers to transactions sorted in
* descending order by ledger sequence.
*/
virtual std::vector<std::shared_ptr<Transaction>>
getTxHistory(LedgerIndex startIndex) = 0;
/**
* @brief getTransactionsMinLedgerSeq Returns the minimum ledger sequence
* stored in the Transactions table.
* @return Ledger sequence or no value if no ledgers exist.
*/
virtual std::optional<LedgerIndex>
getTransactionsMinLedgerSeq() = 0;
/**
* @brief getAccountTransactionsMinLedgerSeq Returns the minimum ledger
* sequence stored in the AccountTransactions table.
* @return Ledger sequence or no value if no ledgers exist.
*/
virtual std::optional<LedgerIndex>
getAccountTransactionsMinLedgerSeq() = 0;
/**
* @brief deleteTransactionByLedgerSeq Deletes transactions from the ledger
* with the given sequence.
* @param ledgerSeq Ledger sequence.
*/
virtual void
deleteTransactionByLedgerSeq(LedgerIndex ledgerSeq) = 0;
/**
* @brief deleteBeforeLedgerSeq Deletes all ledgers with a sequence number
* less than or equal to the given ledger sequence.
* @param ledgerSeq Ledger sequence.
*/
virtual void
deleteBeforeLedgerSeq(LedgerIndex ledgerSeq) = 0;
/**
* @brief deleteTransactionsBeforeLedgerSeq Deletes all transactions with
* a sequence number less than or equal to the given ledger
* sequence.
* @param ledgerSeq Ledger sequence.
*/
virtual void
deleteTransactionsBeforeLedgerSeq(LedgerIndex ledgerSeq) = 0;
/**
* @brief deleteAccountTransactionsBeforeLedgerSeq Deletes all account
* transactions with a sequence number less than or equal to the
* given ledger sequence.
* @param ledgerSeq Ledger sequence.
*/
virtual void
deleteAccountTransactionsBeforeLedgerSeq(LedgerIndex ledgerSeq) = 0;
/**
* @brief getTransactionCount Returns the number of transactions.
* @return Number of transactions.
*/
virtual std::size_t
getTransactionCount() = 0;
/**
* @brief getAccountTransactionCount Returns the number of account
* transactions.
* @return Number of account transactions.
*/
virtual std::size_t
getAccountTransactionCount() = 0;
/**
* @brief getLedgerCountMinMax Returns the minimum ledger sequence,
* maximum ledger sequence and total number of saved ledgers.
* @return Struct CountMinMax which contains the minimum sequence,
* maximum sequence and number of ledgers.
*/
virtual struct CountMinMax
getLedgerCountMinMax() = 0;
/**
* @brief saveValidatedLedger Saves a ledger into the database.
* @param ledger The ledger.
* @param current True if the ledger is current.
* @return True if saving was successful.
*/
virtual bool
saveValidatedLedger(std::shared_ptr<Ledger const> const& ledger, bool current) = 0;
/**
* @brief getLimitedOldestLedgerInfo Returns the info of the oldest ledger
* whose sequence number is greater than or equal to the given
* sequence number.
* @param ledgerFirstIndex Minimum ledger sequence.
* @return Ledger info if found, otherwise no value.
*/
virtual std::optional<LedgerHeader>
getLimitedOldestLedgerInfo(LedgerIndex ledgerFirstIndex) = 0;
/**
* @brief getLimitedNewestLedgerInfo Returns the info of the newest ledger
* whose sequence number is greater than or equal to the given
* sequence number.
* @param ledgerFirstIndex Minimum ledger sequence.
* @return Ledger info if found, otherwise no value.
*/
virtual std::optional<LedgerHeader>
getLimitedNewestLedgerInfo(LedgerIndex ledgerFirstIndex) = 0;
/**
* @brief getOldestAccountTxs Returns the oldest transactions for the
* account that matches the given criteria starting from the provided
* offset.
* @param options Struct AccountTxOptions which contains the criteria to
* match: the account, ledger search range, the offset of the first
* entry to return, the number of transactions to return, a flag if
* this number is unlimited.
* @return Vector of pairs of found transactions and their metadata
* sorted in ascending order by account sequence.
*/
virtual AccountTxs
getOldestAccountTxs(AccountTxOptions const& options) = 0;
/**
* @brief getNewestAccountTxs Returns the newest transactions for the
* account that matches the given criteria starting from the provided
* offset.
* @param options Struct AccountTxOptions which contains the criteria to
* match: the account, the ledger search range, the offset of the
* first entry to return, the number of transactions to return, a
* flag if this number unlimited.
* @return Vector of pairs of found transactions and their metadata
* sorted in descending order by account sequence.
*/
virtual AccountTxs
getNewestAccountTxs(AccountTxOptions const& options) = 0;
/**
* @brief getOldestAccountTxsB Returns the oldest transactions in binary
* form for the account that matches the given criteria starting from
* the provided offset.
* @param options Struct AccountTxOptions which contains the criteria to
* match: the account, the ledger search range, the offset of the
* first entry to return, the number of transactions to return, a
* flag if this number unlimited.
* @return Vector of tuples of found transactions, their metadata and
* account sequences sorted in ascending order by account sequence.
*/
virtual MetaTxsList
getOldestAccountTxsB(AccountTxOptions const& options) = 0;
/**
* @brief getNewestAccountTxsB Returns the newest transactions in binary
* form for the account that matches the given criteria starting from
* the provided offset.
* @param options Struct AccountTxOptions which contains the criteria to
* match: the account, the ledger search range, the offset of the
* first entry to return, the number of transactions to return, a
* flag if this number is unlimited.
* @return Vector of tuples of found transactions, their metadata and
* account sequences sorted in descending order by account
* sequence.
*/
virtual MetaTxsList
getNewestAccountTxsB(AccountTxOptions const& options) = 0;
/**
* @brief oldestAccountTxPage Returns the oldest transactions for the
* account that matches the given criteria starting from the
* provided marker.
* @param options Struct AccountTxPageOptions which contains the criteria to
* match: the account, the ledger search range, the marker of first
* returned entry, the number of transactions to return, a flag if
* this number is unlimited.
* @return Vector of pairs of found transactions and their metadata
* sorted in ascending order by account sequence and a marker
* for the next search if the search was not finished.
*/
virtual std::pair<AccountTxs, std::optional<AccountTxMarker>>
oldestAccountTxPage(AccountTxPageOptions const& options) = 0;
/**
* @brief newestAccountTxPage Returns the newest transactions for the
* account that matches the given criteria starting from the provided
* marker.
* @param options Struct AccountTxPageOptions which contains the criteria to
* match: the account, the ledger search range, the marker of the
* first returned entry, the number of transactions to return, a flag
* if this number unlimited.
* @return Vector of pairs of found transactions and their metadata
* sorted in descending order by account sequence and a marker
* for the next search if the search was not finished.
*/
virtual std::pair<AccountTxs, std::optional<AccountTxMarker>>
newestAccountTxPage(AccountTxPageOptions const& options) = 0;
/**
* @brief oldestAccountTxPageB Returns the oldest transactions in binary
* form for the account that matches the given criteria starting from
* the provided marker.
* @param options Struct AccountTxPageOptions which contains criteria to
* match: the account, the ledger search range, the marker of the
* first returned entry, the number of transactions to return, a flag
* if this number unlimited.
* @return Vector of tuples of found transactions, their metadata and
* account sequences sorted in ascending order by account
* sequence and a marker for the next search if the search was not
* finished.
*/
virtual std::pair<MetaTxsList, std::optional<AccountTxMarker>>
oldestAccountTxPageB(AccountTxPageOptions const& options) = 0;
/**
* @brief newestAccountTxPageB Returns the newest transactions in binary
* form for the account that matches the given criteria starting from
* the provided marker.
* @param options Struct AccountTxPageOptions which contains the criteria to
* match: the account, the ledger search range, the marker of the
* first returned entry, the number of transactions to return, a flag
* if this number is unlimited.
* @return Vector of tuples of found transactions, their metadata and
* account sequences sorted in descending order by account
* sequence and a marker for the next search if the search was not
* finished.
*/
virtual std::pair<MetaTxsList, std::optional<AccountTxMarker>>
newestAccountTxPageB(AccountTxPageOptions const& options) = 0;
/**
* @brief getTransaction Returns the transaction with the given hash. If a
* range is provided but the transaction is not found, then check if
* all ledgers in the range are present in the database.
* @param id Hash of the transaction.
* @param range Range of ledgers to check, if present.
* @param ec Default error code value.
* @return Transaction and its metadata if found, otherwise TxSearched::all
* if a range is provided and all ledgers from the range are present
* in the database, TxSearched::some if a range is provided and not
* all ledgers are present, TxSearched::unknown if the range is not
* provided or a deserializing error occurred. In the last case the
* error code is returned via the ec parameter, in other cases the
* default error code is not changed.
*/
virtual std::variant<AccountTx, TxSearched>
getTransaction(uint256 const& id, std::optional<ClosedInterval<uint32_t>> const& range, error_code_i& ec) = 0;
/**
* @brief getKBUsedAll Returns the amount of space used by all databases.
* @return Space in kilobytes.
*/
virtual uint32_t
getKBUsedAll() = 0;
/**
* @brief getKBUsedLedger Returns the amount of space space used by the
* ledger database.
* @return Space in kilobytes.
*/
virtual uint32_t
getKBUsedLedger() = 0;
/**
* @brief getKBUsedTransaction Returns the amount of space used by the
* transaction database.
* @return Space in kilobytes.
*/
virtual uint32_t
getKBUsedTransaction() = 0;
/**
* @brief Closes the ledger database
*/
virtual void
closeLedgerDB() = 0;
/**
* @brief Closes the transaction database
*/
virtual void
closeTransactionDB() = 0;
};
template <class T, class C>
T
rangeCheckedCast(C c)
{
if ((c > std::numeric_limits<T>::max()) || (!std::numeric_limits<T>::is_signed && c < 0) ||
(std::numeric_limits<T>::is_signed && std::numeric_limits<C>::is_signed &&
c < std::numeric_limits<T>::lowest()))
{
// This should never happen
// LCOV_EXCL_START
UNREACHABLE("xrpl::rangeCheckedCast : domain error");
JLOG(debugLog().error()) << "rangeCheckedCast domain error:"
<< " value = " << c << " min = " << std::numeric_limits<T>::lowest()
<< " max: " << std::numeric_limits<T>::max();
// LCOV_EXCL_STOP
}
return static_cast<T>(c);
}
} // namespace xrpl

View File

@@ -1,12 +1,11 @@
#pragma once #pragma once
#include <xrpld/app/misc/Manifest.h>
#include <xrpl/basics/CountedObject.h> #include <xrpl/basics/CountedObject.h>
#include <xrpl/json/json_value.h> #include <xrpl/json/json_value.h>
#include <xrpl/protocol/Book.h> #include <xrpl/protocol/Book.h>
#include <xrpl/protocol/ErrorCodes.h> #include <xrpl/protocol/ErrorCodes.h>
#include <xrpl/resource/Consumer.h> #include <xrpl/resource/Consumer.h>
#include <xrpl/server/Manifest.h>
namespace xrpl { namespace xrpl {
@@ -132,6 +131,7 @@ public:
virtual bool virtual bool
subPeerStatus(ref ispListener) = 0; subPeerStatus(ref ispListener) = 0;
virtual bool virtual bool
unsubPeerStatus(std::uint64_t uListener) = 0; unsubPeerStatus(std::uint64_t uListener) = 0;
virtual void virtual void

View File

@@ -1,13 +1,12 @@
#pragma once #pragma once
#include <xrpld/app/consensus/RCLCxPeerPos.h>
#include <xrpld/app/ledger/Ledger.h>
#include <xrpld/rpc/InfoSub.h>
#include <xrpl/core/JobQueue.h> #include <xrpl/core/JobQueue.h>
#include <xrpl/ledger/ReadView.h> #include <xrpl/core/ServiceRegistry.h>
#include <xrpl/protocol/STValidation.h> #include <xrpl/protocol/STValidation.h>
#include <xrpl/protocol/TER.h>
#include <xrpl/protocol/messages.h> #include <xrpl/protocol/messages.h>
#include <xrpl/server/InfoSub.h>
#include <xrpl/shamap/SHAMap.h>
#include <boost/asio.hpp> #include <boost/asio.hpp>
@@ -19,10 +18,13 @@ namespace xrpl {
// Master operational handler, server sequencer, network tracker // Master operational handler, server sequencer, network tracker
class Peer; class Peer;
class STTx;
class ReadView;
class LedgerMaster; class LedgerMaster;
class Transaction; class Transaction;
class ValidatorKeys; class ValidatorKeys;
class CanonicalTXSet; class CanonicalTXSet;
class RCLCxPeerPos;
// This is the primary interface into the "client" portion of the program. // This is the primary interface into the "client" portion of the program.
// Code that wants to do normal operations on the network such as // Code that wants to do normal operations on the network such as
@@ -245,20 +247,4 @@ public:
stateAccounting(Json::Value& obj) = 0; stateAccounting(Json::Value& obj) = 0;
}; };
//------------------------------------------------------------------------------
std::unique_ptr<NetworkOPs>
make_NetworkOPs(
Application& app,
NetworkOPs::clock_type& clock,
bool standalone,
std::size_t minPeerCount,
bool start_valid,
JobQueue& job_queue,
LedgerMaster& ledgerMaster,
ValidatorKeys const& validatorKeys,
boost::asio::io_context& io_svc,
beast::Journal journal,
beast::insight::Collector::ptr const& collector);
} // namespace xrpl } // namespace xrpl

View File

@@ -1,10 +1,8 @@
#pragma once #pragma once
#include <xrpld/app/ledger/Ledger.h> #include <xrpl/protocol/Protocol.h>
#include <xrpld/app/misc/Manifest.h> #include <xrpl/rdb/DatabaseCon.h>
#include <xrpld/core/Config.h> #include <xrpl/server/Manifest.h>
#include <xrpld/core/DatabaseCon.h>
#include <xrpld/peerfinder/detail/Store.h>
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/core/DatabaseCon.h> #include <xrpl/rdb/DatabaseCon.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,9 +1,8 @@
#pragma once #pragma once
#include <xrpld/app/misc/Manifest.h> #include <xrpl/core/PeerReservationTable.h>
#include <xrpld/core/Config.h> #include <xrpl/rdb/DatabaseCon.h>
#include <xrpld/core/DatabaseCon.h> #include <xrpl/server/Manifest.h>
#include <xrpld/overlay/PeerReservationTable.h>
namespace xrpl { namespace xrpl {

View File

@@ -218,7 +218,7 @@ void
BaseHTTPPeer<Handler, Impl>::close() BaseHTTPPeer<Handler, Impl>::close()
{ {
if (!strand_.running_in_this_thread()) if (!strand_.running_in_this_thread())
return post(strand_, std::bind((void(BaseHTTPPeer::*)(void)) & BaseHTTPPeer::close, impl().shared_from_this())); return post(strand_, std::bind((void (BaseHTTPPeer::*)(void))&BaseHTTPPeer::close, impl().shared_from_this()));
boost::beast::get_lowest_layer(impl().stream_).close(); boost::beast::get_lowest_layer(impl().stream_).close();
} }
@@ -436,7 +436,7 @@ BaseHTTPPeer<Handler, Impl>::close(bool graceful)
return post( return post(
strand_, strand_,
std::bind( std::bind(
(void(BaseHTTPPeer::*)(bool)) & BaseHTTPPeer<Handler, Impl>::close, (void (BaseHTTPPeer::*)(bool))&BaseHTTPPeer<Handler, Impl>::close,
impl().shared_from_this(), impl().shared_from_this(),
graceful)); graceful));

View File

@@ -178,8 +178,9 @@ BaseWSPeer<Handler, Impl>::run()
impl().ws_.control_callback(control_callback_); impl().ws_.control_callback(control_callback_);
start_timer(); start_timer();
close_on_timer_ = true; close_on_timer_ = true;
impl().ws_.set_option(boost::beast::websocket::stream_base::decorator( impl().ws_.set_option(boost::beast::websocket::stream_base::decorator([](auto& res) {
[](auto& res) { res.set(boost::beast::http::field::server, BuildInfo::getFullVersionString()); })); res.set(boost::beast::http::field::server, BuildInfo::getFullVersionString());
}));
impl().ws_.async_accept( impl().ws_.async_accept(
request_, request_,
bind_executor( bind_executor(

View File

@@ -1,9 +1,7 @@
#pragma once #pragma once
#include <xrpld/app/main/Application.h>
#include <xrpld/core/Config.h>
#include <xrpl/beast/utility/Journal.h> #include <xrpl/beast/utility/Journal.h>
#include <xrpl/core/ServiceRegistry.h>
#include <xrpl/ledger/ApplyViewImpl.h> #include <xrpl/ledger/ApplyViewImpl.h>
#include <xrpl/protocol/STTx.h> #include <xrpl/protocol/STTx.h>
#include <xrpl/protocol/XRPAmount.h> #include <xrpl/protocol/XRPAmount.h>
@@ -17,7 +15,7 @@ class ApplyContext
{ {
public: public:
explicit ApplyContext( explicit ApplyContext(
Application& app, ServiceRegistry& registry,
OpenView& base, OpenView& base,
std::optional<uint256 const> const& parentBatchId, std::optional<uint256 const> const& parentBatchId,
STTx const& tx, STTx const& tx,
@@ -27,19 +25,19 @@ public:
beast::Journal journal = beast::Journal{beast::Journal::getNullSink()}); beast::Journal journal = beast::Journal{beast::Journal::getNullSink()});
explicit ApplyContext( explicit ApplyContext(
Application& app, ServiceRegistry& registry,
OpenView& base, OpenView& base,
STTx const& tx, STTx const& tx,
TER preclaimResult, TER preclaimResult,
XRPAmount baseFee, XRPAmount baseFee,
ApplyFlags flags, ApplyFlags flags,
beast::Journal journal = beast::Journal{beast::Journal::getNullSink()}) beast::Journal journal = beast::Journal{beast::Journal::getNullSink()})
: ApplyContext(app, base, std::nullopt, tx, preclaimResult, baseFee, flags, journal) : ApplyContext(registry, base, std::nullopt, tx, preclaimResult, baseFee, flags, journal)
{ {
XRPL_ASSERT((flags & tapBATCH) == 0, "Batch apply flag should not be set"); XRPL_ASSERT((flags & tapBATCH) == 0, "Batch apply flag should not be set");
} }
Application& app; ServiceRegistry& registry;
STTx const& tx; STTx const& tx;
TER const preclaimResult; TER const preclaimResult;
XRPAmount const baseFee; XRPAmount const baseFee;
@@ -90,11 +88,12 @@ public:
/** Visit unapplied changes. */ /** Visit unapplied changes. */
void void
visit(std::function<void( visit(
uint256 const& key, std::function<void(
bool isDelete, uint256 const& key,
std::shared_ptr<SLE const> const& before, bool isDelete,
std::shared_ptr<SLE const> const& after)> const& func); std::shared_ptr<SLE const> const& before,
std::shared_ptr<SLE const> const& after)> const& func);
void void
destroyXRP(XRPAmount const& fee) destroyXRP(XRPAmount const& fee)

View File

@@ -1,11 +1,10 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> // NotTEC
#include <xrpl/basics/Expected.h> // #include <xrpl/basics/Expected.h> //
#include <xrpl/beast/utility/Journal.h> // beast::Journal #include <xrpl/beast/utility/Journal.h> // beast::Journal
#include <xrpl/protocol/TER.h> // temMALFORMED #include <xrpl/protocol/TER.h> // temMALFORMED
#include <xrpl/protocol/UintTypes.h> // AccountID #include <xrpl/protocol/UintTypes.h> // AccountID
#include <xrpl/tx/Transactor.h> // NotTEC
#include <optional> #include <optional>
#include <string_view> #include <string_view>

View File

@@ -1,12 +1,11 @@
#pragma once #pragma once
#include <xrpld/app/tx/applySteps.h>
#include <xrpld/app/tx/detail/ApplyContext.h>
#include <xrpl/beast/utility/Journal.h> #include <xrpl/beast/utility/Journal.h>
#include <xrpl/beast/utility/WrappedSink.h> #include <xrpl/beast/utility/WrappedSink.h>
#include <xrpl/protocol/Permissions.h> #include <xrpl/protocol/Permissions.h>
#include <xrpl/protocol/XRPAmount.h> #include <xrpl/protocol/XRPAmount.h>
#include <xrpl/tx/ApplyContext.h>
#include <xrpl/tx/applySteps.h>
namespace xrpl { namespace xrpl {
@@ -14,7 +13,7 @@ namespace xrpl {
struct PreflightContext struct PreflightContext
{ {
public: public:
Application& app; ServiceRegistry& registry;
STTx const& tx; STTx const& tx;
Rules const rules; Rules const rules;
ApplyFlags flags; ApplyFlags flags;
@@ -22,24 +21,24 @@ public:
beast::Journal const j; beast::Journal const j;
PreflightContext( PreflightContext(
Application& app_, ServiceRegistry& registry_,
STTx const& tx_, STTx const& tx_,
uint256 parentBatchId_, uint256 parentBatchId_,
Rules const& rules_, Rules const& rules_,
ApplyFlags flags_, ApplyFlags flags_,
beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()}) beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()})
: app(app_), tx(tx_), rules(rules_), flags(flags_), parentBatchId(parentBatchId_), j(j_) : registry(registry_), tx(tx_), rules(rules_), flags(flags_), parentBatchId(parentBatchId_), j(j_)
{ {
XRPL_ASSERT((flags_ & tapBATCH) == tapBATCH, "Batch apply flag should be set"); XRPL_ASSERT((flags_ & tapBATCH) == tapBATCH, "Batch apply flag should be set");
} }
PreflightContext( PreflightContext(
Application& app_, ServiceRegistry& registry_,
STTx const& tx_, STTx const& tx_,
Rules const& rules_, Rules const& rules_,
ApplyFlags flags_, ApplyFlags flags_,
beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()}) beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()})
: app(app_), tx(tx_), rules(rules_), flags(flags_), j(j_) : registry(registry_), tx(tx_), rules(rules_), flags(flags_), j(j_)
{ {
XRPL_ASSERT((flags_ & tapBATCH) == 0, "Batch apply flag should not be set"); XRPL_ASSERT((flags_ & tapBATCH) == 0, "Batch apply flag should not be set");
} }
@@ -52,7 +51,7 @@ public:
struct PreclaimContext struct PreclaimContext
{ {
public: public:
Application& app; ServiceRegistry& registry;
ReadView const& view; ReadView const& view;
TER preflightResult; TER preflightResult;
ApplyFlags flags; ApplyFlags flags;
@@ -61,14 +60,14 @@ public:
beast::Journal const j; beast::Journal const j;
PreclaimContext( PreclaimContext(
Application& app_, ServiceRegistry& registry_,
ReadView const& view_, ReadView const& view_,
TER preflightResult_, TER preflightResult_,
STTx const& tx_, STTx const& tx_,
ApplyFlags flags_, ApplyFlags flags_,
std::optional<uint256> parentBatchId_, std::optional<uint256> parentBatchId_,
beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()}) beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()})
: app(app_) : registry(registry_)
, view(view_) , view(view_)
, preflightResult(preflightResult_) , preflightResult(preflightResult_)
, flags(flags_) , flags(flags_)
@@ -82,13 +81,13 @@ public:
} }
PreclaimContext( PreclaimContext(
Application& app_, ServiceRegistry& registry_,
ReadView const& view_, ReadView const& view_,
TER preflightResult_, TER preflightResult_,
STTx const& tx_, STTx const& tx_,
ApplyFlags flags_, ApplyFlags flags_,
beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()}) beast::Journal j_ = beast::Journal{beast::Journal::getNullSink()})
: PreclaimContext(app_, view_, preflightResult_, tx_, flags_, std::nullopt, j_) : PreclaimContext(registry_, view_, preflightResult_, tx_, flags_, std::nullopt, j_)
{ {
XRPL_ASSERT((flags_ & tapBATCH) == 0, "Batch apply flag should not be set"); XRPL_ASSERT((flags_ & tapBATCH) == 0, "Batch apply flag should not be set");
} }
@@ -225,14 +224,14 @@ protected:
/** Compute the minimum fee required to process a transaction /** Compute the minimum fee required to process a transaction
with a given baseFee based on the current server load. with a given baseFee based on the current server load.
@param app The application hosting the server @param registry The service registry.
@param baseFee The base fee of a candidate transaction @param baseFee The base fee of a candidate transaction
@see xrpl::calculateBaseFee @see xrpl::calculateBaseFee
@param fees Fee settings from the current ledger @param fees Fee settings from the current ledger
@param flags Transaction processing fees @param flags Transaction processing fees
*/ */
static XRPAmount static XRPAmount
minimumFee(Application& app, XRPAmount baseFee, Fees const& fees, ApplyFlags flags); minimumFee(ServiceRegistry& registry, XRPAmount baseFee, Fees const& fees, ApplyFlags flags);
// Returns the fee in fee units, not scaled for load. // Returns the fee in fee units, not scaled for load.
static XRPAmount static XRPAmount

View File

@@ -1,18 +1,16 @@
#pragma once #pragma once
#include <xrpld/app/tx/applySteps.h>
#include <xrpld/core/Config.h>
#include <xrpl/beast/utility/Journal.h> #include <xrpl/beast/utility/Journal.h>
#include <xrpl/ledger/View.h> #include <xrpl/ledger/View.h>
#include <xrpl/protocol/STTx.h> #include <xrpl/protocol/STTx.h>
#include <xrpl/tx/applySteps.h>
#include <utility> #include <utility>
namespace xrpl { namespace xrpl {
class Application;
class HashRouter; class HashRouter;
class ServiceRegistry;
/** Describes the pre-processing validity of a transaction. /** Describes the pre-processing validity of a transaction.
@@ -41,7 +39,7 @@ enum class Validity {
@see Validity @see Validity
*/ */
std::pair<Validity, std::string> std::pair<Validity, std::string>
checkValidity(HashRouter& router, STTx const& tx, Rules const& rules, Config const& config); checkValidity(HashRouter& router, STTx const& tx, Rules const& rules);
/** Sets the validity of a given transaction in the cache. /** Sets the validity of a given transaction in the cache.
@@ -97,7 +95,7 @@ forceValidity(HashRouter& router, uint256 const& txid, Validity validity);
whether or not the transaction was applied. whether or not the transaction was applied.
*/ */
ApplyResult ApplyResult
apply(Application& app, OpenView& view, STTx const& tx, ApplyFlags flags, beast::Journal journal); apply(ServiceRegistry& registry, OpenView& view, STTx const& tx, ApplyFlags flags, beast::Journal journal);
/** Enum class for return value from `applyTransaction` /** Enum class for return value from `applyTransaction`
@@ -121,7 +119,7 @@ enum class ApplyTransactionResult {
*/ */
ApplyTransactionResult ApplyTransactionResult
applyTransaction( applyTransaction(
Application& app, ServiceRegistry& registry,
OpenView& view, OpenView& view,
STTx const& tx, STTx const& tx,
bool retryAssured, bool retryAssured,

View File

@@ -5,7 +5,7 @@
namespace xrpl { namespace xrpl {
class Application; class ServiceRegistry;
class STTx; class STTx;
class TxQ; class TxQ;
@@ -240,11 +240,11 @@ public:
*/ */
/** @{ */ /** @{ */
PreflightResult PreflightResult
preflight(Application& app, Rules const& rules, STTx const& tx, ApplyFlags flags, beast::Journal j); preflight(ServiceRegistry& registry, Rules const& rules, STTx const& tx, ApplyFlags flags, beast::Journal j);
PreflightResult PreflightResult
preflight( preflight(
Application& app, ServiceRegistry& registry,
Rules const& rules, Rules const& rules,
uint256 const& parentBatchId, uint256 const& parentBatchId,
STTx const& tx, STTx const& tx,
@@ -281,7 +281,7 @@ preflight(
this transaction. this transaction.
*/ */
PreclaimResult PreclaimResult
preclaim(PreflightResult const& preflightResult, Application& app, OpenView const& view); preclaim(PreflightResult const& preflightResult, ServiceRegistry& registry, OpenView const& view);
/** Compute only the expected base fee for a transaction. /** Compute only the expected base fee for a transaction.
@@ -323,7 +323,7 @@ calculateDefaultBaseFee(ReadView const& view, STTx const& tx);
@param preclaimResult The result of a previous @param preclaimResult The result of a previous
call to `preclaim` for the transaction. call to `preclaim` for the transaction.
@param app The current running `Application`. @param registry The service registry.
@param view The open ledger that the transaction @param view The open ledger that the transaction
will attempt to be applied to. will attempt to be applied to.
@@ -333,6 +333,6 @@ calculateDefaultBaseFee(ReadView const& view, STTx const& tx);
whether or not the transaction was applied. whether or not the transaction was applied.
*/ */
ApplyResult ApplyResult
doApply(PreclaimResult const& preclaimResult, Application& app, OpenView& view); doApply(PreclaimResult const& preclaimResult, ServiceRegistry& registry, OpenView& view);
} // namespace xrpl } // namespace xrpl

View File

@@ -1,9 +1,8 @@
#pragma once #pragma once
#include <xrpld/app/paths/RippleCalc.h>
#include <xrpld/app/paths/detail/Steps.h>
#include <xrpl/protocol/Quality.h> #include <xrpl/protocol/Quality.h>
#include <xrpl/tx/paths/RippleCalc.h>
#include <xrpl/tx/paths/detail/Steps.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,12 +1,11 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/BookTip.h>
#include <xrpld/app/tx/detail/Offer.h>
#include <xrpl/basics/Log.h> #include <xrpl/basics/Log.h>
#include <xrpl/basics/chrono.h> #include <xrpl/basics/chrono.h>
#include <xrpl/beast/utility/Journal.h> #include <xrpl/beast/utility/Journal.h>
#include <xrpl/ledger/View.h> #include <xrpl/ledger/View.h>
#include <xrpl/tx/paths/BookTip.h>
#include <xrpl/tx/paths/Offer.h>
#include <boost/container/flat_set.hpp> #include <boost/container/flat_set.hpp>

View File

@@ -1,10 +1,9 @@
#pragma once #pragma once
#include <xrpld/app/paths/detail/AmountSpec.h>
#include <xrpl/ledger/PaymentSandbox.h> #include <xrpl/ledger/PaymentSandbox.h>
#include <xrpl/protocol/IOUAmount.h> #include <xrpl/protocol/IOUAmount.h>
#include <xrpl/protocol/XRPAmount.h> #include <xrpl/protocol/XRPAmount.h>
#include <xrpl/tx/paths/detail/AmountSpec.h>
#include <boost/container/flat_map.hpp> #include <boost/container/flat_map.hpp>

View File

@@ -1,13 +1,12 @@
#pragma once #pragma once
#include <xrpld/app/paths/detail/AmountSpec.h>
#include <xrpl/basics/Log.h> #include <xrpl/basics/Log.h>
#include <xrpl/basics/base_uint.h> #include <xrpl/basics/base_uint.h>
#include <xrpl/protocol/Quality.h> #include <xrpl/protocol/Quality.h>
#include <xrpl/protocol/QualityFunction.h> #include <xrpl/protocol/QualityFunction.h>
#include <xrpl/protocol/STLedgerEntry.h> #include <xrpl/protocol/STLedgerEntry.h>
#include <xrpl/protocol/TER.h> #include <xrpl/protocol/TER.h>
#include <xrpl/tx/paths/detail/AmountSpec.h>
#include <boost/container/flat_set.hpp> #include <boost/container/flat_set.hpp>

View File

@@ -1,18 +1,17 @@
#pragma once #pragma once
#include <xrpld/app/misc/AMMHelpers.h>
#include <xrpld/app/paths/AMMContext.h>
#include <xrpld/app/paths/Flow.h>
#include <xrpld/app/paths/detail/AmountSpec.h>
#include <xrpld/app/paths/detail/FlatSets.h>
#include <xrpld/app/paths/detail/FlowDebugInfo.h>
#include <xrpld/app/paths/detail/Steps.h>
#include <xrpl/basics/Log.h> #include <xrpl/basics/Log.h>
#include <xrpl/ledger/Credit.h> #include <xrpl/ledger/Credit.h>
#include <xrpl/protocol/Feature.h> #include <xrpl/protocol/Feature.h>
#include <xrpl/protocol/IOUAmount.h> #include <xrpl/protocol/IOUAmount.h>
#include <xrpl/protocol/XRPAmount.h> #include <xrpl/protocol/XRPAmount.h>
#include <xrpl/tx/paths/Flow.h>
#include <xrpl/tx/paths/detail/AmountSpec.h>
#include <xrpl/tx/paths/detail/FlatSets.h>
#include <xrpl/tx/paths/detail/FlowDebugInfo.h>
#include <xrpl/tx/paths/detail/Steps.h>
#include <xrpl/tx/transactors/AMM/AMMContext.h>
#include <xrpl/tx/transactors/AMM/AMMHelpers.h>
#include <boost/container/flat_set.hpp> #include <boost/container/flat_set.hpp>

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {
class Sandbox; class Sandbox;

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,8 +1,7 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h>
#include <xrpl/ledger/View.h> #include <xrpl/ledger/View.h>
#include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,10 +1,8 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h>
#include <xrpld/core/Config.h>
#include <xrpl/basics/Log.h> #include <xrpl/basics/Log.h>
#include <xrpl/protocol/Indexes.h> #include <xrpl/protocol/Indexes.h>
#include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,7 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/ledger/Ledger.h> #include <xrpl/tx/Transactor.h>
#include <xrpld/app/tx/detail/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include <xrpld/app/tx/detail/Transactor.h> #include <xrpl/tx/Transactor.h>
namespace xrpl { namespace xrpl {

Some files were not shown because too many files have changed in this diff Show More