Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file baking_configuration.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367(*****************************************************************************)(* *)(* Open Source License *)(* Copyright (c) 2021 Nomadic Labs <contact@nomadic-labs.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. *)(* *)(*****************************************************************************)moduleOperations_source=structtypet=|Localof{filename:string}|Remoteof{uri:Uri.t;http_headers:(string*string)listoption}letppppf=function|Local{filename}->Format.pp_print_stringppffilename|Remote{uri;_}->Format.fprintfppf"%a"Uri.ppuriletencoding=letopenData_encodinginunion~tag_size:`Uint8[case(Tag1)~title:"Local"(obj2(req"filename"string)(req"kind"(constant"Local")))(functionLocal{filename}->Some(filename,())|_->None)(fun(filename,())->Local{filename});case(Tag2)~title:"Remote"(obj3(req"uri"string)(opt"http_headers"(list(tup2stringstring)))(req"kind"(constant"Remote")))(function|Remote{uri;http_headers}->Some(Uri.to_stringuri,http_headers,())|_->None)(fun(uri_str,http_headers,())->Remote{uri=Uri.of_stringuri_str;http_headers});]endopenProtocol.Alpha_contexttypefees_config={minimal_fees:Tez.t;minimal_nanotez_per_gas_unit:Q.t;minimal_nanotez_per_byte:Q.t;}typevalidation_config=|Localof{context_path:string}|Node|ContextIndexofAbstract_context_index.ttypenonce_config=Deterministic|Randomtypestate_recorder_config=Filesystem|Memorytypeper_block_votes_config={vote_file:stringoption;liquidity_baking_vote:Protocol.Alpha_context.Per_block_votes.per_block_vote;adaptive_issuance_vote:Protocol.Alpha_context.Per_block_votes.per_block_vote;}typet={fees:fees_config;nonce:nonce_config;validation:validation_config;retries_on_failure:int;user_activated_upgrades:(int32*Protocol_hash.t)list;per_block_votes:per_block_votes_config;force_apply:bool;force:bool;state_recorder:state_recorder_config;extra_operations:Operations_source.toption;dal_node_endpoint:Uri.toption;pre_emptive_forge_time:Time.System.Span.t;}letdefault_fees_config={minimal_fees=(matchTez.of_mutez100LwithNone->assertfalse|Somet->t);minimal_nanotez_per_gas_unit=Q.of_int100;minimal_nanotez_per_byte=Q.of_int1000;}letdefault_validation_config=Node(* Unclear if determinist nonces, and more importantly, if
[supports_deterministic_nonces] is supported. *)letdefault_nonce_config=Randomletdefault_retries_on_failure_config=5letdefault_user_activated_upgrades=[]letdefault_votes_config={vote_file=None;liquidity_baking_vote=Protocol.Alpha_context.Per_block_votes.Per_block_vote_pass;adaptive_issuance_vote=Protocol.Alpha_context.Per_block_votes.Per_block_vote_pass;}letdefault_force=falseletdefault_force_apply=falseletdefault_state_recorder_config=Memoryletdefault_extra_operations=Noneletdefault_pre_emptive_forge_time=Time.System.Span.of_seconds_exn0.letdefault_config={fees=default_fees_config;nonce=default_nonce_config;validation=default_validation_config;retries_on_failure=default_retries_on_failure_config;user_activated_upgrades=default_user_activated_upgrades;per_block_votes=default_votes_config;force_apply=default_force_apply;force=default_force;state_recorder=default_state_recorder_config;extra_operations=default_extra_operations;dal_node_endpoint=None;pre_emptive_forge_time=default_pre_emptive_forge_time;}letmake?(minimal_fees=default_fees_config.minimal_fees)?(minimal_nanotez_per_gas_unit=default_fees_config.minimal_nanotez_per_gas_unit)?(minimal_nanotez_per_byte=default_fees_config.minimal_nanotez_per_byte)?(nonce=default_nonce_config)?context_path?(retries_on_failure=default_retries_on_failure_config)?(user_activated_upgrades=default_user_activated_upgrades)?(votes=default_votes_config)?(force_apply=default_force_apply)?(force=default_force)?(state_recorder=default_state_recorder_config)?extra_operations?dal_node_endpoint?(pre_emptive_forge_time=default_pre_emptive_forge_time)()=letfees={minimal_fees;minimal_nanotez_per_gas_unit;minimal_nanotez_per_byte}inletvalidation=matchcontext_pathwith|None->Node|Somecontext_path->Local{context_path}in{fees;validation;nonce;retries_on_failure;user_activated_upgrades;per_block_votes=votes;force_apply;force;state_recorder;extra_operations;dal_node_endpoint;pre_emptive_forge_time;}letfees_config_encoding:fees_configData_encoding.t=letopenData_encodinginletq_encoding=conv(funq->Q.to_stringq)(funs->Q.of_strings)stringinconv(fun{minimal_fees;minimal_nanotez_per_gas_unit;minimal_nanotez_per_byte}->(minimal_fees,minimal_nanotez_per_gas_unit,minimal_nanotez_per_byte))(fun(minimal_fees,minimal_nanotez_per_gas_unit,minimal_nanotez_per_byte)->{minimal_fees;minimal_nanotez_per_gas_unit;minimal_nanotez_per_byte})(obj3(req"minimal_fees"Tez.encoding)(req"minimal_nanotez_per_gas_unit"q_encoding)(req"minimal_nanotez_per_byte"q_encoding))letvalidation_config_encoding=letopenData_encodinginunion~tag_size:`Uint8[case~title:"Local"(Tag0)(obj1(req"local"string))(functionLocal{context_path}->Somecontext_path|_->None)(funcontext_path->Local{context_path});case~title:"Node"(Tag1)(constant"node")(functionNode->Some()|_->None)(fun()->Node);]letnonce_config_encoding=letopenData_encodinginunion~tag_size:`Uint8[case~title:"Deterministic"(Tag0)(constant"deterministic")(functionDeterministic->Some()|_->None)(fun()->Deterministic);case~title:"Random"(Tag1)(constant"Random")(functionRandom->Some()|_->None)(fun()->Random);]letretries_on_failure_config_encoding=Data_encoding.int31letuser_activate_upgrades_config_encoding=letopenData_encodinginlist(tup2int32Protocol_hash.encoding)letliquidity_baking_toggle_vote_config_encoding=Protocol.Alpha_context.Per_block_votes.liquidity_baking_vote_encodingletadaptive_issuance_vote_config_encoding=Protocol.Alpha_context.Per_block_votes.adaptive_issuance_vote_encodingletper_block_votes_config_encoding=letopenData_encodingindef(String.concat"."[Protocol.name;"per_block_votes_config"])@@conv(fun{vote_file;liquidity_baking_vote;adaptive_issuance_vote}->(vote_file,liquidity_baking_vote,adaptive_issuance_vote))(fun(vote_file,liquidity_baking_vote,adaptive_issuance_vote)->{vote_file;liquidity_baking_vote;adaptive_issuance_vote})(obj3(opt"per_block_vote_file"string)(req"liquidity_baking_vote"liquidity_baking_toggle_vote_config_encoding)(req"adaptive_issuance_vote"adaptive_issuance_vote_config_encoding))letforce_config_encoding=Data_encoding.boolletforce_apply_config_encoding=Data_encoding.boolletstate_recorder_config_encoding=letopenData_encodinginunion~tag_size:`Uint8[case~title:"Filesystem"(Tag0)(constant"filesystem")(functionFilesystem->Some()|_->None)(fun()->Filesystem);case~title:"Memory"(Tag1)(constant"memory")(functionMemory->Some()|_->None)(fun()->Memory);]letencoding:tData_encoding.t=letopenData_encodingindef(String.concat"."[Protocol.name;"baking_configuration"])~title:"Baking configuration"~description:"Baking configuration"@@conv(fun{fees;validation;nonce;retries_on_failure;user_activated_upgrades;per_block_votes;force_apply;force;state_recorder;extra_operations;dal_node_endpoint;pre_emptive_forge_time;}->((fees,validation,nonce,retries_on_failure,user_activated_upgrades,per_block_votes,force_apply,force,state_recorder,pre_emptive_forge_time),(extra_operations,dal_node_endpoint)))(fun((fees,validation,nonce,retries_on_failure,user_activated_upgrades,per_block_votes,force_apply,force,state_recorder,pre_emptive_forge_time),(extra_operations,dal_node_endpoint))->{fees;validation;nonce;retries_on_failure;user_activated_upgrades;per_block_votes;force_apply;force;state_recorder;extra_operations;dal_node_endpoint;pre_emptive_forge_time;})(merge_objs(obj10(req"fees"fees_config_encoding)(req"validation"validation_config_encoding)(req"nonce"nonce_config_encoding)(req"retries_on_failure"retries_on_failure_config_encoding)(req"user_activated_upgrades"user_activate_upgrades_config_encoding)(req"votes"per_block_votes_config_encoding)(req"force_apply"force_apply_config_encoding)(req"force"force_config_encoding)(req"state_recorder"state_recorder_config_encoding)(req"pre_emptive_forge_time"Time.System.Span.encoding))(obj2(opt"extra_operations"Operations_source.encoding)(opt"dal_node_endpoint"Tezos_rpc.Encoding.uri_encoding)))letppfmtt=letjson=Data_encoding.Json.constructencodingtinFormat.fprintffmt"%a"Data_encoding.Json.ppjson