waves_rust/model/
evaluate_script.rs

1use crate::error::Error;
2use serde_json::{Map, Value};
3
4use crate::model::Address;
5use crate::util::JsonDeserializer;
6
7#[derive(Eq, PartialEq, Clone, Debug)]
8pub struct EvaluateScriptResponse {
9    pub result: Map<String, Value>,
10    pub complexity: u64,
11    pub expr: String,
12    pub address: Address,
13}
14
15impl TryFrom<&Value> for EvaluateScriptResponse {
16    type Error = Error;
17
18    fn try_from(value: &Value) -> Result<Self, Self::Error> {
19        Ok(EvaluateScriptResponse {
20            result: JsonDeserializer::safe_to_map_from_field(value, "result")?,
21            complexity: JsonDeserializer::safe_to_int_from_field(value, "complexity")? as u64,
22            expr: JsonDeserializer::safe_to_string_from_field(value, "expr")?,
23            address: Address::from_string(
24                JsonDeserializer::safe_to_string_from_field(value, "address")?.as_str(),
25            )?,
26        })
27    }
28}