Exemple #1
0
 def test_get_allowance_callback(self, client: Client, token_contract: str,
                                 view):
     reset_viewer(client, view)
     client.fa12_get_allowance_callback(token_contract, 'bootstrap2',
                                        'bootstrap3', view, BURN_CAP_ARGS)
     client.bake('bootstrap5', BAKE_ARGS)
     utils.assert_storage_contains(client, view, '0')
Exemple #2
0
 def test_vote_for_delegate_b4_vote_for_b5(self, client: Client):
     b_5 = IDENTITIES['bootstrap5']['identity']
     client.transfer(0, "bootstrap4", "vote_for_delegate",
                     ['-arg', f'(Some "{b_5}")', '--burn-cap', '10'])
     client.bake('bootstrap5', BAKE_ARGS)
     storage = client.get_storage('vote_for_delegate')
     assert re.search(b_5, storage)
Exemple #3
0
 def test_originate_contract_noop(self, client: Client):
     contract = path.join(CONTRACT_PATH, 'opcodes', 'noop.tz')
     client.remember('noop', contract)
     client.typecheck(contract)
     client.originate('noop', 1000, 'bootstrap1', contract,
                      ['--burn-cap', '0.295'])
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #4
0
    def test_approve(self, client: Client, token_contract: str):
        client.fa12_approve(token_contract, 20, 'bootstrap2', 'bootstrap3',
                            BURN_CAP_ARGS)
        client.bake('bootstrap5', BAKE_ARGS)

        assert check_expected_allowance(client, token_contract, 'bootstrap2',
                                        'bootstrap3', 20)
Exemple #5
0
 def test_chain_id_authentication_origination(self, client: Client,
                                              session):
     path = os.path.join(CONTRACT_PATH, 'mini_scenarios',
                         'authentication.tz')
     pubkey = IDENTITIES['bootstrap1']['public']
     originate(client, session, path, f'Pair 0 "{pubkey}"', 1000)
     client.bake('bootstrap5', BAKE_ARGS)
Exemple #6
0
 def test_deploy_multisig(self, client: Client, session: dict):
     keys = session['keys']
     deployment = client.deploy_msig(
         'msig2', 100, 'bootstrap1', 2, keys, ['--burn-cap', '100']
     )
     session['msig'] = deployment.contract
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #7
0
 def test_manager_withdraw_delegate(self, client: Client):
     client.withdraw_delegate('manager', [])
     client.bake('bootstrap5', BAKE_ARGS)
     client.withdraw_delegate('delegatable_target', [])
     client.bake('bootstrap5', BAKE_ARGS)
     assert client.get_delegate('manager', []).delegate is None
     assert client.get_delegate('delegatable_target', []).delegate is None
Exemple #8
0
 def test_bake_last_block_of_proposal_period(self, client: Client):
     client.bake('bootstrap1', BAKE_ARGS)
     period_info = client.get_current_period()
     metadata = client.get_metadata()
     meta_level = metadata["level"]
     level_info = metadata["level_info"]
     meta_period_info = metadata["voting_period_info"]
     expected_commitment = meta_level["expected_commitment"]
     deprecated_period_kind = metadata["voting_period_kind"]
     period_index = metadata["level"]["voting_period"]
     period_position = metadata["level"]["voting_period_position"]
     level = client.get_current_level()
     # check if metadata has the same value as the level and voting period,
     # see inline comment in alpha apply.ml. This is tested here because the
     # level of metadata and current level use the compatibility encoding
     # that contains the voting period information
     assert meta_level == level
     assert level["level"] == level_info["level"]
     assert level["level_position"] == level_info["level_position"]
     assert level["cycle"] == level_info["cycle"]
     assert level["cycle_position"] == level_info["cycle_position"]
     assert expected_commitment == level_info["expected_commitment"]
     assert period_index == period_info["voting_period"]["index"]
     assert deprecated_period_kind == "testing_vote"
     assert period_position == period_info["position"]
     assert level["level_position"] == 7
     assert period_info["voting_period"]["index"] == 1
     assert period_info["voting_period"]["kind"] == "proposal"
     assert period_info["voting_period"]["start_position"] == 4
     assert period_info["position"] == 3
     assert period_info["remaining"] == 0
     assert meta_period_info == period_info
Exemple #9
0
    def test_transfer_from_manager_to_no_default_with_args(
            self, client: Client):
        arg = 'Left Unit'
        client.transfer(0, 'manager', 'target_no_default', ['--arg', arg])
        client.bake('bootstrap5', BAKE_ARGS)

        client.call('manager', 'target_no_default', ['--arg', arg])
        client.bake('bootstrap5', BAKE_ARGS)
Exemple #10
0
 def test_call(self, client: Client, session: dict):
     contract = session['contract']
     bootstrap3 = '"tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU"'
     transfer = client.call('bootstrap2', contract,
                            ['--arg', bootstrap3])
     client.bake('bootstrap5', BAKE_ARGS)
     assert utils.check_block_contains_operations(client,
                                                  [transfer.operation_hash])
