fix(solc): improve contract metadata bindings (#1326)
This commit is contained in:
parent
6b6c511583
commit
ac0560c252
|
@ -289,7 +289,7 @@ pub struct Settings {
|
||||||
/// If remappings are used, this source file should match the global path
|
/// If remappings are used, this source file should match the global path
|
||||||
/// after remappings were applied.
|
/// after remappings were applied.
|
||||||
/// If this key is an empty string, that refers to a global level.
|
/// If this key is an empty string, that refers to a global level.
|
||||||
#[serde(default, skip_serializing_if = "Libraries::is_empty")]
|
#[serde(default)]
|
||||||
pub libraries: Libraries,
|
pub libraries: Libraries,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -859,12 +859,18 @@ pub struct Metadata {
|
||||||
/// Compiler settings
|
/// Compiler settings
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct MetadataSettings {
|
pub struct MetadataSettings {
|
||||||
|
#[serde(default)]
|
||||||
|
pub remappings: Vec<Remapping>,
|
||||||
|
pub optimizer: Optimizer,
|
||||||
|
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||||
|
pub metadata: Option<SettingsMetadata>,
|
||||||
/// Required for Solidity: File and name of the contract or library this metadata is created
|
/// Required for Solidity: File and name of the contract or library this metadata is created
|
||||||
/// for.
|
/// for.
|
||||||
#[serde(default, rename = "compilationTarget")]
|
#[serde(default, rename = "compilationTarget")]
|
||||||
pub compilation_target: BTreeMap<String, String>,
|
pub compilation_target: BTreeMap<String, String>,
|
||||||
#[serde(flatten)]
|
/// Metadata settings
|
||||||
pub inner: Settings,
|
#[serde(default)]
|
||||||
|
pub libraries: Libraries,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Compilation source files/source units, keys are file names
|
/// Compilation source files/source units, keys are file names
|
||||||
|
@ -1010,9 +1016,9 @@ pub struct Output {
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct SolcAbi {
|
pub struct SolcAbi {
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
#[serde(default)]
|
||||||
pub inputs: Vec<Item>,
|
pub inputs: Vec<Item>,
|
||||||
#[serde(rename = "stateMutability")]
|
#[serde(rename = "stateMutability", skip_serializing_if = "Option::is_none")]
|
||||||
pub state_mutability: Option<String>,
|
pub state_mutability: Option<String>,
|
||||||
#[serde(rename = "type")]
|
#[serde(rename = "type")]
|
||||||
pub abi_type: String,
|
pub abi_type: String,
|
||||||
|
@ -1020,6 +1026,9 @@ pub struct SolcAbi {
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub outputs: Vec<Item>,
|
pub outputs: Vec<Item>,
|
||||||
|
// required to satisfy solidity events
|
||||||
|
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||||
|
pub anonymous: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
|
@ -1029,6 +1038,11 @@ pub struct Item {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
#[serde(rename = "type")]
|
#[serde(rename = "type")]
|
||||||
pub put_type: String,
|
pub put_type: String,
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
|
pub components: Vec<Item>,
|
||||||
|
/// Indexed flag. for solidity events
|
||||||
|
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||||
|
pub indexed: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
|
|
Loading…
Reference in New Issue