Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file protocol_client_context.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268(*****************************************************************************)(* *)(* Open Source License *)(* Copyright (c) 2018 Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)(* *)(* Permission is hereby granted, free of charge, to any person obtaining a *)(* copy of this software and associated documentation files (the "Software"),*)(* to deal in the Software without restriction, including without limitation *)(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *)(* and/or sell copies of the Software, and to permit persons to whom the *)(* Software is furnished to do so, subject to the following conditions: *)(* *)(* The above copyright notice and this permission notice shall be included *)(* in all copies or substantial portions of the Software. *)(* *)(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*)(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *)(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *)(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*)(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *)(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *)(* DEALINGS IN THE SOFTWARE. *)(* *)(*****************************************************************************)moduleLifted_protocol=Tezos_protocol_007_PsDELPH1_lifted.Lifted_protocolmoduleAlpha_block_services=Block_services.Make(Lifted_protocol)(Lifted_protocol)(** Client RPC context *)classtyperpc_context=objectinheritTezos_rpc.Context.genericinherit[Shell_services.chain*Shell_services.block]Environment.RPC_context.simpleend(** The class [wrap_rpc_context] is a wrapper class used by the proxy
mode clients. From a general-purpose Tezos_rpc.Context.generic [t], the
class is augmented with shell services to provide RPC calls that
are protocol-dependent. *)classwrap_rpc_context(t:Tezos_rpc.Context.generic):rpc_context=objectmethodbase:Uri.t=t#basemethodgeneric_media_type_call=t#generic_media_type_callmethodcall_service:'m'p'q'i'o.(([<Resto.meth]as'm),unit,'p,'q,'i,'o)Tezos_rpc.Service.t->'p->'q->'i->'otzresultLwt.t=t#call_servicemethodcall_streamed_service:'m'p'q'i'o.(([<Resto.meth]as'm),unit,'p,'q,'i,'o)Tezos_rpc.Service.t->on_chunk:('o->unit)->on_close:(unit->unit)->'p->'q->'i->(unit->unit)tzresultLwt.t=t#call_streamed_service(** Abstracts variables <chain_id> and <block_id> in protocol RPCs
prefixed by "/chains/<chain_id>/blocks/<block_id>/...". *)inherit[Shell_services.chain,Shell_services.block]Environment.proto_rpc_context(t:>Tezos_rpc.Context.t)Shell_services.Blocks.pathend(** The class type [full] allows to create contexts that are
explicitly used by low-level shell functions, while containing
various information (I/O services, RPCs...). Then, depending on the
usage, the type may be coerced into one of its following ascendants
to serve for explicit operations on blocks, chain or daemon for
instance. *)classtypefull=object(** The class Client_context.full provides I/O services for the
client, the wallet, etc. *)inheritClient_context.full(** Base interface provided to call RPCs, i.e., communication
with the node. A client context is defined by mapping all
RPCs protocol-generic to a specific procotol. *)inherit[Shell_services.chain*Shell_services.block]Environment.RPC_context.simple(** Protocol RPCs exposed through the environment (using
an additional chainpath). *)inherit[Shell_services.chain,Shell_services.block]Environment.proto_rpc_contextend(** From a [Client_context.full], the class allows to call RPCs from
the node and those defined by the protocol. *)classwrap_full(t:Client_context.full):full=objectinheritClient_context.proxy_contexttinherit[Shell_services.chain,Shell_services.block]Environment.proto_rpc_context(t:>Tezos_rpc.Context.t)Shell_services.Blocks.pathendletregister_error_kindcategory~id~title~description?ppencodingfrom_errorto_error=letid="client."^Protocol.name^"."^idinregister_error_kindcategory~id~title~description?ppencodingfrom_errorto_error(** Initialization calls that run on start-up. Register the various
protocol encodings. *)let()=letopenData_encoding.Registrationinletdefidids?title?descriptionencoding=Data_encoding.def(String.concat"."(Protocol.name::id::ids))?title?descriptionencodinginregister@@def"parameters"[]Protocol.Parameters_repr.encoding;register~pp:Protocol.Alpha_context.Tez.pp@@def"tez"[]Protocol.Alpha_context.Tez.encoding;register@@def"roll"[]Protocol.Alpha_context.Roll.encoding;register~pp:Protocol.Alpha_context.Fitness.pp@@def"fitness"[]Protocol.Alpha_context.Fitness.encoding;register~pp:Protocol.Alpha_context.Timestamp.pp@@def"timestamp"[]Protocol.Alpha_context.Timestamp.encoding;register~pp:Protocol.Alpha_context.Raw_level.pp@@def"raw_level"[]Protocol.Alpha_context.Raw_level.encoding;register@@def"vote"["ballot"]Protocol.Alpha_context.Vote.ballot_encoding;register@@def"vote"["ballots"]Protocol.Alpha_context.Vote.ballots_encoding;register@@def"vote"["listings"]Protocol.Alpha_context.Vote.listings_encoding;register@@def"seed"[]Protocol.Alpha_context.Seed.seed_encoding;register~pp:Protocol.Alpha_context.Gas.pp@@def"gas"[]Protocol.Alpha_context.Gas.encoding;register~pp:Protocol.Alpha_context.Gas.pp_cost@@def"gas"["cost"]Protocol.Alpha_context.Gas.cost_encoding;register@@def"script"[]Protocol.Alpha_context.Script.encoding;register@@def"script"["expr"]Protocol.Alpha_context.Script.expr_encoding;register@@def"script"["prim"]Protocol.Alpha_context.Script.prim_encoding;register@@def"script"["lazy_expr"]Protocol.Alpha_context.Script.lazy_expr_encoding;register@@def"script"["loc"]Protocol.Alpha_context.Script.location_encoding;register~pp:Protocol.Alpha_context.Contract.pp@@def"contract"[]Protocol.Alpha_context.Contract.encoding;register@@def"contract"["big_map_diff"]Protocol.Alpha_context.Contract.big_map_diff_encoding;register@@def"delegate"["frozen_balance"]Protocol.Alpha_context.Delegate.frozen_balance_encoding;register@@def"delegate"["balance_updates"]Protocol.Alpha_context.Delegate.balance_updates_encoding;register@@def"delegate"["frozen_balance_by_cycles"]Protocol.Alpha_context.Delegate.frozen_balance_by_cycle_encoding;register~pp:Protocol.Alpha_context.Level.pp_full@@def"level"[]Protocol.Alpha_context.Level.encoding;register@@def"operation"[]Protocol.Alpha_context.Operation.encoding;register@@def"operation"["contents"]Protocol.Alpha_context.Operation.contents_encoding;register@@def"operation"["contents_list"]Protocol.Alpha_context.Operation.contents_list_encoding;register@@def"operation"["protocol_data"]Protocol.Alpha_context.Operation.protocol_data_encoding;register@@def"operation"["raw"]Protocol.Alpha_context.Operation.raw_encoding;register@@def"operation"["internal"]Protocol.Alpha_context.Operation.internal_operation_encoding;register@@def"operation"["unsigned"]Protocol.Alpha_context.Operation.unsigned_encoding;register~pp:Protocol.Alpha_context.Period.pp@@def"period"[]Protocol.Alpha_context.Period.encoding;register~pp:Protocol.Alpha_context.Cycle.pp@@def"cycle"[]Protocol.Alpha_context.Cycle.encoding;register@@def"constants"[]Protocol.Alpha_context.Constants.encoding;register@@def"constants"["fixed"]Protocol.Alpha_context.Constants.fixed_encoding;register@@def"constants"["parametric"]Protocol.Alpha_context.Constants.parametric_encoding;register@@def"nonce"[]Protocol.Alpha_context.Nonce.encoding;register@@def"block_header"[]Protocol.Alpha_context.Block_header.encoding;register@@def"block_header"["unsigned"]Protocol.Alpha_context.Block_header.unsigned_encoding;register@@def"block_header"["raw"]Protocol.Alpha_context.Block_header.raw_encoding;register@@def"block_header"["contents"]Protocol.Alpha_context.Block_header.contents_encoding;register@@def"block_header"["shell_header"]Protocol.Alpha_context.Block_header.shell_header_encoding;register@@def"block_header"["protocol_data"]Protocol.Alpha_context.Block_header.protocol_data_encoding;register~pp:Protocol.Alpha_context.Voting_period.pp@@def"voting_period"[]Protocol.Alpha_context.Voting_period.encoding;register@@def"voting_period"["kind"]Protocol.Alpha_context.Voting_period.kind_encoding;register@@def"errors"[]~description:"The full list of RPC errors would be too long to include.It is\n\
available through the RPC `/errors` (GET)."error_encoding