package tezos-protocol-019-PtParisB
Internal representation of the Tez currency. Behaves mostly like a natural number where number 1 represents 1/1,000,000 Tez (1 micro-Tez or mutez). It's protected from ever becoming negative and overflowing by special arithmetic functions, which fail in case something undesired would happen. When divided, it's always rounded down to 1 mutez.
Internally encoded as int64
, which may be relevant to guard against overflow errors.
t
is made algebraic in order to distinguish it from the other type parameters of Script_typed_ir.ty
.
type Tezos_protocol_environment_019_PtParisB.Error_monad.error +=
| Addition_overflow of t * t
| Subtraction_underflow of t * t
| Multiplication_overflow of t * Tezos_protocol_environment_019_PtParisB.Z.t
| Negative_multiplicator of t * Tezos_protocol_environment_019_PtParisB.Z.t
| Invalid_divisor of t * Tezos_protocol_environment_019_PtParisB.Z.t
val zero : t
val one_mutez : t
val one_cent : t
val fifty_cents : t
val one : t
val max_mutez : t
val (-?) :
t ->
t ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
val (+?) :
t ->
t ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
val (*?) :
t ->
int64 ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
val (/?) :
t ->
int64 ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
val mul_ratio :
rounding:[ `Down | `Up ] ->
t ->
num:int64 ->
den:int64 ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
mul_ratio ~rounding tez ~num ~den
returns tez * num / den
without failing when tez * num
overflows. rounding
controls the rounding of the division.
val mul_ratio_z :
rounding:[ `Down | `Up ] ->
t ->
num:Tezos_protocol_environment_019_PtParisB.Z.t ->
den:Tezos_protocol_environment_019_PtParisB.Z.t ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
mul_ratio_z
is the same as mul_ratio
, but takes Z.t
as arguments
val mul_q :
rounding:[ `Down | `Up ] ->
t ->
Tezos_protocol_environment_019_PtParisB.Q.t ->
t Tezos_protocol_environment_019_PtParisB.Error_monad.tzresult
mul_q
is the same as mul_ratio_z
, but takes a Q.t
as an argument
val mul_percentage : rounding:[ `Down | `Up ] -> t -> Percentage.t -> t
mul_percentage tez percentage
returns tez * percentage / 100
. No errors can happen.
val to_mutez : t -> int64
val of_mutez : int64 -> t option
of_mutez n
(micro tez) is None if n is negative
val of_mutez_exn : int64 -> t
of_mutez_exn n
fails if n is negative. It should only be used at toplevel for constants.
val encoding : t Tezos_protocol_environment_019_PtParisB.Data_encoding.t
val balance_update_encoding :
[ `Credited of t | `Debited of t ]
Tezos_protocol_environment_019_PtParisB.Data_encoding.t
include Tezos_protocol_environment_019_PtParisB.Compare.S with type t := t
val pp : Tezos_protocol_environment_019_PtParisB.Format.formatter -> t -> unit
val of_string : string -> t option
val to_string : t -> string