1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-13 19:18:56 +00:00
trezor-firmware/core/src/apps/common/coininfo.py
2020-04-15 15:00:23 +02:00

1859 lines
65 KiB
Python

# 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,
decimals: int,
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,
decred: bool,
negative_fee: bool,
curve_name: str,
extra_data: bool,
timestamp: bool,
overwintered: bool,
confidential_assets: dict,
):
self.coin_name = coin_name
self.coin_shortcut = coin_shortcut
self.decimals = decimals
self.address_type = address_type
self.address_type_p2sh = address_type_p2sh
self.maxfee_kb = maxfee_kb
self.signed_message_header = signed_message_header
self.xpub_magic = xpub_magic
self.xpub_magic_segwit_p2sh = xpub_magic_segwit_p2sh
self.xpub_magic_segwit_native = xpub_magic_segwit_native
self.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.decred = decred
self.negative_fee = negative_fee
self.curve_name = curve_name
self.extra_data = extra_data
self.timestamp = timestamp
self.overwintered = overwintered
self.confidential_assets = confidential_assets
if curve_name == "secp256k1-groestl":
self.b58_hash = groestl512d_32
self.sign_hash_double = False
self.script_hash = 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",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Regtest":
return CoinInfo(
coin_name=name,
coin_shortcut="REGTEST",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="TEST",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
if not utils.BITCOIN_ONLY:
if False:
pass
elif name == "Actinium":
return CoinInfo(
coin_name=name,
coin_shortcut="ACM",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Axe":
return CoinInfo(
coin_name=name,
coin_shortcut="AXE",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bellcoin":
return CoinInfo(
coin_name=name,
coin_shortcut="BELL",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "BitZeny":
return CoinInfo(
coin_name=name,
coin_shortcut="ZNY",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bcash":
return CoinInfo(
coin_name=name,
coin_shortcut="BCH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bcash Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="TBCH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bgold":
return CoinInfo(
coin_name=name,
coin_shortcut="BTG",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bgold Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="TBTG",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bprivate":
return CoinInfo(
coin_name=name,
coin_shortcut="BTCP",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Brhodium":
return CoinInfo(
coin_name=name,
coin_shortcut="XRC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Bitcore":
return CoinInfo(
coin_name=name,
coin_shortcut="BTX",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "CPUchain":
return CoinInfo(
coin_name=name,
coin_shortcut="CPU",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Crown":
return CoinInfo(
coin_name=name,
coin_shortcut="CRW",
decimals=8,
address_type=95495,
address_type_p2sh=95473,
maxfee_kb=2000000,
signed_message_header="Crown Signed Message:\n",
xpub_magic=0x0488b21e,
xpub_magic_segwit_p2sh=None,
xpub_magic_segwit_native=None,
bech32_prefix=None,
cashaddr_prefix=None,
slip44=72,
segwit=False,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Dash":
return CoinInfo(
coin_name=name,
coin_shortcut="DASH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=True,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Dash Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tDASH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=True,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Decred":
return CoinInfo(
coin_name=name,
coin_shortcut="DCR",
decimals=8,
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,
decred=True,
negative_fee=False,
curve_name='secp256k1-decred',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Decred Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="TDCR",
decimals=8,
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,
decred=True,
negative_fee=False,
curve_name='secp256k1-decred',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "DigiByte":
return CoinInfo(
coin_name=name,
coin_shortcut="DGB",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Dogecoin":
return CoinInfo(
coin_name=name,
coin_shortcut="DOGE",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Elements":
return CoinInfo(
coin_name=name,
coin_shortcut="ELEMENTS",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets={'address_prefix': 4, 'blech32_prefix': 'el'},
)
elif name == "Feathercoin":
return CoinInfo(
coin_name=name,
coin_shortcut="FTC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Florincoin":
return CoinInfo(
coin_name=name,
coin_shortcut="FLO",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Fujicoin":
return CoinInfo(
coin_name=name,
coin_shortcut="FJC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Gincoin":
return CoinInfo(
coin_name=name,
coin_shortcut="GIN",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "GameCredits":
return CoinInfo(
coin_name=name,
coin_shortcut="GAME",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Groestlcoin":
return CoinInfo(
coin_name=name,
coin_shortcut="GRS",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1-groestl',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Groestlcoin Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tGRS",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1-groestl',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Hatch":
return CoinInfo(
coin_name=name,
coin_shortcut="HATCH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Hatch Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tHATCH",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Komodo":
return CoinInfo(
coin_name=name,
coin_shortcut="KMD",
decimals=8,
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,
decred=False,
negative_fee=True,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=True,
confidential_assets=None,
)
elif name == "Koto":
return CoinInfo(
coin_name=name,
coin_shortcut="KOTO",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Litecoin":
return CoinInfo(
coin_name=name,
coin_shortcut="LTC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Litecoin Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tLTC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "MetaverseETP":
return CoinInfo(
coin_name=name,
coin_shortcut="ETP",
decimals=8,
address_type=50,
address_type_p2sh=5,
maxfee_kb=2000000,
signed_message_header="Metaverse Signed Message:\n",
xpub_magic=0x0488b21e,
xpub_magic_segwit_p2sh=None,
xpub_magic_segwit_native=None,
bech32_prefix=None,
cashaddr_prefix=None,
slip44=2302,
segwit=False,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Monacoin":
return CoinInfo(
coin_name=name,
coin_shortcut="MONA",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "MonetaryUnit":
return CoinInfo(
coin_name=name,
coin_shortcut="MUE",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "NIX":
return CoinInfo(
coin_name=name,
coin_shortcut="NIX",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Namecoin":
return CoinInfo(
coin_name=name,
coin_shortcut="NMC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "PIVX":
return CoinInfo(
coin_name=name,
coin_shortcut="PIVX",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "PIVX Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tPIVX",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Particl":
return CoinInfo(
coin_name=name,
coin_shortcut="PART",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Particl Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tPART",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Peercoin":
return CoinInfo(
coin_name=name,
coin_shortcut="PPC",
decimals=6,
address_type=55,
address_type_p2sh=117,
maxfee_kb=2000000,
signed_message_header="Peercoin Signed Message:\n",
xpub_magic=0x0488b21e,
xpub_magic_segwit_p2sh=0x049d7cb2,
xpub_magic_segwit_native=0x04b24746,
bech32_prefix="pc",
cashaddr_prefix=None,
slip44=6,
segwit=True,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=True,
overwintered=False,
confidential_assets=None,
)
elif name == "Peercoin Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tPPC",
decimals=6,
address_type=111,
address_type_p2sh=196,
maxfee_kb=2000000,
signed_message_header="Peercoin Signed Message:\n",
xpub_magic=0x043587cf,
xpub_magic_segwit_p2sh=0x044a5262,
xpub_magic_segwit_native=0x045f1cf6,
bech32_prefix="tpc",
cashaddr_prefix=None,
slip44=1,
segwit=True,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=True,
overwintered=False,
confidential_assets=None,
)
elif name == "Pesetacoin":
return CoinInfo(
coin_name=name,
coin_shortcut="PTC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Polis":
return CoinInfo(
coin_name=name,
coin_shortcut="POLIS",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Primecoin":
return CoinInfo(
coin_name=name,
coin_shortcut="XPM",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Qtum":
return CoinInfo(
coin_name=name,
coin_shortcut="QTUM",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Qtum Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tQTUM",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Ravencoin":
return CoinInfo(
coin_name=name,
coin_shortcut="RVN",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Ritocoin":
return CoinInfo(
coin_name=name,
coin_shortcut="RITO",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "SmartCash":
return CoinInfo(
coin_name=name,
coin_shortcut="SMART",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1-smart',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "SmartCash Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tSMART",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1-smart',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Stakenet":
return CoinInfo(
coin_name=name,
coin_shortcut="XSN",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Syscoin":
return CoinInfo(
coin_name=name,
coin_shortcut="SYS",
decimals=8,
address_type=63,
address_type_p2sh=5,
maxfee_kb=20000000,
signed_message_header="Syscoin Signed Message:\n",
xpub_magic=0x0488b21e,
xpub_magic_segwit_p2sh=0x049d7cb2,
xpub_magic_segwit_native=0x04b24746,
bech32_prefix="sys",
cashaddr_prefix=None,
slip44=57,
segwit=True,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Unobtanium":
return CoinInfo(
coin_name=name,
coin_shortcut="UNO",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "VIPSTARCOIN":
return CoinInfo(
coin_name=name,
coin_shortcut="VIPS",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Vertcoin":
return CoinInfo(
coin_name=name,
coin_shortcut="VTC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Viacoin":
return CoinInfo(
coin_name=name,
coin_shortcut="VIA",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "ZCore":
return CoinInfo(
coin_name=name,
coin_shortcut="ZCR",
decimals=8,
address_type=142,
address_type_p2sh=145,
maxfee_kb=1000000,
signed_message_header="DarkNet Signed Message:\n",
xpub_magic=0x04b24746,
xpub_magic_segwit_p2sh=None,
xpub_magic_segwit_native=None,
bech32_prefix=None,
cashaddr_prefix=None,
slip44=428,
segwit=False,
fork_id=None,
force_bip143=False,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Zcash":
return CoinInfo(
coin_name=name,
coin_shortcut="ZEC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=True,
timestamp=False,
overwintered=True,
confidential_assets=None,
)
elif name == "Zcash Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="TAZ",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=True,
timestamp=False,
overwintered=True,
confidential_assets=None,
)
elif name == "Zcoin":
return CoinInfo(
coin_name=name,
coin_shortcut="XZC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "Zcoin Testnet":
return CoinInfo(
coin_name=name,
coin_shortcut="tXZC",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
elif name == "ZelCash":
return CoinInfo(
coin_name=name,
coin_shortcut="ZEL",
decimals=8,
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,
decred=False,
negative_fee=False,
curve_name='secp256k1',
extra_data=False,
timestamp=False,
overwintered=False,
confidential_assets=None,
)
raise ValueError('Unknown coin name "%s"' % name)