Skip to content

Conversation

@alin-at-dfinity
Copy link
Contributor

The struct was deprecated a long time ago (it's a combination of ICP and cycles; but transferring ICP via canister calls was never implemented; so it was eventually replaced by Cycles fields in most places).

Following recent changes that added (and populated and persisted) a Cycles field next to every Funds field, it is now safe to drop the type from the Replicated State and from checkpoints. (Dropping it from the canonical state is independent and also going on in parallel.)

All protos with an `ic_protobuf::...::Funds` field (e.g. `Request` and `Response`) already have an equivalent `ic_protobuf::Cycles` field; always populate both; and can be populated from either.

`CallContext` only has a `Funds` field, meaning that we can't get rid of `ic_types::Funds` (and the equivalent proro) just yet. Add an `ic_protobuf::CallContext::available_cycles` field, so that we can get rid of `available_funds` (and the `Funds` types) in the following replica release.
@github-actions github-actions bot added the chore label Jan 13, 2026
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.

1 participant