neo3/neo_protocol/responses/
diagnostics.rs

1use 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}