revive_solc_json_interface/standard_json/output/contract/evm/
mod.rs1pub mod bytecode;
4
5use std::collections::BTreeMap;
6
7use serde::Deserialize;
8use serde::Serialize;
9
10use self::bytecode::Bytecode;
11use self::bytecode::DeployedBytecode;
12
13#[derive(Debug, Serialize, Deserialize, Clone)]
16#[serde(rename_all = "camelCase")]
17pub struct EVM {
18 #[serde(rename = "assembly", skip_serializing_if = "Option::is_none")]
20 pub assembly_text: Option<String>,
21 #[serde(skip_serializing_if = "Option::is_none")]
24 pub bytecode: Option<Bytecode>,
25 #[serde(skip_serializing_if = "Option::is_none")]
29 pub deployed_bytecode: Option<DeployedBytecode>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub method_identifiers: Option<BTreeMap<String, String>>,
33}
34
35impl EVM {
36 pub fn modify(&mut self, assembly_text: String, bytecode: String) {
38 self.assembly_text = Some(assembly_text);
39 self.bytecode = Some(Bytecode::new(bytecode.clone()));
40 self.deployed_bytecode = Some(DeployedBytecode::new(bytecode));
41 }
42}