revive_solc_json_interface/combined_json/
contract.rs

1//! The `solc --combined-json` contract.
2
3use std::collections::BTreeMap;
4
5use serde::Deserialize;
6use serde::Serialize;
7
8/// The contract.
9#[derive(Debug, Default, Serialize, Deserialize)]
10#[serde(rename_all = "kebab-case")]
11pub struct Contract {
12    /// The `solc` hashes output.
13    #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
14    pub hashes: BTreeMap<String, String>,
15    /// The `solc` ABI output.
16    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
17    pub abi: serde_json::Value,
18    /// The `solc` metadata output.
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub metadata: Option<String>,
21    /// The `solc` developer documentation output.
22    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
23    pub devdoc: serde_json::Value,
24    /// The `solc` user documentation output.
25    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
26    pub userdoc: serde_json::Value,
27    /// The `solc` storage layout output.
28    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
29    pub storage_layout: serde_json::Value,
30    /// The `solc` AST output.
31    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
32    pub ast: serde_json::Value,
33    /// The `solc` assembly output.
34    #[serde(default, skip_serializing_if = "serde_json::Value::is_null")]
35    pub asm: serde_json::Value,
36
37    /// LLVM-generated assembly.
38    #[cfg(feature = "resolc")]
39    #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
40    pub assembly: Option<String>,
41    /// The `solc` hexadecimal binary output.
42    #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
43    pub bin: Option<String>,
44    /// The `solc` hexadecimal binary runtime part output.
45    #[serde(default, skip_serializing_if = "Option::is_none", skip_deserializing)]
46    pub bin_runtime: Option<String>,
47
48    /// The unlinked factory dependencies.
49    #[cfg(feature = "resolc")]
50    #[serde(default, skip_deserializing)]
51    pub factory_deps_unlinked: std::collections::BTreeSet<String>,
52    /// The factory dependencies.
53    #[cfg(feature = "resolc")]
54    #[serde(default, skip_deserializing)]
55    pub factory_deps: BTreeMap<String, String>,
56    /// The missing libraries.
57    #[cfg(feature = "resolc")]
58    #[serde(default, skip_deserializing)]
59    pub missing_libraries: std::collections::BTreeSet<String>,
60    /// The binary object format.
61    #[cfg(feature = "resolc")]
62    #[serde(default, skip_deserializing)]
63    pub object_format: Option<revive_common::ObjectFormat>,
64}