# Evaluator

`evaluator` implements the following interface:

```rust
#[async_trait]
pub trait Evaluator: Send {
    async fn evaluate_tx(
        &self,
        tx_hex: &str,
        inputs: &[UTxO],
        additional_txs: &[String],
        network: &Network,
        slot_config: &SlotConfig,
    ) -> Result<Vec<Action>, WError>;
}
```

## Endpoints

### evaluate\_tx

* `tx_hex` - The transaction hex for evaluation.
* `inputs` - The extra input information provided for consideration (useful for offline evaluator or transaction chaining)
* `additional_txs` - The extra transaction (in hex) for parsing input information provided for consideration (useful for offline evaluator or transaction chaining)
* `network` - Cardano blockchain network
* `slot_config` - Useful for offline evaluation
