v0.2.7-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Validation `0.2.7` — WebSocket Solana standard
|
||||
|
||||
@@ -481,6 +481,45 @@ resubscribe RPC application error -> rpc_application_error terminal sur le handl
|
||||
|
||||
`overflow_count` et `continuity_gap_count` sont deux signaux distincts : le premier mesure les saturations locales de consumers, le second les ruptures de continuité physique. Aucun des deux ne déclenche de replay ou de backfill automatique. Les causes terminales n'exposent qu'un `ErrorCode` KSP, jamais le payload distant, le remote subscription ID ou l'URL.
|
||||
|
||||
## 9.7 Checkpoint wrappers stables lot A `pre.009`
|
||||
|
||||
Surface publique ajoutée :
|
||||
|
||||
```text
|
||||
WsSession::account_subscribe
|
||||
SolanaAccountSubscribeConfig
|
||||
WsSubscription<SolanaRpcResponse<SolanaAccount>>
|
||||
|
||||
WsSession::program_subscribe
|
||||
SolanaProgramSubscribeConfig
|
||||
SolanaProgramNotification = bare keyed account | contextual keyed account
|
||||
|
||||
WsSession::logs_subscribe
|
||||
SolanaLogsSubscribeFilter = All | AllWithVotes | Mentions(Pubkey)
|
||||
SolanaLogsNotification = signature + err nullable + logs ordonnés
|
||||
```
|
||||
|
||||
Gates déterministes ajoutés :
|
||||
|
||||
```text
|
||||
accountSubscribe -> params exacts pubkey + encoding/dataSlice/commitment
|
||||
accountSubscribe -> aucun minContextSlot promis ou sérialisable par le config WS
|
||||
accountNotification -> SolanaRpcContext + SolanaAccount partagé
|
||||
account handle unsubscribe -> accountUnsubscribe avec remote ID interne
|
||||
programSubscribe -> filters + withContext préservés, sortResults absent
|
||||
program filters -> >4 et raw memcmp >128 rejetés avant émission subscribe
|
||||
programNotification -> forme bare acceptée
|
||||
programNotification -> forme contextualisée acceptée
|
||||
program handle unsubscribe -> programUnsubscribe exact
|
||||
logs filter -> all/allWithVotes/mentions exactement une pubkey
|
||||
logsNotification -> context + signature + err null/object + ordre logs préservés
|
||||
logsNotification sans champ err requis -> invalid_response typed, session non concernée
|
||||
logs handle unsubscribe -> logsUnsubscribe exact
|
||||
API publique -> aucun subscribe(method, raw params) exposé
|
||||
```
|
||||
|
||||
Les trois wrappers passent par le même moteur actor/registry acquis en `pre.006`–`pre.008`; les remote IDs ne deviennent donc pas publics et les paramètres typés initiaux restent les specs rejouées lors d'un resubscribe `ActiveSubscriptions`. Le lot B (`signature`, `slot`, `root`) reste explicitement différé à `pre.010`.
|
||||
|
||||
## 10. Validation du gate `pre.001`
|
||||
|
||||
Exécuté dans le sandbox :
|
||||
|
||||
Reference in New Issue
Block a user