Tezos_alpha_test_helpers.Scenario_opThis module gathers many protocol operations in the form of scenarios. This includes (but is not limited to) transfers and such (stake, unstake...), as well as various ways to forge double signings.
val normalize_parameters :
Adaptive_issuance_helpers.staking_parameters ->
State.t ->
Adaptive_issuance_helpers.staking_parametersval set_delegate_params :
string ->
Adaptive_issuance_helpers.staking_parameters ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosSet delegate parameters for the given delegate
val add_account :
?algo:Signature.algo ->
Tezos_base.TzPervasives.String.Map.key ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosAdd a new account with the given name
val reveal :
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosReveal operation
val transfer :
Tezos_base.TzPervasives.String.Map.key ->
Tezos_base.TzPervasives.String.Map.key ->
Tez_helpers.Ez_tez.tez_quantity ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosTransfer from src to dst
val current_cycle :
Block.block ->
Tezos_alpha_test_helpers.State_account.Cycle.cycleval set_delegate :
Tezos_base.TzPervasives.String.Map.key ->
Tezos_base.TzPervasives.String.t option ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosSet delegate for src. If delegate_name_opt = None, then unset current delegate
val stake :
Tezos_base.TzPervasives.String.Map.key ->
Tez_helpers.Ez_tez.tez_quantity ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosStake operation
val unstake :
Tezos_base.TzPervasives.String.Map.key ->
Tez_helpers.Ez_tez.tez_quantity ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosunstake operation
val finalize_unstake :
Tezos_base.TzPervasives.String.Map.key ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosfinalize unstake operation
val update_consensus_key_ :
?proof_signer:string ->
?force_no_signer:bool ->
ck_name:string ->
string ->
(Block.block * State.t) ->
(State.t * Tezos_protocol_alpha.Protocol.Alpha_context.packed_operation list,
Tezos_base.TzPervasives.tztrace)
Stdlib.result
Lwt.tval update_consensus_key :
?proof_signer:string ->
?force_no_signer:bool ->
ck_name:string ->
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval update_companion_key_ :
?proof_signer:string ->
?force_no_signer:bool ->
ck_name:string ->
string ->
(Block.block * State.t) ->
(State.t * Tezos_protocol_alpha.Protocol.Alpha_context.packed_operation list,
Tezos_base.TzPervasives.tztrace)
Stdlib.result
Lwt.tval update_companion_key :
?proof_signer:string ->
?force_no_signer:bool ->
ck_name:string ->
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval check_pending_slashings :
loc:string ->
(Block.t * State.t) ->
unit Tezos_base.TzPervasives.tzresult Lwt.tval order_attestations :
correct_order:bool ->
'a Tezos_raw_protocol_alpha__Alpha_context.operation ->
'a Tezos_raw_protocol_alpha__Alpha_context.operation ->
'a Tezos_raw_protocol_alpha__Alpha_context.operation
* 'a Tezos_raw_protocol_alpha__Alpha_context.operationDouble attestation helpers
val op_double_attestation :
?correct_order:bool ->
Tezos_protocol_alpha.Protocol.Alpha_context.Kind.attestation
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Kind.attestation
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.t ->
Context.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.packedval op_double_preattestation :
?correct_order:bool ->
Tezos_protocol_alpha.Protocol.Alpha_context.Kind.preattestation
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Kind.preattestation
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.t ->
Context.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.packedval order_block_hashes :
correct_order:bool ->
Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_header ->
Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_header ->
Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_header
* Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_headerval op_double_baking :
?correct_order:bool ->
Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_header ->
Tezos_protocol_alpha.Protocol.Alpha_context.Block_header.block_header ->
Context.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.Operation.packedval double_bake_op :
string list ->
(Block.t * State.t) ->
(Block.t * State.t, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.tdouble_bake_op delegate_names (block, state) performs a double baking with the given delegate names. The first delegate in the list bakes the new main branch. All delegates (including the first) will bake two other blocks at the same level/different round.
val double_bake :
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval double_bake_many :
string list ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval double_attest_op :
?other_bakers:(string * string) ->
op:
(manager_pkh:Tezos_alpha_test_helpers.Signature.Public_key_hash.t ->
attested_block:Block.t ->
('a Tezos_protocol_alpha.Protocol.Alpha_context.Kind.consensus
Tezos_protocol_alpha.Protocol.Alpha_context.operation,
Tezos_base.TzPervasives.tztrace)
Stdlib.result
Lwt.t) ->
op_evidence:
('a Tezos_protocol_alpha.Protocol.Alpha_context.Kind.consensus
Tezos_protocol_alpha.Protocol.Alpha_context.operation ->
'a Tezos_protocol_alpha.Protocol.Alpha_context.Kind.consensus
Tezos_protocol_alpha.Protocol.Alpha_context.operation ->
Context.t ->
Tezos_protocol_alpha.Protocol.Alpha_context.packed_operation) ->
kind:Tezos_protocol_alpha.Protocol.Misbehaviour_repr.kind ->
string list ->
(Block.t * State.t) ->
(Block.t * State.t, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.tdouble_attest_op ?other_bakers ~op ~op_evidence ~kind delegate_names (block, state) performs a double (pre)attestation with the given delegate names. Starting at block level `n`, it creates two 2-block branches and all delegates will (pre)attest the two blocks at level `n+2`. other_bakers can be used to force using specific bakers to avoid reusing forbidden ones
val double_attest_ :
?other_bakers:(string * string) ->
string list ->
(Block.t * State.t) ->
(Block.t * State.t, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.tval double_attest_many :
?other_bakers:(string * string) ->
string list ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval double_attest :
?other_bakers:(string * string) ->
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval double_preattest_ :
?other_bakers:(string * string) ->
string list ->
(Block.t * State.t) ->
(Block.t * State.t, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.tval double_preattest_many :
?other_bakers:(string * string) ->
string list ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval double_preattest :
?other_bakers:(string * string) ->
string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval cycle_from_level :
int32 ->
int32 ->
Tezos_alpha_test_helpers.State_account.Cycle.cycleval update_state_denunciation :
(Block.t * State.t) ->
State.double_signing_state ->
(State.t * bool, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.tval make_denunciations_op :
?single:bool ->
?rev:bool ->
?filter:(State.double_signing_state -> bool) ->
(Block.t * State.t) ->
(State.t * Tezos_protocol_alpha.Protocol.Alpha_context.packed_operation list,
Tezos_base.TzPervasives.tztrace)
Stdlib.result
Lwt.tmake_denunciations_op ?single ?rev ?filter () denounces all double signers in the state. If single is set, only one denunciation is made. If rev is set, the denunciations are made in reverse order. If filter is set, only the double signers for which the filter returns true are denounced.
val make_denunciations :
?single:bool ->
?rev:bool ->
?filter:(State.double_signing_state -> bool) ->
unit ->
(Block.t * State.t, Scenario_base.t) Scenario_dsl.scenariosval add_account_with_funds :
?algo:Signature.algo ->
Tezos_base.TzPervasives.String.Map.key ->
funder:Tezos_base.TzPervasives.String.Map.key ->
Tez_helpers.Ez_tez.tez_quantity ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosCreate an account and give an initial balance funded by funder
val start_payload : (Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval batch :
source:string ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenariosval add_batch_to_operations :
?mode_after:State.operation_mode ->
Scenario_base.t ->
State.t Tezos_base.TzPervasives.tzresult Lwt.tval end_batch :
?bake_after:bool ->
?mode_after:State.operation_mode ->
unit ->
(Scenario_base.t, Scenario_base.t) Scenario_dsl.scenarios