neo3/neo_protocol/responses/
diagnostics.rs1use serde::{Deserialize, Serialize};
2
3use neo3::prelude::{deserialize_script_hash, serialize_script_hash, ScriptHash};
4
5#[derive(Serialize, Deserialize, Hash)]
6pub struct Diagnostics {
7 #[serde(rename = "invokedcontracts")]
8 pub invoked_contracts: InvokedContract,
9 #[serde(rename = "storagechanges")]
10 pub storage_changes: Vec<StorageChange>,
11}
12
13impl Diagnostics {
14 pub fn new(invoked_contracts: InvokedContract, storage_changes: Vec<StorageChange>) -> Self {
15 Self { invoked_contracts, storage_changes }
16 }
17}
18
19#[derive(Serialize, Deserialize, Hash, Clone)]
20pub struct InvokedContract {
21 #[serde(deserialize_with = "deserialize_script_hash")]
22 #[serde(serialize_with = "serialize_script_hash")]
23 pub hash: ScriptHash,
24 pub invoked_contracts: Option<Vec<InvokedContract>>,
25}
26
27#[derive(Serialize, Deserialize, Hash, Clone)]
28pub struct StorageChange {
29 pub state: String,
30 pub key: String,
31 pub value: String,
32}