113 Commits
Author SHA1 Message Date
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
tequ 505c28768a Expose Hook API signatures, keylet types and return codes in server_definitions (#884) 2026-10-11 15:26:25 +10:00
Richard Holland a7f9c683c4 fix keylet api (#833) 2026-09-26 14:24:00 +10:00
Richard Holland 6191c1e09d Onchain manifests (#779) 2026-09-07 13:19:25 +10:00
tequ 90333b6fd0 Fix HookAPI Expected and Refactor Enum classes (#729) 2026-05-26 11:02:17 +10:00
tequ 083e9e4315 Generate hook extern declarations with C linkage (#750) 2026-05-25 11:27:21 +10:00
tequ 663ed4edb8 Named Hook (#718) 2026-05-19 12:00:25 +10:00
tequ a6186d7855 IOURewardClaim (#500) 2026-04-30 15:27:51 +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 f1f44ae232 Build xahau.h from source and check in workflow https://github.com/Xahau/xahaud/pull/674 2026-04-28 18:28:59 +10:00
Olek 959f7cd21c Permissioned Domains (XLS-80d) (#5161) 2026-02-20 08:09:34 +09:00
tequ 9c17813764 XLS-46: DynamicNFT (#5048)
This Amendment adds functionality to update the URI of NFToken objects as described in the XLS-46d: Dynamic Non Fungible Tokens (dNFTs) spec.
2026-02-20 08:05:50 +09:00
12fea12674 Add a new serialized type: STNumber (#5121)
`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]>
2026-02-20 07:57:00 +09:00
Olek 2867b6eac5 Introduce Credentials support (XLS-70d): (#5103)
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
2026-02-20 07:56:21 +09:00
yinyiqian1 05ca77b23c Add AMMClawback Transaction (XLS-0073d) (#5142)
Amendment:
- AMMClawback

New Transactions:
- AMMClawback

Modified Transactions:
- AMMCreate
- AMMDeposit
2026-02-20 07:50:19 +09:00
0cd8805e36 Introduce MPT support (XLS-33d): (#5143)
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]>
2026-02-20 07:45:19 +09:00
John Freeman 019940e907 Consolidate definitions of fields, objects, transactions, and features (#5122) 2026-02-20 07:37:27 +09:00
Scott Schurr 7465bf594c Address rare corruption of NFTokenPage linked list (#4945)
* Add fixNFTokenPageLinks amendment:

It was discovered that under rare circumstances the links between
NFTokenPages could be removed.  If this happens, then the
account_objects and account_nfts RPC commands under-report the
NFTokens owned by an account.

The fixNFTokenPageLinks amendment does the following to address
the problem:

- It fixes the underlying problem so no further broken links
  should be created.
- It adds Invariants so, if such damage were introduced in the
  future, an invariant would stop it.
- It adds a new FixLedgerState transaction that repairs
  directories that were damaged in this fashion.
- It adds unit tests for all of it.
2026-02-20 07:25:15 +09:00
tequ e95edcba48 fix for xahaud codebase 2026-02-20 07:11:14 +09:00
Gregory Tsipenyuk 37ae1d8a4f Price Oracle (XLS-47d): (#4789) (#4789)
Implement native support for Price Oracles.

 A Price Oracle is used to bring real-world data, such as market prices,
 onto the blockchain, enabling dApps to access and utilize information
 that resides outside the blockchain.

 Add Price Oracle functionality:
 - OracleSet: create or update the Oracle object
 - OracleDelete: delete the Oracle object

 To support this functionality add:
 - New RPC method, `get_aggregate_price`, to calculate aggregate price for a token pair of the specified oracles
 - `ltOracle` object

 The `ltOracle` object maintains:
 - Oracle Owner's account
 - Oracle's metadata
 - Up to ten token pairs with the scaled price
 - The last update time the token pairs were updated

 Add Oracle unit-tests
2026-02-20 07:01:17 +09:00
Mayukha Vadari 74432a37bb DID: Decentralized identifiers (DIDs) (XLS-40): (#4636)
Implement native support for W3C DIDs.

Add a new ledger object: `DID`.

Add two new transactions:
1. `DIDSet`: create or update the `DID` object.
2. `DIDDelete`: delete the `DID` object.

This meets the requirements specified in the DID v1.0 specification
currently recommended by the W3C Credentials Community Group.

The DID format for the XRP Ledger conforms to W3C DID standards.
The objects can be created and owned by any XRPL account holder.
The transactions can be integrated by any service, wallet, or application.
2026-02-20 06:54:47 +09:00
Scott DetermanandGregory Popovitch 8a14bd4cfe XChainBridge: Introduce sidechain support (XLS-38): (#4292)
A bridge connects two blockchains: a locking chain and an issuing
chain (also called a mainchain and a sidechain). Both are independent
ledgers, with their own validators and potentially their own custom
transactions. Importantly, there is a way to move assets from the
locking chain to the issuing chain and a way to return those assets from
the issuing chain back to the locking chain: the bridge. This key
operation is called a cross-chain transfer. A cross-chain transfer is
not a single transaction. It happens on two chains, requires multiple
transactions, and involves an additional server type called a "witness".

A bridge does not exchange assets between two ledgers. Instead, it locks
assets on one ledger (the "locking chain") and represents those assets
with wrapped assets on another chain (the "issuing chain"). A good model
to keep in mind is a box with an infinite supply of wrapped assets.
Putting an asset from the locking chain into the box will release a
wrapped asset onto the issuing chain. Putting a wrapped asset from the
issuing chain back into the box will release one of the existing locking
chain assets back onto the locking chain. There is no other way to get
assets into or out of the box. Note that there is no way for the box to
"run out of" wrapped assets - it has an infinite supply.

Co-authored-by: Gregory Popovitch <[email protected]>
2026-02-20 06:48:10 +09:00
Gregory TsipenyukandHoward Hinnant 233f060b0b Introduce AMM support (XLS-30d): (#4294)
Add AMM functionality:
- InstanceCreate
- Deposit
- Withdraw
- Governance
- Auctioning
- payment engine integration

To support this functionality, add:
- New RPC method, `amm_info`, to fetch pool and LPT balances
- AMM Root Account
- trust line for each IOU AMM token
- trust line to track Liquidity Provider Tokens (LPT)
- `ltAMM` object

The `ltAMM` object tracks:
- fee votes
- auction slot bids
- AMM tokens pair
- total outstanding tokens balance
- `AMMID` to AMM `RootAccountID` mapping

Add new classes to facilitate AMM integration into the payment engine.
`BookStep` uses these classes to infer if AMM liquidity can be consumed.

The AMM formula implementation uses the new Number class added in #4192.
IOUAmount and STAmount use Number arithmetic.

Add AMM unit tests for all features.

AMM requires the following amendments:
- featureAMM
- fixUniversalNumber
- featureFlowCross

Notes:
- Current trading fee threshold is 1%
- AMM currency is generated by: 0x03 + 152 bits of sha256{cur1, cur2}
- Current max AMM Offers is 30

---------

Co-authored-by: Howard Hinnant <[email protected]>
2026-02-20 06:38:25 +09:00
tequ 67a6970031 Outgoing/Incoming HookOn (#457) 2026-02-18 09:32:56 +10:00
tequ efd5f9f6db prepare Hook API (#413) 2026-02-17 20:25:20 +10:00
tequ fb7a0d71de Hook API Refactor3: Consolidate the Hook API definitions from Enum.h and ApplyHook.h into a single file. (#622) 2026-02-15 20:08:44 +10:00
tequ 79fdafe638 Support Cron in util_keylet Hook API (#612) 2025-10-27 14:35:01 +10:00
tequ 6f148a8ac7 ExtendedHookState (#406) 2025-10-23 18:57:38 +10:00
tequ 96222baf5e Add hook header generators and CI verification workflow (#597) 2025-10-22 15:25:38 +10:00
tequ 6fa6a96e3a Introduce StartTime in CronSet and improve next execution scheduling (#596) 2025-10-21 14:17:53 +10:00
tequ f6d2bf819d Fix governance vote purge (#221)
governance hook should be independently and deterministically recompiled before being voted in
2025-06-16 17:12:06 +10:00
tequ e4b7e8f0f2 Update sfcodes script (#479) 2025-04-10 09:44:31 +10:00
8ba37a3138 Add Script for SfCode generation (#358)
Co-authored-by: RichardAH <[email protected]>
Co-authored-by: tequ <[email protected]>
2024-11-09 14:17:49 +10:00
tequ 766f5d7ee1 Update macro.h (#366) 2024-10-25 10:10:43 +10:00
Denis Angell 497e52fcc6 Update Macros (#279)
* add common macros
* remove old/unused macros
2024-03-25 08:43:46 +11:00
Denis AngellandRichard Holland 75aba531d6 Amendment: featureRemit (#278)
* Remit Amendment

Co-authored-by: Denis Angell <[email protected]>

Co-authored-by: Richard Holland <[email protected]>
2024-03-11 09:29:39 +11:00
Denis AngellandRichardAH 475b6f7347 Amendment: Fix Xahau v1 (#231)
* FXV1: Meta Amount (#225)

* FXV1: Optional Offer Sequence (#224)

* FXV1: Patch Hooks OwnerDir (#236)

* FXV1:  Fix `Import` Quorum (#235)

* FXV1: Namespace Limit (#220)

* FXV1: allow duplicate entries in genesis mint transactor (#239)

* FXV1: Fix URIToken (#243)

* lite fixes for tsh issues (#244)

Co-authored-by: RichardAH <[email protected]>
2023-12-21 16:21:17 +01:00
Denis Angell 7dee512991 Housekeeping (#170)
* Update pull_request_template.md

* strip out unused files

* Update CONTRIBUTING.md

* fix docker

* remove conan stuff

* update license

* update hook directory

* Delete .codecov.yml

* Update .dockerignore

* Update genesis.json

* update validator list example

* Update rippled-standalone.cfg

* Update CONTRIBUTING.md
2023-11-01 14:56:12 +01:00
Richard Holland ac5ff4ca32 remove completely the codepath for undoing l2 votes 2023-10-25 11:54:58 +00:00
Richard Holland 263c6342cf fix for https://github.com/Xahau/xahaud/issues/149 2023-10-20 13:21:30 +00:00
Richard Holland 6dc86a9611 more genesismint tests 2023-09-28 20:53:45 +00:00
Richard Holland 150749291f start of genesis mint tests 2023-09-28 12:45:54 +00:00
Richard Holland 0f04ada876 change default reward rate in tests to the correct updated value 2023-09-28 08:35:23 +00:00
Dominique Blomsma 834442132b Governance updates (#113)
* Reward delay type corrected to XFL

* Fixed Governance Initial Reward Rate
2023-09-25 22:35:40 +02:00
Richard Holland 40631c1a7c remove tn11, dead validator 2023-09-25 10:14:44 +00:00
Denis Angell e44eeec631 Update reward.c hook (#111)
* fix include

* fix include

* update invariant

* update comment

* Update reward.c

* Update reward.c

* Update reward.c
2023-09-25 11:46:40 +02:00
Richard Holland 75525c2d38 v3 governance keys 2023-09-25 09:39:12 +00:00
Denis Angell cfa46934ed Sync extern.h (#101)
* update hook error codes

* reorder and remove unused externs

* add HOOK_STATE_DIR keylet

* Delete types.h

* move transaction types
2023-09-19 11:24:09 +02:00