NNS Updates, June 14, 2024

The NNS Team will be submitting the following upgrade proposals this Friday, 2024-06-14. DFINITY plans to vote on these proposals the following Monday.

Additional Notes

The Cycles Minting canister upgrade contains an upgrade argument, which lets it interact with the Cycles Ledger canister, so that the Cycles Minting canister can mint cycles and transfer them to Cycles Ledger.

Proposals to be Submitted

Cycles-minting


## Proposal to Upgrade the Cycles-minting Canister

### Proposer: DFINITY Foundation

### Git Hash: b9a20425f94eb1433385a7ed0c59c41095c17b7b

### New Wasm Hash: 58ee30cb6cb074dc066b7e8dfc78d8e2b1a9e97a48e39fedbace65c547703d80

### Upgrade Args Hash: 2f1911cdd0684a23be6e07695a0be2fb3a5c5c3289827c0be6adb334865fba9e

### Target canister: rkp4c-7iaaa-aaaaa-aaaca-cai

---

## Features

* Merge canister creation fixes from hotfix branch into master.

## Release Notes

```

$ git log --format="%C(auto) %h %s" 98a61b5cee32dd109a653e41d0a4ddae5c53c916..b9a20425f94eb1433385a7ed0c59c41095c17b7b -- ./rs/nns/cmc

f455700243 chore: use the rand version from the Cargo workspace

c6d2e72520 Merge canister creation fixes from hotfix branch into master.

```

## Candid Post Upgrade Args

```candid

(opt record { cycles_ledger_canister_id = opt principal "um5iw-rqaaa-aaaaq-qaaba-cai" })

```

### Validating Candid Args

Verify that the hash of the args matches proposal contents.

`didc encode '(opt record { cycles_ledger_canister_id = opt principal "um5iw-rqaaa-aaaaq-qaaba-cai" })' | xxd -r -p | sha256sum`

## Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

```

git fetch

git checkout b9a20425f94eb1433385a7ed0c59c41095c17b7b

./gitlab-ci/container/build-ic.sh -c

sha256sum ./artifacts/canisters/cycles-minting-canister.wasm.gz

```

## Current Version

- Current Git Hash: 98a61b5cee32dd109a653e41d0a4ddae5c53c916

- Current Wasm Hash: 9c4e48d0e6241fb86ade57d3b9d076660bd1ac8e704d0309ad06e5eb291968d8

Root


## Proposal to Upgrade the Root Canister

### Proposer: DFINITY Foundation

### Git Hash: b9a20425f94eb1433385a7ed0c59c41095c17b7b

### New Wasm Hash: 0c791dc6010b041112ab23935d1be8ca28e2b7ae1374c0051a1dde12262b658b

### Target canister: r7inp-6aaaa-aaaaa-aaabq-cai

---

## Features

* Root: use serde_bytes in NNS root canister.

## Release Notes

```

$ git log --format="%C(auto) %h %s" d7ddd2969837fc6c9c0b86d331f7bc61e9e78bd1..b9a20425f94eb1433385a7ed0c59c41095c17b7b -- ./rs/nns/handlers/root/impl

2d7dfc0135 chore: upgrade tempfile version and use the workspace. version everywhere

06f24bda7a fix: use serde_bytes in NNS root canister

bcae09b797 chore: early access control in change_canister_controllers of NNS root

7957dab20c chore: rules_rust 0.33.0 -> 0.42.1

```

## Wasm Verification

Verify that the hash of the gzipped WASM matches the proposed hash.

```

git fetch

git checkout b9a20425f94eb1433385a7ed0c59c41095c17b7b

./gitlab-ci/container/build-ic.sh -c

sha256sum ./artifacts/canisters/root-canister.wasm.gz

```

## Current Version

- Current Git Hash: d7ddd2969837fc6c9c0b86d331f7bc61e9e78bd1

- Current Wasm Hash: 4607bb1c0742a52449a7c66f7d90681c2d876372a49a8ed474852bcdef144001

3 Likes

Curious, what’s the mechanism/use case by which the Cycles Ledger canister can ask the CMC for cycles?

@jasonzhu you should probably make it clear to everyone that the following 2 duplicated CMC proposal should be rejected. Thanks

2 Likes

The CodeGov project completed reviews for the proposals and voted to adopt them. We voted to reject proposals 130397 and 130398 since they got submitted as duplicated given the issues at that time. You can find details on OpenChat
At the time of this comment on the forum, there are still 2 days left in the voting period, which means there is still plenty of time for others to review the proposal and vote independently.

2 Likes

The cycles ledger can’t ask the CMC for cycles. We want people to be able to get by without a cycles wallet. For this, there needs to be a mechanism to turn ICP to cycles on the cycles ledger without using a proxy canister. For this, the CMC has a new function notify_mint_cycles basically does the same as notify_top_up, but instead of depositing the cycles to the target canister, it calls deposit on the cycles ledger to top up the user’s account

This proposal ‘only’ configures the cycles ledger canister ID so that the CMC knows on which canister it should call deposit

With this configured, dfx cycles convert will start working

3 Likes

It looks like the memo may work in a bit different way than notify_top_up. It wants you to specify a memo i the notify_mint_cycles call. What are the rules/spec here? Do you just need to know the memo and make sure it matches? Or does it need to be the owner of the account converter to a memo as is used other places?

The rule is the memo needs to be the expected value. See also the code. This works the same as in notify_top_up, which does the same thing with the memo.