NNS Updates 2024-09-20

proposal - 133088

Vote: ADOPT

Hash: MATCH

[ebb4dc57d9]
New method get_default_subnets

[df1dbfc8a2]
Update the file pattern in glob() functions from ["src/**"] to ["src/**/*.rs"], which more explicitly targets Rust source files in directories. Additionally, similar changes were made to proto files, updating ["proto/**"] to ["proto/**/*.proto"].

[bbb8a51524]
Fix related to the wrong label for convert_conversion_rate_to_payload

[3aa43520c4]
Removal of unused imports like Decode from candid and some refactoring in the State::decode function. Removal of StateV0

Removal of old migration code for StateV0 and an update to the State::decode function to streamline version handling.

[c2b4a0aaf4]
Removal of the RefundFailed variant from the CreateCanisterError and related refunding logic

new validation for deposit memos was introduced, restricting their length to a maximum of 32 bytes.

[137faea9ee]
Removes unnecessary type casting and modular arithmetic, replacing it with a straightforward calculation of the next multiple using division, multiplication, and addition while handling potential overflows.

[4d09678d23]
Reordering the attributes in struct definitions and derive macro usage across multiple files.

proposal - 133089

Vote: ADOPT

Hash: MATCH

[96814ec4af]
Removes test /rs/nns/constants--test_feature

[d399ee7f6f]
Removes mut from call_canister_method on self

[df1dbfc8a2]
Duplicate

[4e8565c624]
Replacement of the ChangeCanisterRequest structure and related logic with the InstallCodeRequest structure, and the introduction of new request and command handling for proposal actions.

Replace Proposal and related structures with MakeProposalRequest and ProposalActionRequest

Several tests and integration scenarios have been updated to reflect this new approach to installing and upgrading canisters

[ad9e529296]
panic_with_probability now 0.7 vs 0.3

[fbde007ff4]
This reverts the commits that happened in d123a2a015 but then commit 4e8565c624 introduces some of them back. So 4e8565c624 are the changes applied.

[41f6ce3a7c]
Removal of the ic-nns-governance dependency in multiple places, including in the Cargo files and Bazel build configurations, and the addition of a new module, ic-nervous-system-common-validation, which is responsible for URL and proposal validation logic that was previously part of other modules

create_service_nervous_system.rs got moved into its own file under init

[a4b9ab2ec1]
Refactor func by adding SnsCanisterType to specify different canister types (e.g., Root, Governance, Ledger) and applies different memory limits based on the canister type

[bfc9da0790]
This got reviewed in IC OS but here is the finding.

Use of Rt: Runtime + Send + Sync, which abstracts the underlying execution environment

Rt::call_without_cleanup to interact with the canister, allowing for greater flexibility in testing and supporting different runtime environments.

[d123a2a015]
Commit Reverted by ad9e529296

[2e85a2e961]
Removal of the latest_ledger_archive_poll_timestamp_seconds field from multiple components of the SnsRootCanister, and the replacement of the heartbeat function with a new timer mechanism to poll for new archive canisters at a fixed interval of 24 hours. ic-cdk-timers dependency was introduced to manage this timer-based polling functionality.

proposal - 133090

Vote: ADOPT

Hash: MATCH

[29f688afe9]
New lib ic_nervous_system_string
clamp_debug_len limits the length of the debug output for mutation logs in the check_global_state_invariants method

[df1dbfc8a2]
Duplicate

[b14c152f3a]
The get_changes_since function was refactored to move the main logic into a main() function that uses a Result type for cleaner error handling, allowing for a clear separation of authorization, request parsing, and error handling.

[c3a180c94c]
A new package called ic-nervous-system-canisters has been introduced, which consolidates various dependencies related to the nervous system and ledger functionality. This includes new canisters like CMCCanister and IcpLedgerCanister, which centralize key functions such as managing ledger accounts and handling neuron maturity modulation. These canisters replace their previous implementations that were scattered across common nervous system components, reorganizing the code into a more modular and structured format under the new package.

3 Likes