From b96424827fe2061e6bb8d6bf6497ab7e72aa4f42 Mon Sep 17 00:00:00 2001 From: Lucas Randazzo Date: Wed, 5 Jul 2023 19:07:47 +0200 Subject: [PATCH 1/2] Proto/ai: import `apply_slash` to alpha_context --- src/proto_alpha/lib_protocol/alpha_context.ml | 13 ++++++++++++- src/proto_alpha/lib_protocol/alpha_context.mli | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/proto_alpha/lib_protocol/alpha_context.ml b/src/proto_alpha/lib_protocol/alpha_context.ml index 035e94c78e8d..14ca813b7c46 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.ml +++ b/src/proto_alpha/lib_protocol/alpha_context.ml @@ -636,7 +636,18 @@ end module Token = Token module Cache = Cache_repr -module Unstake_requests = Unstake_requests_storage + +module Unstake_requests = struct + include Unstake_requests_storage + + module For_RPC = struct + let apply_slash_to_unstaked_unfinalizable ctxt ~delegate ~requests = + Unstake_requests_storage.For_RPC.apply_slash_to_unstaked_unfinalizable + ctxt + {delegate; requests} + end +end + module Unstaked_frozen_deposits = Unstaked_frozen_deposits_storage module Staking_pseudotokens = struct diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 8eb5fea3da8f..3ee73cfd2d69 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -4921,6 +4921,14 @@ module Unstake_requests : sig Cycle.t -> Tez.t -> context tzresult Lwt.t + + module For_RPC : sig + val apply_slash_to_unstaked_unfinalizable : + context -> + delegate:public_key_hash -> + requests:(Cycle.t * Tez.t) list -> + (Cycle.t * Tez.t) list tzresult Lwt.t + end end module Unstaked_frozen_deposits : sig -- GitLab From 3fb42cc6766ed779e1e0f096d6c7715ddf8ae929 Mon Sep 17 00:00:00 2001 From: Lucas Randazzo Date: Wed, 5 Jul 2023 19:08:11 +0200 Subject: [PATCH 2/2] Proto/ai/rpc: apply slashes to unstaked_frozen_deposits rpc --- src/proto_alpha/lib_protocol/delegate_services.ml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/proto_alpha/lib_protocol/delegate_services.ml b/src/proto_alpha/lib_protocol/delegate_services.ml index 2613434a8e8e..fb6372197967 100644 --- a/src/proto_alpha/lib_protocol/delegate_services.ml +++ b/src/proto_alpha/lib_protocol/delegate_services.ml @@ -543,8 +543,15 @@ let register () = List.map_es (fun cycle -> Unstaked_frozen_deposits.balance ctxt pkh cycle >>=? fun deposit -> - return {cycle; deposit}) - cycles) ; + return (cycle, deposit)) + cycles + >>=? fun requests -> + Alpha_context.Unstake_requests.For_RPC + .apply_slash_to_unstaked_unfinalizable + ctxt + ~delegate:pkh + ~requests + >>=? List.map_es (fun (cycle, deposit) -> return {cycle; deposit})) ; register1 ~chunked:false S.staking_balance (fun ctxt pkh () () -> check_delegate_registered ctxt pkh >>=? fun () -> Delegate.staking_balance ctxt pkh) ; -- GitLab