v0.2.11-pre.002-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md -->
|
||||
<!-- version: 3 -->
|
||||
<!-- version: 4 -->
|
||||
|
||||
# Plan `0.2.11` — Off-chain price transport SOL/USD multi-provider
|
||||
|
||||
**Statut courant : `0.2.11-pre.002` matérialise la fondation de `ksp-offchain-transport-lib` sans encore ajouter de client HTTP ou d'adapter provider. Le contrat public V1 possède désormais un décimal exact SOL/USD, des observations/provenances/timestamps sûrs, des identifiants/descriptors provider opaques, des capacités auth/rate-limit/quota descriptives, des settings communs minimaux et des états d'availability provider-neutral.**
|
||||
**Statut courant : `0.2.11-pre.002-fix.001` corrige la fondation de `ksp-offchain-transport-lib` avant `pre.003` : rustdocs d'intégration complètes, façade Logging KSP avec target explicite, et classement de la capacité actuelle sous la famille interne `market_price_*`. Le contrat V1 reste limité à SOL/USD et aucun client HTTP/provider n'est encore ajouté.**
|
||||
|
||||
## 1. Base et autorité
|
||||
|
||||
@@ -93,6 +93,41 @@ forme JSON wire provider
|
||||
mapping de status HTTP provider
|
||||
```
|
||||
|
||||
### 3.1 Taxonomie interne durable de `ksp-offchain-transport-lib`
|
||||
|
||||
`ksp-offchain-transport-lib` est une crate de transport **off-chain hétérogène**. `0.2.11` n'en définit que la première famille fonctionnelle ; la crate elle-même ne doit pas être structurée comme si toutes ses responsabilités futures étaient des prix.
|
||||
|
||||
La convention retenue à partir de `pre.002-fix.001` est :
|
||||
|
||||
```text
|
||||
constants.rs préoccupations partagées à toute la crate
|
||||
error.rs erreurs partagées / codes crate-wide
|
||||
http_* mécanique HTTP réutilisable entre familles lorsqu'elle sera matérialisée
|
||||
market_price_* prix de marché / spot et observations normalisées
|
||||
swap_quote_* réservé aux futures quotes montant/route, uniquement lorsqu'elles seront réellement implémentées
|
||||
<future_capability>_* nouvelle famille uniquement lorsqu'un scope réel l'exige
|
||||
```
|
||||
|
||||
Les fichiers génériques `decimal.rs`, `observation.rs`, `provider.rs` et `settings.rs` introduits initialement par `pre.002` sont donc corrigés avant toute extension runtime : la fonctionnalité actuelle est préfixée `market_price_*`. Les futurs domaines ne doivent pas être ajoutés dans ces modules uniquement parce qu'ils utilisent eux aussi un provider HTTP.
|
||||
|
||||
La règle est **responsabilité avant taille** : un module commun n'est promu au niveau crate-wide que lorsqu'au moins deux familles réelles partagent le même invariant. Ainsi, le HTTP, le scheduling ou une identité provider pourront être factorisés plus tard si leur partage est effectivement démontré ; aucune abstraction générique n'est créée aujourd'hui uniquement pour anticiper Jupiter Quotes.
|
||||
|
||||
### 3.2 Lecture, écriture et verbes HTTP
|
||||
|
||||
La capacité `market_price` de `0.2.11` est strictement read-only. La crate n'est toutefois pas déclarée architecturalement read-only pour toutes ses versions futures.
|
||||
|
||||
L'ownership dépend de la sémantique métier, pas du verbe HTTP :
|
||||
|
||||
```text
|
||||
GET/POST qui récupère ou calcule une donnée off-chain peut appartenir à Off-chain Transport
|
||||
quote de swap dépendante d'un montant et d'une route future famille swap_quote, pas market_price
|
||||
construction distante d'un payload sans soumission à auditer selon le contrat futur
|
||||
soumission/signature d'une transaction Solana reste hors d'Off-chain Transport
|
||||
écriture distante ayant un effet métier externe nécessite un scope/contrat explicite avant ajout
|
||||
```
|
||||
|
||||
Un futur endpoint Jupiter utilisant `POST` ne devient donc pas automatiquement une « écriture » KSP. Inversement, aucune opération mutante distante n'est autorisée implicitement sous prétexte qu'elle passe par `reqwest`.
|
||||
|
||||
## 4. Frontière avec la future `ksp-app-solprices-desk`
|
||||
|
||||
La release suivante doit créer :
|
||||
@@ -629,6 +664,12 @@ Remplacement du forecast tabulaire par des sous-sections éditables, clarificati
|
||||
|
||||
Création de la crate et de sa façade publique initiale : `PriceDecimal`, paire SOL/USD, observation/provenance/timestamps, identifiants/descriptors provider, capacités auth/rate-limit/quota, settings communs minimaux et états d'availability provider-neutral. Aucun HTTP, limiter actif, credential provider ou adapter wire n'est avancé depuis `pre.003+`.
|
||||
|
||||
#### `pre.002-fix.001` — Rustdoc, Logging et taxonomie Off-chain
|
||||
|
||||
**Statut : réalisé.**
|
||||
|
||||
Correction des deux warnings `missing_docs` des tests d'intégration, ajout de `ksp-logging-lib` avec `src/constants.rs` et `TRACING_TARGET = "ksp-offchain-transport-lib"`, instrumentation KSP des validations/constructions comportementales, et renommage des modules actuels en `market_price_*` pour préparer les futures familles hétérogènes telles que `swap_quote_*` sans transformer la crate entière en module de prix.
|
||||
|
||||
### `pre.003` — HTTP REST commun et rate limiting
|
||||
|
||||
**Statut : planifié.**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Validation `0.2.11` — Off-chain price transport SOL/USD
|
||||
|
||||
@@ -60,6 +60,23 @@ Les statuts `PLANNED` restent non validés tant que la tranche correspondante n'
|
||||
| availability provider-neutral représentable | PASS | `PriceProviderAvailability` + `PriceProviderState` |
|
||||
| HTTP actif ou adapter provider ajouté | N/A | explicitement réservé à `pre.003+` |
|
||||
|
||||
## 3.1 Taxonomie Off-chain et observabilité
|
||||
|
||||
| Invariant | Statut |
|
||||
|--------------------------------------------------------------------------|--------|
|
||||
| crate `ksp-offchain-transport-lib` non assimilée à une crate price-only | PASS |
|
||||
| capacité V1 classée sous modules privés `market_price_*` | PASS |
|
||||
| modules partagés `constants.rs` et `error.rs` restent crate-wide | PASS |
|
||||
| futures quotes prévues sous famille distincte `swap_quote_*` | PASS |
|
||||
| aucune abstraction future créée sans responsabilité réellement partagée | PASS |
|
||||
| `market_price` V1 strictement read-only | PASS |
|
||||
| verbe HTTP distinct de la sémantique métier read/write | PASS |
|
||||
| soumission/signature Solana reste hors d'Off-chain Transport | PASS |
|
||||
| `ksp-logging-lib` utilisé pour les événements KSP de la crate | PASS |
|
||||
| `src/constants.rs` possède `TRACING_TARGET = ksp-offchain-transport-lib` | PASS |
|
||||
| aucune dépendance directe à `tracing` | PASS |
|
||||
| crate-rustdocs présentes dans les tests d'intégration | PASS |
|
||||
|
||||
## 4. Matrice provider prévue
|
||||
|
||||
| Provider | SOL/USD V1 | Gratuit V1 | Mode auth prévu | Test déterministe | Smoke live | Statut courant |
|
||||
|
||||
Reference in New Issue
Block a user