* XRPLF/ximinez/number-fix-maxrepcusp: (32 commits)
ci: Only push docker images in XRPLF/rippled (7330)
clang-tidy: missing header
ci: [DEPENDABOT] bump docker/setup-buildx-action from 4.0.0 to 4.1.0 (7322)
ci: [DEPENDABOT] bump codecov/codecov-action from 6.0.0 to 6.0.1 (7321)
ci: [DEPENDABOT] bump docker/build-push-action from 7.1.0 to 7.2.0 (7320)
ci: [DEPENDABOT] bump docker/metadata-action from 6.0.0 to 6.1.0 (7319)
ci: [DEPENDABOT] bump docker/login-action from 4.1.0 to 4.2.0 (7318)
fix: Update `clang-tidy` to include `src/tests` directory header check (7307)
clang-tidy: implicit bool conversion
chore: Pin Python packages for codegen using uv (7329)
style: Use shfmt instead of bashate (7326)
fix: Fix edge-case where vault-depositor may get stuck (7139)
Address some AI review feedback: predeclare, include, format, comment
fix: Fix `VaultInvariant` and `VaultDeposit` precision bugs at IOU scale boundaries (7272)
ci: Add clang to nix images (7308)
fix: Include management-fee delta in doOverpayment assertion (7039)
fix: Fix clang-tidy pre-commit hook to locate compile_commands.json from repo root (7325)
fix: Use consistent scale for `debtTotal` (7093)
fix: Skip deleted book directories and non-root modifications in `ValidBookDirectory` invariant (7312)
fix: Address review feedback on FD/handle guarding (5823 follow-up) (7310)
...
Co-authored-by: xrplf-ai-reviewer[bot] <266832837+xrplf-ai-reviewer[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* XRPLF/ximinez/number-fix-maxrepcusp:
fix: Disable unnecessary sanity-check in VaultDeposit (7288)
ci: [DEPENDABOT] bump actions/upload-artifact from 7.0.0 to 7.0.1 (7286)
ci: Only run reusable package in public repos (7293)
fix: Set default peering port to 2459 (6848)
fix: Use account ledger entry when canceling token escrows (6171)
refactor: Rename `account_` to `accountID_` (7284)
ci: Add Linux package builds (DEB + RPM) to CI (6639)
refactor: Clean up comments post-clang-tidy changes (7283)
release: Set version to 3.3.0-b0 (7280)
refactor: Rename static constants (7120)
refactor: Use `isFlag` where possible instead of bitwise math (7278)
ci: Update XRPLF/actions (7281)
clang-tidy: this is ridiculous
clang-tidy: {}
* XRPLF/develop:
release: Set version to 3.3.0-b0 (7280)
refactor: Rename static constants (7120)
refactor: Use `isFlag` where possible instead of bitwise math (7278)
ci: Update XRPLF/actions (7281)
* mywork/ximinez/number-fix-maxrepcusp:
Address more nitpicky AI comments
What is it going to take to get clang-tidy to shut up?
More clang-tidy changes: AMMExtended_test member and Number_test includes
Fix clang-tidy issues, and more AI complaints
Fix AI-identified mistakes
fix: Fix a rounding error at the Number::maxRep cusp
- Add helper function, doDropDigit, to wrap the common pattern:
push(mantissa % 10);
mantissa /= 10;
++exponent;
- Might have been helpful to catch this issue when developing.
* XRPLF/develop:
refactor: Revert certain `Throw`s by `LogicError`s (7036)
ci: Rename print-env -> print-build-env (7061)
fix: Gate -mcmodel flags to x86_64 in sanitizer builds (7049)
fix: Prevents overwriting a bool value in an invariant (6609)
fix: Address code review comments regarding `boost::coroutine2` (6977)
refactor: Apply various minor improvements and corrections (7045)
fix: Store `Delegate` object in delegating and authorized account directories for proper deletion (6681)
ci: Use print-env from XRPLF/actions (7052)
fix: Make assorted RPC fixes (6529)
chore: Enable clang-tidy v21 new checks (7031)
* 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)
- 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.
Per XLS-0095, we are taking steps to rename ripple(d) to xrpl(d).
C++ include guards are used to prevent the contents of a header file from being included multiple times in a single compilation unit. This change renames all `RIPPLE_` and `RIPPLED_` definitions, primarily include guards, to `XRPL_`. It also provides a script to allow developers to replicate the changes in their local branch or fork to avoid conflicts.
- Specification: https://github.com/XRPLF/XRPL-Standards/pull/272
- Amendment: `TokenEscrow`
- Enables escrowing of IOU and MPT tokens in addition to native XRP.
- Allows accounts to lock issued tokens (IOU/MPT) in escrow objects, with support for freeze, authorization, and transfer rates.
- Adds new ledger fields (`sfLockedAmount`, `sfIssuerNode`, etc.) to track locked balances for IOU and MPT escrows.
- Updates EscrowCreate, EscrowFinish, and EscrowCancel transaction logic to support IOU and MPT assets, including proper handling of trustlines and MPT authorization, transfer rates, and locked balances.
- Enforces invariant checks for escrowed IOU/MPT amounts.
- Extends GatewayBalances RPC to report locked (escrowed) balances.
- Specification: XRPLF/XRPL-Standards#239
- Amendment: `SingleAssetVault`
- Implements a vault feature used to store a fungible asset (XRP, IOU, or MPT, but not NFT) and to receive shares in the vault (an MPT) in exchange.
- A vault can be private or public.
- A private vault can use permissioned domains, subject to the `PermissionedDomains` amendment.
- Shares can be exchanged back into asset with `VaultWithdraw`.
- Permissions on the asset in the vault are transitively applied on shares in the vault.
- Issuer of the asset in the vault can clawback with `VaultClawback`.
- Extended `MPTokenIssuance` with `DomainID`, used by the permissioned domain on the vault shares.
Co-authored-by: John Freeman <jfreeman08@gmail.com>