multiversx_sc_meta_lib/contract/sc_config/
proxy_config.rs

1use std::path::{Path, PathBuf};
2
3use multiversx_sc::abi::ContractAbi;
4
5use super::sc_config_proxy::PathRename;
6
7#[derive(Debug)]
8pub struct ProxyConfig {
9    pub path: PathBuf,
10    pub override_import: String,
11    pub path_rename: Vec<PathRename>,
12    pub abi: ContractAbi,
13}
14
15impl ProxyConfig {
16    pub fn new(
17        path: PathBuf,
18        override_imports: Option<String>,
19        path_rename: Option<Vec<PathRename>>,
20        abi: ContractAbi,
21    ) -> Self {
22        ProxyConfig {
23            path,
24            override_import: override_imports.unwrap_or_default(),
25            path_rename: path_rename.unwrap_or_default(),
26            abi,
27        }
28    }
29
30    pub fn output_dir_proxy_config(abi: ContractAbi) -> Self {
31        let proxy_output = abi.get_crate_name_for_code() + "_proxy.rs";
32        ProxyConfig {
33            path: Path::new("output").join(proxy_output),
34            override_import: String::new(),
35            path_rename: Vec::new(),
36            abi,
37        }
38    }
39}