Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file baking_configuration.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317(*****************************************************************************)(* *)(* 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|Disabledtypet={fees:fees_config;nonce:nonce_config;validation:validation_config;retries_on_failure:int;user_activated_upgrades:(int32*Protocol_hash.t)list;liquidity_baking_toggle_vote:Protocol.Alpha_context.Liquidity_baking.liquidity_baking_toggle_vote;per_block_vote_file:stringoption;force:bool;state_recorder:state_recorder_config;extra_operations:Operations_source.toption;}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_liquidity_baking_toggle_vote=Protocol.Alpha_context.Liquidity_baking.LB_passletdefault_force=falseletdefault_state_recorder_config=Filesystemletdefault_extra_operations=Noneletdefault_per_block_vote_file="per_block_votes.json"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;liquidity_baking_toggle_vote=default_liquidity_baking_toggle_vote;force=default_force;state_recorder=default_state_recorder_config;extra_operations=default_extra_operations;per_block_vote_file=None;}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)?(liquidity_baking_toggle_vote=default_liquidity_baking_toggle_vote)?per_block_vote_file?(force=default_force)?(state_recorder=default_state_recorder_config)?extra_operations()=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;liquidity_baking_toggle_vote;per_block_vote_file;force;state_recorder;extra_operations;}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.Liquidity_baking.liquidity_baking_toggle_vote_encodingletforce_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:"Disabled"(Tag1)(constant"disabled")(functionDisabled->Some()|_->None)(fun()->Disabled);]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;liquidity_baking_toggle_vote;per_block_vote_file;force;state_recorder;extra_operations;}->(fees,validation,nonce,retries_on_failure,user_activated_upgrades,liquidity_baking_toggle_vote,per_block_vote_file,force,state_recorder,extra_operations))(fun(fees,validation,nonce,retries_on_failure,user_activated_upgrades,liquidity_baking_toggle_vote,per_block_vote_file,force,state_recorder,extra_operations)->{fees;validation;nonce;retries_on_failure;user_activated_upgrades;liquidity_baking_toggle_vote;per_block_vote_file;force;state_recorder;extra_operations;})(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"liquidity_baking_toggle_vote"liquidity_baking_toggle_vote_config_encoding)(opt"per_block_vote_file"Data_encoding.string)(req"force"force_config_encoding)(req"state_recorder"state_recorder_config_encoding)(opt"extra_operations"Operations_source.encoding))letppfmtt=letjson=Data_encoding.Json.constructencodingtinFormat.fprintffmt"%a"Data_encoding.Json.ppjson