package tezos-protocol-alpha

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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_alpha.Error_monad.error +=
  1. | Forbidden_tz4_delegate of Tezos_protocol_environment_alpha.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.

    *)

check_not_tz4 pkh checks that pkh is not a BLS address.

find ctxt contract returns the delegate associated to contract, or None if contract has no delegate.

type delegate_status =
  1. | Delegate
  2. | Delegated of Tezos_protocol_environment_alpha.Signature.Public_key_hash.t
  3. | Undelegated

delegate_status describes whether an implicit account is a delegate, or if it has a delegate (i.e. other than itself), or has no delegate.

init ctxt contract delegate sets the delegate associated to contract.

This function assumes that contract does not have a delegate already.

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.

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.

set ctxt contract delegate updates the delegate associated to contract.

This function assumes that contract is allocated and has a delegate.

delegated_contracts ctxt delegate returns the list of contracts (implicit or originated) that delegated to delegate.

OCaml

Innovation. Community. Security.