v0.1.0-pre.011
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
## Décodeur Solana Core
|
||||
|
||||
`SolanaCoreDecoder` est le premier décodeur concret porté depuis bot2. Il implémente `InstructionDecoder` et `ProtocolDecoder` sans dépendre de PostgreSQL, du RPC, de Tauri ou du wallet.
|
||||
`DcSolanaCoreDecoder` est le premier décodeur concret porté depuis bot2. Il implémente `DcApiInstructionDecoder` et `DcApiProtocolDecoder` sans dépendre de PostgreSQL, du RPC, de Tauri ou du wallet.
|
||||
|
||||
Il couvre les 18 surfaces natives suivantes :
|
||||
|
||||
@@ -25,13 +25,13 @@ La matrice `docs/NATIVE_SOLANA_DECODER_MATRIX.json` reste la source machine-read
|
||||
|
||||
## Décodeur SPL Memo
|
||||
|
||||
`SplMemoDecoder` couvre exactement les générations v1, v3 et v4. Le payload est lu comme un message brut sans discriminator, borné à 4 096 octets, puis projeté avec son texte UTF-8 complet, sa longueur, son SHA-256, les comptes ordonnés et le statut de commit.
|
||||
`DcSplMemoDecoder` couvre exactement les générations v1, v3 et v4. Le payload est lu comme un message brut sans discriminator, borné à 4 096 octets, puis projeté avec son texte UTF-8 complet, sa longueur, son SHA-256, les comptes ordonnés et le statut de commit.
|
||||
|
||||
Memo v1 ignore les comptes lors de la validation runtime. Memo v3 et v4 exigent que chaque compte fourni soit signer. Les transactions échouées restent des intentions non commitées et les payloads UTF-8 invalides ou signatures manquantes deviennent des tentatives invalides explicites. La matrice normative est `docs/SPL_MEMO_MATRIX.json`.
|
||||
|
||||
## Décodeur SPL Token classique
|
||||
|
||||
`SplTokenDecoder` couvre exclusivement le Program ID classique
|
||||
`DcSplTokenDecoder` couvre exclusivement le Program ID classique
|
||||
`TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`. Il publie 28 déclarations de couverture pour
|
||||
les tags `0..24`, `38`, `45` et `255`, y compris les variantes historiques, checked,
|
||||
`WithdrawExcessLamports`, `UnwrapLamports` et `Batch`.
|
||||
@@ -45,7 +45,7 @@ normative est `docs/SPL_TOKEN_MATRIX.json`.
|
||||
|
||||
## Décodeur SPL Associated Token Account
|
||||
|
||||
`SplAssociatedTokenAccountDecoder` couvre exclusivement
|
||||
`DcSplAssociatedTokenAccountDecoder` couvre exclusivement
|
||||
`ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL`. Il reconnaît les trois variantes publiées
|
||||
`Create`, `CreateIdempotent` et `RecoverNested`, ainsi que l’encodage historique vide de `Create`.
|
||||
|
||||
@@ -58,7 +58,7 @@ Program ID sans reconstruire leur état ni interpréter leurs extensions. La mat
|
||||
|
||||
## Décodeur SPL Token‑2022
|
||||
|
||||
`SplToken2022Decoder` couvre exclusivement
|
||||
`DcSplToken2022Decoder` couvre exclusivement
|
||||
`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`. Il conserve les 48 enveloppes de premier niveau,
|
||||
les sous-instructions d’extensions dont le wire est officiellement identifiable, les interfaces
|
||||
Token Metadata et Token Group exécutées directement par Token‑2022, ainsi que `Batch` sans batch
|
||||
@@ -67,22 +67,22 @@ imbriqué.
|
||||
Le décodeur borne les payloads, les chaînes de metadata, le nombre d’enfants et les comptes
|
||||
cumulés. Les comptes, autorités, offsets de preuve, suffixes et chemins outer/inner restent
|
||||
ordonnés et exacts. Une transaction échouée produit une intention non commitée. Le parseur public
|
||||
`parse_token_2022_state()` distingue Mint, Account et Multisig, conserve la base exacte et expose
|
||||
`decoder_spl_token2022_parse_token2022_state()` distingue Mint, Account et Multisig, conserve la base exacte et expose
|
||||
les entrées TLV ordonnées sans inventer l’état d’un programme externe pointé. La matrice normative
|
||||
est `docs/SPL_TOKEN_2022_MATRIX.json`.
|
||||
|
||||
## Décodeur du registre ElGamal
|
||||
|
||||
`SplElgamalRegistryDecoder` couvre le programme indépendant
|
||||
`DcSplElgamalRegistryDecoder` couvre le programme indépendant
|
||||
`regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg`. Il décode exactement `CreateRegistry` et
|
||||
`UpdateRegistry`, conserve l’offset relatif de preuve et ne prétend jamais vérifier la preuve ZK.
|
||||
`parse_elgamal_registry_state()` exige exactement 64 octets et restitue le wallet propriétaire, la
|
||||
`decoder_spl_elgamal_registry_parse_elgamal_registry_state()` exige exactement 64 octets et restitue le wallet propriétaire, la
|
||||
clé publique ElGamal et le wire complet. La matrice normative est
|
||||
`docs/SPL_ELGAMAL_REGISTRY_MATRIX.json`.
|
||||
|
||||
## Décodeur Metaplex Token Metadata
|
||||
|
||||
`MetadataMetaplexTokenMetadataDecoder` couvre exclusivement
|
||||
`DcMetadataMetaplexTokenMetadataDecoder` couvre exclusivement
|
||||
`metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`. Il inventorie exactement les 58
|
||||
discriminateurs `0..=57`, conserve les arguments Borsh, les comptes positionnels,
|
||||
les placeholders optionnels, les chemins outer/CPI et les transactions échouées
|
||||
@@ -100,22 +100,22 @@ politique d’exécution définitivement interdite. La matrice normative est
|
||||
|
||||
## API publique utile
|
||||
|
||||
- `EventMaterializer`, `MaterializerIdentity`, `MaterializationTransactionPolicy`, `MaterializerExecutionResult` et `MaterializedOutput` : contrat complet utilisable par un matérialiseur interne ou externe ;
|
||||
- `LifecycleMaterializer`, `AdminMaterializer`, `ComplianceAuditMaterializer` et `StakingMaterializer` : matérialisateurs Solana natifs concrets ;
|
||||
- `materialize_token_2022_admin_state_snapshots()` et `materialize_elgamal_registry_state_snapshot()` : projections stateful d’administration déjà exposées ;
|
||||
- `SolanaCoreDecoder` : décodeur concret natif ;
|
||||
- `SplMemoDecoder` : décodeur exact des trois générations SPL Memo ;
|
||||
- `SplTokenDecoder` : décodeur exact du programme SPL Token classique ;
|
||||
- `SplAssociatedTokenAccountDecoder` : décodeur exact du programme Associated Token Account ;
|
||||
- `SplToken2022Decoder` : décodeur exact des instructions Token‑2022 ;
|
||||
- `Token2022State`, `Token2022StateKind`, `Token2022TlvEntry` et `parse_token_2022_state()` : API publique de lecture d’état Token‑2022 ;
|
||||
- `SplElgamalRegistryDecoder`, `ElGamalRegistryState` et `parse_elgamal_registry_state()` : API publique du registre ElGamal ;
|
||||
- `MetadataMetaplexTokenMetadataDecoder` : décodeur exact du programme Metaplex Token Metadata ;
|
||||
- `MtApiEventMaterializer`, `MtApiMaterializerIdentity`, `MtApiMaterializationTransactionPolicy`, `MtApiMaterializerExecutionResult` et `MtApiMaterializedOutput` : contrat complet utilisable par un matérialiseur interne ou externe ;
|
||||
- `MtLifecycleMaterializer`, `MtAdminMaterializer`, `MtComplianceAuditMaterializer` et `MtStakingMaterializer` : matérialisateurs Solana natifs concrets ;
|
||||
- `materialize_token2022_admin_state_snapshots()` et `materialize_elgamal_registry_state_snapshot()` : projections stateful d’administration déjà exposées ;
|
||||
- `DcSolanaCoreDecoder` : décodeur concret natif ;
|
||||
- `DcSplMemoDecoder` : décodeur exact des trois générations SPL Memo ;
|
||||
- `DcSplTokenDecoder` : décodeur exact du programme SPL Token classique ;
|
||||
- `DcSplAssociatedTokenAccountDecoder` : décodeur exact du programme Associated Token Account ;
|
||||
- `DcSplToken2022Decoder` : décodeur exact des instructions Token‑2022 ;
|
||||
- `DcToken2022State`, `DcToken2022StateKind`, `DcToken2022TlvEntry` et `decoder_spl_token2022_token2022_state()` : API publique de lecture d’état Token‑2022 ;
|
||||
- `DcSplElgamalRegistryDecoder`, `DcSplElGamalRegistryState` et `decoder_spl_elgamal_registry_parse_elgamal_registry_state()` : API publique du registre ElGamal ;
|
||||
- `DcMetadataMetaplexTokenMetadataDecoder` : décodeur exact du programme Metaplex Token Metadata ;
|
||||
- `kb_lib::decoder::metadata::metaplex_token_metadata` : parseurs et snapshots publics des comptes Metaplex ;
|
||||
- `InstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ;
|
||||
- `ProtocolDecoder` : contrat de compatibilité avec les observations historiques ;
|
||||
- `CoreInstructionReplayInput` : input source-neutral produit par l’extraction core ;
|
||||
- `DecoderExecutionResult`, `DecoderRecognition` et `DecoderCoverageDeclaration` : résultats typés du pipeline ;
|
||||
- `DcApiInstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ;
|
||||
- `DcApiProtocolDecoder` : contrat de compatibilité avec les observations historiques ;
|
||||
- `MdCoreInstructionReplayInput` : input source-neutral produit par l’extraction core ;
|
||||
- `DcApiDecoderExecutionResult`, `DcApiDecoderRecognition` et `DcApiDecoderCoverageDeclaration` : résultats typés du pipeline ;
|
||||
- modèles canoniques et nomenclature réexportés depuis la façade.
|
||||
|
||||
Les helpers, constantes wire et types intermédiaires de chaque composant restent internes. Leurs noms sont préfixés au niveau de la façade interne afin d’éviter les collisions lors de la fusion des anciens crates.
|
||||
|
||||
Reference in New Issue
Block a user