# generated from coininfo.py.mako
# do not edit manually!
from trezor import utils
from trezor.crypto.base58 import blake256d_32, groestl512d_32, keccak_32, sha256d_32
from trezor.crypto.scripts import blake256_ripemd160_digest, sha256_ripemd160_digest

# flake8: noqa


class CoinInfo:
    def __init__(
        self,
        coin_name: str,
        coin_shortcut: str,
        address_type: int,
        address_type_p2sh: int,
        maxfee_kb: int,
        signed_message_header: str,
        xpub_magic: int,
        xpub_magic_segwit_p2sh: int,
        xpub_magic_segwit_native: int,
        bech32_prefix: str,
        cashaddr_prefix: str,
        slip44: int,
        segwit: bool,
        fork_id: int,
        force_bip143: bool,
        bip115: bool,
        decred: bool,
        negative_fee: bool,
        curve_name: str,
        confidential_assets: dict,
    ):
        self.coin_name = coin_name
        self.coin_shortcut = coin_shortcut
        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.bech32_prefix = bech32_prefix
        self.cashaddr_prefix = cashaddr_prefix
        self.slip44 = slip44
        self.segwit = segwit
        self.fork_id = fork_id
        self.force_bip143 = force_bip143
        self.bip115 = bip115
        self.decred = decred
        self.negative_fee = negative_fee
        self.curve_name = curve_name
        self.confidential_assets = confidential_assets
        if curve_name == "secp256k1-groestl":
            self.b58_hash = groestl512d_32
            self.sign_hash_double = False
            self.script_hash = sha256_ripemd160_digest
        elif curve_name == "secp256k1-decred":
            self.b58_hash = blake256d_32
            self.sign_hash_double = False
            self.script_hash = blake256_ripemd160_digest
        elif curve_name == "secp256k1-smart":
            self.b58_hash = keccak_32
            self.sign_hash_double = False
            self.script_hash = sha256_ripemd160_digest
        else:
            self.b58_hash = sha256d_32
            self.sign_hash_double = True
            self.script_hash = sha256_ripemd160_digest

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


