fixed up RPC identity checkers
[p2pool.git] / p2pool / bitcoin / networks.py
1 from twisted.internet import defer
2
3 from . import data
4
5
6 class BitcoinMainnet(object):
7     BITCOIN_P2P_PREFIX = 'f9beb4d9'.decode('hex')
8     BITCOIN_P2P_PORT = 8333
9     BITCOIN_ADDRESS_VERSION = 0
10     BITCOIN_RPC_PORT = 8332
11     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
12         'bitcoinaddress' in (yield bitcoind.rpc_help()) and
13         not (yield bitcoind.rpc_getinfo())['testnet']
14     )))
15     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//210000)
16     BITCOIN_POW_FUNC = data.block_header_type.hash256
17     BITCOIN_SYMBOL = 'BTC'
18
19 class BitcoinTestnet(object):
20     BITCOIN_P2P_PREFIX = 'fabfb5da'.decode('hex')
21     BITCOIN_P2P_PORT = 18333
22     BITCOIN_ADDRESS_VERSION = 111
23     BITCOIN_RPC_PORT = 8332
24     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
25         'bitcoinaddress' in (yield bitcoind.rpc_help()) and
26         (yield bitcoind.rpc_getinfo())['testnet']
27     )))
28     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//210000)
29     BITCOIN_POW_FUNC = data.block_header_type.hash256
30     BITCOIN_SYMBOL = 'tBTC'
31
32
33 class NamecoinMainnet(object):
34     BITCOIN_P2P_PREFIX = 'f9beb4fe'.decode('hex')
35     BITCOIN_P2P_PORT = 8334
36     BITCOIN_ADDRESS_VERSION = 52
37     BITCOIN_RPC_PORT = 8332
38     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
39         'namecoinaddress' in (yield bitcoind.rpc_help()) and
40         not (yield bitcoind.rpc_getinfo())['testnet']
41     )))
42     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//210000)
43     BITCOIN_POW_FUNC = data.block_header_type.hash256
44     BITCOIN_SYMBOL = 'NMC'
45
46 class NamecoinTestnet(object):
47     BITCOIN_P2P_PREFIX = 'fabfb5fe'.decode('hex')
48     BITCOIN_P2P_PORT = 18334
49     BITCOIN_ADDRESS_VERSION = 111
50     BITCOIN_RPC_PORT = 8332
51     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
52         'namecoinaddress' in (yield bitcoind.rpc_help()) and
53         (yield bitcoind.rpc_getinfo())['testnet']
54     )))
55     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//210000)
56     BITCOIN_POW_FUNC = data.block_header_type.hash256
57     BITCOIN_SYMBOL = 'tNMC'
58
59
60 class LitecoinMainnet(object):
61     BITCOIN_P2P_PREFIX = 'fbc0b6db'.decode('hex')
62     BITCOIN_P2P_PORT = 9333
63     BITCOIN_ADDRESS_VERSION = 48
64     BITCOIN_RPC_PORT = 9332
65     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
66         'litecoinaddress' in (yield bitcoind.rpc_help()) and
67         not (yield bitcoind.rpc_getinfo())['testnet']
68     )))
69     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//840000)
70     BITCOIN_POW_FUNC = data.block_header_type.scrypt
71     BITCOIN_SYMBOL = 'LTC'
72
73 class LitecoinTestnet(object):
74     BITCOIN_P2P_PREFIX = 'fcc1b7dc'.decode('hex')
75     BITCOIN_P2P_PORT = 19333
76     BITCOIN_ADDRESS_VERSION = 111
77     BITCOIN_RPC_PORT = 19332
78     BITCOIN_RPC_CHECK = staticmethod(defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
79         'litecoinaddress' in (yield bitcoind.rpc_help()) and
80         (yield bitcoind.rpc_getinfo())['testnet']
81     )))
82     BITCOIN_SUBSIDY_FUNC = staticmethod(lambda height: 50*100000000 >> (height + 1)//840000)
83     BITCOIN_POW_FUNC = data.block_header_type.scrypt
84     BITCOIN_SYMBOL = 'tLTC'