# generated from coininfo.py.mako
# (by running `make templates` in `core`)
# do not edit manually!

# NOTE: using positional arguments saves 4500 bytes of flash size

from typing import Any

from trezor import utils
from trezor.crypto.base58 import blake256d_32, groestl512d_32, keccak_32, sha256d_32
from trezor.crypto.scripts import blake256_ripemd160, sha256_ripemd160

# flake8: noqa


class CoinInfo:
    def __init__(
        self,
        coin_name: str,
        coin_shortcut: str,
        decimals: int,
        address_type: int,
        address_type_p2sh: int,
        maxfee_kb: int,
        signed_message_header: str,
        xpub_magic: int,
        xpub_magic_segwit_p2sh: int | None,
        xpub_magic_segwit_native: int | None,
        xpub_magic_multisig_segwit_p2sh: int | None,
        xpub_magic_multisig_segwit_native: int | None,
        bech32_prefix: str | None,
        cashaddr_prefix: str | None,
        slip44: int,
        segwit: bool,
        taproot: bool,
        fork_id: int | None,
        force_bip143: bool,
        decred: bool,
        negative_fee: bool,
        curve_name: str,
        extra_data: bool,
        timestamp: bool,
        overwintered: bool,
        confidential_assets: dict[str, Any] | None,
    ) -> None:
        self.coin_name = coin_name
        self.coin_shortcut = coin_shortcut
        self.decimals = decimals
        self.address_type = address_type
        self.address_type_p2sh = address_type_p2sh
        self.maxfee_kb = maxfee_kb
        self.signed_message_header = signed_message_header
        self.xpub_magic = xpub_magic
        self.xpub_magic_segwit_p2sh = xpub_magic_segwit_p2sh
        self.xpub_magic_segwit_native = xpub_magic_segwit_native
        self.xpub_magic_multisig_segwit_p2sh = xpub_magic_multisig_segwit_p2sh
        self.xpub_magic_multisig_segwit_native = xpub_magic_multisig_segwit_native
        self.bech32_prefix = bech32_prefix
        self.cashaddr_prefix = cashaddr_prefix
        self.slip44 = slip44
        self.segwit = segwit
        self.taproot = taproot
        self.fork_id = fork_id
        self.force_bip143 = force_bip143
        self.decred = decred
        self.negative_fee = negative_fee
        self.curve_name = curve_name
        self.extra_data = extra_data
        self.timestamp = timestamp
        self.overwintered = overwintered
        self.confidential_assets = confidential_assets
        if curve_name == "secp256k1-groestl":
            self.b58_hash = groestl512d_32
            self.sign_hash_double = False
            self.script_hash: type[utils.HashContextInitable] = sha256_ripemd160
        elif curve_name == "secp256k1-decred":
            self.b58_hash = blake256d_32
            self.sign_hash_double = False
            self.script_hash = blake256_ripemd160
        elif curve_name == "secp256k1-smart":
            self.b58_hash = keccak_32
            self.sign_hash_double = False
            self.script_hash = sha256_ripemd160
        else:
            self.b58_hash = sha256d_32
            self.sign_hash_double = True
            self.script_hash = sha256_ripemd160

    def __eq__(self, other: Any) -> bool:
        if not isinstance(other, CoinInfo):
            return NotImplemented
        return self.coin_name == other.coin_name


