예제 #1
0
    def test_derive_address(self):
        address_parameters = {
            "BASE":
            CardanoAddressParametersType(address_type=CardanoAddressType.BASE,
                                         address_n=[
                                             1852 | HARDENED, 1815 | HARDENED,
                                             4 | HARDENED, 0, 0
                                         ],
                                         address_n_staking=[
                                             1852 | HARDENED, 1815 | HARDENED,
                                             4 | HARDENED, 2, 0
                                         ]),
            "BASE_OWN_STAKING_KEY_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 4 | HARDENED, 0, 0
                ],
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff")
            ),
            "BASE_OWN_STAKING_KEY_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 4 | HARDENED, 0, 0
                ],
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff")
            ),
            # staking key hash not owned - derived with "all all..." mnenomnic
            "BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_4":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 4 | HARDENED, 0, 0
                ],
                staking_key_hash=unhexlify(
                    "122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277")
            ),
            # staking key hash not owned - derived with "all all..." mnenomnic
            "BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_0":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                staking_key_hash=unhexlify(
                    "122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277")
            ),
            "BASE_SCRIPT_KEY_SCRIPT_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_KEY,
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0
                ],
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
            ),
            "BASE_KEY_SCRIPT_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_KEY_SCRIPT,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                script_staking_hash=unhexlify(
                    "8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
                ),
            ),
            "BASE_SCRIPT_SCRIPT_HASHES":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
                script_staking_hash=unhexlify(
                    "8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
                ),
            ),
            "POINTER1":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=1, tx_index=2, certificate_index=3),
            ),
            "POINTER2":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=24157, tx_index=177, certificate_index=42),
            ),
            "POINTER_SCRIPT_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER_SCRIPT,
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=24157, tx_index=177, certificate_index=42),
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
            ),
            "ENTERPRISE":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.ENTERPRISE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
            ),
            "ENTERPRISE_SCRIPT_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.ENTERPRISE_SCRIPT,
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
            ),
            "REWARD":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD,
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0
                ],
            ),
            "REWARD_SCRIPT_HASH":
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD_SCRIPT,
                script_staking_hash=unhexlify(
                    "8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
                ),
            ),
        }
        test_vectors = [
            # base address
            (network_ids.MAINNET, CardanoAddressType.BASE,
             address_parameters["BASE"],
             "addr1q8v42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wnrqua2vw243tmjfjt0h5wsru6appuz8c0pfd75ur7myyeqsx9990"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE,
             address_parameters["BASE"],
             "addr_test1qrv42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wnrqua2vw243tmjfjt0h5wsru6appuz8c0pfd75ur7myyeqnsc9fs"
             ),
            # base address with staking key hash
            (network_ids.MAINNET, CardanoAddressType.BASE,
             address_parameters["BASE_OWN_STAKING_KEY_HASH"],
             "addr1q8v42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wsmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsydc62k"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE,
             address_parameters["BASE_OWN_STAKING_KEY_HASH"],
             "addr_test1qrv42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wsmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hls8m96xf"
             ),
            (network_ids.MAINNET, CardanoAddressType.BASE,
             address_parameters["BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_4"],
             "addr1q8v42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wsj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfms06skxl"
             ),
            (network_ids.MAINNET, CardanoAddressType.BASE,
             address_parameters["BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_0"],
             "addr1qxq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z92sj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfmsl3s9zt"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE,
             address_parameters["BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_4"],
             "addr_test1qrv42wjda8r6mpfj40d36znlgfdcqp7jtj03ah8skh6u8wsj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfmsvvdk2q"
             ),
            # base_script_key address
            (network_ids.MAINNET, CardanoAddressType.BASE_SCRIPT_KEY,
             address_parameters["BASE_SCRIPT_KEY_SCRIPT_HASH"],
             "addr1zyx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3lsj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfmsf42dkl"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE_SCRIPT_KEY,
             address_parameters["BASE_SCRIPT_KEY_SCRIPT_HASH"],
             "addr_test1zqx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3lsj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfms2rhd6q"
             ),
            # base_key_script address
            (network_ids.MAINNET, CardanoAddressType.BASE_KEY_SCRIPT,
             address_parameters["BASE_KEY_SCRIPT_HASH"],
             "addr1yxq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z925d004u0fv0r3a4ld7f8yg8rmxnk5dsxf542ghcc42ngw5s8vnrtt"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE_KEY_SCRIPT,
             address_parameters["BASE_KEY_SCRIPT_HASH"],
             "addr_test1yzq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z925d004u0fv0r3a4ld7f8yg8rmxnk5dsxf542ghcc42ngw5sy6wr85"
             ),
            # base_script_script address
            (network_ids.MAINNET, CardanoAddressType.BASE_SCRIPT_SCRIPT,
             address_parameters["BASE_SCRIPT_SCRIPT_HASHES"],
             "addr1xyx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3l5d004u0fv0r3a4ld7f8yg8rmxnk5dsxf542ghcc42ngw5s3gftll"
             ),
            (network_ids.TESTNET, CardanoAddressType.BASE_SCRIPT_SCRIPT,
             address_parameters["BASE_SCRIPT_SCRIPT_HASHES"],
             "addr_test1xqx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3l5d004u0fv0r3a4ld7f8yg8rmxnk5dsxf542ghcc42ngw5sj75tnq"
             ),
            # pointer address
            (network_ids.MAINNET, CardanoAddressType.POINTER,
             address_parameters["POINTER1"],
             "addr1gxq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z92spqgpsl97q83"
             ),
            (network_ids.TESTNET, CardanoAddressType.POINTER,
             address_parameters["POINTER2"],
             "addr_test1gzq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z925ph3wczvf2ag2x9t"
             ),
            # pointer_script address
            (network_ids.MAINNET, CardanoAddressType.POINTER_SCRIPT,
             address_parameters["POINTER_SCRIPT_HASH"],
             "addr12yx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3l5ph3wczvf2zmd4yp"
             ),
            (network_ids.TESTNET, CardanoAddressType.POINTER_SCRIPT,
             address_parameters["POINTER_SCRIPT_HASH"],
             "addr_test12qx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3l5ph3wczvf2d4sugn"
             ),
            # enterprise address
            (network_ids.MAINNET, CardanoAddressType.ENTERPRISE,
             address_parameters["ENTERPRISE"],
             "addr1vxq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z92su77c6m"),
            (network_ids.TESTNET, CardanoAddressType.ENTERPRISE,
             address_parameters["ENTERPRISE"],
             "addr_test1vzq0nckg3ekgzuqg7w5p9mvgnd9ym28qh5grlph8xd2z92s8k2y47"
             ),
            # enterprise_script address
            (network_ids.MAINNET, CardanoAddressType.ENTERPRISE_SCRIPT,
             address_parameters["ENTERPRISE_SCRIPT_HASH"],
             "addr1wyx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3lsqee7sp"),
            (network_ids.TESTNET, CardanoAddressType.ENTERPRISE_SCRIPT,
             address_parameters["ENTERPRISE_SCRIPT_HASH"],
             "addr_test1wqx44jlk580mpjrjfesd7v2fsuc4ejlh3wmvp7dk702k3lsm3dzly"
             ),
            # reward address
            (network_ids.MAINNET, CardanoAddressType.REWARD,
             address_parameters["REWARD"],
             "stake1uyfz49rtntfa9h0s98f6s28sg69weemgjhc4e8hm66d5yacalmqha"),
            (network_ids.TESTNET, CardanoAddressType.REWARD,
             address_parameters["REWARD"],
             "stake_test1uqfz49rtntfa9h0s98f6s28sg69weemgjhc4e8hm66d5yac643znq"
             ),
            # reward_script address
            (network_ids.MAINNET, CardanoAddressType.REWARD_SCRIPT,
             address_parameters["REWARD_SCRIPT_HASH"],
             "stake17xxhh6785k83c76lklynjyr3anfm2xcry624ytuv24f582gt5mad4"),
            (network_ids.TESTNET, CardanoAddressType.REWARD_SCRIPT,
             address_parameters["REWARD_SCRIPT_HASH"],
             "stake_test17zxhh6785k83c76lklynjyr3anfm2xcry624ytuv24f582gv73lfg"
             ),
        ]

        for network_id, address_type, address_parameters, expected_address in test_vectors:
            validate_address_parameters(address_parameters)
            actual_address = derive_human_readable_address(
                self.keychain, address_parameters, protocol_magics.MAINNET,
                network_id)

            self.assertEqual(actual_address, expected_address)
