zksync_protobuf_config 0.1.0

Protobuf deserialization for ZKsync configs
Documentation
syntax = "proto3";

package zksync.config.eth;

message ETH {
  optional Sender sender = 1; // required
  optional GasAdjuster gas_adjuster = 2; // required
  optional ETHWatch watcher = 3; // required
  reserved 4; reserved "web3_url";
}

enum ProofSendingMode {
  ONLY_REAL_PROOFS = 0;
  ONLY_SAMPLED_PROOFS = 1;
  SKIP_EVERY_PROOF = 2;
}

enum ProofLoadingMode {
  OLD_PROOF_FROM_DB = 0;
  FRI_PROOF_FROM_GCS = 1;
}

enum PubdataSendingMode {
  CALLDATA = 0;
  BLOBS = 1;
  CUSTOM = 2;
}

message Sender {
  repeated uint64 aggregated_proof_sizes = 1; // ?
  optional uint64 wait_confirmations = 2; // optional
  optional uint64 tx_poll_period = 3; // required; s
  optional uint64 aggregate_tx_poll_period = 4; // required; s
  optional uint64 max_txs_in_flight = 5; // required
  optional ProofSendingMode proof_sending_mode = 6; // required
  optional uint32 max_aggregated_tx_gas = 7; // required; wei?
  optional uint64 max_eth_tx_data_size = 8; // required; ?
  optional uint32 max_aggregated_blocks_to_commit = 9; // required
  optional uint32 max_aggregated_blocks_to_execute = 10; // required
  optional uint64 aggregated_block_commit_deadline = 11; // required; ?
  optional uint64 aggregated_block_prove_deadline = 12; // required; ?
  optional uint64 aggregated_block_execute_deadline = 13; // required; ?
  optional uint64 timestamp_criteria_max_allowed_lag = 14; // required; ?
  optional uint64 l1_batch_min_age_before_execute_seconds = 15; // optional; s
  optional uint64 max_acceptable_priority_fee_in_gwei = 16; // required; gwei
  optional PubdataSendingMode pubdata_sending_mode = 18; // required
  reserved 19; reserved "proof_loading_mode";
}

message GasAdjuster {
  optional uint64 default_priority_fee_per_gas = 1; // required; wei?
  optional uint64 max_base_fee_samples = 2; // required;
  optional double pricing_formula_parameter_a = 3; // required
  optional double pricing_formula_parameter_b = 4; // required
  optional double internal_l1_pricing_multiplier = 5; // required
  optional uint64 internal_enforced_l1_gas_price = 6; // optional; wei
  optional uint64 internal_enforced_pubdata_price = 12; // optional; wei
  optional uint64 poll_period = 7; // required; s
  optional uint64 max_l1_gas_price = 8; // optional; wei?
  optional uint64 num_samples_for_blob_base_fee_estimate = 9; // required;
  optional double internal_pubdata_pricing_multiplier = 10; // required;
  optional uint64 max_blob_base_fee = 11; // optional; wei
}

message ETHWatch {
  optional uint64 confirmations_for_eth_event = 1; // optional
  optional uint64 eth_node_poll_interval = 2; // required; ms
}