Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
3e2a350
chore(nns): add support in release scripts for node-rewards canister
max-dfinity Mar 5, 2025
e62c55b
Add constants
max-dfinity Mar 20, 2025
83a45ab
Add to scripts to do updates
max-dfinity Mar 20, 2025
249b31f
various fixes and additions
max-dfinity Mar 20, 2025
24e6964
add helper for testing
max-dfinity Mar 21, 2025
c42933d
Fix test helpers so they compile
max-dfinity Mar 21, 2025
df8f0d3
Add canisters to protocol canisters list
max-dfinity Mar 21, 2025
2f2783f
Adding latest release, generated by script
max-dfinity Mar 24, 2025
9db3d88
Add to more workflows
max-dfinity Mar 24, 2025
cde809f
Add canister to nightly upgrade test
max-dfinity Mar 24, 2025
a95dcc2
make imports consistent
max-dfinity Mar 24, 2025
cac361c
Fix integration tests
max-dfinity Mar 24, 2025
e845ed2
Fix build
max-dfinity Mar 24, 2025
4707f47
Update function to use better behavior (fewer potential conflicts wit…
max-dfinity Mar 24, 2025
1ce0547
Attempt to fix the tests
max-dfinity Mar 24, 2025
3a1c291
mini formatting fix
max-dfinity Mar 25, 2025
05b7163
fix function
max-dfinity Mar 25, 2025
76ae152
fix tests
max-dfinity Mar 25, 2025
76ee7dd
Fix another test
max-dfinity Mar 25, 2025
6695c25
Fix test
max-dfinity Mar 26, 2025
a4b26b6
Fix assertion to reflect new reality
max-dfinity Mar 26, 2025
476fa91
Fix another test
max-dfinity Mar 26, 2025
63d16c0
Change approach
max-dfinity Mar 26, 2025
a6f4e76
Clippy
max-dfinity Mar 27, 2025
801fe51
Improve test
max-dfinity Mar 27, 2025
7c7771b
clippy
max-dfinity Mar 27, 2025
23fbf13
clippy
max-dfinity Mar 27, 2025
af0153a
Try to fix test
max-dfinity Mar 27, 2025
5c2db81
Attempt fixing test
max-dfinity Mar 27, 2025
b5c266b
fix test
max-dfinity Mar 28, 2025
91ef868
Minor fixes
max-dfinity Mar 28, 2025
62d87b4
Test optimizations
max-dfinity Mar 28, 2025
1655030
Another set of small fixes (reduce the amount of unneeded error loggi…
max-dfinity Mar 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ canisters(
"sns_ledger_v2": "ic-icrc1-ledger.wasm.gz",
"sns_archive": "ic-icrc1-archive.wasm.gz",
"sns_index": "ic-icrc1-index-ng.wasm.gz",
"node-rewards": "node-rewards-canister.wasm.gz",
},
path = "//:mainnet-canister-revisions.json",
reponames = {
Expand Down Expand Up @@ -87,6 +88,7 @@ canisters(
"sns_ledger_v2": "mainnet_ic-icrc1-ledger-v2",
"sns_archive": "mainnet_ic-icrc1-archive",
"sns_index": "mainnet_ic-icrc1-index-ng",
"node-rewards": "mainnet_node-rewards-canister",
},
)

Expand Down
4 changes: 4 additions & 0 deletions mainnet-canister-revisions.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@
"rev": "b5192581ccd35b67fe5a1f795ead9cbcd25956d6",
"sha256": "8c8eb285de53ca5609abd7dc41ba3ec8eeb67708b81469311fd670e6738d7d0a"
},
"node-rewards": {
"rev": "3a3cf55373bfe5843fac9fff6657127ae11b5dd8",
"sha256": "8637e0182ffc1255563e295efee28f2163f9be21bbd27f3e65bfc3c1f470d3ca"
},
"registry": {
"rev": "c5dee3a11b79da7b5c433574f38605d75c9feaf5",
"sha256": "a0f4a36d46816619ef042d8de1a893c105a33c0c493106f5f9d04602ed9afbcf"
Expand Down
4 changes: 4 additions & 0 deletions rs/nervous_system/integration_tests/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ DEV_DATA = [
"//rs/nns/gtc:genesis-token-canister",
"//rs/nns/handlers/root/impl:root-canister",
"//rs/nns/sns-wasm:sns-wasm-canister",
"//rs/node_rewards/canister:node-rewards-canister",
"//rs/pocket_ic_server:pocket-ic-server",
"//rs/registry/canister:registry-canister",
"//rs/rosetta-api/tvl/xrc_mock:xrc_mock_canister",
Expand All @@ -121,6 +122,7 @@ DEV_DATA = [
"@mainnet_nns_registry_canister//file",
"@mainnet_nns_root-canister//file",
"@mainnet_nns_sns-wasm-canister//file",
"@mainnet_node-rewards-canister//file",
"@mainnet_sns-governance-canister//file",
"@mainnet_sns-root-canister//file",
"@mainnet_sns-swap-canister//file",
Expand All @@ -143,6 +145,7 @@ DEV_ENV = {
"MAINNET_IC_ICRC1_ARCHIVE_WASM_PATH": "$(rootpath @mainnet_ic-icrc1-archive//file)",
"MAINNET_IC_ICRC1_INDEX_NG_WASM_PATH": "$(rootpath @mainnet_ic-icrc1-index-ng//file)",
"MAINNET_SNS_WASM_CANISTER_WASM_PATH": "$(rootpath @mainnet_nns_sns-wasm-canister//file)",
"MAINNET_NODE_REWARDS_CANISTER_WASM_PATH": "$(rootpath @mainnet_node-rewards-canister//file)",
"MAINNET_ICP_LEDGER_CANISTER_WASM_PATH": "$(rootpath @mainnet_icp_ledger_canister//file)",
"MAINNET_GOVERNANCE_CANISTER_WASM_PATH": "$(rootpath @mainnet_nns_governance_canister//file)",
"MAINNET_LIFELINE_CANISTER_WASM_PATH": "$(rootpath @mainnet_nns_lifeline_canister//file)",
Expand All @@ -151,6 +154,7 @@ DEV_ENV = {
"NEURON_CSV_PATH": "rs/nns/integration_tests/src/neurons.csv",
"GENESIS_TOKEN_CANISTER_WASM_PATH": "$(rootpath //rs/nns/gtc:genesis-token-canister)",
"SNS_WASM_CANISTER_WASM_PATH": "$(rootpath //rs/nns/sns-wasm:sns-wasm-canister)",
"NODE_REWARDS_CANISTER_WASM_PATH": "$(rootpath //rs/node_rewards/canister:node-rewards-canister)",
"SNS_GOVERNANCE_CANISTER_WASM_PATH": "$(rootpath //rs/sns/governance:sns-governance-canister-test)",
"MAINNET_SNS_GOVERNANCE_CANISTER_WASM_PATH": "$(rootpath @mainnet_sns-governance-canister//file)",
"SNS_ROOT_CANISTER_WASM_PATH": "$(rootpath //rs/sns/root:sns-root-canister)",
Expand Down
4 changes: 1 addition & 3 deletions rs/nervous_system/tools/release-runscript/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ fn run_determine_targets(cmd: DetermineTargets) -> Result<()> {
"Registry",
"Cycles-Minting",
"Genesis-Token",
"Node-Rewards",
];
let sns_candidates = ["Root", "Governance", "Swap", "Ledger", "Archive", "Index"];

Expand Down Expand Up @@ -278,9 +279,6 @@ fn run_create_proposal_texts(cmd: CreateProposalTexts) -> Result<()> {
let mut sns_proposal_text_paths = Vec::new();

{
// Switch to the commit being released while we generate the proposal texts
let _commit_switcher = CommitSwitcher::switch(commit.clone())?;

println!(
"Creating proposal texts for {} NNS canisters and {} SNS canisters at commit {}",
nns_canisters.len(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ use ic_base_types::CanisterId;
use ic_nervous_system_agent::nns::sns_wasm;
use ic_nns_constants::{
CYCLES_MINTING_CANISTER_ID, GENESIS_TOKEN_CANISTER_ID, GOVERNANCE_CANISTER_ID,
LEDGER_CANISTER_ID, LIFELINE_CANISTER_ID, REGISTRY_CANISTER_ID, ROOT_CANISTER_ID,
SNS_WASM_CANISTER_ID,
LEDGER_CANISTER_ID, LIFELINE_CANISTER_ID, NODE_REWARDS_CANISTER_ID, REGISTRY_CANISTER_ID,
ROOT_CANISTER_ID, SNS_WASM_CANISTER_ID,
};
use std::env;
use std::fs::File;
use std::io::BufReader;
use std::path::{Path, PathBuf};

pub const NNS_CANISTER_NAME_TO_ID: [(&str, CanisterId); 8] = [
pub const NNS_CANISTER_NAME_TO_ID: [(&str, CanisterId); 9] = [
("registry", REGISTRY_CANISTER_ID),
("governance", GOVERNANCE_CANISTER_ID),
("ledger", LEDGER_CANISTER_ID),
Expand All @@ -22,6 +22,7 @@ pub const NNS_CANISTER_NAME_TO_ID: [(&str, CanisterId); 8] = [
("genesis-token", GENESIS_TOKEN_CANISTER_ID),
("cycles-minting", CYCLES_MINTING_CANISTER_ID),
("sns-wasm", SNS_WASM_CANISTER_ID),
("node-rewards", NODE_REWARDS_CANISTER_ID),
];

async fn get_mainnet_canister_git_commit_id_and_module_hash(
Expand Down
4 changes: 4 additions & 0 deletions rs/nns/canister_ids.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,9 @@
"nns-ui": {
"local": "qoctq-giaaa-aaaaa-aaaea-cai",
"mainnet": "qoctq-giaaa-aaaaa-aaaea-cai"
},
"node-rewards": {
"local": "sgymv-uiaaa-aaaaa-aaaia-cai",
"mainnet": "sgymv-uiaaa-aaaaa-aaaia-cai"
}
}
21 changes: 19 additions & 2 deletions rs/nns/constants/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ pub const LEDGER_INDEX_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 11;
pub const ICP_LEDGER_ARCHIVE_1_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 12;
pub const SUBNET_RENTAL_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 13;
pub const ICP_LEDGER_ARCHIVE_2_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 14;
pub const ICP_LEDGER_ARCHIVE_3_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 15;
pub const NODE_REWARDS_CANISTER_INDEX_IN_NNS_SUBNET: u64 = 16;
// Exchange Rate, Cycles Ledger (Index) Canisters are deployed to the II subnet.
pub const EXCHANGE_RATE_CANISTER_INDEX: u64 = 0x2100001;
pub const CYCLES_LEDGER_CANISTER_INDEX: u64 = 0x2100002;
Expand Down Expand Up @@ -115,6 +117,12 @@ pub const SUBNET_RENTAL_CANISTER_ID: CanisterId =
/// 14: q4eej-kyaaa-aaaaa-aaaha-cai
pub const ICP_LEDGER_ARCHIVE_2_CANISTER_ID: CanisterId =
CanisterId::from_u64(ICP_LEDGER_ARCHIVE_2_CANISTER_INDEX_IN_NNS_SUBNET);
// 15: q3fc5-haaaa-aaaaa-aaahq-cai
pub const ICP_LEDGER_ARCHIVE_3_CANISTER_ID: CanisterId =
CanisterId::from_u64(ICP_LEDGER_ARCHIVE_3_CANISTER_INDEX_IN_NNS_SUBNET);
// 16: sgymv-uiaaa-aaaaa-aaaia-cai
pub const NODE_REWARDS_CANISTER_ID: CanisterId =
CanisterId::from_u64(NODE_REWARDS_CANISTER_INDEX_IN_NNS_SUBNET);
/// 0x2_100_001 (34_603_009): uf6dk-hyaaa-aaaaq-qaaaq-cai
pub const EXCHANGE_RATE_CANISTER_ID: CanisterId =
CanisterId::from_u64(EXCHANGE_RATE_CANISTER_INDEX);
Expand All @@ -139,7 +147,7 @@ pub const SNS_AGGREGATOR_CANISTER_ID: CanisterId =
///
/// As of May 2024, it looks like this is only used by (a whole bunch of) tests, mostly as the
/// argument to send_whitelist.
pub const ALL_NNS_CANISTER_IDS: [&CanisterId; 10] = [
pub const ALL_NNS_CANISTER_IDS: [&CanisterId; 17] = [
&REGISTRY_CANISTER_ID,
&GOVERNANCE_CANISTER_ID,
&LEDGER_CANISTER_ID,
Expand All @@ -149,7 +157,14 @@ pub const ALL_NNS_CANISTER_IDS: [&CanisterId; 10] = [
&GENESIS_TOKEN_CANISTER_ID,
&IDENTITY_CANISTER_ID,
&NNS_UI_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_CANISTER_ID,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's a bit confusing to me to have zero based indexing but then not call this ICP_LEDGER_ARCHIVE_0_CANISTER_ID. isn't that inconsistent?

&SNS_WASM_CANISTER_ID,
&LEDGER_INDEX_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_1_CANISTER_ID,
&SUBNET_RENTAL_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_2_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_3_CANISTER_ID,
&NODE_REWARDS_CANISTER_ID,
];

// The memory allocation for the ledger, governance and registry canisters
Expand Down Expand Up @@ -190,12 +205,14 @@ pub fn canister_id_to_nns_canister_name(canister_id: CanisterId) -> String {
GOVERNANCE_CANISTER_ID => "governance",
ICP_LEDGER_ARCHIVE_1_CANISTER_ID => "icp-ledger-archive-1",
ICP_LEDGER_ARCHIVE_2_CANISTER_ID => "icp-ledger-archive-2",
ICP_LEDGER_ARCHIVE_3_CANISTER_ID => "icp-ledger-archive-3",
ICP_LEDGER_ARCHIVE_CANISTER_ID => "icp-ledger-archive",
IDENTITY_CANISTER_ID => "identity",
LEDGER_CANISTER_ID => "ledger",
LEDGER_INDEX_CANISTER_ID => "ledger-index",
LIFELINE_CANISTER_ID => "lifeline",
NNS_UI_CANISTER_ID => "nns-ui",
NODE_REWARDS_CANISTER_ID => "node-rewards",
REGISTRY_CANISTER_ID => "registry",
ROOT_CANISTER_ID => "root",
SNS_WASM_CANISTER_ID => "sns-wasm",
Expand All @@ -205,7 +222,7 @@ pub fn canister_id_to_nns_canister_name(canister_id: CanisterId) -> String {
id_to_name.len(),
// Because 0 through 14 accounts for the first 15 canister +
// 1 for exchange rate canister.
16,
18,
"{:#?}",
id_to_name
);
Expand Down
4 changes: 0 additions & 4 deletions rs/nns/governance/src/governance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4561,10 +4561,6 @@ impl Governance {
)
})?;

println!(
"{}INFO: Committing new NetworkEconomics:\n{:#?}",
LOG_PREFIX, new_network_economics,
);
self.heap_data.economics = Some(new_network_economics);
Ok(())
}
Expand Down
9 changes: 6 additions & 3 deletions rs/nns/governance/src/proposals/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ use ic_nns_constants::{
BITCOIN_MAINNET_CANISTER_ID, BITCOIN_TESTNET_CANISTER_ID, CYCLES_LEDGER_CANISTER_ID,
CYCLES_LEDGER_INDEX_CANISTER_ID, CYCLES_MINTING_CANISTER_ID, EXCHANGE_RATE_CANISTER_ID,
GENESIS_TOKEN_CANISTER_ID, GOVERNANCE_CANISTER_ID, ICP_LEDGER_ARCHIVE_1_CANISTER_ID,
ICP_LEDGER_ARCHIVE_2_CANISTER_ID, ICP_LEDGER_ARCHIVE_CANISTER_ID, LEDGER_CANISTER_ID,
LEDGER_INDEX_CANISTER_ID, LIFELINE_CANISTER_ID, REGISTRY_CANISTER_ID, ROOT_CANISTER_ID,
ICP_LEDGER_ARCHIVE_2_CANISTER_ID, ICP_LEDGER_ARCHIVE_3_CANISTER_ID,
ICP_LEDGER_ARCHIVE_CANISTER_ID, LEDGER_CANISTER_ID, LEDGER_INDEX_CANISTER_ID,
LIFELINE_CANISTER_ID, NODE_REWARDS_CANISTER_ID, REGISTRY_CANISTER_ID, ROOT_CANISTER_ID,
SNS_AGGREGATOR_CANISTER_ID, SNS_WASM_CANISTER_ID, SUBNET_RENTAL_CANISTER_ID,
};
use std::collections::HashMap;
Expand All @@ -20,7 +21,7 @@ pub mod install_code;
pub mod stop_or_start_canister;
pub mod update_canister_settings;

const PROTOCOL_CANISTER_IDS: [&CanisterId; 17] = [
const PROTOCOL_CANISTER_IDS: [&CanisterId; 19] = [
&REGISTRY_CANISTER_ID,
&GOVERNANCE_CANISTER_ID,
&LEDGER_CANISTER_ID,
Expand All @@ -33,6 +34,8 @@ const PROTOCOL_CANISTER_IDS: [&CanisterId; 17] = [
&ICP_LEDGER_ARCHIVE_1_CANISTER_ID,
&SUBNET_RENTAL_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_2_CANISTER_ID,
&ICP_LEDGER_ARCHIVE_3_CANISTER_ID,
&NODE_REWARDS_CANISTER_ID,
&EXCHANGE_RATE_CANISTER_ID,
&BITCOIN_MAINNET_CANISTER_ID,
&BITCOIN_TESTNET_CANISTER_ID,
Expand Down
87 changes: 14 additions & 73 deletions rs/nns/governance/tests/governance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ use fixtures::{
use futures::future::FutureExt;
use ic_base_types::{CanisterId, NumBytes, PrincipalId};
use ic_crypto_sha2::Sha256;
use ic_nervous_system_canisters::cmc::CMC;
use ic_nervous_system_canisters::ledger::IcpLedger;
use ic_nervous_system_clients::canister_status::{CanisterStatusResultV2, CanisterStatusType};
use ic_nervous_system_common::{
ledger, ledger::compute_neuron_staking_subaccount_bytes, NervousSystemError, E8,
Expand Down Expand Up @@ -4652,7 +4650,7 @@ fn test_random_voting_rewards_scenarios() {
proposals
}

const SCENARIO_COUNT: u64 = 500;
const SCENARIO_COUNT: u64 = 300;
let mut unique_scenarios = HashSet::new();
for seed in 1..=SCENARIO_COUNT {
unique_scenarios.insert(helper(seed));
Expand Down Expand Up @@ -8893,6 +8891,12 @@ fn test_list_proposals() {
*x,
ProposalData {
id: Some(ProposalId { id: *x }),
proposal: Some(Proposal {
title: Some("Foo".to_string()),
summary: "A great summary, the best".to_string(),
url: "".to_string(),
action: None,
}),
..Default::default()
},
)
Expand Down Expand Up @@ -14583,6 +14587,8 @@ async fn distribute_rewards_test() {
(n.id.as_ref().unwrap().id, ballot)
})
.collect(),
decided_timestamp_seconds: now - 100,
executed_timestamp_seconds: now - 99,
..Default::default()
};

Expand Down Expand Up @@ -14698,10 +14704,7 @@ fn test_short_proposal_title_is_invalid() {

#[test]
fn test_long_proposal_title_is_invalid() {
let mut long_title = String::new();
for _ in 0..300 {
long_title.push('Z');
}
let long_title = "Z".repeat(300);

let result = validate_proposal_title(&Some(long_title));
assert!(result.is_err());
Expand Down Expand Up @@ -15196,7 +15199,7 @@ fn randomly_pick_swap_start() {

// Generate "zillions" of outputs, and count their occurrences.
let mut start_time_to_count = BTreeMap::new();
const ITERATION_COUNT: u64 = 50_000;
const ITERATION_COUNT: u64 = 50;
for _ in 0..ITERATION_COUNT {
let GlobalTimeOfDay {
seconds_after_utc_midnight,
Expand All @@ -15207,36 +15210,16 @@ fn randomly_pick_swap_start() {
.or_insert(0) += 1;
}

// Assert that we hit all possible values.
let possible_values_count = ONE_DAY_SECONDS / 60 / 15;
assert_eq!(start_time_to_count.len(), possible_values_count as usize);

// Assert that values are multiples of of 15 minutes.
// Assert that values are multiples of 15 minutes and within a single 24 hour period.
for seconds_after_utc_midnight in start_time_to_count.keys() {
assert_eq!(
seconds_after_utc_midnight % (15 * 60),
0,
"{}",
"A random start time was not at a 15 minute interval from midnight: {}",
seconds_after_utc_midnight
);
}

// Assert that the distribution appears to be uniform.
let min_occurrence_count = (0.8 * (ITERATION_COUNT / possible_values_count) as f64) as u64;
let max_occurrence_count = (1.2 * (ITERATION_COUNT / possible_values_count) as f64) as u64;
for occurrence_count in start_time_to_count.values() {
assert!(
*occurrence_count >= min_occurrence_count,
"{} (vs. minimum = {})",
occurrence_count,
min_occurrence_count
);
assert!(
*occurrence_count <= max_occurrence_count,
"{} (vs. maximum = {})",
occurrence_count,
max_occurrence_count
);
assert!(*seconds_after_utc_midnight < ONE_DAY_SECONDS);
}
}

Expand Down Expand Up @@ -15611,45 +15594,3 @@ fn test_neuron_info_private_enforcement() {
);
}
}

// TODO - remove after migration of neuron_store.topic_follow_index to being stored on upgrade
// is rolled out and becomes non-optional
#[allow(dead_code)]
struct StubIcpLedger {}
#[async_trait]
impl IcpLedger for StubIcpLedger {
async fn transfer_funds(
&self,
_amount_e8s: u64,
_fee_e8s: u64,
_from_subaccount: Option<Subaccount>,
_to: AccountIdentifier,
_memo: u64,
) -> Result<u64, NervousSystemError> {
unimplemented!()
}

async fn total_supply(&self) -> Result<Tokens, NervousSystemError> {
unimplemented!()
}

async fn account_balance(
&self,
_account: AccountIdentifier,
) -> Result<Tokens, NervousSystemError> {
unimplemented!()
}

fn canister_id(&self) -> CanisterId {
unimplemented!()
}
}

#[allow(dead_code)]
struct StubCMC {}
#[async_trait]
impl CMC for StubCMC {
async fn neuron_maturity_modulation(&self) -> Result<i32, String> {
unimplemented!()
}
}
2 changes: 2 additions & 0 deletions rs/nns/integration_tests/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ DEV_DATA = [
"//rs/nns/handlers/lifeline/impl:lifeline_canister",
"//rs/nns/handlers/root/impl:root-canister",
"//rs/nns/sns-wasm:sns-wasm-canister",
"//rs/node_rewards/canister:node-rewards-canister",
"//rs/pocket_ic_server:pocket-ic-server",
"//rs/registry/canister:registry-canister",
"//rs/rosetta-api/tvl/xrc_mock:xrc_mock_canister",
Expand Down Expand Up @@ -184,6 +185,7 @@ DEV_ENV = {
"GENESIS_TOKEN_CANISTER_WASM_PATH": "$(rootpath //rs/nns/gtc:genesis-token-canister)",
"CYCLES_MINTING_CANISTER_WASM_PATH": "$(rootpath //rs/nns/cmc:cycles-minting-canister)",
"MEM_UTILS_TEST_CANISTER_WASM_PATH": "$(rootpath :mem-utils-test-canister)",
"NODE_REWARDS_CANISTER_WASM_PATH": "$(rootpath //rs/node_rewards/canister:node-rewards-canister)",
"POCKET_IC_BIN": "$(rootpath //rs/pocket_ic_server:pocket-ic-server)",
"GOVERNANCE_MEM_TEST_CANISTER_WASM_PATH": "$(rootpath :governance-mem-test-canister)",
"CANISTER_PLAYGROUND_CANISTER_WASM_PATH": "$(rootpath :canister-playground-canister)",
Expand Down
Loading