def scenario(contract, storage, round_duration, proto): if proto is None: proto = 'alpha' assert proto in {'alpha', 'babylon'}, 'unknown protocol' protos = { 'alpha': (constants.ALPHA, constants.ALPHA_DAEMON), 'babylon': (constants.BABYLON, constants.BABYLON_DAEMON), } proto_hash, proto_daemon = protos[proto] if contract: assert os.path.isfile(contract), f'{contract} is not a file' if storage is None: storage = 'unit' with Sandbox(paths.TEZOS_HOME, constants.IDENTITIES) as sandbox: parameters = dict(constants.ALPHA_PARAMETERS) parameters["round_durations"] = [ str(round_duration), str(2 * round_duration), ] sandbox.add_node(1, params=constants.NODE_PARAMS) utils.activate_protocol(sandbox.client(1), proto_hash, parameters) accounts = [f'bootstrap{i}' for i in range(1, 6)] sandbox.add_baker(1, accounts, proto=proto_daemon) client = sandbox.client(1) if contract: args = ['--init', storage, '--burn-cap', '10.0'] sender = 'bootstrap2' amount = 0 client.originate('my_contract', sender, amount, sender, contract, args) while 1: client.get_head() time.sleep(round_duration)
def test_add_initial_nodes(self, sandbox: Sandbox): for i in range(NUM_NODES): sandbox.add_node(i, params=constants.NODE_PARAMS) parameters = dict(protocol.PREV_PARAMETERS) parameters["blocks_per_voting_period"] = BLOCKS_PER_VOTING_PERIOD utils.activate_protocol( sandbox.client(0), PROTO_A, parameters, activate_in_the_past=True )
def activate( client, parameters=PARAMETERS, proto=HASH, timestamp=None, activate_in_the_past=False, ): utils.activate_protocol(client, proto, parameters, timestamp, activate_in_the_past)
def test_activate_proto_a(self, sandbox: Sandbox): parameters = protocol.get_parameters(protocol.Protocol.PREV) parameters["blocks_per_voting_period"] = BLOCKS_PER_VOTING_PERIOD utils.activate_protocol( sandbox.client(0), PROTO_A, parameters=parameters, activate_in_the_past=True, )
def _update_node_to_protocol(sandbox, node_idx): # Vanilla client (not mockup, not proxy) node_client = sandbox.client(node_idx) # step 1 utils.activate_protocol(node_client, _PROTO) time.sleep(2) # step 2 node_client.bake("bootstrap1") metadata_json = node_client.rpc(verb="get", path="/chains/main/blocks/head/metadata") assert metadata_json['protocol'] == _PROTO