Commit Graph

126 Commits

Author SHA1 Message Date
JCW
e46715bbc3 Fix build error
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-04 17:13:09 +01:00
JCW
2491b28fcd Optimise
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-04 16:31:39 +01:00
JCW
e898d98e0a Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-04 16:04:22 +01:00
JCW
0dba54bcb6 Fix formatting
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:30 +01:00
JCW
ce18ae9542 Improve test coverage
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:30 +01:00
JCW
e401dcb2f1 Set module name in json
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:30 +01:00
JCW
b75e7884e7 Fix build error
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:29 +01:00
JCW
15527ea863 Fix build error
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:29 +01:00
JCW
e5dbcab3e6 Fix build error
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:29 +01:00
JCW
55fcd4c9a4 Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:28 +01:00
JCW
1da97a4c13 Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:28 +01:00
JCW
f627543a0c Revert unrelated changes
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:27:28 +01:00
JCW
67c1e7ce56 Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:03 +01:00
JCW
6ab02caa22 Optimise
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:03 +01:00
JCW
f4dde4405c Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
284b825a5f Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
f7c043bd04 Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
dbb14191cb Improve performance
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
37aa933462 Fix
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
ddfcf49e2b Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:02 +01:00
JCW
1f3f2a1dc5 Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:01 +01:00
JCW
3cb3966f81 Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:01 +01:00
JCW
53c0e7cace Optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:01 +01:00
JCW
dc344e4114 Fix issues
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:01 +01:00
JCW
fbacf83334 performance optimisation
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:01 +01:00
JCW
8f37c8a52e Fix issues 2025-09-03 16:26:00 +01:00
JCW
1de3fb0450 Fix issues 2025-09-03 16:26:00 +01:00
JCW
257ea88396 Performance improvement 2025-09-03 16:26:00 +01:00
JCW
c4464f5122 Fix PR comments
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:26:00 +01:00
Jingchen
df07f92ed7 Update include/xrpl/basics/Log.h
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
2025-09-03 16:25:59 +01:00
JCW
bb7e7ad430 Improve coverage
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:59 +01:00
JCW
eab74be499 Fix errors
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:58 +01:00
JCW
27ab6d3ddc Fix formatting
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:58 +01:00
JCW
7fa0a89b0c Fix errors
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:58 +01:00
JCW
ea04c71579 Fix errors
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:58 +01:00
JCW
0dca5025f1 Support structured logs
Signed-off-by: JCW <a1q123456@users.noreply.github.com>
2025-09-03 16:25:53 +01:00
Jingchen
ceb0ce5634 refactor: Decouple net from xrpld and move rpc-related classes to the rpc folder (#5477)
As a step of modularisation, this change moves code from `xrpld` to `libxrpl`.
2025-08-15 23:27:13 +00:00
Bart
de33a6a241 fix: Add -Wno-deprecated-declarations for Clang only (#5680)
This change adds `-Wno-deprecated-declarations` for Clang only (not for GCC) builds in `cmake/RippledCompiler.cmake`.
2025-08-14 06:07:09 -04:00
Mayukha Vadari
97f0747e10 chore: Run prettier on all files (#5657) 2025-08-11 16:15:42 +00:00
Jingchen
b40a3684ae perf: Optimize hash performance by avoiding allocating hash state object (#5469)
We're currently calling `XXH3_createState` and `XXH3_freeState` when hashing an object. However, it may be slow because they call `malloc` and `free`, which may affect the performance. This change avoids the use of the streaming API as much as possible by using an internal buffer.
2025-08-11 06:21:26 -04:00
Valentin Balaschenko
94decc753b perf: Move mutex to the partition level (#5486)
This change introduces two key optimizations:
* Mutex scope reduction: Limits the lock to individual partitions within `TaggedCache`, reducing contention.
* Decoupling: Removes the tight coupling between `LedgerHistory` and `TaggedCache`, improving modularity and testability.

Lock contention analysis based on eBPF showed significant improvements as a result of this change.
2025-08-07 17:04:07 -04:00
tequ
4eae037fee fix: Ensures canonical order for PriceDataSeries upon PriceOracle creation (#5485)
This change fixes an issue where the order of `PriceDataSeries` was out of sync between when `PriceOracle` was created and when it was updated. Although they are registered in the canonical order when updated, they are created using the order specified in the transaction; this change ensures that they are also registered in the canonical order when created.
2025-08-05 13:08:59 -04:00
Shawn Xie
baf4b8381f fix DeliveredAmount and delivered_amount in transaction metadata for direct MPT transfer (#5569)
The Payment transaction metadata is missing the `DeliveredAmount` field that displays the actual amount delivered to the destination excluding transfer fees. This amendment fixes this problem.
2025-07-29 17:02:33 +00:00
Bronek Kozicki
7179ce9c58 Build options cleanup (#5581)
As we no longer support old compiler versions, we are bringing back some warnings by removing no longer relevant `-Wno-...` options.
2025-07-25 15:48:22 -04:00
Bart
921aef9934 Updates Conan dependencies: Boost 1.86 (#5264) 2025-07-25 11:54:02 -04:00
Bronek Kozicki
e7a7bb83c1 VaultWithdraw destination account bugfix (#5572)
#5224 added (among other things) a `VaultWithdraw` transaction that allows setting the recipient of the withdrawn funds in the `Destination` transaction field. This technically turns this transaction into a payment, and in some respect the implementation does follow payment rules, e.g. enforcement of `lsfRequireDestTag` or `lsfDepositAuth`, or that MPT transfer has destination `MPToken`. However for IOUs, it missed verification that the destination account has a trust line to the asset issuer. Since the default behavior of `accountSendIOU` is to create this trust line (if missing), this is what `VaultWithdraw` currently does. This is incorrect, since the `Destination` might not be interested in holding the asset in question; this basically enables spammy transfers. This change, therefore, removes automatic creation of a trust line to the `Destination` account in `VaultWithdraw`.
2025-07-25 13:53:25 +00:00
Bronek Kozicki
80d82c5b2b Add support for DomainID in MPTokenIssuance transactions (#5509)
This change adds support for `DomainID` to existing transactions `MPTokenIssuanceCreate` and `MPTokenIssuanceSet`.

In #5224 `DomainID` was added as an access control mechanism for `SingleAssetVault`. The actual implementation of this feature lies in `MPToken` and `MPTokenIssuance`, hence it makes sense to enable the use of `DomainID` also in `MPTokenIssuanceCreate` and `MPTokenIssuanceSet`, following same rules as in Vault:

* `MPTokenIssuanceCreate` and `MPTokenIssuanceSet` can only set `DomainID` if flag `MPTRequireAuth` is set.
* `MPTokenIssuanceCreate` requires that `DomainID` be a non-zero, uint256 number.
* `MPTokenIssuanceSet` allows `DomainID` to be zero (or empty) in which case it will remove `DomainID` from the `MPTokenIssuance` object.

The change is amendment-gated by `SingleAssetVault`. This is a non-breaking change because `SingleAssetVault` amendment is `Supported::no`, i.e. at this moment considered a work in progress, which cannot be enabled on the network.
2025-07-23 13:21:30 -04:00
Jingchen
faa781b71f Remove obsolete owner pays fee feature and XRPL_ABANDON stanza (#5550)
If a feature was never voted on then it is safe to remove.
2025-07-23 13:27:41 +00:00
Luc des Trois Maisons
60909655d3 Restructure beast::rngfill (#5563)
The current implementation of rngfill is prone to false warnings from GCC about array bounds violations. Looking at the code, the implementation naively manipulates both the bytes count and the buffer pointer directly to ensure the trailing memcpy doesn't overrun the buffer. As expressed, there is a data dependency on both fields between loop iterations.

Now, ideally, an optimizing compiler would realize that these dependencies were unnecessary and end up restructuring its intermediate representation into a functionally equivalent form with them absent. However, the point at which this occurs may be disjoint from when warning analyses are performed, potentially rendering them more difficult to
determine precisely.

In addition, it may also consume a portion of the budget the optimizer has allocated to attempting to improve a translation unit's performance. Given this is a function template which requires context-sensitive instantiation, this code would be more prone than most to being inlined, with a decrease in optimization budget corresponding to the effort the optimizer has already expended, having already optimized one or more calling functions. Thus, the scope for impacting the the ultimate quality of the code generated is elevated.

For this change, we rearrange things so that the location and contents of each memcpy can be computed independently, relying on a simple loop iteration counter as the only changing input between iterations.
2025-07-22 11:42:43 -04:00
Chenna Keshava B S
1a40f18bdd Remove the type filter from "ledger" RPC command (#4934)
This issue was reported on the Javascript client library: XRPLF/xrpl.js#2611

The type filter (Note: as of the latest version of rippled, type parameter is deprecated) does not work as expected. This PR removes the type filter from the ledger command.
2025-07-18 17:58:46 +00:00