Module Tezos_raw_protocol_alpha.Receipt_repr

type balance =
| Contract of Contract_repr.t
| Block_fees
| Deposits of Tezos_protocol_environment_alpha.Signature.Public_key_hash.t
| Nonce_revelation_rewards
| Double_signing_evidence_rewards
| Endorsing_rewards
| Baking_rewards
| Baking_bonuses
| Storage_fees
| Double_signing_punishments
| Lost_endorsing_rewards of Tezos_protocol_environment_alpha.Signature.Public_key_hash.t * bool * bool
| Liquidity_baking_subsidies
| Burned
| Commitments of Blinded_public_key_hash.t
| Bootstrap
| Invoice
| Initial_commitments
| Minted
| Frozen_bonds of Contract_repr.t * Bond_id_repr.t
| Tx_rollup_rejection_punishments
| Tx_rollup_rejection_rewards
| Sc_rollup_refutation_punishments
| Sc_rollup_refutation_rewards

Places where tez can be found in the ledger's state.

val compare_balance : balance -> balance -> int

Compares two balances.

type balance_update =
| Debited of Tez_repr.t
| Credited of Tez_repr.t

A credit or debit of tez to a balance.

type update_origin =
| Block_application(*

Update from a block application

*)
| Protocol_migration(*

Update from a protocol migration

*)
| Subsidy(*

Update from an inflationary subsidy

*)
| Simulation(*

Simulation of an operation *

*)

An origin of a balance update

val compare_update_origin : update_origin -> update_origin -> int

Compares two origins.

type balance_updates = (balance * balance_update * update_origin) list

A list of balance updates. Duplicates may happen. For example, an entry of the form (Rewards (b,c), Credited am, ...) indicates that the balance of frozen rewards has been increased by am for baker b and cycle c.

The property Json.destruct (Json.construct balance_updates) = balance_updates does not always hold for balance_updates_encoding when balance_updates contains entries of the form (_, _ Tez_repr.zero, _). This is because the balance_update (_ Tez_repr.zero) always decodes into (Credited Tez_repr.zero).

Group updates by (balance x origin), and remove zero-valued balances.