예제 #2
0
    def test_validate_address_parameters(self):
        test_vectors = [
            # base address - both address_n_staking and staking_key_hash are None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=None,
                staking_key_hash=None,
            ),
            # base address - both address_n_staking and staking_key_hash are set
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0
                ],
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
                ),
            ),
            # base address - staking_key_hash is too short
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=None,
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8d"),
            ),
            # base address - address_n_staking is not a staking path
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                staking_key_hash=None,
            ),
            # base_script_key address - script_payment_hash is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_KEY,
                script_payment_hash=None,
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8d"),
            ),
            # base_script_key address - address_n_staking is not a staking path
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_KEY,
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
            ),
            # base_key_script address - script_staking_hash is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_KEY_SCRIPT,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                script_staking_hash=None,
            ),
            # base_script_script address - script_payment_hash is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
                script_payment_hash=None,
                script_staking_hash=unhexlify(
                    "8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
                ),
            ),
            # base_script_script address - script_staking and script_staking_hash are None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
                script_staking_hash=None,
            ),
            # pointer address - pointer is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                certificate_pointer=None,
            ),
            # pointer_script address - pointer is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER_SCRIPT,
                script_payment_hash=unhexlify(
                    "0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
                ),
                certificate_pointer=None,
            ),
            # pointer_script address - script_payment_script is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER_SCRIPT,
                script_payment_hash=None,
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=24157, tx_index=177, certificate_index=42),
            ),
            # enterprise_script address - script_payment_hash is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.ENTERPRISE_SCRIPT,
                script_payment_hash=None,
            ),
            # reward address - non staking path
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ]),
            # reward_script address - script_staking_hash is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD_SCRIPT,
                script_staking_hash=None,
            ),

            # Shelley addresses with Byron namespace
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
                ),
            ),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE_KEY_SCRIPT,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
                script_staking_hash=unhexlify(
                    "8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
                ),
            ),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=0, tx_index=0, certificate_index=0)),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.ENTERPRISE,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
            ),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
            ),

            # Byron address with Shelley namespace
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BYRON,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
            )
        ]

        for address_parameters in test_vectors:
            with self.assertRaises(wire.ProcessError):
                validate_address_parameters(address_parameters)
