You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/core/src/apps/common/coininfo.py

1737 lines
55 KiB

# generated from coininfo.py.mako
# do not edit manually!
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 == "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,
)
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 == "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 == "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 == "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 == "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)