diff --git a/README.md b/README.md index 3b4da2ab..5e2b0821 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Do the following: import bitcoin bitcoin.SelectParams(NAME) -Where NAME is one of 'testnet', 'mainnet', or 'regtest'. The chain currently +Where NAME is one of 'testnet', 'mainnet', 'regtest' for bitcoin and 'ltc_mainnet', 'ltc_testnet' for litecoin. The chain currently selected is a global variable that changes behavior everywhere, just like in the Satoshi codebase. diff --git a/bitcoin/__init__.py b/bitcoin/__init__.py index e12eaf2f..ace4b6d8 100644 --- a/bitcoin/__init__.py +++ b/bitcoin/__init__.py @@ -27,7 +27,8 @@ class MainParams(bitcoin.core.CoreMainParams): ('dashjr.org', 'dnsseed.bitcoin.dashjr.org'), ('bitcoinstats.com', 'seed.bitcoinstats.com'), ('xf2.org', 'bitseed.xf2.org'), - ('bitcoin.jonasschnelli.ch', 'seed.bitcoin.jonasschnelli.ch')) + ('bitcoin.jonasschnelli.ch', 'seed.bitcoin.jonasschnelli.ch'), + ('btc.petertodd.org', "seed.btc.petertodd.org")) BASE58_PREFIXES = {'PUBKEY_ADDR':0, 'SCRIPT_ADDR':5, 'SECRET_KEY' :128} @@ -53,6 +54,34 @@ class RegTestParams(bitcoin.core.CoreRegTestParams): 'SCRIPT_ADDR':196, 'SECRET_KEY' :239} +class LitecoinMainParams(bitcoin.core.CoreMainParams): + NAME = 'ltc_mainnet' + MESSAGE_START = b'\xfb\xc0\xb6\xdb' + DEFAULT_PORT = 9333 + RPC_PORT = 9332 + DNS_SEEDS = (('litecoin.loshan.co.uk', 'seed-a.litecoin.loshan.co.uk'), + ('thrasher.io', 'dnsseed.thrasher.io'), + ('litecointools.com', 'dnsseed.litecointools.com'), + ('litecoinpool.org', 'dnsseed.litecoinpool.org'), + ('koin-project.com', 'dnsseed.koin-project.com')) + BASE58_PREFIXES = {'PUBKEY_ADDR':48, + 'SCRIPT_ADDR':5, + 'SECRET_KEY' :176} + +class LitecoinTestNetParams(bitcoin.core.CoreTestNetParams): + NAME = 'ltc_testnet' + MESSAGE_START = b'\xfd\xd2\xc8\xf1' + DEFAULT_PORT = 19335 + RPC_PORT = 19332 + DNS_SEEDS = (('litecointools.com', 'testnet-seed.litecointools.com'), + ('litecoin.loshan.co.uk', 'seed-b.litecoin.loshan.co.uk'), + ('thrasher.io', 'dnsseed-testnet.thrasher.io')) + BASE58_PREFIXES = {'PUBKEY_ADDR':111, + 'SCRIPT_ADDR':196, + 'SECRET_KEY' :239} + + + """Master global setting for what chain params we're using. However, don't set this directly, use SelectParams() instead so as to set the @@ -76,5 +105,13 @@ def SelectParams(name): params = bitcoin.core.coreparams = TestNetParams() elif name == 'regtest': params = bitcoin.core.coreparams = RegTestParams() + elif name == 'ltc_mainnet': + params = bitcoin.core.coreparams = LitecoinMainParams() + elif name == 'ltc_testnet': + params = bitcoin.core.coreparams = LitecoinTestNetParams() else: raise ValueError('Unknown chain %r' % name) + +def get_params(): + global params + return params diff --git a/bitcoin/core/__init__.py b/bitcoin/core/__init__.py index 272bec5c..b3ea9b7d 100644 --- a/bitcoin/core/__init__.py +++ b/bitcoin/core/__init__.py @@ -768,9 +768,9 @@ def _SelectCoreParams(name): consensus-critical and general parameters are set properly. """ global coreparams - if name == 'mainnet': + if name == 'mainnet' or name == 'ltc_mainnet': coreparams = CoreMainParams() - elif name == 'testnet': + elif name == 'testnet' or name == 'ltc_testnet': coreparams = CoreTestNetParams() elif name == 'regtest': coreparams = CoreRegTestParams()