From 7dea32ce3293589af6288f42154bdd7b5050cd9f Mon Sep 17 00:00:00 2001 From: Lucas Randazzo Date: Tue, 6 Jun 2023 15:42:29 +0200 Subject: [PATCH 1/2] Proto: add `get_total_frozen_stake` to alpha context --- src/proto_alpha/lib_protocol/alpha_context.ml | 5 +++++ src/proto_alpha/lib_protocol/alpha_context.mli | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/proto_alpha/lib_protocol/alpha_context.ml b/src/proto_alpha/lib_protocol/alpha_context.ml index 49952e0f6067..8559ab1bb052 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.ml +++ b/src/proto_alpha/lib_protocol/alpha_context.ml @@ -512,6 +512,11 @@ module Stake_distribution = struct let slot_owner = Delegate_sampler.slot_owner let load_sampler_for_cycle = Delegate_sampler.load_sampler_for_cycle + + let get_total_frozen_stake ctxt cycle = + let open Lwt_result_syntax in + let* total_stake = Stake_storage.get_total_active_stake ctxt cycle in + return (Stake_repr.get_frozen total_stake) end module Nonce = Nonce_storage diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 7fc26862eea3..5d03e0a3f2f3 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -4569,6 +4569,8 @@ module Stake_distribution : sig (** See {!Delegate_sampler.load_sampler_for_cycle}. *) val load_sampler_for_cycle : context -> Cycle.t -> context tzresult Lwt.t + + val get_total_frozen_stake : context -> Cycle.t -> Tez.t tzresult Lwt.t end (** This module re-exports definitions from {!Commitment_repr} and, -- GitLab From 04099b1358f0d076019e009b9f67b213402eb4e1 Mon Sep 17 00:00:00 2001 From: Lucas Randazzo Date: Tue, 6 Jun 2023 15:43:14 +0200 Subject: [PATCH 2/2] Proto: Add `total_frozen_stake` RPC --- .../lib_protocol/adaptive_inflation_services.ml | 15 ++++++++++++++- .../lib_protocol/adaptive_inflation_services.mli | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/proto_alpha/lib_protocol/adaptive_inflation_services.ml b/src/proto_alpha/lib_protocol/adaptive_inflation_services.ml index 5e29f3d1b1ab..c9733dc503cd 100644 --- a/src/proto_alpha/lib_protocol/adaptive_inflation_services.ml +++ b/src/proto_alpha/lib_protocol/adaptive_inflation_services.ml @@ -36,12 +36,25 @@ module S = struct ~query:RPC_query.empty ~output:Tez.encoding RPC_path.(context_path / "total_supply") + + let total_frozen_stake = + RPC_service.get_service + ~description:"Returns the total stake (in mutez) frozen on the chain" + ~query:RPC_query.empty + ~output:Tez.encoding + RPC_path.(context_path / "total_frozen_stake") end let register () = let open Services_registration in register0 ~chunked:false S.total_supply (fun ctxt () () -> - Contract.get_total_supply ctxt) + Contract.get_total_supply ctxt) ; + register0 ~chunked:false S.total_frozen_stake (fun ctxt () () -> + let cycle = (Level.current ctxt).cycle in + Stake_distribution.get_total_frozen_stake ctxt cycle) let total_supply ctxt block = RPC_context.make_call0 S.total_supply ctxt block () () + +let total_frozen_stake ctxt block = + RPC_context.make_call0 S.total_frozen_stake ctxt block () () diff --git a/src/proto_alpha/lib_protocol/adaptive_inflation_services.mli b/src/proto_alpha/lib_protocol/adaptive_inflation_services.mli index 53be0d0d0b0a..d22b4b717032 100644 --- a/src/proto_alpha/lib_protocol/adaptive_inflation_services.mli +++ b/src/proto_alpha/lib_protocol/adaptive_inflation_services.mli @@ -27,4 +27,7 @@ open Alpha_context val total_supply : 'a #RPC_context.simple -> 'a -> Tez.t shell_tzresult Lwt.t +val total_frozen_stake : + 'a #RPC_context.simple -> 'a -> Tez.t shell_tzresult Lwt.t + val register : unit -> unit -- GitLab