Exemple #11
0
 def test_bake_one_block(self, client: Client):
     client.bake('bootstrap1', BAKE_ARGS)
     period_info = client.get_current_period()
     assert period_info["voting_period"]["index"] == 1
     assert period_info["voting_period"]["kind"] == "proposal"
     assert period_info["voting_period"]["start_position"] == 4
     assert period_info["position"] == 1
     assert period_info["remaining"] == 2
Exemple #12
0
 def test_operation_size_originate_munch_contract(self, client: Client):
     contract = path.join(CONTRACT_PATH, 'opcodes', 'munch.tz')
     client.remember('munch', contract)
     client.typecheck(contract)
     client.originate(
         'munch', 1000, 'bootstrap1', contract, ['--burn-cap', '0.295']
     )
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #13
0
 def test_get_total_supply_callback(self, client: Client,
                                    token_contract: str, view):
     reset_viewer(client, view)
     client.fa12_get_total_supply_callback(token_contract, 'bootstrap2',
                                           view, BURN_CAP_ARGS)
     client.bake('bootstrap5', BAKE_ARGS)
     expected = '20000'
     utils.assert_storage_contains(client, view, expected)
Exemple #14
0
    def test_delegate_withdraw(self, client: Client, session: dict):
        sig0 = client.msig_sign_withdrawing_delegate('msig',
                                                     session['keys'][0])
        to_sign = client.msig_prepare_withdrawing_delegate(
            'msig', ['--bytes-only'])

        sig1 = client.sign_bytes(to_sign, session['keys'][1])
        client.msig_withdrawing_delegate('msig', 'bootstrap1', [sig0, sig1])
        client.bake('bootstrap1', BAKE_ARGS)
Exemple #15
0
    def test_transfer(self, client: Client, token_contract: str):
        client.fa12_transfer(token_contract, 100, 'bootstrap2', 'bootstrap3',
                             BURN_CAP_ARGS)
        client.bake('bootstrap5', BAKE_ARGS)

        assert check_expected_balance(client, token_contract, 'bootstrap2',
                                      19900) and check_expected_balance(
                                          client, token_contract, 'bootstrap3',
                                          100)
Exemple #16
0
 def test_good_preimage_and_signature(self, client: Client):
     byt = ('0x050100000027566f756c657a2d766f757320636f7563' +
            '6865722061766563206d6f692c20636520736f6972203f')
     sign = ('p2sigsceCzcDw2AeYDzUonj4JT341WC9Px4wdhHBxbZcG1F' +
             'hfqFVuG7f2fGCzrEHSAZgrsrQWpxduDPk9qZRgrpzwJnSHC3gZJ')
     arg = f'(Pair {byt} "{sign}")'
     client.transfer(0, "bootstrap1", "reveal_signed_preimage",
                     ['-arg', arg, '--burn-cap', '10'])
     client.bake('bootstrap5', BAKE_ARGS)
Exemple #17
0
    def test_originate_simple_entrypoints(self, session: dict, client: Client):
        '''originates the contract simple_entrypoints.tz
         with entrypoint %A of type unit used in
        test_simple_entrypoints'''

        contract_target = os.path.join(CONTRACT_PATH, 'entrypoints',
                                       'simple_entrypoints.tz')
        originate(client, session, contract_target, 'Unit', 0)
        client.bake('bootstrap5', BAKE_ARGS)
Exemple #18
0
 def test_transfer_success(self, client: Client, session: dict):
     client.msig_transfer(
         'msig',
         10,
         'bootstrap2',
         'bootstrap1',
         [session['sig0'], session['sig2']],
     )
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #19
0
 def test_last_block_of_proposal_period(self, client: Client):
     # last block of voting period 0
     client.bake('bootstrap1', BAKE_ARGS)
     period_info = client.get_current_period()
     assert period_info["voting_period"]["index"] == 0
     assert period_info["voting_period"]["kind"] == "proposal"
     assert period_info["voting_period"]["start_position"] == 0
     assert period_info["position"] == 3
     assert period_info["remaining"] == 0
Exemple #20
0
 def test_delegate_change(self, client: Client, session: dict):
     sig0 = client.msig_sign_set_delegate('msig', 'bootstrap5',
                                          session['keys'][0])
     to_sign = client.msig_prepare_set_delegate('msig', 'bootstrap5',
                                                ['--bytes-only'])
     sig2 = client.sign_bytes(to_sign, session['keys'][2])
     client.msig_set_delegate('msig', 'bootstrap5', 'bootstrap1',
                              [sig0, sig2])
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #21
0
    def test_transfer_from_manager_to_rooted_target_with_args(
            self, client: Client):
        arg = 'Left Unit'
        client.transfer(0, 'manager', 'rooted_target',
                        ['--arg', arg, '--entrypoint', 'root'])
        client.bake('bootstrap5', BAKE_ARGS)

        client.call('manager', 'rooted_target',
                    ['--arg', arg, '--entrypoint', 'root'])
        client.bake('bootstrap5', BAKE_ARGS)