# fmt: off
def by_name(name: str) -> CoinInfo:
    if name == "Bitcoin":
        return CoinInfo(
            name,  # coin_name
            "BTC",  # coin_shortcut
            8,  # decimals
            0,  # address_type
            5,  # address_type_p2sh
            2000000,  # maxfee_kb
            "Bitcoin Signed Message:\n",  # signed_message_header
            0x0488b21e,  # xpub_magic
            0x049d7cb2,  # xpub_magic_segwit_p2sh
            0x04b24746,  # xpub_magic_segwit_native
            0x0295b43f,  # xpub_magic_multisig_segwit_p2sh
            0x02aa7ed3,  # xpub_magic_multisig_segwit_native
            "bc",  # bech32_prefix
            None,  # cashaddr_prefix
            0,  # slip44
            True,  # segwit
            True,  # taproot
            None,  # fork_id
            False,  # force_bip143
            False,  # decred
            False,  # negative_fee
            'secp256k1',  # curve_name
            False,  # extra_data
            False,  # timestamp
            False,  # overwintered
            None,  # confidential_assets
        )
    if name == "Regtest":
        return CoinInfo(
            name,  # coin_name
            "REGTEST",  # coin_shortcut
            8,  # decimals
            111,  # address_type
            196,  # address_type_p2sh
            10000000,  # maxfee_kb
            "Bitcoin Signed Message:\n",  # signed_message_header
            0x043587cf,  # xpub_magic
            0x044a5262,  # xpub_magic_segwit_p2sh
            0x045f1cf6,  # xpub_magic_segwit_native
            0x024289ef,  # xpub_magic_multisig_segwit_p2sh
            0x02575483,  # xpub_magic_multisig_segwit_native
            "bcrt",  # bech32_prefix
            None,  # cashaddr_prefix
            1,  # slip44
            True,  # segwit
            True,  # taproot
            None,  # fork_id
            False,  # force_bip143
            False,  # decred
            False,  # negative_fee
            'secp256k1',  # curve_name
            False,  # extra_data
            False,  # timestamp
            False,  # overwintered
            None,  # confidential_assets
        )
    if name == "Testnet":
        return CoinInfo(
            name,  # coin_name
            "TEST",  # coin_shortcut
            8,  # decimals
            111,  # address_type
            196,  # address_type_p2sh
            10000000,  # maxfee_kb
            "Bitcoin Signed Message:\n",  # signed_message_header
            0x043587cf,  # xpub_magic
            0x044a5262,  # xpub_magic_segwit_p2sh
            0x045f1cf6,  # xpub_magic_segwit_native
            0x024289ef,  # xpub_magic_multisig_segwit_p2sh
            0x02575483,  # xpub_magic_multisig_segwit_native
            "tb",  # bech32_prefix
            None,  # cashaddr_prefix
            1,  # slip44
            True,  # segwit
            True,  # taproot
            None,  # fork_id
            False,  # force_bip143
            False,  # decred
            False,  # negative_fee
            'secp256k1',  # curve_name
            False,  # extra_data
            False,  # timestamp
            False,  # overwintered
            None,  # confidential_assets
        )
    if not utils.BITCOIN_ONLY:
        if name == "Actinium":
            return CoinInfo(
                name,  # coin_name
                "ACM",  # coin_shortcut
                8,  # decimals
                53,  # address_type
                55,  # address_type_p2sh
                320000000000,  # maxfee_kb
                "Actinium Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "acm",  # bech32_prefix
                None,  # cashaddr_prefix
                228,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Axe":
            return CoinInfo(
                name,  # coin_name
                "AXE",  # coin_shortcut
                8,  # decimals
                55,  # address_type
                16,  # address_type_p2sh
                21000000000,  # maxfee_kb
                "DarkCoin Signed Message:\n",  # signed_message_header
                0x02fe52cc,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                4242,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bcash":
            return CoinInfo(
                name,  # coin_name
                "BCH",  # coin_shortcut
                8,  # decimals
                0,  # address_type
                5,  # address_type_p2sh
                14000000,  # maxfee_kb
                "Bitcoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                "bitcoincash",  # cashaddr_prefix
                145,  # slip44
                False,  # segwit
                False,  # taproot
                0,  # fork_id
                True,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bcash Testnet":
            return CoinInfo(
                name,  # coin_name
                "TBCH",  # coin_shortcut
                8,  # decimals
                111,  # address_type
                196,  # address_type_p2sh
                10000000,  # maxfee_kb
                "Bitcoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                "bchtest",  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                0,  # fork_id
                True,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bgold":
            return CoinInfo(
                name,  # coin_name
                "BTG",  # coin_shortcut
                8,  # decimals
                38,  # address_type
                23,  # address_type_p2sh
                380000000,  # maxfee_kb
                "Bitcoin Gold Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "btg",  # bech32_prefix
                None,  # cashaddr_prefix
                156,  # slip44
                True,  # segwit
                False,  # taproot
                79,  # fork_id
                True,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bgold Testnet":
            return CoinInfo(
                name,  # coin_name
                "TBTG",  # coin_shortcut
                8,  # decimals
                111,  # address_type
                196,  # address_type_p2sh
                500000,  # maxfee_kb
                "Bitcoin Gold Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "tbtg",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                False,  # taproot
                79,  # fork_id
                True,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bprivate":
            return CoinInfo(
                name,  # coin_name
                "BTCP",  # coin_shortcut
                8,  # decimals
                4901,  # address_type
                5039,  # address_type_p2sh
                32000000000,  # maxfee_kb
                "BitcoinPrivate Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                183,  # slip44
                False,  # segwit
                False,  # taproot
                42,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Bitcore":
            return CoinInfo(
                name,  # coin_name
                "BTX",  # coin_shortcut
                8,  # decimals
                3,  # address_type
                125,  # address_type_p2sh
                14000000000,  # maxfee_kb
                "BitCore Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "btx",  # bech32_prefix
                None,  # cashaddr_prefix
                160,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "CPUchain":
            return CoinInfo(
                name,  # coin_name
                "CPU",  # coin_shortcut
                8,  # decimals
                28,  # address_type
                30,  # address_type_p2sh
                8700000000000,  # maxfee_kb
                "CPUchain Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "cpu",  # bech32_prefix
                None,  # cashaddr_prefix
                363,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Crown":
            return CoinInfo(
                name,  # coin_name
                "CRW",  # coin_shortcut
                8,  # decimals
                95495,  # address_type
                95473,  # address_type_p2sh
                52000000000,  # maxfee_kb
                "Crown Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                72,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Dash":
            return CoinInfo(
                name,  # coin_name
                "DASH",  # coin_shortcut
                8,  # decimals
                76,  # address_type
                16,  # address_type_p2sh
                45000000,  # maxfee_kb
                "DarkCoin Signed Message:\n",  # signed_message_header
                0x02fe52cc,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                5,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Dash Testnet":
            return CoinInfo(
                name,  # coin_name
                "tDASH",  # coin_shortcut
                8,  # decimals
                140,  # address_type
                19,  # address_type_p2sh
                100000,  # maxfee_kb
                "DarkCoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Decred":
            return CoinInfo(
                name,  # coin_name
                "DCR",  # coin_shortcut
                8,  # decimals
                1855,  # address_type
                1818,  # address_type_p2sh
                220000000,  # maxfee_kb
                "Decred Signed Message:\n",  # signed_message_header
                0x02fda926,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                42,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                True,  # decred
                False,  # negative_fee
                'secp256k1-decred',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Decred Testnet":
            return CoinInfo(
                name,  # coin_name
                "TDCR",  # coin_shortcut
                8,  # decimals
                3873,  # address_type
                3836,  # address_type_p2sh
                10000000,  # maxfee_kb
                "Decred Signed Message:\n",  # signed_message_header
                0x043587d1,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                True,  # decred
                False,  # negative_fee
                'secp256k1-decred',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "DigiByte":
            return CoinInfo(
                name,  # coin_name
                "DGB",  # coin_shortcut
                8,  # decimals
                30,  # address_type
                63,  # address_type_p2sh
                130000000000,  # maxfee_kb
                "DigiByte Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "dgb",  # bech32_prefix
                None,  # cashaddr_prefix
                20,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Dogecoin":
            return CoinInfo(
                name,  # coin_name
                "DOGE",  # coin_shortcut
                8,  # decimals
                30,  # address_type
                22,  # address_type_p2sh
                1200000000000,  # maxfee_kb
                "Dogecoin Signed Message:\n",  # signed_message_header
                0x02facafd,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                3,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Elements":
            return CoinInfo(
                name,  # coin_name
                "ELEMENTS",  # coin_shortcut
                8,  # decimals
                235,  # address_type
                75,  # address_type_p2sh
                10000000,  # maxfee_kb
                "Bitcoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "ert",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                {'address_prefix': 4, 'blech32_prefix': 'el'},  # confidential_assets
            )
        if name == "Feathercoin":
            return CoinInfo(
                name,  # coin_name
                "FTC",  # coin_shortcut
                8,  # decimals
                14,  # address_type
                5,  # address_type_p2sh
                390000000000,  # maxfee_kb
                "Feathercoin Signed Message:\n",  # signed_message_header
                0x0488bc26,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488bc26,  # xpub_magic_multisig_segwit_p2sh
                0x0488bc26,  # xpub_magic_multisig_segwit_native
                "fc",  # bech32_prefix
                None,  # cashaddr_prefix
                8,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Firo":
            return CoinInfo(
                name,  # coin_name
                "FIRO",  # coin_shortcut
                8,  # decimals
                82,  # address_type
                7,  # address_type_p2sh
                640000000,  # maxfee_kb
                "Zcoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                136,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Firo Testnet":
            return CoinInfo(
                name,  # coin_name
                "tFIRO",  # coin_shortcut
                8,  # decimals
                65,  # address_type
                178,  # address_type_p2sh
                1000000,  # maxfee_kb
                "Zcoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Florincoin":
            return CoinInfo(
                name,  # coin_name
                "FLO",  # coin_shortcut
                8,  # decimals
                35,  # address_type
                94,  # address_type_p2sh
                78000000000,  # maxfee_kb
                "Florincoin Signed Message:\n",  # signed_message_header
                0x00174921,  # xpub_magic
                0x01b26ef6,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x00174921,  # xpub_magic_multisig_segwit_p2sh
                0x00174921,  # xpub_magic_multisig_segwit_native
                "flo",  # bech32_prefix
                None,  # cashaddr_prefix
                216,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Fujicoin":
            return CoinInfo(
                name,  # coin_name
                "FJC",  # coin_shortcut
                8,  # decimals
                36,  # address_type
                16,  # address_type_p2sh
                35000000000000,  # maxfee_kb
                "FujiCoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0295b43f,  # xpub_magic_multisig_segwit_p2sh
                0x02aa7ed3,  # xpub_magic_multisig_segwit_native
                "fc",  # bech32_prefix
                None,  # cashaddr_prefix
                75,  # slip44
                True,  # segwit
                True,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Groestlcoin":
            return CoinInfo(
                name,  # coin_name
                "GRS",  # coin_shortcut
                8,  # decimals
                36,  # address_type
                5,  # address_type_p2sh
                16000000000,  # maxfee_kb
                "GroestlCoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "grs",  # bech32_prefix
                None,  # cashaddr_prefix
                17,  # slip44
                True,  # segwit
                True,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1-groestl',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Groestlcoin Testnet":
            return CoinInfo(
                name,  # coin_name
                "tGRS",  # coin_shortcut
                8,  # decimals
                111,  # address_type
                196,  # address_type_p2sh
                100000,  # maxfee_kb
                "GroestlCoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "tgrs",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                True,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1-groestl',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Komodo":
            return CoinInfo(
                name,  # coin_name
                "KMD",  # coin_shortcut
                8,  # decimals
                60,  # address_type
                85,  # address_type_p2sh
                4800000000,  # maxfee_kb
                "Komodo Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                141,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                True,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                True,  # overwintered
                None,  # confidential_assets
            )
        if name == "Koto":
            return CoinInfo(
                name,  # coin_name
                "KOTO",  # coin_shortcut
                8,  # decimals
                6198,  # address_type
                6203,  # address_type_p2sh
                1000000,  # maxfee_kb
                "Koto Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                510,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                True,  # overwintered
                None,  # confidential_assets
            )
        if name == "Litecoin":
            return CoinInfo(
                name,  # coin_name
                "LTC",  # coin_shortcut
                8,  # decimals
                48,  # address_type
                50,  # address_type_p2sh
                67000000,  # maxfee_kb
                "Litecoin Signed Message:\n",  # signed_message_header
                0x019da462,  # xpub_magic
                0x01b26ef6,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x019da462,  # xpub_magic_multisig_segwit_p2sh
                0x019da462,  # xpub_magic_multisig_segwit_native
                "ltc",  # bech32_prefix
                None,  # cashaddr_prefix
                2,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Litecoin Testnet":
            return CoinInfo(
                name,  # coin_name
                "tLTC",  # coin_shortcut
                8,  # decimals
                111,  # address_type
                58,  # address_type_p2sh
                40000000,  # maxfee_kb
                "Litecoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "tltc",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Monacoin":
            return CoinInfo(
                name,  # coin_name
                "MONA",  # coin_shortcut
                8,  # decimals
                50,  # address_type
                55,  # address_type_p2sh
                2100000000,  # maxfee_kb
                "Monacoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "mona",  # bech32_prefix
                None,  # cashaddr_prefix
                22,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "MonetaryUnit":
            return CoinInfo(
                name,  # coin_name
                "MUE",  # coin_shortcut
                8,  # decimals
                16,  # address_type
                76,  # address_type_p2sh
                600000000000,  # maxfee_kb
                "MonetaryUnit Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                31,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Namecoin":
            return CoinInfo(
                name,  # coin_name
                "NMC",  # coin_shortcut
                8,  # decimals
                52,  # address_type
                5,  # address_type_p2sh
                8700000000,  # maxfee_kb
                "Namecoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                7,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Peercoin":
            return CoinInfo(
                name,  # coin_name
                "PPC",  # coin_shortcut
                6,  # decimals
                55,  # address_type
                117,  # address_type_p2sh
                13000000000,  # maxfee_kb
                "Peercoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "pc",  # bech32_prefix
                None,  # cashaddr_prefix
                6,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                True,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Peercoin Testnet":
            return CoinInfo(
                name,  # coin_name
                "tPPC",  # coin_shortcut
                6,  # decimals
                111,  # address_type
                196,  # address_type_p2sh
                2000000,  # maxfee_kb
                "Peercoin Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "tpc",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                True,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Primecoin":
            return CoinInfo(
                name,  # coin_name
                "XPM",  # coin_shortcut
                8,  # decimals
                23,  # address_type
                83,  # address_type_p2sh
                89000000000,  # maxfee_kb
                "Primecoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                24,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Qtum":
            return CoinInfo(
                name,  # coin_name
                "QTUM",  # coin_shortcut
                8,  # decimals
                58,  # address_type
                50,  # address_type_p2sh
                1000000000,  # maxfee_kb
                "Qtum Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "qc",  # bech32_prefix
                None,  # cashaddr_prefix
                2301,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Qtum Testnet":
            return CoinInfo(
                name,  # coin_name
                "tQTUM",  # coin_shortcut
                8,  # decimals
                120,  # address_type
                110,  # address_type_p2sh
                40000000,  # maxfee_kb
                "Qtum Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                0x044a5262,  # xpub_magic_segwit_p2sh
                0x045f1cf6,  # xpub_magic_segwit_native
                0x043587cf,  # xpub_magic_multisig_segwit_p2sh
                0x043587cf,  # xpub_magic_multisig_segwit_native
                "tq",  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Ravencoin":
            return CoinInfo(
                name,  # coin_name
                "RVN",  # coin_shortcut
                8,  # decimals
                60,  # address_type
                122,  # address_type_p2sh
                170000000000,  # maxfee_kb
                "Raven Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                175,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Ravencoin Testnet":
            return CoinInfo(
                name,  # coin_name
                "tRVN",  # coin_shortcut
                8,  # decimals
                111,  # address_type
                196,  # address_type_p2sh
                170000000000,  # maxfee_kb
                "Raven Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Ritocoin":
            return CoinInfo(
                name,  # coin_name
                "RITO",  # coin_shortcut
                8,  # decimals
                25,  # address_type
                105,  # address_type_p2sh
                39000000000000,  # maxfee_kb
                "Rito Signed Message:\n",  # signed_message_header
                0x0534e7ca,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                19169,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "SmartCash":
            return CoinInfo(
                name,  # coin_name
                "SMART",  # coin_shortcut
                8,  # decimals
                63,  # address_type
                18,  # address_type_p2sh
                780000000000,  # maxfee_kb
                "SmartCash Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                224,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1-smart',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "SmartCash Testnet":
            return CoinInfo(
                name,  # coin_name
                "tSMART",  # coin_shortcut
                8,  # decimals
                65,  # address_type
                21,  # address_type_p2sh
                1000000,  # maxfee_kb
                "SmartCash Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1-smart',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Stakenet":
            return CoinInfo(
                name,  # coin_name
                "XSN",  # coin_shortcut
                8,  # decimals
                76,  # address_type
                16,  # address_type_p2sh
                11000000000,  # maxfee_kb
                "DarkCoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "xc",  # bech32_prefix
                None,  # cashaddr_prefix
                199,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Syscoin":
            return CoinInfo(
                name,  # coin_name
                "SYS",  # coin_shortcut
                8,  # decimals
                63,  # address_type
                5,  # address_type_p2sh
                42000000000,  # maxfee_kb
                "Syscoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "sys",  # bech32_prefix
                None,  # cashaddr_prefix
                57,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Unobtanium":
            return CoinInfo(
                name,  # coin_name
                "UNO",  # coin_shortcut
                8,  # decimals
                130,  # address_type
                30,  # address_type_p2sh
                53000000,  # maxfee_kb
                "Unobtanium Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                92,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "VIPSTARCOIN":
            return CoinInfo(
                name,  # coin_name
                "VIPS",  # coin_shortcut
                8,  # decimals
                70,  # address_type
                50,  # address_type_p2sh
                140000000000000,  # maxfee_kb
                "VIPSTARCOIN Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "vips",  # bech32_prefix
                None,  # cashaddr_prefix
                1919,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Verge":
            return CoinInfo(
                name,  # coin_name
                "XVG",  # coin_shortcut
                6,  # decimals
                30,  # address_type
                33,  # address_type_p2sh
                550000000000,  # maxfee_kb
                "Name: Dogecoin Dark\n",  # signed_message_header
                0x022d2533,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                77,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                True,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Vertcoin":
            return CoinInfo(
                name,  # coin_name
                "VTC",  # coin_shortcut
                8,  # decimals
                71,  # address_type
                5,  # address_type_p2sh
                13000000000,  # maxfee_kb
                "Vertcoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "vtc",  # bech32_prefix
                None,  # cashaddr_prefix
                28,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Viacoin":
            return CoinInfo(
                name,  # coin_name
                "VIA",  # coin_shortcut
                8,  # decimals
                71,  # address_type
                33,  # address_type_p2sh
                14000000000,  # maxfee_kb
                "Viacoin Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                0x049d7cb2,  # xpub_magic_segwit_p2sh
                0x04b24746,  # xpub_magic_segwit_native
                0x0488b21e,  # xpub_magic_multisig_segwit_p2sh
                0x0488b21e,  # xpub_magic_multisig_segwit_native
                "via",  # bech32_prefix
                None,  # cashaddr_prefix
                14,  # slip44
                True,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "ZCore":
            return CoinInfo(
                name,  # coin_name
                "ZCR",  # coin_shortcut
                8,  # decimals
                142,  # address_type
                145,  # address_type_p2sh
                170000000000,  # maxfee_kb
                "DarkNet Signed Message:\n",  # signed_message_header
                0x04b24746,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                428,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
        if name == "Zcash":
            return CoinInfo(
                name,  # coin_name
                "ZEC",  # coin_shortcut
                8,  # decimals
                7352,  # address_type
                7357,  # address_type_p2sh
                51000000,  # maxfee_kb
                "Zcash Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                133,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                True,  # overwintered
                None,  # confidential_assets
            )
        if name == "Zcash Testnet":
            return CoinInfo(
                name,  # coin_name
                "TAZ",  # coin_shortcut
                8,  # decimals
                7461,  # address_type
                7354,  # address_type_p2sh
                10000000,  # maxfee_kb
                "Zcash Signed Message:\n",  # signed_message_header
                0x043587cf,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                1,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                True,  # extra_data
                False,  # timestamp
                True,  # overwintered
                None,  # confidential_assets
            )
        if name == "Brhodium":
            return CoinInfo(
                name,  # coin_name
                "XRC",  # coin_shortcut
                8,  # decimals
                61,  # address_type
                123,  # address_type_p2sh
                1000000000,  # maxfee_kb
                "BitCoin Rhodium Signed Message:\n",  # signed_message_header
                0x0488b21e,  # xpub_magic
                None,  # xpub_magic_segwit_p2sh
                None,  # xpub_magic_segwit_native
                None,  # xpub_magic_multisig_segwit_p2sh
                None,  # xpub_magic_multisig_segwit_native
                None,  # bech32_prefix
                None,  # cashaddr_prefix
                10291,  # slip44
                False,  # segwit
                False,  # taproot
                None,  # fork_id
                False,  # force_bip143
                False,  # decred
                False,  # negative_fee
                'secp256k1',  # curve_name
                False,  # extra_data
                False,  # timestamp
                False,  # overwintered
                None,  # confidential_assets
            )
    raise ValueError  # Unknown coin name
