* XRPLF/develop:
fix: Disallow MPTClearRequireAuth if is set (6712)
feat: Add GRPC TLS support (6374)
fix: Check for empty `sfAdditionalBooks` array in hybrid offer invariant (6716)
chore: Remove repetitive word in multiple files (6978)
ci: Add workflow to check PR description has been filled (6965)
ci: [DEPENDABOT] Bump tj-actions/changed-files from 47.0.5 to 47.0.6 (6973)
chore: Enable clang-tidy include cleaner (6947)
fix: Change AMMClawback return code to tecNO_PERMISSION (6946)
ci: [DEPENDABOT] bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (6927)
ci: [DEPENDABOT] bump actions/upload-artifact from 7.0.0 to 7.0.1 (6928)
chore: Enable clang-tidy readability checks (6930)
* XRPLF/develop: (81 commits)
ci: Only publish docs in public repos (6687)
chore: Enable remaining clang-tidy `performance` checks (6648)
refactor: Address PR comments after the modularisation PRs (6389)
chore: Fix clang-tidy header filter (6686)
ci: [DEPENDABOT] bump actions/deploy-pages from 4.0.5 to 5.0.0 (6684)
ci: [DEPENDABOT] bump codecov/codecov-action from 5.5.3 to 6.0.0 (6685)
fix: Guard Coro::resume() against completed coroutines (6608)
refactor: Split LoanInvariant into LoanBrokerInvariant and LoanInvariant (6674)
ci: Don't publish docs on release branches (6673)
refactor: Make function naming in ServiceRegistry consistent (6390)
chore: Shorten job names to stay within Linux 15-char thread limit (6669)
fix: Improve loan invariant message (6668)
ci: Upload artifacts only in public repositories (6670)
ci: Add conflicting-pr workflow (6656)
chore: Add more AI tools to .gitignore (6658)
chore: Show warning message if user may need to connect to VPN (6619)
feat: Add placeholder amendment for assorted bug fixes (6652)
chore: Update sqlite3->3.51.0, protobuf->6.33.5, openssl->3.6.1, grpc->1.78.1 (6653)
refactor: Modularise ledger (6536)
chore: Use unpatched version of soci (6649)
...
Throwing exceptions from code sometime confuses ASAN, as it cannot keep track of stack frames. This change therefore adds a macro to skip instrumentation around the `Throw` function.
- Simplify shiftExponent().
- Clean up to_string() to prevent integers from including "e0".
- Fix root() and root2() computations by ensuring the mantissas have
a consistent length.
- That makes minMantissa 2^63/10+1.
- Simplifies many of the existing operations, and removes the need for
the accessors (mantissa() & exponent()) to do any math.
Unity builds were intended to speed up builds, by bundling multiple files into compilation units. However, now that ccache is available on all platforms, there is no need for unity builds anymore, as ccache stores compiled individual build objects for reuse. This change therefore removes the ability to make unity builds.
The `Number.h` header file now has `std::reference_wrapper` from `<functional>`, but the include is missing, causing downstream build problems. This change adds the header.
- Refactor Number internals away from int64 to uint64 & a sign flag
- ctors and accessors use `rep`. Very few things expose
`internalrep`.
- An exception is "unchecked" and the new "normalized", which explicitly
take an internalrep. But with those special control flags, it's easier
to distinguish and control when they are used.
- For now, skip the larger mantissas in AMM transactions and tests
- Remove trailing zeros from scientific notation Number strings
- Update tests. This has the happy side effect of making some of the string
representations _more_ consistent between the small and large
mantissa ranges.
- Add semi-automatic rounding of STNumbers based on Asset types
- Create a new SField metadata enum, sMD_NeedsAsset, which indicates
the field should be associated with an Asset so it can be rounded.
- Add a new STTakesAsset intermediate class to handle the Asset
association to a derived ST class. Currently only used in STNumber,
but could be used by other types in the future.
- Add "associateAsset" which takes an SLE and an Asset, finds the
sMD_NeedsAsset fields, and associates the Asset to them. In the case
of STNumber, that both stores the Asset, and rounds the value
immediately.
- Transactors only need to add a call to associateAsset _after_ all of
the STNumbers have been set. Unfortunately, the inner workings of
STObject do not do the association correctly with uninitialized
fields.
- When serializing an STNumber that has an Asset, round it before
serializing.
- Add an override of roundToAsset, which rounds a Number value in place
to an Asset, but without any additional scale.
- Update and fix a bunch of Loan-related tests to accommodate the
expanded Number class.
---------
Co-authored-by: Vito <5780819+Tapanito@users.noreply.github.com>
This change renames all occurrences of `namespace ripple` and `ripple::` to `namespace xrpl` and `xrpl::`, respectively, as well as the names of test suites. It also provides a script to allow developers to replicate the changes in their local branch or fork to avoid conflicts.
- Spec: XLS-66
- Introduces amendment "LendingProtocol", but leaves it UNSUPPORTED to
allow for standalone testing, future development work, and potential
bug fixes.
- AccountInfo RPC will indicate the type of pseudo-account when
appropriate.
- Refactors and improves several existing classes and functional areas,
including Number, STAmount, STObject, json_value, Asset, directory
handling, View helper functions, and unit test helpers.
Per XLS-0095, we are taking steps to rename ripple(d) to xrpl(d).
This change specifically removes all copyright notices referencing Ripple, XRPLF, and certain affiliated contributors upon mutual agreement, so the notice in the LICENSE.md file applies throughout. Copyright notices referencing external contributions remain as-is. Duplicate verbiage is also removed.