multiversx_sc_meta_lib/
abi_json.rs1mod build_info_abi_json;
2mod contract_abi_json;
3mod endpoint_abi_json;
4mod esdt_attribute_abi_json;
5mod esdt_attribute_json;
6mod event_abi_json;
7mod type_abi_json;
8
9pub use build_info_abi_json::{BuildInfoAbiJson, RustcAbiJson};
10pub use contract_abi_json::*;
11pub use endpoint_abi_json::*;
12pub use esdt_attribute_abi_json::EsdtAttributeAbiJson;
13pub use esdt_attribute_json::EsdtAttributeJson;
14pub use event_abi_json::*;
15use multiversx_sc::{abi::ContractAbi, contract_base::ContractAbiProvider};
16pub use type_abi_json::*;
17
18pub fn contract_abi<AbiObj: ContractAbiProvider>() -> String {
21 let abi = <AbiObj as ContractAbiProvider>::abi();
22 let abi_json = ContractAbiJson::from(&abi);
23 serialize_abi_to_json(&abi_json)
24}
25
26pub fn print_abi<AbiTrait: ContractAbiProvider>() {
29 println!("{}", contract_abi::<AbiTrait>());
30}
31
32pub fn abi_to_json_dummy_environment(contract_abi: &ContractAbi) -> String {
36 let mut abi_json = ContractAbiJson::from(contract_abi);
37 if let Some(build_info) = &mut abi_json.build_info {
38 build_info.contract_crate.git_version = "<git version here>".to_string();
39 build_info.rustc = RustcAbiJson {
40 version: "x.x.x-nightly".to_string(),
41 commit_hash: "<commit hash here>".to_string(),
42 commit_date: "<commit date here>".to_string(),
43 channel: "Channel".to_string(),
44 short: "rustc <version> (<short hash> <date>)".to_string(),
45 };
46 }
47 serialize_abi_to_json(&abi_json)
48}