package octez-protocol-alpha-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-protocol-alpha-libs.test-helpers/Tezos_alpha_test_helpers/Rewards/index.html
Module Tezos_alpha_test_helpers.Rewards
Source
The tables are precomputed using this the following formulas:
let max_attestations = 256 let max_reward = 40
let r = 0.5 let a = 3. let b = 1.5
let ( -- ) i j = List.init (j - i + 1) (fun x -> x + i)
let baking_rewards = let reward p e = let r_aux = if p = 0 then r *. (float_of_int max_reward) else a in let r = r_aux /. (float_of_int max_attestations) in let r = 1_000_000. *. r in Float.to_int ((float_of_int e) *. (ceil r)) in
let ps = 0 -- 2 in let es = 0 -- max_attestations in
List.map (fun p -> List.map (fun e -> reward p e ) es |> Array.of_list ) ps |> Array.of_list
let attesting_rewards = let reward p e = let r_aux = (1. -. r) *. (float_of_int max_reward) /. (float_of_int max_attestations) in let r = if p = 0 then r_aux else r_aux /. b in let r = 1_000_000. *. r in Float.to_int ((float_of_int e) *. (floor r)) in
let ps = 0 -- 2 in let es = 0 -- max_attestations in
List.map (fun p -> List.map (fun e -> reward p e ) es |> Array.of_list ) ps |> Array.of_list