# fmt: off
def by_name(name: str) -> CoinInfo:
    if False:
        pass
    elif name == "Bitcoin":
        return CoinInfo(
            coin_name=name,
            coin_shortcut="BTC",
            address_type=0,
            address_type_p2sh=5,
            maxfee_kb=2000000,
            signed_message_header="Bitcoin Signed Message:\n",
            xpub_magic=0x0488b21e,
            xpub_magic_segwit_p2sh=0x049d7cb2,
            xpub_magic_segwit_native=0x04b24746,
            bech32_prefix="bc",
            cashaddr_prefix=None,
            slip44=0,
            segwit=True,
            fork_id=None,
            force_bip143=False,
            bip115=False,
            decred=False,
            negative_fee=False,
            curve_name='secp256k1',
            confidential_assets=None,
        )
    elif name == "Regtest":
        return CoinInfo(
            coin_name=name,
            coin_shortcut="REGTEST",
            address_type=111,
            address_type_p2sh=196,
            maxfee_kb=10000000,
            signed_message_header="Bitcoin Signed Message:\n",
            xpub_magic=0x043587cf,
            xpub_magic_segwit_p2sh=0x044a5262,
            xpub_magic_segwit_native=0x045f1cf6,
            bech32_prefix="bcrt",
            cashaddr_prefix=None,
            slip44=1,
            segwit=True,
            fork_id=None,
            force_bip143=False,
            bip115=False,
            decred=False,
            negative_fee=False,
            curve_name='secp256k1',
            confidential_assets=None,
        )
    elif name == "Testnet":
        return CoinInfo(
            coin_name=name,
            coin_shortcut="TEST",
            address_type=111,
            address_type_p2sh=196,
            maxfee_kb=10000000,
            signed_message_header="Bitcoin Signed Message:\n",
            xpub_magic=0x043587cf,
            xpub_magic_segwit_p2sh=0x044a5262,
            xpub_magic_segwit_native=0x045f1cf6,
            bech32_prefix="tb",
            cashaddr_prefix=None,
            slip44=1,
            segwit=True,
            fork_id=None,
            force_bip143=False,
            bip115=False,
            decred=False,
            negative_fee=False,
            curve_name='secp256k1',
            confidential_assets=None,
        )
    if not utils.BITCOIN_ONLY:
        if False:
            pass
        elif name == "Actinium":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ACM",
                address_type=53,
                address_type_p2sh=55,
                maxfee_kb=40000000,
                signed_message_header="Actinium Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="acm",
                cashaddr_prefix=None,
                slip44=228,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Axe":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="AXE",
                address_type=55,
                address_type_p2sh=16,
                maxfee_kb=100000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x02fe52cc,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=4242,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bellcoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BELL",
                address_type=25,
                address_type_p2sh=85,
                maxfee_kb=1000000,
                signed_message_header="Bellcoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="bm",
                cashaddr_prefix=None,
                slip44=25252,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "BitCash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BITC",
                address_type=230,
                address_type_p2sh=235,
                maxfee_kb=30000000,
                signed_message_header="Bitcash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=230,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bitgreen":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BITG",
                address_type=38,
                address_type_p2sh=6,
                maxfee_kb=100000,
                signed_message_header="DarkNet Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=222,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "BitZeny":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ZNY",
                address_type=81,
                address_type_p2sh=5,
                maxfee_kb=1000000,
                signed_message_header="BitZeny Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="bz",
                cashaddr_prefix=None,
                slip44=123,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bitcloud":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BTDX",
                address_type=25,
                address_type_p2sh=5,
                maxfee_kb=1000000,
                signed_message_header="Diamond Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=218,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bcash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BCH",
                address_type=0,
                address_type_p2sh=5,
                maxfee_kb=500000,
                signed_message_header="Bitcoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix="bitcoincash",
                slip44=145,
                segwit=False,
                fork_id=0,
                force_bip143=True,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bcash Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="TBCH",
                address_type=111,
                address_type_p2sh=196,
                maxfee_kb=10000000,
                signed_message_header="Bitcoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix="bchtest",
                slip44=1,
                segwit=False,
                fork_id=0,
                force_bip143=True,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bgold":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BTG",
                address_type=38,
                address_type_p2sh=23,
                maxfee_kb=500000,
                signed_message_header="Bitcoin Gold Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="btg",
                cashaddr_prefix=None,
                slip44=156,
                segwit=True,
                fork_id=79,
                force_bip143=True,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bgold Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="TBTG",
                address_type=111,
                address_type_p2sh=196,
                maxfee_kb=500000,
                signed_message_header="Bitcoin Gold Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="tbtg",
                cashaddr_prefix=None,
                slip44=156,
                segwit=True,
                fork_id=79,
                force_bip143=True,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bprivate":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BTCP",
                address_type=4901,
                address_type_p2sh=5039,
                maxfee_kb=1000000,
                signed_message_header="BitcoinPrivate Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=183,
                segwit=False,
                fork_id=42,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Brhodium":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="XRC",
                address_type=61,
                address_type_p2sh=123,
                maxfee_kb=2000000,
                signed_message_header="BitCoin Rhodium Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=10291,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bitcore":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BTX",
                address_type=3,
                address_type_p2sh=125,
                maxfee_kb=2000000,
                signed_message_header="BitCore Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="btx",
                cashaddr_prefix=None,
                slip44=160,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Bitsend":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BSD",
                address_type=102,
                address_type_p2sh=5,
                maxfee_kb=1000000,
                signed_message_header="Bitsend Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="bsd",
                cashaddr_prefix=None,
                slip44=91,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "BlockStamp":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="BST",
                address_type=26,
                address_type_p2sh=5,
                maxfee_kb=2000000,
                signed_message_header="BST Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="bst",
                cashaddr_prefix=None,
                slip44=254,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "CPUchain":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="CPU",
                address_type=28,
                address_type_p2sh=30,
                maxfee_kb=1000000,
                signed_message_header="CPUchain Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="cpu",
                cashaddr_prefix=None,
                slip44=363,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Capricoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="CPC",
                address_type=28,
                address_type_p2sh=35,
                maxfee_kb=2000000,
                signed_message_header="Capricoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=289,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Dash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="DASH",
                address_type=76,
                address_type_p2sh=16,
                maxfee_kb=100000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x02fe52cc,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=5,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Dash Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tDASH",
                address_type=140,
                address_type_p2sh=19,
                maxfee_kb=100000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Decred":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="DCR",
                address_type=1855,
                address_type_p2sh=1818,
                maxfee_kb=1000000,
                signed_message_header="Decred Signed Message:\n",
                xpub_magic=0x02fda926,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=42,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=True,
                negative_fee=False,
                curve_name='secp256k1-decred',
                confidential_assets=None,
            )
        elif name == "Decred Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="TDCR",
                address_type=3873,
                address_type_p2sh=3836,
                maxfee_kb=10000000,
                signed_message_header="Decred Signed Message:\n",
                xpub_magic=0x043587d1,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=True,
                negative_fee=False,
                curve_name='secp256k1-decred',
                confidential_assets=None,
            )
        elif name == "Denarius":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="DNR",
                address_type=30,
                address_type_p2sh=90,
                maxfee_kb=100000,
                signed_message_header="Denarius Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=116,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "DigiByte":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="DGB",
                address_type=30,
                address_type_p2sh=63,
                maxfee_kb=500000,
                signed_message_header="DigiByte Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="dgb",
                cashaddr_prefix=None,
                slip44=20,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Dogecoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="DOGE",
                address_type=30,
                address_type_p2sh=22,
                maxfee_kb=1000000000,
                signed_message_header="Dogecoin Signed Message:\n",
                xpub_magic=0x02facafd,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=3,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Elements":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ELEMENTS",
                address_type=235,
                address_type_p2sh=75,
                maxfee_kb=10000000,
                signed_message_header="Bitcoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="ert",
                cashaddr_prefix=None,
                slip44=1,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets={'address_prefix': 4, 'blech32_prefix': 'el'},
            )
        elif name == "FairCoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="FAIR",
                address_type=95,
                address_type_p2sh=36,
                maxfee_kb=10000000,
                signed_message_header="FairCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=298,
                segwit=False,
                fork_id=0,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Feathercoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="FTC",
                address_type=14,
                address_type_p2sh=5,
                maxfee_kb=40000000,
                signed_message_header="Feathercoin Signed Message:\n",
                xpub_magic=0x0488bc26,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="fc",
                cashaddr_prefix=None,
                slip44=8,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Florincoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="FLO",
                address_type=35,
                address_type_p2sh=94,
                maxfee_kb=40000000,
                signed_message_header="Florincoin Signed Message:\n",
                xpub_magic=0x00174921,
                xpub_magic_segwit_p2sh=0x01b26ef6,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="flo",
                cashaddr_prefix=None,
                slip44=216,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Fujicoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="FJC",
                address_type=36,
                address_type_p2sh=16,
                maxfee_kb=1000000000,
                signed_message_header="FujiCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="fc",
                cashaddr_prefix=None,
                slip44=75,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Gincoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="GIN",
                address_type=38,
                address_type_p2sh=10,
                maxfee_kb=100000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x02fe52cc,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=2000,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "GameCredits":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="GAME",
                address_type=38,
                address_type_p2sh=62,
                maxfee_kb=5000000,
                signed_message_header="GameCredits Signed Message:\n",
                xpub_magic=0x019d9cfe,
                xpub_magic_segwit_p2sh=0x01b26ef6,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="game",
                cashaddr_prefix=None,
                slip44=101,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Groestlcoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="GRS",
                address_type=36,
                address_type_p2sh=5,
                maxfee_kb=100000,
                signed_message_header="GroestlCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="grs",
                cashaddr_prefix=None,
                slip44=17,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1-groestl',
                confidential_assets=None,
            )
        elif name == "Groestlcoin Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tGRS",
                address_type=111,
                address_type_p2sh=196,
                maxfee_kb=100000,
                signed_message_header="GroestlCoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="tgrs",
                cashaddr_prefix=None,
                slip44=1,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1-groestl',
                confidential_assets=None,
            )
        elif name == "Hatch":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="HATCH",
                address_type=76,
                address_type_p2sh=16,
                maxfee_kb=100000,
                signed_message_header="Hatch Signed Message:\n",
                xpub_magic=0x02fe52cc,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=88888888,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Hatch Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tHATCH",
                address_type=140,
                address_type_p2sh=19,
                maxfee_kb=100000,
                signed_message_header="Hatch Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Horizen":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ZEN",
                address_type=8329,
                address_type_p2sh=8342,
                maxfee_kb=2000000,
                signed_message_header="Zcash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=121,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=True,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Komodo":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="KMD",
                address_type=60,
                address_type_p2sh=85,
                maxfee_kb=1000000,
                signed_message_header="Komodo Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=141,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=True,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Koto":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="KOTO",
                address_type=6198,
                address_type_p2sh=6203,
                maxfee_kb=1000000,
                signed_message_header="Koto Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=510,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Litecoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="LTC",
                address_type=48,
                address_type_p2sh=50,
                maxfee_kb=40000000,
                signed_message_header="Litecoin Signed Message:\n",
                xpub_magic=0x019da462,
                xpub_magic_segwit_p2sh=0x01b26ef6,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="ltc",
                cashaddr_prefix=None,
                slip44=2,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Litecoin Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tLTC",
                address_type=111,
                address_type_p2sh=58,
                maxfee_kb=40000000,
                signed_message_header="Litecoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="tltc",
                cashaddr_prefix=None,
                slip44=1,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Megacoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="MEC",
                address_type=50,
                address_type_p2sh=5,
                maxfee_kb=1000000,
                signed_message_header="MegaCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="mec",
                cashaddr_prefix=None,
                slip44=217,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Monacoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="MONA",
                address_type=50,
                address_type_p2sh=55,
                maxfee_kb=5000000,
                signed_message_header="Monacoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="mona",
                cashaddr_prefix=None,
                slip44=22,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "MonetaryUnit":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="MUE",
                address_type=16,
                address_type_p2sh=76,
                maxfee_kb=100000,
                signed_message_header="MonetaryUnit Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=31,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Myriad":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="XMY",
                address_type=50,
                address_type_p2sh=9,
                maxfee_kb=2000000,
                signed_message_header="Myriadcoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="my",
                cashaddr_prefix=None,
                slip44=90,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "NIX":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="NIX",
                address_type=38,
                address_type_p2sh=53,
                maxfee_kb=40000000,
                signed_message_header="NIX Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="nix",
                cashaddr_prefix=None,
                slip44=400,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Namecoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="NMC",
                address_type=52,
                address_type_p2sh=5,
                maxfee_kb=10000000,
                signed_message_header="Namecoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=7,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "OmotenashiCoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="MTNS",
                address_type=63,
                address_type_p2sh=18,
                maxfee_kb=100000,
                signed_message_header="MtnsNet Signed Message:\n",
                xpub_magic=0x03a39555,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=341,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "PIVX":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="PIVX",
                address_type=30,
                address_type_p2sh=13,
                maxfee_kb=100000,
                signed_message_header="DarkNet Signed Message:\n",
                xpub_magic=0x022d2533,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=119,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "PIVX Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tPIVX",
                address_type=139,
                address_type_p2sh=19,
                maxfee_kb=100000,
                signed_message_header="DarkNet Signed Message:\n",
                xpub_magic=0x3a8061a0,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Particl":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="PART",
                address_type=56,
                address_type_p2sh=60,
                maxfee_kb=2000000,
                signed_message_header="Bitcoin Signed Message:\n",
                xpub_magic=0x8f1daeb8,
                xpub_magic_segwit_p2sh=0x01b26ef6,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="bc",
                cashaddr_prefix=None,
                slip44=44,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Particl Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tPART",
                address_type=118,
                address_type_p2sh=122,
                maxfee_kb=10000000,
                signed_message_header="Bitcoin Signed Message:\n",
                xpub_magic=0x04889478,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="tb",
                cashaddr_prefix=None,
                slip44=1,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Pesetacoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="PTC",
                address_type=47,
                address_type_p2sh=22,
                maxfee_kb=1000000000,
                signed_message_header="Pesetacoin Signed Message:\n",
                xpub_magic=0x0488c42e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=109,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Polis":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="POLIS",
                address_type=55,
                address_type_p2sh=56,
                maxfee_kb=100000,
                signed_message_header="Polis Signed Message:\n",
                xpub_magic=0x03e25d7e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1997,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Primecoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="XPM",
                address_type=23,
                address_type_p2sh=83,
                maxfee_kb=1000000,
                signed_message_header="Primecoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=24,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Qtum":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="QTUM",
                address_type=58,
                address_type_p2sh=50,
                maxfee_kb=40000000,
                signed_message_header="Qtum Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="qc",
                cashaddr_prefix=None,
                slip44=2301,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Qtum Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tQTUM",
                address_type=120,
                address_type_p2sh=110,
                maxfee_kb=40000000,
                signed_message_header="Qtum Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=0x044a5262,
                xpub_magic_segwit_native=0x045f1cf6,
                bech32_prefix="tq",
                cashaddr_prefix=None,
                slip44=1,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Ravencoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="RVN",
                address_type=60,
                address_type_p2sh=122,
                maxfee_kb=2000000,
                signed_message_header="Raven Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=175,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Ritocoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="RITO",
                address_type=25,
                address_type_p2sh=105,
                maxfee_kb=2000000,
                signed_message_header="Rito Signed Message:\n",
                xpub_magic=0x0534e7ca,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=19169,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "SmartCash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="SMART",
                address_type=63,
                address_type_p2sh=18,
                maxfee_kb=1000000,
                signed_message_header="SmartCash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=224,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1-smart',
                confidential_assets=None,
            )
        elif name == "SmartCash Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tSMART",
                address_type=65,
                address_type_p2sh=21,
                maxfee_kb=1000000,
                signed_message_header="SmartCash Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=224,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1-smart',
                confidential_assets=None,
            )
        elif name == "Stakenet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="XSN",
                address_type=76,
                address_type_p2sh=16,
                maxfee_kb=2000000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="xc",
                cashaddr_prefix=None,
                slip44=199,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Umbru":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="UMBRU",
                address_type=68,
                address_type_p2sh=5,
                maxfee_kb=100000,
                signed_message_header="DarkCoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=395,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Unobtanium":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="UNO",
                address_type=130,
                address_type_p2sh=30,
                maxfee_kb=2000000,
                signed_message_header="Unobtanium Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=92,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "VIPSTARCOIN":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="VIPS",
                address_type=70,
                address_type_p2sh=50,
                maxfee_kb=40000000,
                signed_message_header="VIPSTARCOIN Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="vips",
                cashaddr_prefix=None,
                slip44=1919,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Vertcoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="VTC",
                address_type=71,
                address_type_p2sh=5,
                maxfee_kb=40000000,
                signed_message_header="Vertcoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="vtc",
                cashaddr_prefix=None,
                slip44=28,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Viacoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="VIA",
                address_type=71,
                address_type_p2sh=33,
                maxfee_kb=40000000,
                signed_message_header="Viacoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=0x049d7cb2,
                xpub_magic_segwit_native=0x04b24746,
                bech32_prefix="via",
                cashaddr_prefix=None,
                slip44=14,
                segwit=True,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "ZClassic":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ZCL",
                address_type=7352,
                address_type_p2sh=7357,
                maxfee_kb=1000000,
                signed_message_header="Zcash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=147,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Zcash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ZEC",
                address_type=7352,
                address_type_p2sh=7357,
                maxfee_kb=1000000,
                signed_message_header="Zcash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=133,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Zcash Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="TAZ",
                address_type=7461,
                address_type_p2sh=7354,
                maxfee_kb=10000000,
                signed_message_header="Zcash Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Zcoin":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="XZC",
                address_type=82,
                address_type_p2sh=7,
                maxfee_kb=1000000,
                signed_message_header="Zcoin Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=136,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "Zcoin Testnet":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="tXZC",
                address_type=65,
                address_type_p2sh=178,
                maxfee_kb=1000000,
                signed_message_header="Zcoin Signed Message:\n",
                xpub_magic=0x043587cf,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=1,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
        elif name == "ZelCash":
            return CoinInfo(
                coin_name=name,
                coin_shortcut="ZEL",
                address_type=7352,
                address_type_p2sh=7357,
                maxfee_kb=1000000,
                signed_message_header="Zcash Signed Message:\n",
                xpub_magic=0x0488b21e,
                xpub_magic_segwit_p2sh=None,
                xpub_magic_segwit_native=None,
                bech32_prefix=None,
                cashaddr_prefix=None,
                slip44=19167,
                segwit=False,
                fork_id=None,
                force_bip143=False,
                bip115=False,
                decred=False,
                negative_fee=False,
                curve_name='secp256k1',
                confidential_assets=None,
            )
    raise ValueError('Unknown coin name "%s"' % name)
