Mavryk_raw_protocol_alpha.Contract_delegate_storageThis module deals with the delegates of a contract. It is responsible for maintaining the tables Storage.Contract.Delegate and Storage.Contract.Delegated.
type Mavryk_protocol_environment_alpha.Error_monad.error += | Forbidden_mv4_delegate of Mavryk_protocol_environment_alpha.Bls.Public_key_hash.tDelegates cannot be mv4 accounts (i.e. BLS public key hashes). This error is returned when we try to register such a delegate.
*)val check_not_mv4 :
Mavryk_protocol_environment_alpha.Signature.public_key_hash ->
unit Mavryk_protocol_environment_alpha.Error_monad.tzresultcheck_not_mv4 pkh checks that pkh is not a BLS address.
val find :
Raw_context.t ->
Contract_repr.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t option
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tfind ctxt contract returns the delegate associated to contract, or None if contract has no delegate.
val is_delegate :
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
bool Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tis_delegate ctxt pkh returns whether pkh is a delegate.
type delegate_status = | Delegate| Delegated of Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t| Undelegateddelegate_status describes whether an implicit account is a delegate, or if it has a delegate (i.e. other than itself), or has no delegate.
val get_delegate_status :
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
delegate_status Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tget_delegate_status ctxt pkh returns the delegation status associated to pkh.
val init :
Raw_context.t ->
Contract_repr.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tinit 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 Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tunlink 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 Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tdelete 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 ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tset 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 ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Contract_repr.t list Mavryk_protocol_environment_alpha.Lwt.tdelegated_contracts ctxt delegate returns the list of contracts (implicit or originated) that delegated to delegate.