arcium-macros 0.10.4

Helper macros for developing Solana programs that integrate with the Arcium network.
Documentation
<div align="center">
  <img src="https://raw.githubusercontent.com/arcium-hq/.github/refs/heads/main/profile/arcium.svg" alt="Arcium" width="200"/>

<h1>arcium-macros</h1>

<p>Procedural macros for Arcium-enabled Anchor programs.</p>

[![Crates.io](https://img.shields.io/crates/v/arcium-macros.svg)](https://crates.io/crates/arcium-macros)
[![Docs.rs](https://docs.rs/arcium-macros/badge.svg)](https://docs.rs/arcium-macros)

**[Developer Docs](https://docs.arcium.com/developers/program)**

</div>

## When To Use

- Generating validated account structs for queue and callback instructions
- Wiring callback handlers to Arcium computation results
- Initializing computation definitions from Anchor programs

Use this crate together with [`arcium-anchor`](https://crates.io/crates/arcium-anchor), which provides the runtime helpers and types.

## Installation

```toml
[dependencies]
anchor-lang = "1.0.2"
arcium-anchor = "0.10.4"
arcium-macros = "0.10.4"
```

## Macro Reference

| Macro | Description |
|-------|-------------|
| `#[arcium_program]` | Wraps the Anchor program module and adds Arcium-specific plumbing. |
| `#[queue_computation_accounts]` | Validates queue accounts and implements `QueueCompAccs`. |
| `#[callback_accounts]` | Validates callback accounts. |
| `#[arcium_callback]` | Validates callback naming and typed output signatures. |
| `#[init_computation_definition_accounts]` | Validates accounts used to initialize computation definitions. |
| `#[check_args]` | Validates instruction arguments against the circuit interface. |

## Quick Start

```rust
use arcium_macros::{
    arcium_callback,
    arcium_program,
    callback_accounts,
    init_computation_definition_accounts,
    queue_computation_accounts,
};
```

## Notes

- Most users should import these macros through normal application code, not from standalone macro examples.
- The macro crate does not replace [`arcium-anchor`]https://crates.io/crates/arcium-anchor; it complements it.

## See Also

- [`arcium-anchor`]https://crates.io/crates/arcium-anchor
- [`arcium-client`]https://crates.io/crates/arcium-client
- [Developer Docs]https://docs.arcium.com/developers/program