diff --git a/src/dfx/src/commands/nns/import.rs b/src/dfx/src/commands/nns/import.rs index 6cb203cc09..98cecb387e 100644 --- a/src/dfx/src/commands/nns/import.rs +++ b/src/dfx/src/commands/nns/import.rs @@ -26,7 +26,7 @@ pub async fn exec(env: &dyn Environment, opts: ImportOpts) -> DfxResult { let mut config = config.as_ref().clone(); let network_mappings = get_network_mappings(&opts.network_mapping)?; - let ic_commit = replica_rev(); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); let dfx_url_str = { let ic_project = std::env::var("DFX_IC_SRC").unwrap_or_else(|_| { diff --git a/src/dfx/src/commands/sns/import.rs b/src/dfx/src/commands/sns/import.rs index cc50c761fd..3dd2ac3fa3 100644 --- a/src/dfx/src/commands/sns/import.rs +++ b/src/dfx/src/commands/sns/import.rs @@ -1,5 +1,6 @@ //! Code for the command line `dfx sns import` use crate::lib::error::DfxResult; +use crate::lib::info::replica_rev; use crate::lib::project::import::import_canister_definitions; use crate::lib::project::network_mappings::get_network_mappings; use crate::Environment; @@ -28,10 +29,13 @@ pub fn exec(env: &dyn Environment, opts: SnsImportOpts) -> DfxResult { let network_mappings = get_network_mappings(&opts.network_mapping)?; let runtime = Runtime::new().expect("Unable to create a runtime"); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); + let their_dfx_json_location = + format!("https://raw.githubusercontent.com/dfinity/ic/{ic_commit}/rs/sns/cli/dfx.json"); runtime.block_on(import_canister_definitions( env.get_logger(), &mut config, - "https://raw.githubusercontent.com/dfinity/ic/master/rs/sns/cli/dfx.json", + &their_dfx_json_location, None, None, &network_mappings, diff --git a/src/dfx/src/lib/nns/install_nns.rs b/src/dfx/src/lib/nns/install_nns.rs index 59b0f3cdd2..5e05bf5189 100644 --- a/src/dfx/src/lib/nns/install_nns.rs +++ b/src/dfx/src/lib/nns/install_nns.rs @@ -418,7 +418,7 @@ pub async fn download_ic_repo_wasm( /// Downloads all the core NNS wasms, excluding only the front-end wasms II and NNS-dapp. #[context("Failed to download NNS wasm files.")] pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { - let ic_commit = replica_rev(); + let ic_commit = std::env::var("DFX_IC_COMMIT").unwrap_or_else(|_| replica_rev().to_string()); let wasm_dir = &nns_wasm_dir(env); for IcNnsInitCanister { wasm_name, @@ -426,16 +426,16 @@ pub async fn download_nns_wasms(env: &dyn Environment) -> anyhow::Result<()> { .. } in NNS_CORE { - download_ic_repo_wasm(wasm_name, ic_commit, wasm_dir).await?; + download_ic_repo_wasm(wasm_name, &ic_commit, wasm_dir).await?; if let Some(test_wasm_name) = test_wasm_name { - download_ic_repo_wasm(test_wasm_name, ic_commit, wasm_dir).await?; + download_ic_repo_wasm(test_wasm_name, &ic_commit, wasm_dir).await?; } } try_join_all( SNS_CANISTERS .iter() .map(|SnsCanisterInstallation { wasm_name, .. }| { - download_ic_repo_wasm(wasm_name, ic_commit, wasm_dir) + download_ic_repo_wasm(wasm_name, &ic_commit, wasm_dir) }), ) .await?;