Mavryk_raw_protocol_alpha.Contract_manager_storage
type Mavryk_protocol_environment_alpha.Error_monad.error +=
| Unrevealed_manager_key of Contract_repr.t
| Inconsistent_hash of {
public_key : Mavryk_protocol_environment_alpha.Signature.Public_key.t;
expected_hash : Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t;
provided_hash : Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t;
}
| Previously_revealed_key of Contract_repr.t
| Missing_manager_contract of Contract_repr.t
val init :
Raw_context.t ->
Contract_repr.t ->
Manager_repr.manager_key ->
Raw_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
init ctxt contract manager
associates manager
to contract
. This function is undefined if contract
has already a manager associated to it.
val is_manager_key_revealed :
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.t
val check_public_key :
Mavryk_protocol_environment_alpha.Signature.Public_key.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
unit Mavryk_protocol_environment_alpha.Error_monad.tzresult
check_publick_key pk pkh
asserts that the provided pk
is consistent with the expected public key hash pkh
, otherwise fails with an Inconsistent_hash
error.
val reveal_manager_key :
?check_consistency:bool ->
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
reveal_manager_key ?check_consistency ctxt manager pk
reveals the public key pk
for a given unrevealed manager
. If the optional ?check_consistency
flag is set (and it is set by default), it will re-check the same consistency checks than check_public_key
above, otherwise it will assume manager
is indeed the hash of pk
. It is expected to fail with Previously_revealed_key contract
if manager
was already revealed, and with Inconsistent_hash
if the (unrevealed) manager
doesn't match the expected hash of the implicit contract associated to pk
.
val get_manager_key :
?error:Mavryk_protocol_environment_alpha.Error_monad.error ->
Raw_context.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key_hash.t ->
Mavryk_protocol_environment_alpha.Signature.Public_key.t
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
get_manager_key ?error ctxt pkh
returns the revealed manager key of the contract represented by pkh
. When error
is not provided this function fails with "get_manager_key" error if pkh
does not have a manager, and with Unrevealed_manager_key
error if the manager has not revealed its key. When error
is provided, the function fails with the provided error
in both cases.