package tezos-protocol-016-PtMumbai
This module deals with the delegates of a contract. It is responsible for maintaining the tables Storage.Contract.Delegate
and Storage.Contract.Delegated
.
type Tezos_protocol_environment_016_PtMumbai.Error_monad.error +=
| Forbidden_tz4_delegate of Tezos_protocol_environment_016_PtMumbai.Bls.Public_key_hash.t
(*Delegates cannot be tz4 accounts (i.e. BLS public key hashes). This error is returned when we try to register such a delegate.
*)
val check_not_tz4 :
Tezos_protocol_environment_016_PtMumbai.Signature.public_key_hash ->
unit Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
check_not_tz4 pkh
checks that pkh
is not a BLS address.
val find :
Raw_context.t ->
Contract_repr.t ->
Tezos_protocol_environment_016_PtMumbai.Signature.Public_key_hash.t option
Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
Tezos_protocol_environment_016_PtMumbai.Lwt.t
find ctxt contract
returns the delegate associated to contract
, or None
if contract
has no delegate.
val init :
Raw_context.t ->
Contract_repr.t ->
Tezos_protocol_environment_016_PtMumbai.Signature.Public_key_hash.t ->
Raw_context.t Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
Tezos_protocol_environment_016_PtMumbai.Lwt.t
init ctxt contract delegate
sets the delegate
associated to contract
.
This function assumes that contract
does not have a delegate already.
val unlink :
Raw_context.t ->
Contract_repr.t ->
Raw_context.t Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
Tezos_protocol_environment_016_PtMumbai.Lwt.t
unlink ctxt contract
removes contract
from the list of contracts that delegated to find ctxt contract
, i.e. the output of delegated_contracts
. This function does not affect the value of the expression find ctxt contract
.
This function assumes that contract
is allocated.
val delete :
Raw_context.t ->
Contract_repr.t ->
Raw_context.t Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
Tezos_protocol_environment_016_PtMumbai.Lwt.t
delete ctxt contract
behaves as unlink ctxt contract
, but in addition removes the association of the contract
to its current delegate, leaving the former without delegate.
This function assumes that contract
is allocated.
val set :
Raw_context.t ->
Contract_repr.t ->
Tezos_protocol_environment_016_PtMumbai.Signature.Public_key_hash.t ->
Raw_context.t Tezos_protocol_environment_016_PtMumbai.Error_monad.tzresult
Tezos_protocol_environment_016_PtMumbai.Lwt.t
set ctxt contract delegate
updates the delegate
associated to contract
.
This function assumes that contract
is allocated and has a delegate.
val delegated_contracts :
Raw_context.t ->
Tezos_protocol_environment_016_PtMumbai.Signature.Public_key_hash.t ->
Contract_repr.t list Tezos_protocol_environment_016_PtMumbai.Lwt.t
delegated_contracts ctxt delegate
returns the list of contracts (implicit or originated) that delegated to delegate
.