Exemple #22
0
 def test_activate_accounts(self, client: Client, session):
     account = f"{ACCOUNT_PATH}/king_commitment.json"
     session['keys'] += ['king', 'queen']
     client.activate_account(session['keys'][3], account)
     client.bake('bootstrap1', BAKE_ARGS)
     account = f"{ACCOUNT_PATH}/queen_commitment.json"
     client.activate_account(session['keys'][4], account)
     client.bake('bootstrap1', BAKE_ARGS)
     assert client.get_balance(session['keys'][3]) == 23932454.669343
     assert client.get_balance(session['keys'][4]) == 72954577.464032
Exemple #23
0
 def test_default_account_transfer_then_bake(self, client: Client):
     tz1 = IDENTITIES['bootstrap4']['identity']
     client.transfer(0, "bootstrap1", "default_account",
                     ['-arg', f'"{tz1}"', '--burn-cap', '10'])
     client.bake('bootstrap5', BAKE_ARGS)
     account = 'tz1SuakBpFdG9b4twyfrSMqZzruxhpMeSrE5'
     client.transfer(0, "bootstrap1", "default_account",
                     ['-arg', f'"{account}"', '--burn-cap', '10'])
     client.bake('bootstrap5', BAKE_ARGS)
     assert client.get_balance(account) == 100
 def test_change_keys_and_threshold(self, client: Client, session: dict):
     keys = session['keys']
     sig0 = client.msig_sign_setting_threshold('msig', keys[0], 2,
                                               [keys[0], keys[2]])
     to_sign = client.msig_prepare_setting_threshold(
         'msig', 2, [keys[0], keys[2]], ['--bytes-only'])
     sig2 = client.sign_bytes(to_sign, session['keys'][2])
     client.msig_run_transaction('msig', to_sign, 'bootstrap1',
                                 [sig0, sig2])
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #25
0
def view(client: Client, session: dict):
    # Only deploy once, it can be used by any fa1.2 contract
    contract_alias = 'nat-viewer'
    args = ['--init', '0', '--burn-cap', '0.08']
    viewer = "parameter nat; storage nat; code { CAR; NIL operation; PAIR; }"

    origination = client.originate(contract_alias, 0, 'bootstrap1', viewer,
                                   args)
    session['contract'] = origination.contract
    client.bake('bootstrap5', BAKE_ARGS)
    return contract_alias
Exemple #26
0
 def test_create_contract_perform_creation(self, client: Client):
     transfer_result = client.transfer(0, "bootstrap1", "create_contract",
                                       ['-arg', 'None', '--burn-cap', '10'])
     client.bake('bootstrap5', BAKE_ARGS)
     pattern = r"New contract (\w*) originated"
     match = re.search(pattern, transfer_result.client_output)
     assert match is not None
     kt_1 = match.groups()[0]
     assert client.get_storage(kt_1) == '"abcdefg"'
     assert client.get_balance(kt_1) == 100
     assert client.get_balance('create_contract') == 900
Exemple #27
0
 def test_change_keys_and_threshold(self, client: Client, session: dict):
     # test changing the keys and threshold with `set threshold of multisig`
     keys = session['keys']
     new_keys = [keys[0], keys[2]]
     sig0 = client.msig_sign_setting_threshold('msig', keys[0], 2, new_keys)
     to_sign = client.msig_prepare_setting_threshold(
         'msig', 2, new_keys, ['--bytes-only'])
     sig2 = client.sign_bytes(to_sign, session['keys'][2])
     client.msig_set_threshold('msig', 2, new_keys, 'bootstrap1',
                               [sig0, sig2])
     client.bake('bootstrap1', BAKE_ARGS)
Exemple #28
0
    def test_operation_size_with_list_ok(self, client: Client):
        # Each element in the list takes 2 bytes so about 30KB in total
        big_arg = "{" + ("0; " * 15 * 1024) + "}"

        client.transfer(
            10,
            'bootstrap1',
            'munch',
            ['--arg', big_arg, "--entrypoint", "list_nat"],
        )
        client.bake('bootstrap1', BAKE_ARGS)
Exemple #29
0
 def test_bake_first_block_of_testing_vote_period(self, client: Client):
     # using the client it's not possible to add voting operation on the
     # first block of a voting period. This is to be fixed in a futur
     # protocol
     client.bake('bootstrap1', BAKE_ARGS)
     period_info = client.get_current_period()
     assert period_info["voting_period"]["index"] == 2
     assert period_info["voting_period"]["kind"] == "testing_vote"
     assert period_info["voting_period"]["start_position"] == 8
     assert period_info["position"] == 0
     assert period_info["remaining"] == 3
Exemple #30
0
 def test_bake_two_blocks(self, client: Client):
     client.bake('bootstrap1', BAKE_ARGS)
     client.bake('bootstrap1', BAKE_ARGS)
     period_info = client.get_current_period()
     level = client.get_current_level()
     assert level["level_position"] == 2
     assert period_info["voting_period"]["index"] == 0
     assert period_info["voting_period"]["kind"] == "proposal"
     assert period_info["voting_period"]["start_position"] == 0
     assert period_info["position"] == 2
     assert period_info["remaining"] == 1