This module contains the
CyclesAccountManager which is responsible for
updating the cycles account of canisters.
A canister has an associated cycles balance, and may
send a part of
this cycles balance to another canister
In addition to sending cycles to another canister, a canister
cycles in the following three ways:
a) executing messages,
b) sending messages to other canisters,
c) storing data over time/rounds
Each of the above spending is done in three phases:
- reserving maximum cycles the operation can require
- executing the operation and return
- reimburse the canister with
Handles any operation related to cycles accounting, such as charging (due to using system resources) or refunding unused cycles.
Errors returned by the
Encapsulates the payer and cost of inducting an ingress messages.
Errors returned when computing the cost of receiving an ingress.