> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Helius Solana Rust SDK

> SDK officiel Helius Rust pour le développement Solana. Ajoutez le crate helius, parsez les transactions avec l'Enhanced Transactions API, et gérez les erreurs courantes.

Le Helius Rust SDK ([`helius`](https://github.com/helius-labs/helius-rust-sdk)) facilite le développement sur Solana depuis Rust. Cette page couvre l'installation et l'utilisation du SDK, la gestion des erreurs courantes, et où trouver la dernière documentation.

<CardGroup cols={1}>
  <Card title="Dépôt GitHub" icon="rust" href="https://github.com/helius-labs/helius-rust-sdk">
    SDK officiel Helius Rust pour le développement Solana
  </Card>
</CardGroup>

## Installation

<Steps>
  <Step title="Ajouter la dépendance à Cargo.toml">
    Pour commencer à utiliser le Helius Rust SDK dans votre projet, ajoutez-le en tant que dépendance via [`cargo`](https://doc.rust-lang.org/cargo/). Ouvrez votre project `Cargo.toml` et ajoutez la ligne suivante sous `[dependencies]` :

    ```toml theme={"system"}
    helius = "x.y.z"
    ```

    où `x.y.z` est la version souhaitée.
  </Step>

  <Step title="Alternative : Utiliser la commande cargo add">
    Alternativement, utilisez `cargo add helius` pour ajouter directement la dépendance via la ligne de commande. Cela trouvera automatiquement la dernière version compatible avec votre projet et l'ajoutera à votre `Cargo.toml`.
  </Step>

  <Step title="Maintenez votre SDK à jour">
    N'oubliez pas de lancer `cargo update` régulièrement pour récupérer la dernière version du SDK.
  </Step>
</Steps>

## Démarrage rapide

Ci-dessous un exemple simple d'utilisation de l'[Enhanced Transactions API](/docs/fr/enhanced-transactions/overview) pour [parser une transaction donnée](/docs/fr/api-reference/enhanced-transactions/gettransactions) :

```rust theme={"system"}
use helius::error::Result;
use helius::types::*;
use helius::Helius;

#[tokio::main]
async fn main() -> Result<()> {
    let api_key: &str = "your_api_key";
    let cluster: Cluster = Cluster::MainnetBeta;

    let helius: Helius = Helius::new(api_key, cluster).unwrap();

    let request: ParseTransactionsRequest = ParseTransactionsRequest {
        transactions: vec![
            "2sShYqqcWAcJiGc3oK74iFsYKgLCNiY2DsivMbaJGQT8pRzR8z5iBcdmTMXRobH8cZNZgeV9Ur9VjvLsykfFE2Li".to_string(),
        ],
    };

    let response: Result<Vec<EnhancedTransaction>, HeliusError> = helius.parse_transactions(request).await;
    println!("Assets: {:?}", response);

    Ok(())
}
```

## Documentation

<CardGroup cols={3}>
  <Card title="Docs Rust" icon="book" href="https://docs.rs/helius/latest/helius/">
    Dernières docs sur docs.rs
  </Card>

  <Card title="Référence API" icon="code" href="/docs/fr/api-reference">
    Documentation de l'API Helius
  </Card>

  <Card title="Exemples" icon="code-branch" href="https://github.com/helius-labs/helius-rust-sdk/tree/dev/examples">
    Exemples de code dans le dépôt GitHub
  </Card>
</CardGroup>

## Gestion des erreurs

Un message d'erreur sera généré lorsque l'API renvoie un non-succès (c'est-à-dire, code de statut 4xx ou 5xx).

Par exemple, ci-dessous un 401 généré pour un appel getAsset incorrect :

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32001,
    "message": "Authentication failed. Missing or invalid API key."
  },
  "id": "1"
}
```

### Codes d'erreur courants

Lors de l'utilisation du SDK Helius, vous pouvez rencontrer plusieurs codes d'erreur. Ci-dessous un tableau détaillant certains des codes d'erreur courants avec des informations supplémentaires pour vous aider à résoudre les problèmes :

<AccordionGroup>
  <Accordion title="400 : Bad Request">
    Cela se produit lorsqu'une requête a des paramètres invalides.
  </Accordion>

  <Accordion title="401 : Unauthorized">
    Cela se produit lorsqu'une clé API invalide est fournie ou lorsque l'accès est restreint en raison des règles RPC.
  </Accordion>

  <Accordion title="429 : Too Many Requests">
    Cela indique que l'utilisateur a dépassé la limite de requêtes dans un temps donné ou est à court de crédits.
  </Accordion>

  <Accordion title="5XX : Internal Server Error">
    Il s'agit d'un message d'erreur générique pour des problèmes côté serveur. Veuillez contacter le support Helius pour assistance.
  </Accordion>
</AccordionGroup>

Si vous rencontrez l'une de ces erreurs :

<Steps>
  <Step title="Vérifiez la documentation des erreurs">
    Référez-vous à [`errors.rs`](https://github.com/helius-labs/helius-rust-sdk/blob/dev/src/error.rs) pour une liste de toutes les erreurs possibles retournées par le client `Helius`
  </Step>

  <Step title="Consultez la documentation">
    Référez-vous à la [documentation Helius](/docs/) pour des conseils supplémentaires
  </Step>

  <Step title="Contactez le support">
    Contactez l'équipe de support Helius pour une assistance plus détaillée
  </Step>
</Steps>

## Contribuer

Nous accueillons toutes les contributions à nos SDK ! Lisez le [guide des contributions](https://github.com/helius-labs/helius-rust-sdk/blob/dev/CONTRIBUTIONS.md) avant d'ouvrir une pull request.
