Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed version 2.3.0 #5204

Merged
merged 85 commits into from
Nov 25, 2024
Merged

Proposed version 2.3.0 #5204

merged 85 commits into from
Nov 25, 2024

Conversation

intelliot
Copy link
Collaborator

High Level Overview of Change

For release notes, see RELEASENOTES.md.

The base branch is master. This PR will be merged with --ff-only (not squashed or rebased, and not using the GitHub UI).

Type of Change

  • Release

thejohnfreeman and others added 30 commits June 11, 2024 13:26
…5027)

* Add trap_tx_hash command line option

This new option can be used only if replay is also enabled. It takes a transaction hash from the ledger loaded for replay, and will cause a specific line to be hit in Transactor.cpp, right before the selected transaction is applied.
Add missed coma in 'exportes_sources'
Fixes issue #4937.

The fixReducedOffersV1 amendment fixed certain forms of offer
modification that could lead to blocked order books.  Reduced
offers can block order books if the effective quality of the
reduced offer is worse than the quality of the original offer
(from the perspective of the taker). It turns out that, for
small values, the quality of the reduced offer can be
significantly affected by the rounding mode used during
scaling computations.

Issue #4937 identified an additional code path that modified
offers in a way that could lead to blocked order books.  This
commit changes the rounding in that newly located code path so
the quality of the modified offer is never worse than the
quality of the offer as it was originally placed.

It is possible that additional ways of producing blocking
offers will come to light.  Therefore there may be a future
need for a V3 amendment.
Fix interactions between NFTokenOffers and trust lines.

Since the NFTokenAcceptOffer does not check the trust line that
the issuer receives as a transfer fee in the NFTokenAcceptOffer,
if the issuer deletes the trust line after NFTokenCreateOffer,
the trust line is created for the issuer by the
NFTokenAcceptOffer.  That's fixed.

Resolves #4925.
* Change order of checks in amm_info

* Change amm_info error message in API version 3

* Change amm_info error tests
- Remove CMake module "MultiConfig".
- Update clang-format configuration, CodeCov configuration,
  levelization script.
- Replace source lists in CMake with globs.
* fixInnerObjTemplate2 amendment:

Apply inner object templates to all remaining (non-AMM)
inner objects.

Adds a unit test for applying the template to sfMajorities.
Other remaining inner objects showed no problems having
templates applied.

* Move CMake directory

* Rearrange sources

* Rewrite includes

* Recompute loops

---------

Co-authored-by: Pretty Printer <[email protected]>
* fix "account_nfts" with unassociated marker returning issue

* create unit test for fixing nft page invalid marker not returning error

add more test

change test name

create unit test

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* fix "account_nfts" with unassociated marker returning issue

* [FOLD] accumulated review suggestions

* move BEAST check out of lambda function

---------

