NNS Canister Cycles Ledger Upgrade 2025-04-11

Proposal 136213 to upgrade the Cycles Ledger Canister is live.

Relevant discussion in the Improving the Cycle Management Experience thread

1 Like

Proposal 136213 – LaCosta | CodeGov

Vote: ADOPT

Cycles Ledger Canister


Reason:
Build successful and hashes match, commits look great and match the description. Found no issues.

[f9c43d7]: Creates a file INTERFACE_SPECIFICATION.md with the interface specification of the Cycles Ledger API.

[75cf5f4]: Fixes a bug in withdraw and create_canister that if the operations were unsuccessful would use the timestamp now of the intial burn block meaning that expired approvals would be refunded. The commit updates this timer after calling the deposit_cycles or call_with_payment128 and adds a new check in constant approval_still_valid making sure that the approval has not expired. The test test_icrc2_transfer_from_approval_expired was made accordingly.

[01236e4]: Updates the CHANGELOG.md file to reflect the current release 1.0.4

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

2 Likes

proposal - 136213 – Cyberowl | CodeGov

Checks

Proposals:
136213

Vote: ADOPT
Hash Match: MATCH
Feedback: NONE
Proposer Check: MATCH
Target Canister: MATCH
Reason:
I successfully built and verified the hash. All the commit descriptions match their code changes.

Commits Summary

Ensures that fee reimbursement only happens if the approval hasn’t expired and the requested amount exceeds the fee threshold.

If you like the review please follow:

About CodeGov…(click to expand)

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these topics and Synapse on most other topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron and KongSwap with a known neuron and credible Followees.

Learn more about CodeGov and it’s mission at codegov.org.

The proposal provides instructions for verifying the hex-encoded upgrade arguments in the “Argument Verification” section, but the “Payload” section in the dashboard shows the hash of the arguments (arg_hash). To verify the hash of the arguments, the following command should be used:

didc encode -f hex '()' | xxd -r -p | sha256sum

Adopt proposal 136213

Proposal

  • Canister id um5iw-rqaaa-aaaaq-qaaba-cai is the cycles ledger canister.
  • The upgrade args correspond to the empty args.
  • The install mode is indeed upgrade.
  • The wasm hash is reproducible.

image

Review

Fixes a bug where refund blocks for failed withdraw or create_canister operations incorrectly used the timestamp of the original burn block, instead of the time when the error was actually processed.

Proposal #136213 for Cycles Ledger — Zack | CodeGov

Vote: Adopted

Reason: The build is reproducible and the wasm hash is a match, So is the arguments hash from the payload as well as the hex in the summary.
The canister id um5iw-rqaaa-aaaaq-qaaba-cai is correct and the install mode is upgrade.

As we can see from the Changelog : * Fixed a bug where refund blocks after an unsuccessful withdraw or create_canister had the timestamp of the initial burn block instead of the time when the error was processed. Approvals that have expired in the meantime will not be refunded.

Matches description for Commit 75cf5f4 .

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

Proposal 136213 - Zane | CodeGov

Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions.

f9c43d7 Added interface specification

75cf5f4 In withdraw and create_canister methods use up to date timestamp instead of the one from the initial call to prevent decreasing timestamps in blocks due to reentrancy and added check to avoid reimbursing expired approvals. Updated dfx version from 0.18 to 0.25 and rust version from 1.72 to 1.85.

01236e4 Updated changelog file.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.