2.1 KiB
2.1 KiB
Why
Currency identities are currently duplicated in static registries and coupled to callers such as Raydium. AssetAZ needs one service-owned UUID identity model that can resolve external identifiers without making symbols or integrations the canonical identity.
What Changes
- Add a public AssetAZ Currency Identity Service API and immutable external-reference value type.
- Publish stable AssetAZ currency UUID constants in an API-only identifier class so consumers never depend on the hardcoded implementation package.
- Add a hardcoded reference implementation containing the current currency definitions and Solana mint mappings.
- BREAKING Move
CurrencyTypefrom the shared basic value-types package tocom.r35157.assetaz.valuetypesand define equality by UUID alone. - BREAKING Remove
WellKnownCurrencyTypesandWellKnownTradingPairs; construct trading pairs from identities resolved by the service. - Inject the Currency Identity Service into
RaydiumImpland resolve pool mint identities when producing prices and ranges. - Create the hardcoded service exactly once in NenjimHub's autorun composition root and pass that shared service instance to every component that requires currency identities.
- Preserve canonical currency metadata as non-null while allowing external references to omit symbol metadata and allowing currencies to have no external references.
- Do not add or rewrite unit tests or Nenjim Test Tool code as part of this change.
Capabilities
New Capabilities
assetaz-currency-identity-service: Defines UUID-based currency identity, external-identifier resolution, the immutable hardcoded catalogue, and its use by Raydium.
Modified Capabilities
None.
Impact
The change affects the AssetAZ value-type and service packages, public UUID identifiers, all production imports of CurrencyType, NenjimHub dependency wiring, hardcoded ticker data, Raydium construction and pricing, State pool accounting, and callers that construct identity-dependent components. It removes the two legacy static currency/trading-pair registries. No external dependency or ValueTag configuration change is required.