Пример #1
0
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)
Пример #2
0
 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
     )
Пример #3
0
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)
Пример #4
0
 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,
     )
Пример #5
0
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