Authored-by: Scott Schurr <[email protected]>
This version includes fix codecov/codecov-action#1471
which should end the codecov upload errors due to throttling.
… the ledger. (#4663)

* Add feature / amendment "InvariantsV1_1"

* Adds invariant AccountRootsDeletedClean:

* Checks that a deleted account doesn't leave any directly
  accessible artifacts behind.
* Always tests, but only changes the transaction result if
  featureInvariantsV1_1 is enabled.
* Unit tests.

* Resolves #4638

* [FOLD] Review feedback from @gregtatcam:

* Fix unused variable warning
* Improve Invariant test const correctness

* [FOLD] Review feedback from @mvadari:

* Centralize the account keylet function list, and some optimization

* [FOLD] Some structured binding doesn't work in clang

* [FOLD] Review feedback 2 from @mvadari:

* Clean up and clarify some comments.

* [FOLD] Change InvariantsV1_1 to unsupported

* Will allow multiple PRs to be merged over time using the same amendment.

* fixup! [FOLD] Change InvariantsV1_1 to unsupported

* [FOLD] Update and clarify some comments. No code changes.

* Move CMake directory

* Rearrange sources

* Rewrite includes

* Recompute loops

* Fix merge issue and formatting

---------

Co-authored-by: Pretty Printer <[email protected]>
* fix CTID in tx command returns invalidParams on lowercase hex

* test mixed case and change auto to explicit type

* add header cctype because std::tolower is called

* remove unused local variable

* change test case comment from 'lowercase' to 'mixed case'

---------

Co-authored-by: Zack Brunson <[email protected]>
Signed-off-by: dashangcun <[email protected]>
Co-authored-by: dashangcun <[email protected]>
Co-authored-by: Zack Brunson <[email protected]>
* Make xrpld target optional

* Add job to test Conan recipe

* [fold] address review comments

* [fold] Enable tests in workflows

* [fold] Rename with_xrpld option

* [fold] Fix grep expression
* Document the need to specify "xrpld" and "tests" to build and test rippled.
The names of the files should reflect the name of the Dir class.

Co-authored-by: Zack Brunson <[email protected]>
Co-authored-by: Ed Hennis <[email protected]>
thejohnfreeman and others added 24 commits October 15, 2024 18:25
Amendment:
- MPTokensV1

New Transactions:
- MPTokenIssuanceCreate
- MPTokenIssuanceDestroy
- MPTokenIssuanceSet
- MPTokenAuthorize

Modified Transactions:
- Payment
- Clawback

New Objects:
- MPTokenIssuance
- MPToken

API updates:
- ledger_entry
- account_objects
- ledger_data

Other:
- Add += and -= operators to ValueProxy

Read full spec: https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0033d-multi-purpose-tokens

---------
Co-authored-by: Shawn Xie <[email protected]>
Co-authored-by: Howard Hinnant <[email protected]>
Co-authored-by: Ed Hennis <[email protected]>
Co-authored-by: John Freeman <[email protected]>
fix the typo "concensus" -> "consensus"
Amendment:
- AMMClawback

New Transactions:
- AMMClawback

Modified Transactions:
- AMMCreate
- AMMDeposit
* Add reserve check on AMM Withdraw
* Try AMM max offer if changeSpotPriceQuality() fails
* Checks only Currency or MPT Issuance ID part of the Asset object.
* Resolves temREDUNDANT regression detected in testing.
    Amendment:
    - Credentials
    
    New Transactions:
    - CredentialCreate
    - CredentialAccept
    - CredentialDelete
    
    Modified Transactions:
    - DepositPreauth
    - Payment
    - EscrowFinish
    - PaymentChannelClaim
    - AccountDelete
    
    New Object:
    - Credential

    Modified Object:
    - DepositPreauth
    
    API updates:
    - ledger_entry
    - account_objects
    - ledger_data
    - deposit_authorized
    
    Read full spec: https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0070d-credentials
* 2.2.2 changed functions acquireAsync and NetworkOPsImp::recvValidation to add an item to a collection under lock, unlock, do some work, then lock again to do remove the item. It will deadlock if an exception is thrown while adding the item - before unlocking.
* Replace ScopedUnlock with scope_unlock.
`STNumber` lets objects and transactions contain multiple fields for
quantities of XRP, IOU, or MPT without duplicating information about the
"issue" (represented by `STIssue`). It is a straightforward serialization of
the `Number` type that uniformly represents those quantities.

---------

Co-authored-by: John Freeman <[email protected]>
Co-authored-by: Howard Hinnant <[email protected]>
Move tfClawTwoAssets check to preflight and return
error temINVALID_FLAG

---------

Co-authored-by: yinyiqian1 <[email protected]>
@Bronek Bronek self-requested a review November 25, 2024 23:29
Copy link

codecov bot commented Nov 25, 2024

Codecov Report

Attention: Patch coverage is 98.41689% with 6 lines in your changes missing coverage. Please review.

Project coverage is 77.9%. Comparing base (68e1be3) to head (f64cf91).
Report is 85 commits behind head on master.

Files with missing lines Patch % Lines
include/xrpl/beast/core/LexicalCast.h 85.7% 2 Missing ⚠️
include/xrpl/protocol/Asset.h 95.0% 2 Missing ⚠️
include/xrpl/protocol/Quality.h 94.4% 1 Missing ⚠️
include/xrpl/protocol/STNumber.h 66.7% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           master   #5204     +/-   ##
========================================
+ Coverage    71.1%   77.9%   +6.8%     
========================================
  Files         796     784     -12     
  Lines       67097   66681    -416     
  Branches    11012    8162   -2850     
========================================
+ Hits        47685   51950   +4265     
+ Misses      19412   14731   -4681     
Files with missing lines Coverage Δ
include/xrpl/basics/BasicConfig.h 87.2% <ø> (ø)
include/xrpl/basics/Buffer.h 100.0% <ø> (ø)
include/xrpl/basics/ByteUtilities.h 100.0% <ø> (ø)
include/xrpl/basics/CompressionAlgorithms.h 0.0% <ø> (ø)
include/xrpl/basics/CountedObject.h 100.0% <ø> (ø)
include/xrpl/basics/DecayingSample.h 88.6% <ø> (ø)
include/xrpl/basics/Expected.h 100.0% <100.0%> (ø)
include/xrpl/basics/FeeUnits.h 90.4% <100.0%> (ø)
include/xrpl/basics/IOUAmount.h 100.0% <100.0%> (ø)
include/xrpl/basics/LocalValue.h 100.0% <ø> (ø)
... and 140 more

... and 1287 files with indirect coverage changes

Impacted file tree graph

@intelliot intelliot merged commit f64cf91 into master Nov 25, 2024
23 of 24 checks passed
@intelliot intelliot deleted the master-next branch November 26, 2024 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.