94 Commits
Author SHA1 Message Date
Richard Holland 51304bf04f testnet genesis fix (#902)
* testnet genesis fix

* ordering
2026-10-17 09:26:53 +10:00
Richard Holland b9f2914c0e catalogue speed and memory fixes (#883) 2026-10-14 14:13:37 +10:00
Richard Holland 64a30b2a15 Various fixes (#888) 2026-10-12 12:48:34 +10:00
Richard Holland 7046616cdb FeatureRNG (#869) 2026-10-12 10:49:46 +10:00
Richard Holland a2e7f3c645 PWABootLoader (#793) 2026-10-12 08:22:29 +10:00
Richard Holland 004752d1c2 On Chain Manifests Directory, Partial Sync and Gossip Bloom Filter (#861) 2026-10-12 08:08:29 +10:00
tequ 22e6ad21b4 Add hook_validate RPC to run the hook guard checker (#882) 2026-10-11 23:08:29 +10:00
tequ 505c28768a Expose Hook API signatures, keylet types and return codes in server_definitions (#884) 2026-10-11 15:26:25 +10:00
Richard HollandandNiq Dudfield 4e0e108654 On Chain Manifest Canonical Envelope (port from 854) (#862)
Co-authored-by: Niq Dudfield <[email protected]>
2026-10-05 17:05:21 +10:00
Richard Holland 0373045bff re-enable ocm (#864) 2026-10-05 15:53:59 +10:00
tequ 80c70ec03d Add fix20261005 Amendment placeholder (#860) 2026-10-05 14:08:57 +10:00
Richard Holland 2566bcf6fa EscrowDestinationCancel (#858) 2026-10-04 10:51:15 +10:00
tequ 7f37aeac39 Fix compiler warnings in gcc CI builds and Boost 1.91 deprecation (#855) 2026-10-02 14:41:57 +10:00
Richard HollandandNicholas Dudfield 0f3258d235 import exploit fixes (#9)
Co-authored-by: Nicholas Dudfield <[email protected]>
2026-09-29 18:07:37 +10:00
tequ 3fbeb130f8 fix20261001 to fix20260929 (#14) 2026-09-29 17:58:39 +10:00
Richard Holland 3bc435864f disable onchainmanifests for this release (#845) 2026-09-29 05:35:30 +10:00
tequ c4570a699f Move isValidUTF8 to xrpl/basics and its unit test to test/basics (#834) 2026-09-28 11:50:07 +10:00
tequ 426ff27e42 Merge fixHookNameValidation into fix20261001 (#837) 2026-09-28 11:48:50 +10:00
tequ e6bdd55803 Merge fixHookExitOutOfBounds into fix20261001 (#836) 2026-09-28 11:48:05 +10:00
tequ 9dd103fad4 Merge fixHookAPISType into fix20261001 (#835) 2026-09-28 11:46:59 +10:00
Richard Holland 1ddda79c34 utf8 patch (#832) 2026-09-26 13:11:53 +10:00
tequ 76b7111098 Add fix20261001 Amendment placeholder (#831) 2026-09-26 11:07:18 +10:00
tequ 20f2b7f456 fixHookNameValidation Amendment (#776) 2026-09-26 10:45:24 +10:00
tequ 1ae3fb3f57 fix: record rollback when accept()/rollback() reason is out of bounds (#803)
When a hook calls accept() or rollback() with a reason string pointer
outside of wasm memory, HOOK_EXIT returned OUT_OF_BOUNDS and let the hook
keep running. If the hook then returned normally, the execution ended
with exitType UNSET and the HookExecution metadata carried no useful
information about what happened.

Behind the new fixHookExitOutOfBounds amendment, HOOK_EXIT now terminates
the hook as a ROLLBACK with exitCode OUT_OF_BOUNDS (mirroring the guard
violation path), so HookResult and HookReturnCode in the transaction
metadata make the failure visible to hook developers.

Adds a SetHook test covering accept() and rollback() with an out of
bounds reason, with and without the amendment.

Fixes #767
2026-09-25 20:26:59 +10:00
tequ 8f4569a63c fixHookAPISType Amendment (#778) 2026-09-25 20:20:40 +10:00
tequandRichard Holland ba130f8363 AMMClawback supported::no (#827)
Co-authored-by: Richard Holland <[email protected]>
2026-09-25 12:36:31 +10:00
tequ e87eabd8be HookOnV2_1 Amendment (#766) 2026-09-25 11:17:12 +10:00
Niq Dudfield 2e32b5c6bb feat(server_definitions): distinguish config-forced from ledger-enabled amendments (#765) 2026-09-23 15:33:43 +10:00
tequ 401a35957d retire fixXahauV1, fixXahauV2 Amendments (#722) 2026-09-09 13:00:24 +10:00
Richard Holland 6191c1e09d Onchain manifests (#779) 2026-09-07 13:19:25 +10:00
tequ f1a3a775a1 Add optional Hooks data to account_info response (#789) 2026-09-02 17:22:53 +10:00
Richard Holland 639ea34377 Fixhookmap (#756) 2026-06-16 17:06:25 +10:00
tequ 78167e09c0 change sfHookOn of ltHookDefinition to soeOptional for HookOnV2 (#755) 2026-06-16 13:58:53 +10:00
tequ 607a7fdf98 Change AMM to Supported::no (#758) 2026-06-16 13:56:58 +10:00
tequ cb91b4e88e Restore pre-reserved tem codes (#754) 2026-05-27 07:57:55 +10:00
tequ b9e0c56def Guard depth 32 (#653) 2026-05-25 11:10:49 +10:00
tequ 663ed4edb8 Named Hook (#718) 2026-05-19 12:00:25 +10:00
tequandEd Hennis 5e8d26f67a refactor: Calculate numFeatures automatically (#5324) (#739)
Co-authored-by: Ed Hennis <[email protected]>
2026-04-30 18:17:50 +10:00
tequ a6186d7855 IOURewardClaim (#500) 2026-04-30 15:27:51 +10:00
tequ 49fd0c33b5 fixIOULockedBalanceInvariant Amendment (#732) 2026-04-29 17:05:18 +10:00
tequ 61138058a6 Delete unused sfHookDefinition (#715) 2026-04-29 16:45:35 +10:00
tequ 8dd17973d0 Add hook header ls_flags.h and tx_flags.h (#717) 2026-04-29 16:41:52 +10:00
tequ 55710c4baf Disallow setting a AMM account as Issuer/Destination/Inform (#709) 2026-04-29 11:00:25 +10:00
tequ d3d24f781b Merge fixAMMClawbackRounding amendment into featureAMMClawback amendment 2026-04-28 18:23:31 +10:00
yinyiqian1 131d659032 fixAMMClawbackRounding: adjust last holder's LPToken balance (#5513)
Due to rounding, the LPTokenBalance of the last LP might not match the LP's trustline balance. This was fixed for `AMMWithdraw` in `fixAMMv1_1` by adjusting the LPTokenBalance to be the same as the trustline balance. Since `AMMClawback` is also performing a withdrawal, we need to adjust LPTokenBalance as well in `AMMClawback.`

This change includes:
1. Refactored `verifyAndAdjustLPTokenBalance` function in `AMMUtils`, which both`AMMWithdraw` and `AMMClawback` call to adjust LPTokenBalance.
2. Added the unit test `testLastHolderLPTokenBalance` to test the scenario.
3. Modify the existing unit tests for `fixAMMClawbackRounding`.
2026-04-28 18:23:31 +10:00
tequ 503dee619a Merge fixAMMv1_3 amendment into featureAMM amendment 2026-04-28 18:23:31 +10:00
Gregory Tsipenyuk 1703d96a48 fix: Add AMMv1_3 amendment (#5203)
* Add AMM bid/create/deposit/swap/withdraw/vote invariants:
  - Deposit, Withdrawal invariants: `sqrt(asset1Balance * asset2Balance) >= LPTokens`.
  - Bid: `sqrt(asset1Balance * asset2Balance) > LPTokens` and the pool balances don't change.
  - Create: `sqrt(asset1Balance * assetBalance2) == LPTokens`.
  - Swap: `asset1BalanceAfter * asset2BalanceAfter >= asset1BalanceBefore * asset2BalanceBefore`
     and `LPTokens` don't change.
  - Vote: `LPTokens` and pool balances don't change.
  - All AMM and swap transactions: amounts and tokens are greater than zero, except on withdrawal if all tokens
    are withdrawn.
* Add AMM deposit and withdraw rounding to ensure AMM invariant:
  - On deposit, tokens out are rounded downward and deposit amount is rounded upward.
  - On withdrawal, tokens in are rounded upward and withdrawal amount is rounded downward.
* Add Order Book Offer invariant to verify consumed amounts. Consumed amounts are less than the offer.
* Fix Bid validation. `AuthAccount` can't have duplicate accounts or the submitter account.
2026-04-28 18:23:31 +10:00
Nicholas Dudfield fff46e3dd0 chore: clang-format 2026-02-20 08:22:49 +09:00
tequ 57c4e3c9cc Support new STIs for sto_* HookAPI (#657) 2026-02-20 08:18:45 +09:00
tequ 73f14374b4 VoteBehavior::DefaultYes for new fix Amendments
- NFToken related fix Amendments remains as `DefaultNo`.
2026-02-20 08:15:13 +09:00