예제 #3
0
    def test_validate_address_parameters(self):
        test_vectors = [
            # base address - both address_n_staking and staking_key_hash are None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=None,
                staking_key_hash=None,
            ),
            # base address - both address_n_staking and staking_key_hash are set
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0
                ],
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
                ),
            ),
            # base address - staking_key_hash is too short
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=None,
                staking_key_hash=unhexlify(
                    "1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8d"),
            ),
            # base address - address_n_staking is not a staking path
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                address_n_staking=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                staking_key_hash=None,
            ),
            # pointer address - pointer is None
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
                certificate_pointer=None,
            ),
            # reward address - non staking path
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ]),

            # Shelley addresses with Byron namespace
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BASE,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0,
                           0]),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.POINTER,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
                certificate_pointer=CardanoBlockchainPointerType(
                    block_index=0, tx_index=0, certificate_index=0)),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.ENTERPRISE,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
            ),
            CardanoAddressParametersType(
                address_type=CardanoAddressType.REWARD,
                address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
            ),

            # Byron address with Shelley namespace
            CardanoAddressParametersType(
                address_type=CardanoAddressType.BYRON,
                address_n=[
                    1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0
                ],
            )
        ]

        for address_parameters in test_vectors:
            with self.assertRaises(wire.ProcessError):
                validate_address_parameters(address_parameters)