Source file constants_parametric_previous_repr.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
type t = {
  preserved_cycles : int;
  blocks_per_cycle : int32;
  blocks_per_commitment : int32;
  blocks_per_stake_snapshot : int32;
  cycles_per_voting_period : int32;
  hard_gas_limit_per_operation : Gas_limit_repr.Arith.integral;
  hard_gas_limit_per_block : Gas_limit_repr.Arith.integral;
  proof_of_work_threshold : int64;
  tokens_per_roll : Tez_repr.t;
  seed_nonce_revelation_tip : Tez_repr.t;
  origination_size : int;
  baking_reward_fixed_portion : Tez_repr.t;
  baking_reward_bonus_per_slot : Tez_repr.t;
  endorsing_reward_per_slot : Tez_repr.t;
  cost_per_byte : Tez_repr.t;
  hard_storage_limit_per_operation : Z.t;
  quorum_min : int32;
  quorum_max : int32;
  min_proposal_quorum : int32;
  liquidity_baking_subsidy : Tez_repr.t;
  liquidity_baking_sunset_level : int32;
  liquidity_baking_toggle_ema_threshold : int32;
  max_operations_time_to_live : int;
  minimal_block_delay : Period_repr.t;
  delay_increment_per_round : Period_repr.t;
  minimal_participation_ratio : Ratio_repr.t;
  consensus_committee_size : int;
  consensus_threshold : int;
  max_slashing_period : int;
  frozen_deposits_percentage : int;
  double_baking_punishment : Tez_repr.t;
  ratio_of_frozen_deposits_slashed_per_double_endorsement : Ratio_repr.t;
  initial_seed : State_hash.t option;
  cache_script_size : int;
  cache_stake_distribution_cycles : int;
  cache_sampler_state_cycles : int;
  tx_rollup_enable : bool;
  tx_rollup_origination_size : int;
  tx_rollup_hard_size_limit_per_inbox : int;
  tx_rollup_hard_size_limit_per_message : int;
  tx_rollup_commitment_bond : Tez_repr.t;
  tx_rollup_finality_period : int;
  tx_rollup_withdraw_period : int;
  tx_rollup_max_inboxes_count : int;
  tx_rollup_max_messages_per_inbox : int;
  tx_rollup_max_commitments_count : int;
  tx_rollup_cost_per_byte_ema_factor : int;
  tx_rollup_max_ticket_payload_size : int;
  tx_rollup_max_withdrawals_per_batch : int;
  tx_rollup_rejection_max_proof_size : int;
  tx_rollup_sunset_level : int32;
  sc_rollup_enable : bool;
  sc_rollup_origination_size : int;
  sc_rollup_challenge_window_in_blocks : int;
  sc_rollup_max_available_messages : int;
}
let encoding =
  let open Data_encoding in
  conv
    (fun c ->
      ( ( c.preserved_cycles,
          c.blocks_per_cycle,
          c.blocks_per_commitment,
          c.blocks_per_stake_snapshot,
          c.cycles_per_voting_period,
          c.hard_gas_limit_per_operation,
          c.hard_gas_limit_per_block,
          c.proof_of_work_threshold,
          c.tokens_per_roll ),
        ( ( c.seed_nonce_revelation_tip,
            c.origination_size,
            c.baking_reward_fixed_portion,
            c.baking_reward_bonus_per_slot,
            c.endorsing_reward_per_slot,
            c.cost_per_byte,
            c.hard_storage_limit_per_operation,
            c.quorum_min ),
          ( ( c.quorum_max,
              c.min_proposal_quorum,
              c.liquidity_baking_subsidy,
              c.liquidity_baking_sunset_level,
              c.liquidity_baking_toggle_ema_threshold,
              c.max_operations_time_to_live,
              c.minimal_block_delay,
              c.delay_increment_per_round,
              c.consensus_committee_size,
              c.consensus_threshold ),
            ( ( c.minimal_participation_ratio,
                c.max_slashing_period,
                c.frozen_deposits_percentage,
                c.double_baking_punishment,
                c.ratio_of_frozen_deposits_slashed_per_double_endorsement,
                c.initial_seed ),
              ( ( c.cache_script_size,
                  c.cache_stake_distribution_cycles,
                  c.cache_sampler_state_cycles ),
                ( ( ( c.tx_rollup_enable,
                      c.tx_rollup_origination_size,
                      c.tx_rollup_hard_size_limit_per_inbox,
                      c.tx_rollup_hard_size_limit_per_message,
                      c.tx_rollup_max_withdrawals_per_batch,
                      c.tx_rollup_commitment_bond,
                      c.tx_rollup_finality_period,
                      c.tx_rollup_withdraw_period,
                      c.tx_rollup_max_inboxes_count,
                      c.tx_rollup_max_messages_per_inbox ),
                    ( c.tx_rollup_max_commitments_count,
                      c.tx_rollup_cost_per_byte_ema_factor,
                      c.tx_rollup_max_ticket_payload_size,
                      c.tx_rollup_rejection_max_proof_size,
                      c.tx_rollup_sunset_level ) ),
                  ( c.sc_rollup_enable,
                    c.sc_rollup_origination_size,
                    c.sc_rollup_challenge_window_in_blocks,
                    c.sc_rollup_max_available_messages ) ) ) ) ) ) ))
    (fun ( ( preserved_cycles,
             blocks_per_cycle,
             blocks_per_commitment,
             blocks_per_stake_snapshot,
             cycles_per_voting_period,
             hard_gas_limit_per_operation,
             hard_gas_limit_per_block,
             proof_of_work_threshold,
             tokens_per_roll ),
           ( ( seed_nonce_revelation_tip,
               origination_size,
               baking_reward_fixed_portion,
               baking_reward_bonus_per_slot,
               endorsing_reward_per_slot,
               cost_per_byte,
               hard_storage_limit_per_operation,
               quorum_min ),
             ( ( quorum_max,
                 min_proposal_quorum,
                 liquidity_baking_subsidy,
                 liquidity_baking_sunset_level,
                 liquidity_baking_toggle_ema_threshold,
                 max_operations_time_to_live,
                 minimal_block_delay,
                 delay_increment_per_round,
                 consensus_committee_size,
                 consensus_threshold ),
               ( ( minimal_participation_ratio,
                   max_slashing_period,
                   frozen_deposits_percentage,
                   double_baking_punishment,
                   ratio_of_frozen_deposits_slashed_per_double_endorsement,
                   initial_seed ),
                 ( ( cache_script_size,
                     cache_stake_distribution_cycles,
                     cache_sampler_state_cycles ),
                   ( ( ( tx_rollup_enable,
                         tx_rollup_origination_size,
                         tx_rollup_hard_size_limit_per_inbox,
                         tx_rollup_hard_size_limit_per_message,
                         tx_rollup_max_withdrawals_per_batch,
                         tx_rollup_commitment_bond,
                         tx_rollup_finality_period,
                         tx_rollup_withdraw_period,
                         tx_rollup_max_inboxes_count,
                         tx_rollup_max_messages_per_inbox ),
                       ( tx_rollup_max_commitments_count,
                         tx_rollup_cost_per_byte_ema_factor,
                         tx_rollup_max_ticket_payload_size,
                         tx_rollup_rejection_max_proof_size,
                         tx_rollup_sunset_level ) ),
                     ( sc_rollup_enable,
                       sc_rollup_origination_size,
                       sc_rollup_challenge_window_in_blocks,
                       sc_rollup_max_available_messages ) ) ) ) ) ) ) ->
      {
        preserved_cycles;
        blocks_per_cycle;
        blocks_per_commitment;
        blocks_per_stake_snapshot;
        cycles_per_voting_period;
        hard_gas_limit_per_operation;
        hard_gas_limit_per_block;
        proof_of_work_threshold;
        tokens_per_roll;
        seed_nonce_revelation_tip;
        origination_size;
        baking_reward_fixed_portion;
        baking_reward_bonus_per_slot;
        endorsing_reward_per_slot;
        cost_per_byte;
        hard_storage_limit_per_operation;
        quorum_min;
        quorum_max;
        min_proposal_quorum;
        liquidity_baking_subsidy;
        liquidity_baking_sunset_level;
        liquidity_baking_toggle_ema_threshold;
        max_operations_time_to_live;
        minimal_block_delay;
        delay_increment_per_round;
        minimal_participation_ratio;
        max_slashing_period;
        consensus_committee_size;
        consensus_threshold;
        frozen_deposits_percentage;
        double_baking_punishment;
        ratio_of_frozen_deposits_slashed_per_double_endorsement;
        initial_seed;
        cache_script_size;
        cache_stake_distribution_cycles;
        cache_sampler_state_cycles;
        tx_rollup_enable;
        tx_rollup_origination_size;
        tx_rollup_hard_size_limit_per_inbox;
        tx_rollup_hard_size_limit_per_message;
        tx_rollup_max_withdrawals_per_batch;
        tx_rollup_commitment_bond;
        tx_rollup_finality_period;
        tx_rollup_withdraw_period;
        tx_rollup_max_inboxes_count;
        tx_rollup_max_messages_per_inbox;
        tx_rollup_max_commitments_count;
        tx_rollup_cost_per_byte_ema_factor;
        tx_rollup_max_ticket_payload_size;
        tx_rollup_rejection_max_proof_size;
        tx_rollup_sunset_level;
        sc_rollup_enable;
        sc_rollup_origination_size;
        sc_rollup_challenge_window_in_blocks;
        sc_rollup_max_available_messages;
      })
    (merge_objs
       (obj9
          (req "preserved_cycles" uint8)
          (req "blocks_per_cycle" int32)
          (req "blocks_per_commitment" int32)
          (req "blocks_per_stake_snapshot" int32)
          (req "cycles_per_voting_period" int32)
          (req
             "hard_gas_limit_per_operation"
             Gas_limit_repr.Arith.z_integral_encoding)
          (req
             "hard_gas_limit_per_block"
             Gas_limit_repr.Arith.z_integral_encoding)
          (req "proof_of_work_threshold" int64)
          (req "tokens_per_roll" Tez_repr.encoding))
       (merge_objs
          (obj8
             (req "seed_nonce_revelation_tip" Tez_repr.encoding)
             (req "origination_size" int31)
             (req "baking_reward_fixed_portion" Tez_repr.encoding)
             (req "baking_reward_bonus_per_slot" Tez_repr.encoding)
             (req "endorsing_reward_per_slot" Tez_repr.encoding)
             (req "cost_per_byte" Tez_repr.encoding)
             (req "hard_storage_limit_per_operation" z)
             (req "quorum_min" int32))
          (merge_objs
             (obj10
                (req "quorum_max" int32)
                (req "min_proposal_quorum" int32)
                (req "liquidity_baking_subsidy" Tez_repr.encoding)
                (req "liquidity_baking_sunset_level" int32)
                (req "liquidity_baking_toggle_ema_threshold" int32)
                (req "max_operations_time_to_live" int16)
                (req "minimal_block_delay" Period_repr.encoding)
                (req "delay_increment_per_round" Period_repr.encoding)
                (req "consensus_committee_size" int31)
                (req "consensus_threshold" int31))
             (merge_objs
                (obj6
                   (req "minimal_participation_ratio" Ratio_repr.encoding)
                   (req "max_slashing_period" int31)
                   (req "frozen_deposits_percentage" int31)
                   (req "double_baking_punishment" Tez_repr.encoding)
                   (req
                      "ratio_of_frozen_deposits_slashed_per_double_endorsement"
                      Ratio_repr.encoding)
                   (opt "initial_seed" State_hash.encoding))
                (merge_objs
                   (obj3
                      (req "cache_script_size" int31)
                      (req "cache_stake_distribution_cycles" int8)
                      (req "cache_sampler_state_cycles" int8))
                   (merge_objs
                      (merge_objs
                         (obj10
                            (req "tx_rollup_enable" bool)
                            (req "tx_rollup_origination_size" int31)
                            (req "tx_rollup_hard_size_limit_per_inbox" int31)
                            (req "tx_rollup_hard_size_limit_per_message" int31)
                            (req "tx_rollup_max_withdrawals_per_batch" int31)
                            (req "tx_rollup_commitment_bond" Tez_repr.encoding)
                            (req "tx_rollup_finality_period" int31)
                            (req "tx_rollup_withdraw_period" int31)
                            (req "tx_rollup_max_inboxes_count" int31)
                            (req "tx_rollup_max_messages_per_inbox" int31))
                         (obj5
                            (req "tx_rollup_max_commitments_count" int31)
                            (req "tx_rollup_cost_per_byte_ema_factor" int31)
                            (req "tx_rollup_max_ticket_payload_size" int31)
                            (req "tx_rollup_rejection_max_proof_size" int31)
                            (req "tx_rollup_sunset_level" int32)))
                      (obj4
                         (req "sc_rollup_enable" bool)
                         (req "sc_rollup_origination_size" int31)
                         (req "sc_rollup_challenge_window_in_blocks" int31)
                         (req "sc_rollup_max_available_messages" int31))))))))