package tezos-protocol-012-Psithaca

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module type COMMITMENTS = sig ... end
module Ciphertexts : sig ... end
module Nullifiers : sig ... end
module Roots : sig ... end

Bounded queue of roots. The full size is initialized with the default uncommitted root, that's why roots storage doesn't need to be carbonated. A maximum of one new root is added per protocol level. If multiple transactions for the same shielded pool are processed during the same contract call or several calls in the same block, only the last root will be stored. This property prevents transactions in the same block from depending on each other and guarantees that a transaction will be valid for a least two hours (hence the 120 size) after being forged.

This type links the permanent state stored in the context at the specified id together with the ephemeral diff managed by the Michelson interpreter. After a successful execution the diff can be applied to update the state at id. The first time a state is created its id is None, one will be assigned after the first application.

val empty_diff : Sapling_repr.diff
val empty_state : ?id:Lazy_storage_kind.Sapling_state.Id.t -> memo_size:Sapling_repr.Memo_size.t -> unit -> state
val state_from_id : Raw_context.t -> Lazy_storage_kind.Sapling_state.Id.t -> (state * Raw_context.t, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t

Returns a state from an existing id.

val rpc_arg : Storage.Sapling.id Tezos_protocol_environment_012_Psithaca__Environment.RPC_arg.t
val get_memo_size : Raw_context.t -> Lazy_storage_kind.Sapling_state.Id.t -> (Storage.Sapling.Memo_size.value, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t
val init : Raw_context.t -> Lazy_storage_kind.Sapling_state.Id.t -> memo_size:Storage.Sapling.Memo_size.value -> (Raw_context.t, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t
val sapling_apply_diff_cost : inputs:int -> outputs:int -> Saturation_repr.may_saturate Saturation_repr.t
val apply_diff : Raw_context.t -> Lazy_storage_kind.Sapling_state.Id.t -> Sapling_repr.diff -> (Raw_context.t * Z.t, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t

Applies a diff to a state id stored in the context. Updates Commitments, Ciphertexts and Nullifiers using the diff and updates the Roots using the new Commitments tree.

val add : state -> (Tezos_sapling__Core.Client.Commitment.t * Tezos_sapling__Core.Client.Ciphertext.t) list -> state
val root_mem : Raw_context.t -> state -> Tezos_sapling__Core.Client.Hash.t -> (bool, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t
val nullifiers_mem : Raw_context.t -> state -> Tezos_sapling__Core.Client.Nullifier.t -> (Raw_context.t * bool, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t
val nullifiers_add : state -> Tezos_sapling__Core.Client.Nullifier.t -> state
type root
val root_encoding : Tezos_sapling__Core.Client.Hash.t Data_encoding.t
val get_diff : Raw_context.t -> Storage.Sapling.id -> ?offset_commitment:Storage.Sapling.Ciphertexts.key -> ?offset_nullifier:Storage.Sapling.Nullifiers_ordered.key -> unit -> (Storage.Sapling.Roots.value * Sapling_repr.diff, Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.error Tezos_protocol_environment_012_Psithaca__Environment.Error_monad.trace) result Lwt.t
OCaml

Innovation. Community. Security.