From 6c4dfa76000c3f050fc294b6397a60c4d602e0fd Mon Sep 17 00:00:00 2001 From: gix-bot Date: Mon, 14 Jul 2025 03:55:01 +0000 Subject: [PATCH] Update proposals --- config.json | 2 +- .../nns_governance/nns_governance.did | 26 ++++++++++++- .../nns_registry/nns_registry.did | 39 +++++++++++++------ .../used_by_proposals/sns_wasm/sns_wasm.did | 2 +- .../src/canisters/nns_governance/api.rs | 11 +++++- .../src/canisters/nns_registry/api.rs | 15 ++++++- rs/proposals/src/canisters/sns_wasm/api.rs | 2 +- 7 files changed, 79 insertions(+), 18 deletions(-) diff --git a/config.json b/config.json index 55896db0464..0bd009c8425 100644 --- a/config.json +++ b/config.json @@ -118,7 +118,7 @@ "POCKETIC_VERSION": "3.0.1", "CARGO_SORT_VERSION": "1.0.9", "SNSDEMO_RELEASE": "release-2025-06-25", - "IC_COMMIT_FOR_PROPOSALS": "release-2025-06-26_03-25-base", + "IC_COMMIT_FOR_PROPOSALS": "release-2025-07-11_03-31-base", "IC_COMMIT_FOR_SNS_AGGREGATOR": "fccfa2c7c7cba9e5485ad0b48823990e24a67f40" }, "packtool": "" diff --git a/declarations/used_by_proposals/nns_governance/nns_governance.did b/declarations/used_by_proposals/nns_governance/nns_governance.did index 5c4370754cb..5cc53a2f36c 100644 --- a/declarations/used_by_proposals/nns_governance/nns_governance.did +++ b/declarations/used_by_proposals/nns_governance/nns_governance.did @@ -1,4 +1,4 @@ -//! Candid for canister `nns_governance` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `nns_governance` obtained by `scripts/update_ic_commit` from: type AccountIdentifier = record { hash : blob; }; @@ -20,6 +20,7 @@ type Action = variant { ApproveGenesisKyc : Principals; AddOrRemoveNodeProvider : AddOrRemoveNodeProvider; Motion : Motion; + FulfillSubnetRentalRequest : FulfillSubnetRentalRequest; }; type AddHotKey = record { @@ -376,6 +377,7 @@ type GovernanceCachedMetrics = record { not_dissolving_neurons_e8s_buckets_seed : vec record { nat64; float64 }; timestamp_seconds : nat64; seed_neuron_count : nat64; + spawning_neurons_count : nat64; non_self_authenticating_controller_neuron_subset_metrics : opt NeuronSubsetMetrics; public_neuron_subset_metrics : opt NeuronSubsetMetrics; @@ -995,6 +997,28 @@ type ProposalActionRequest = variant { ApproveGenesisKyc : Principals; AddOrRemoveNodeProvider : AddOrRemoveNodeProvider; Motion : Motion; + FulfillSubnetRentalRequest : FulfillSubnetRentalRequest; +}; + +// Creates a rented subnet from a rental request (in the Subnet Rental +// canister). +type FulfillSubnetRentalRequest = record { + // Identifies which rental request to fulfill. + // + // (Identifying the rental request by user works, because a user can have at + // most one rental request in the Subnet Rental canister). + user : opt principal; + + // Which nodes will be members of the subnet. + node_ids : opt vec principal; + + // What software the nodes will run. + // + // This must be approved by a prior proposal to bless an IC OS version. + // + // This is a full git commit ID in the ic repo. (Therefore, it must be a 40 + // character hexidecimal string.) + replica_version_id : opt text; }; type ProposalData = record { diff --git a/declarations/used_by_proposals/nns_registry/nns_registry.did b/declarations/used_by_proposals/nns_registry/nns_registry.did index 2fa36189fb1..7ad97eb076b 100644 --- a/declarations/used_by_proposals/nns_registry/nns_registry.did +++ b/declarations/used_by_proposals/nns_registry/nns_registry.did @@ -1,4 +1,4 @@ -//! Candid for canister `nns_registry` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `nns_registry` obtained by `scripts/update_ic_commit` from: // A brief note about the history of this file: This file used to be // automatically generated, but now, it is hand-crafted, because the // auto-generator has some some pretty degenerate behaviors. The worst of those @@ -73,31 +73,48 @@ type CompleteCanisterMigrationPayload = record { type CreateSubnetPayload = record { unit_delay_millis : nat64; features : SubnetFeatures; - gossip_registry_poll_period_ms : nat32; max_ingress_bytes_per_message : nat64; dkg_dealings_per_block : nat64; max_block_payload_size : nat64; start_as_nns : bool; is_halted : bool; - gossip_pfn_evaluation_period_ms : nat32; max_ingress_messages_per_block : nat64; max_number_of_canisters : nat64; chain_key_config : opt InitialChainKeyConfig; - gossip_max_artifact_streams_per_peer : nat32; replica_version_id : text; - gossip_max_duplicity : nat32; - gossip_max_chunk_wait_ms : nat32; dkg_interval_length : nat64; subnet_id_override : opt principal; ssh_backup_access : vec text; - ingress_bytes_per_block_soft_cap : nat64; initial_notary_delay_millis : nat64; - gossip_max_chunk_size : nat32; subnet_type : SubnetType; ssh_readonly_access : vec text; - gossip_retransmission_request_ms : nat32; - gossip_receive_check_cache_size : nat32; node_ids : vec principal; + + canister_cycles_cost_schedule: opt CanisterCyclesCostSchedule; + + // TODO(NNS1-2444): The fields below are deprecated and they are not read anywhere. + ingress_bytes_per_block_soft_cap : nat64; + gossip_max_artifact_streams_per_peer : nat32; + gossip_max_chunk_size : nat32; + gossip_max_chunk_wait_ms : nat32; + gossip_max_duplicity : nat32; + gossip_pfn_evaluation_period_ms : nat32; + gossip_receive_check_cache_size : nat32; + gossip_registry_poll_period_ms : nat32; + gossip_retransmission_request_ms : nat32; +}; + +type CreateSubnetResponse = variant { + Ok : record { + new_subnet_id : opt principal; + }; + + Err: text; +}; + +type CanisterCyclesCostSchedule = variant { + Normal; + Free; }; type DataCenterRecord = record { @@ -472,7 +489,7 @@ service : { change_subnet_membership : (ChangeSubnetMembershipPayload) -> (); clear_provisional_whitelist : () -> (); complete_canister_migration : (CompleteCanisterMigrationPayload) -> (); - create_subnet : (CreateSubnetPayload) -> (); + create_subnet : (CreateSubnetPayload) -> (CreateSubnetResponse); deploy_guestos_to_all_subnet_nodes : ( DeployGuestosToAllSubnetNodesPayload ) -> (); diff --git a/declarations/used_by_proposals/sns_wasm/sns_wasm.did b/declarations/used_by_proposals/sns_wasm/sns_wasm.did index 05b2c1a0ec9..f7fca4173e8 100644 --- a/declarations/used_by_proposals/sns_wasm/sns_wasm.did +++ b/declarations/used_by_proposals/sns_wasm/sns_wasm.did @@ -1,4 +1,4 @@ -//! Candid for canister `sns_wasm` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `sns_wasm` obtained by `scripts/update_ic_commit` from: type AddWasmRequest = record { hash : blob; wasm : opt SnsWasm; diff --git a/rs/proposals/src/canisters/nns_governance/api.rs b/rs/proposals/src/canisters/nns_governance/api.rs index 2b83a1045e3..3b1adee7fce 100644 --- a/rs/proposals/src/canisters/nns_governance/api.rs +++ b/rs/proposals/src/canisters/nns_governance/api.rs @@ -1,5 +1,5 @@ //! Rust code created from candid by: `scripts/did2rs.sh --canister nns_governance --out api.rs --header did2rs.header --traits Serialize` -//! Candid for canister `nns_governance` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `nns_governance` obtained by `scripts/update_ic_commit` from: #![allow(clippy::all)] #![allow(missing_docs)] #![allow(clippy::missing_docs_in_private_items)] @@ -36,6 +36,12 @@ pub struct KnownNeuron { pub known_neuron_data: Option, } #[derive(Serialize, CandidType, Deserialize)] +pub struct FulfillSubnetRentalRequest { + pub user: Option, + pub replica_version_id: Option, + pub node_ids: Option>, +} +#[derive(Serialize, CandidType, Deserialize)] pub struct Spawn { pub percentage_to_spawn: Option, pub new_controller: Option, @@ -475,6 +481,7 @@ pub struct Motion { #[derive(Serialize, CandidType, Deserialize)] pub enum Action { RegisterKnownNeuron(KnownNeuron), + FulfillSubnetRentalRequest(FulfillSubnetRentalRequest), ManageNeuron(ManageNeuron), UpdateCanisterSettings(UpdateCanisterSettings), InstallCode(InstallCode), @@ -560,6 +567,7 @@ pub struct GovernanceCachedMetrics { pub total_voting_power_non_self_authenticating_controller: Option, pub total_staked_maturity_e8s_equivalent: u64, pub not_dissolving_neurons_e8s_buckets_ect: Vec<(u64, f64)>, + pub spawning_neurons_count: u64, pub declining_voting_power_neuron_subset_metrics: Option, pub total_staked_e8s_ect: u64, pub not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: u64, @@ -980,6 +988,7 @@ pub struct InstallCodeRequest { #[derive(Serialize, CandidType, Deserialize)] pub enum ProposalActionRequest { RegisterKnownNeuron(KnownNeuron), + FulfillSubnetRentalRequest(FulfillSubnetRentalRequest), ManageNeuron(Box), UpdateCanisterSettings(UpdateCanisterSettings), InstallCode(InstallCodeRequest), diff --git a/rs/proposals/src/canisters/nns_registry/api.rs b/rs/proposals/src/canisters/nns_registry/api.rs index cf437a2032f..b9f96f45930 100644 --- a/rs/proposals/src/canisters/nns_registry/api.rs +++ b/rs/proposals/src/canisters/nns_registry/api.rs @@ -1,5 +1,5 @@ //! Rust code created from candid by: `scripts/did2rs.sh --canister nns_registry --out api.rs --header did2rs.header --traits Serialize` -//! Candid for canister `nns_registry` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `nns_registry` obtained by `scripts/update_ic_commit` from: #![allow(clippy::all)] #![allow(missing_docs)] #![allow(clippy::missing_docs_in_private_items)] @@ -124,6 +124,11 @@ pub struct SubnetFeatures { pub sev_enabled: Option, } #[derive(Serialize, CandidType, Deserialize)] +pub enum CanisterCyclesCostSchedule { + Free, + Normal, +} +#[derive(Serialize, CandidType, Deserialize)] pub enum SchnorrAlgorithm { #[serde(rename = "ed25519")] Ed25519, @@ -200,6 +205,7 @@ pub struct CreateSubnetPayload { pub gossip_pfn_evaluation_period_ms: u32, pub max_ingress_messages_per_block: u64, pub max_number_of_canisters: u64, + pub canister_cycles_cost_schedule: Option, pub gossip_max_artifact_streams_per_peer: u32, pub replica_version_id: String, pub gossip_max_duplicity: u32, @@ -218,6 +224,11 @@ pub struct CreateSubnetPayload { pub node_ids: Vec, } #[derive(Serialize, CandidType, Deserialize)] +pub enum CreateSubnetResponse { + Ok { new_subnet_id: Option }, + Err(String), +} +#[derive(Serialize, CandidType, Deserialize)] pub struct DeployGuestosToAllSubnetNodesPayload { pub subnet_id: Principal, pub replica_version_id: String, @@ -528,7 +539,7 @@ impl Service { pub async fn complete_canister_migration(&self, arg0: CompleteCanisterMigrationPayload) -> CallResult<()> { ic_cdk::call(self.0, "complete_canister_migration", (arg0,)).await } - pub async fn create_subnet(&self, arg0: CreateSubnetPayload) -> CallResult<()> { + pub async fn create_subnet(&self, arg0: CreateSubnetPayload) -> CallResult<(CreateSubnetResponse,)> { ic_cdk::call(self.0, "create_subnet", (arg0,)).await } pub async fn deploy_guestos_to_all_subnet_nodes( diff --git a/rs/proposals/src/canisters/sns_wasm/api.rs b/rs/proposals/src/canisters/sns_wasm/api.rs index af9ac14da9e..e3364820b46 100644 --- a/rs/proposals/src/canisters/sns_wasm/api.rs +++ b/rs/proposals/src/canisters/sns_wasm/api.rs @@ -1,5 +1,5 @@ //! Rust code created from candid by: `scripts/did2rs.sh --canister sns_wasm --out api.rs --header did2rs.header --traits Serialize` -//! Candid for canister `sns_wasm` obtained by `scripts/update_ic_commit` from: +//! Candid for canister `sns_wasm` obtained by `scripts/update_ic_commit` from: #![allow(clippy::all)] #![allow(missing_docs)] #![allow(clippy::missing_docs_in_private_items)]