Star developer
A large portion of this release was made possible by the extraordinary efforts of @tequdev 🤩
Sync xrpld 2.4.0
Xahaud is a code fork of Rippled (now Xrpld) and periodically improvements from upstream are ported into Xahaud. This update brings the first major sync for over a year (since 1.11.0). This sync imports almost 300 commits from 20 developers, and brings the following Xrpld features and fixes to Xahaud. It is very important that UNL members carefully discuss which if any of the incoming features they feel should be enabled on Xahau.
Fixes from Sync: (Default Yes voting)
- FillOrKill
- InnerObjTemplate
- PreviousTxnID
- ReducedOffersV1
- ReducedOffersV2
- DisallowIncomingV1
Fixes from Sync: (Default No voting)
- EnforceNFTokenTrustline
- NFTokenPageLinks
- NFTokenReserve
Other Fixes (Default Yes voting)
- ImportIssuer
Bug fix for Import transactor - HookMap
Bug fix forstate_foreign_set
Other Fixes (Default No voting)
- GuardDepth32
Increase maximum wasm block nesting depth to 32 (from 16) - IOULockedBalanceInvariant
Add an invariant check to locked IOU balances
Feature: HookAPISerializedType240
Adds / fixes support within sto_ hook API for Paths.
Feature: HookOnV2
Hooks may continue to specify HookOn with the preexisting behaviour, or, optionally replace with HookOnIncoming and HookOnOutgoing fields, which work the same way but differentiate transactions originating from the account vs those originating from another account. Additionally HookCanEmit may be specified, which again is a HookOn syntaxed field that controls which transactions a Hook is allowed to emit.
Feature: IOURewardClaim
The ClaimReward transaction type is expanded beyond genesis balance adjustments to Issuers of other currencies. The same logic (reward for area under the curve of hold time vs hold amount) is optionally applied to Issuer currencies using the ClaimCurrency field in the ClaimReward transaction. The counters for tracking the reward are held within the trustline, and do not affect Balance Adjustments as issued by the genesis account.
Feature: PriceOracle
This is a sync'd feature from xrpld. See their documentation for details.
Feature: AMM + AMMClawback
AMM is merged in this release but it is marked as not supported. This is for a few reasons: The core developers feel more testing with Xahau's feature set is warranted. We are also watching with interest community AMM hooks that offer new and additional features beyond the xrpld implementation of the AMM, with a view to preferring Hooks based community implementations and providing extra support for those over a one-size-fits-all inflexible AMM primitive.
Feature: HooksUpdate2
Add a new Hook API: prepare(write_ptr, write_len, read_ptr, read_len) which copies a supplied binary transaction and inserts the fields required for emit instead of forcing the hook developer to manually code these.
Feature: NamedHooks
This feature allows users to specify a HookName during Hook installation. This makes the Hook behave like an optional function. An incoming transaction specifying HookName will execute both the unnamed Hooks on the account, as well as any Hook matching its specified HookName. Named Hooks only execute when explicitly specified, otherwise they are skipped. Unnamed Hooks always execute. This allows multiple behaviours or functions to be Hooked On the same transactor with HookName selecting the desired Hook and therefore the desired behaviour.