package octez-protocol-020-PsParisC-libs
These generators aims at generating operations which are not necessary correct. The goal is to tests functions such as
Operation.compare
with as much as possible parameters that play a role in operation weight
computation.
When adding a new operation, one should also add its weight computation, hence knows which kind of generator should be provided for this new operation.
Operations kind labelling.
val manager_kinds :
[> `KDal_publish_commitment
| `KDelegation
| `KIncrease_paid_storage
| `KOrigination
| `KRegister_global_constant
| `KReveal
| `KSc_rollup_add_messages
| `KSc_rollup_cement
| `KSc_rollup_execute_outbox_message
| `KSc_rollup_originate
| `KSc_rollup_publish
| `KSc_rollup_recover_bond
| `KSc_rollup_refute
| `KSc_rollup_timeout
| `KSet_deposits_limit
| `KTransaction
| `KTransfer_ticket ]
list
val pp_kind :
Format.formatter ->
[< `KActivate_account
| `KAttestation
| `KBallot
| `KDal_attestation
| `KDouble_attestation
| `KDouble_baking
| `KDouble_preattestation
| `KManager
| `KPreattestation
| `KProposals
| `KSeed_nonce_revelation
| `KVdf_revelation ] ->
unit
Generators
Selection in hashes list
val gen_block_hash : Tezos_base.TzPervasives.Block_hash.t QCheck2.Gen.t
val random_payload_hash :
Tezos_protocol_020_PsParisC.Protocol.Block_payload_hash.t QCheck2.Gen.t
val gen_algo : Tezos_base.TzPervasives.Signature.algo QCheck2.Gen.t
val random_seed : bytes QCheck2.Gen.t
val random_pk : Tezos_base.TzPervasives.Signature.public_key QCheck2.Gen.t
val random_signature : Tezos_base.TzPervasives.Signature.t QCheck2.Gen.t
val random_contract_hash :
Tezos_protocol_020_PsParisC.Protocol.Contract_hash.t QCheck2.Gen.t
val block_headers :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Block_header.block_header
list
val random_block_header :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Block_header.block_header
QCheck2.Gen.t
val random_sc_rollup :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Sc_rollup.Address.t
QCheck2.Gen.t
val random_proto : Tezos_base.TzPervasives.Protocol_hash.t QCheck2.Gen.t
Operations parameters generators
val random_shell : Tezos_base.Operation.shell_header QCheck2.Gen.t
val gen_slot :
Tezos_raw_protocol_020_PsParisC__Alpha_context.Slot.t QCheck2.Gen.t
val generate_consensus_content :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.consensus_content
QCheck2.Gen.t
val gen_amount :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Tez.t QCheck2.Gen.t
val gen_amount_in_bytes : Z.t QCheck2.Gen.t
val random_contract :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Contract.t QCheck2.Gen.t
val gen_counters :
Tezos_raw_protocol_020_PsParisC__Alpha_context.Manager_counter.t
QCheck2.Gen.t
val gen_ticket_amounts :
Tezos_protocol_020_PsParisC.Protocol.Ticket_amount.t QCheck2.Gen.t
val gen_gas_limit :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Gas.Arith.integral
QCheck2.Gen.t
val gen_storage_limit : Z.t QCheck2.Gen.t
val nonces :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Nonce.nonce list
val random_nonce :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Nonce.nonce QCheck2.Gen.t
val vdf_solutions :
(Tezos_protocol_020_PsParisC.Environment.Vdf.result
* Tezos_protocol_020_PsParisC.Environment.Vdf.proof)
list
Generators for each Operation Kind
val generate_op :
'kind Tezos_protocol_020_PsParisC.Protocol.Alpha_context.contents
QCheck2.Gen.t ->
'kind0 Tezos_protocol_020_PsParisC.Protocol.Alpha_context.operation
QCheck2.Gen.t
val generate_seed_nonce_revelation :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.seed_nonce_revelation
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.contents
QCheck2.Gen.t
val random_period : int32 QCheck2.Gen.t
val generate_manager_aux :
?source:Tezos_protocol_020_PsParisC.Protocol.Alpha_context.public_key_hash ->
'a Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t ->
'b Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.manager
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.contents
QCheck2.Gen.t
val generate_manager :
?source:Tezos_protocol_020_PsParisC.Protocol.Alpha_context.public_key_hash ->
'a Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t ->
'a Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.manager
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.operation
QCheck2.Gen.t
val generate_register_global_constant :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.register_global_constant
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t
val generate_dal_publish_commitment :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.dal_publish_commitment
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t
val generate_sc_rollup_add_messages :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.sc_rollup_add_messages
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t
val sc_dummy_commitment :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Sc_rollup.Commitment.t
val generate_sc_rollup_execute_outbox_message :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.sc_rollup_execute_outbox_message
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t
val generate_sc_rollup_recover_bond :
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.Kind.sc_rollup_recover_bond
Tezos_protocol_020_PsParisC.Protocol.Alpha_context.manager_operation
QCheck2.Gen.t
By Kind Operation Generator
val generator_of :
?source:Tezos_protocol_020_PsParisC.Protocol.Alpha_context.public_key_hash ->
[< `KDal_publish_commitment
| `KDelegation
| `KIncrease_paid_storage
| `KOrigination
| `KRegister_global_constant
| `KReveal
| `KSc_rollup_add_messages
| `KSc_rollup_cement
| `KSc_rollup_execute_outbox_message
| `KSc_rollup_originate
| `KSc_rollup_publish
| `KSc_rollup_recover_bond
| `KSc_rollup_refute
| `KSc_rollup_timeout
| `KSet_deposits_limit
| `KTransaction
| `KTransfer_ticket ] ->
Tezos_raw_protocol_020_PsParisC__Alpha_context.packed_operation QCheck2.Gen.t
val generate_non_manager_operation :
Tezos_raw_protocol_020_PsParisC__Alpha_context.packed_operation QCheck2.Gen.t
val generate_manager_operation :
int ->
Tezos_raw_protocol_020_PsParisC__Alpha_context.packed_operation QCheck2.Gen.t
The default upper bound on the number of manager operations in a batch.
As of December 2022, there is no batch maximal size enforced anywhere in the protocol. However, the Octez Shell only accepts batches of at most operations_batch_size
operations, which has a default value of 50
in src/lib_shell_services/shell_limits.ml
. The protocol tests do not necessarily have to align with this value, but there is no reason either to choose a different one. Therefore, they use the same bound, but decremented once to account for some tests adding a reveal at the front of the batch as needed.
val generate_operation :
([ `KActivate_account
| `KAttestation
| `KBallot
| `KDouble_attestation
| `KDouble_baking
| `KDouble_preattestation
| `KManager
| `KPreattestation
| `KProposals
| `KSeed_nonce_revelation
| `KVdf_revelation ]
* (Tezos_protocol_environment_020_PsParisC.Operation_hash.t
* Tezos_raw_protocol_020_PsParisC__Alpha_context.packed_operation))
QCheck2.Gen.t