v0.1.0-pre.011

This commit is contained in:
2026-07-24 14:23:58 +02:00
parent 62bc0ffb44
commit 42e8a203ec
460 changed files with 12005 additions and 7020 deletions

View File

@@ -11,56 +11,56 @@ Cette crate définit les contrats communs de la couche dexécution. Elle ne d
| Export | Usage |
|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
| `ExecutionCapability` | Réponse exacte `Supported { operation_code }` ou `Unsupported { reason_code, reason }` pour un couple programme/opération. |
| `ExApiExecutionCapability` | Réponse exacte `Supported { operation_code }` ou `Unsupported { reason_code, reason }` pour un couple programme/opération. |
| `ExecutionCapability::supported(...)` | Construit une capacité supportée avec un code stable. |
| `ExecutionCapability::unsupported(...)` | Construit un refus documenté avec code et message. |
| `ExecutionCapability::is_supported()` | Teste la capacité sans perdre le diagnostic du variant complet. |
| `TypedInstructionExecutor` | Contrat actuel : expose `capability(...)` et `build_prepared_plan(...)` sans I/O, signature ou envoi. |
| `InstructionExecutor` | Pont historique fondé sur `ExecutionRequest`/`ExecutionPlan`; il reste disponible pour les crates réservées. |
| `ExecutionSupport` | Résultat historique `No`, `Maybe` ou `Yes`; les exécuteurs opérationnels doivent éviter `Maybe`. |
| `ExApiTypedInstructionExecutor` | Contrat actuel : expose `capability(...)` et `build_prepared_plan(...)` sans I/O, signature ou envoi. |
| `ExApiInstructionExecutor` | Pont historique fondé sur `ExApiExecutionRequest`/`ExApiExecutionPlan`; il reste disponible pour les crates réservées. |
| `ExApiExecutionSupport` | Résultat historique `No`, `Maybe` ou `Yes`; les exécuteurs opérationnels doivent éviter `Maybe`. |
### Politiques
| Export | Usage |
|---------------------------------|-----------------------------------------------------------------------------------------------------------|
| `ExecutionPolicy` | Agrège cluster, simulation, blockhash/nonce, plafonds, signataires autorisés, dry-run et post-validation. |
| `ExecutionCluster` | Cluster attendu : Localnet, Devnet, Testnet ou Mainnet. |
| `ExecutionClusterPolicy` | Autorisation du cluster et double confirmation Mainnet. |
| `ExecutionSimulationPolicy` | Indique si la simulation est obligatoire. |
| `ExecutionBlockhashKind` | Sélectionne un recent blockhash ou un durable nonce. |
| `ExecutionBlockhashPolicy` | Porte lâge maximal du blockhash ou le compte et lautorité nonce. |
| `ExecutionCostLimit` | Plafonds de dépense, frais totaux et prix par compute unit. |
| `PostExecutionValidationPolicy` | Étapes exigées après confirmation : canonical insert, core extraction, decode replay et matérialisation. |
| Export | Usage |
|--------------------------------------|-----------------------------------------------------------------------------------------------------------|
| `ExApiExecutionPolicy` | Agrège cluster, simulation, blockhash/nonce, plafonds, signataires autorisés, dry-run et post-validation. |
| `ExApiExecutionCluster` | Cluster attendu : Localnet, Devnet, Testnet ou Mainnet. |
| `ExApiExecutionClusterPolicy` | Autorisation du cluster et double confirmation Mainnet. |
| `ExApiExecutionSimulationPolicy` | Indique si la simulation est obligatoire. |
| `ExApiExecutionBlockhashKind` | Sélectionne un recent blockhash ou un durable nonce. |
| `ExApiExecutionBlockhashPolicy` | Porte lâge maximal du blockhash ou le compte et lautorité nonce. |
| `ExApiExecutionCostLimit` | Plafonds de dépense, frais totaux et prix par compute unit. |
| `ExApiPostExecutionValidationPolicy` | Étapes exigées après confirmation : canonical insert, core extraction, decode replay et matérialisation. |
Tous les types de politique implémentent des valeurs par défaut conservatrices : Devnet, simulation obligatoire, recent blockhash borné, dry-run actif et Mainnet désactivé.
### Plan préparé
| Export | Usage |
|-------------------------|-------------------------------------------------------------------------------------|
| `PreparedExecutionPlan` | Contrat immutable transmis de lexécuteur à la sécurité puis à lassembleur Solana. |
| `PlannedInstruction` | Program ID, code dopération, comptes ordonnés et payload exact. |
| `PlannedAccount` | Public key et flags signer/writable dun compte dinstruction. |
| `RequiredSigner` | Public key et rôle stable dun signataire requis. |
| Export | Usage |
|------------------------------|-------------------------------------------------------------------------------------|
| `ExApiPreparedExecutionPlan` | Contrat immutable transmis de lexécuteur à la sécurité puis à lassembleur Solana. |
| `ExApiPlannedInstruction` | Program ID, code dopération, comptes ordonnés et payload exact. |
| `ExApiPlannedAccount` | Public key et flags signer/writable dun compte dinstruction. |
| `ExApiRequiredSigner` | Public key et rôle stable dun signataire requis. |
Un plan contient également lexécuteur/version, lidentifiant dintent, le fee payer, la politique, les lamports dépensés ou verrouillés et le prix Compute Budget demandé.
### Résultats dorchestration
| Export | Usage |
|-------------------------------|-------------------------------------------------------------------------------------------------------------------|
| `ExecutionSimulationResult` | Preuve provider-neutral dune simulation, avec contexte cluster/blockhash, frais, unités, logs et erreur runtime. |
| `ExecutionSendResult` | Signature acceptée par le RPC et slot de soumission éventuel. |
| `ExecutionConfirmationStatus` | État final ou intermédiaire de confirmation. |
| `ExecutionConfirmationResult` | Résultat borné des polls de confirmation. |
| `PostExecutionDiagnostic` | Résumé des étapes canonical/core/decode/materialization après exécution. |
| Export | Usage |
|------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| `ExApiExecutionSimulationResult` | Preuve provider-neutral dune simulation, avec contexte cluster/blockhash, frais, unités, logs et erreur runtime. |
| `ExApiExecutionSendResult` | Signature acceptée par le RPC et slot de soumission éventuel. |
| `ExApiExecutionConfirmationStatus` | État final ou intermédiaire de confirmation. |
| `ExApiExecutionConfirmationResult` | Résultat borné des polls de confirmation. |
| `ExApiPostExecutionDiagnostic` | Résumé des étapes canonical/core/decode/materialization après exécution. |
### Compatibilité et helpers JSON
| Export | Usage |
|--------------------------------------|------------------------------------------------------------------------|
| `ExecutionRequest` | Requête historique `program_id + operation_code + payload_json`. |
| `ExecutionPlan` | Plan historique sérialisé, sans garantie dêtre directement envoyable. |
| `ExApiExecutionRequest` | Requête historique `program_id + operation_code + payload_json`. |
| `ExApiExecutionPlan` | Plan historique sérialisé, sans garantie dêtre directement envoyable. |
| `serialize_payload_json(...)` | Sérialise un `serde_json::Value` compact avec `kb_core::Error`. |
| `serialize_payload_json_pretty(...)` | Sérialise le même payload en forme lisible. |