revive_solc_json_interface/combined_json/
contract.rs1use std::collections::BTreeMap;
4
5use serde::Deserialize;
6use serde::Serialize;
7
8#[derive(Debug, Default, Serialize, Deserialize)]
10#[serde(rename_all = "kebab-case")]
11pub struct Contract {
12 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
14 pub hashes: BTreeMap<String, String>,
15 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
17 pub abi: serde_json::Value,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub metadata: Option<String>,
21 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
23 pub devdoc: serde_json::Value,
24 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
26 pub userdoc: serde_json::Value,
27 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
29 pub storage_layout: serde_json::Value,
30 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
32 pub ast: serde_json::Value,
33 #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
35 pub asm: serde_json::Value,
36
37 #[cfg(feature = "resolc")]
39 #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
40 pub assembly: Option<String>,
41 #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
43 pub bin: Option<String>,
44 #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
46 pub bin_runtime: Option<String>,
47
48 #[cfg(feature = "resolc")]
50 #[serde(default, skip_deserializing)]
51 pub factory_deps_unlinked: std::collections::BTreeSet<String>,
52 #[cfg(feature = "resolc")]
54 #[serde(default, skip_deserializing)]
55 pub factory_deps: BTreeMap<String, String>,
56 #[cfg(feature = "resolc")]
58 #[serde(default, skip_deserializing)]
59 pub missing_libraries: std::collections::BTreeSet<String>,
60 #[cfg(feature = "resolc")]
62 #[serde(default, skip_deserializing)]
63 pub object_format: Option<revive_common::ObjectFormat>,
64}