Skip to content

Commit 2cb83a3

Browse files
committed
fix: resolve defining environment variables in contract address fields in the yaml
1 parent c281cf6 commit 2cb83a3

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

core/src/manifest/yaml.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@ use std::{
88

99
use ethers::types::ValueOrArray;
1010
use regex::{Captures, Regex};
11+
use serde::{Deserialize, Serialize};
1112
use tracing::error;
1213

1314
use crate::{
1415
abi::ABIItem,
1516
helpers::replace_env_variable_to_raw_name,
16-
manifest::core::{Manifest, ProjectType},
17+
manifest::{
18+
core::{Manifest, ProjectType},
19+
network::Network,
20+
},
1721
StringOrArray,
1822
};
1923

@@ -266,23 +270,31 @@ pub fn read_manifest_raw(file_path: &PathBuf) -> Result<Manifest, ReadManifestEr
266270
}
267271
}
268272

273+
#[derive(Debug, Serialize, Deserialize, Clone)]
274+
struct ManifestNetworksOnly {
275+
pub networks: Vec<Network>,
276+
}
277+
269278
pub fn read_manifest(file_path: &PathBuf) -> Result<Manifest, ReadManifestError> {
270279
let mut file = File::open(file_path)?;
271280
let mut contents = String::new();
272281

273282
file.read_to_string(&mut contents)?;
274283

275-
let manifest_before_transform: Manifest = serde_yaml::from_str(&contents)?;
284+
let contents_before_transform = contents.clone();
276285

277286
contents = substitute_env_variables(&contents)?;
278287

279288
let mut manifest_after_transform: Manifest = serde_yaml::from_str(&contents)?;
289+
println!("Manifest after transform contents: {:?}", manifest_after_transform);
280290

281291
// as we don't want to inject the RPC URL in rust projects in clear text we should change
282292
// the networks.rpc back to what it was before and the generated code will handle it
283293
if manifest_after_transform.project_type == ProjectType::Rust {
294+
let manifest_networks_only: ManifestNetworksOnly =
295+
serde_yaml::from_str(&contents_before_transform)?;
284296
for network in &mut manifest_after_transform.networks {
285-
network.rpc = manifest_before_transform
297+
network.rpc = manifest_networks_only
286298
.networks
287299
.iter()
288300
.find(|n| n.name == network.name)

documentation/docs/pages/docs/changelog.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
### Bug fixes
1616
-------------------------------------------------
1717
- fix: dependency events not being applied to the correct contract
18+
- fix: resolve defining environment variables in contract address fields in the yaml
1819

1920
### Breaking changes
2021
-------------------------------------------------

0 commit comments

Comments
 (0)