Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(nns): Implement proposal execution for updating settings for root #866

Merged
merged 2 commits into from
Aug 13, 2024

Conversation

jasonz-dfinity
Copy link
Contributor

@jasonz-dfinity jasonz-dfinity commented Aug 9, 2024

Why

The update_canister_settings proposal type should work on cansiters controlled by root (already implemented) as well as root itself (this PR)

Only a controller of a canister can change its settings. lifeline is the controller of root. Therefore, execution of update settings proposals that target root are implemented by calling a (new) method of lifeline. Whereas, for all other NNS canisters, update settings proposals are implemented via a call to root.

What

  • Add an endpoint on the lifeline (update_root_settings)
  • Call Lifeline::update_root_settings from Governance for proposal execution
  • Minor changes
    • Fix the error messages for some times
    • Fix the lifeline.did which was out-dated

@jasonz-dfinity jasonz-dfinity requested a review from a team as a code owner August 9, 2024 16:18
@jasonz-dfinity jasonz-dfinity changed the title Implement proposal execution for updating settings for root feat(nns): Implement proposal execution for updating settings for root Aug 9, 2024
@github-actions github-actions bot added the feat label Aug 9, 2024
@daniel-wong-dfinity-org
Copy link
Contributor

Another thing you (can|should) mention in the "Why" section:

Only a controller of a canister can change its settings. lifeline is the controller of root. Therefore, execution of update settings proposals that target root are implemented by calling a (new) method of lifeline. Whereas, for all other NNS canisters, update settings proposals are implemented via a call to root.

IOW, it should explain why root is special (the short answer is that its set of controllers is different compared to other NNS canisters).

@jasonz-dfinity jasonz-dfinity added this pull request to the merge queue Aug 13, 2024
Merged via the queue into master with commit 1402bf3 Aug 13, 2024
23 checks passed
@jasonz-dfinity jasonz-dfinity deleted the jason/NNS1-3216 branch August 13, 2024 22:10
levifeldman pushed a commit to levifeldman/ic that referenced this pull request Oct 1, 2024
dfinity#866)

# Why

The `update_canister_settings` proposal type should work on cansiters
controlled by root (already implemented) as well as root itself (this
PR)

Only a controller of a canister can change its settings. lifeline is the
controller of root. Therefore, execution of update settings proposals
that target root are implemented by calling a (new) method of lifeline.
Whereas, for all other NNS canisters, update settings proposals are
implemented via a call to root.

# What

* Add an endpoint on the lifeline (update_root_settings)
* Call `Lifeline::update_root_settings` from Governance for proposal
execution
* Minor changes
  * Fix the error messages for some times
  * Fix the lifeline.did which was out-dated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants