v0.1.0-pre.011
This commit is contained in:
@@ -11,56 +11,56 @@ Cette crate définit les contrats communs de la couche d’exé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 l’autorité 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 l’autorité 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 l’exécuteur à la sécurité puis à l’assembleur Solana. |
|
||||
| `PlannedInstruction` | Program ID, code d’opération, comptes ordonnés et payload exact. |
|
||||
| `PlannedAccount` | Public key et flags signer/writable d’un compte d’instruction. |
|
||||
| `RequiredSigner` | Public key et rôle stable d’un signataire requis. |
|
||||
| Export | Usage |
|
||||
|------------------------------|-------------------------------------------------------------------------------------|
|
||||
| `ExApiPreparedExecutionPlan` | Contrat immutable transmis de l’exécuteur à la sécurité puis à l’assembleur Solana. |
|
||||
| `ExApiPlannedInstruction` | Program ID, code d’opération, comptes ordonnés et payload exact. |
|
||||
| `ExApiPlannedAccount` | Public key et flags signer/writable d’un compte d’instruction. |
|
||||
| `ExApiRequiredSigner` | Public key et rôle stable d’un signataire requis. |
|
||||
|
||||
Un plan contient également l’exécuteur/version, l’identifiant d’intent, le fee payer, la politique, les lamports dépensés ou verrouillés et le prix Compute Budget demandé.
|
||||
|
||||
### Résultats d’orchestration
|
||||
|
||||
| Export | Usage |
|
||||
|-------------------------------|-------------------------------------------------------------------------------------------------------------------|
|
||||
| `ExecutionSimulationResult` | Preuve provider-neutral d’une 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 d’une 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. |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user