forked from LBRYCommunity/lbry-sdk
85 lines
2.3 KiB
Python
85 lines
2.3 KiB
Python
__coin__ = 'BitcoinCash'
|
|
__node_daemon__ = 'bitcoind'
|
|
__node_cli__ = 'bitcoin-cli'
|
|
__node_url__ = (
|
|
'https://download.bitcoinabc.org/0.17.2/linux/bitcoin-abc-0.17.2-x86_64-linux-gnu.tar.gz'
|
|
)
|
|
|
|
from six import int2byte
|
|
from binascii import unhexlify
|
|
from torba.baseledger import BaseLedger, BaseHeaders
|
|
from torba.basenetwork import BaseNetwork
|
|
from torba.basescript import BaseInputScript, BaseOutputScript
|
|
from torba.basetransaction import BaseTransaction, BaseInput, BaseOutput
|
|
from torba.basecoin import BaseCoin
|
|
from torba.basedatabase import BaseSQLiteWalletStorage
|
|
from torba.basemanager import BaseWalletManager
|
|
|
|
|
|
class WalletManager(BaseWalletManager):
|
|
pass
|
|
|
|
|
|
class Input(BaseInput):
|
|
script_class = BaseInputScript
|
|
|
|
|
|
class Output(BaseOutput):
|
|
script_class = BaseOutputScript
|
|
|
|
|
|
class Transaction(BaseTransaction):
|
|
input_class = Input
|
|
output_class = Output
|
|
|
|
|
|
class BitcoinCashLedger(BaseLedger):
|
|
network_class = BaseNetwork
|
|
headers_class = BaseHeaders
|
|
database_class = BaseSQLiteWalletStorage
|
|
|
|
|
|
class MainNetLedger(BitcoinCashLedger):
|
|
pass
|
|
|
|
|
|
class UnverifiedHeaders(BaseHeaders):
|
|
verify_bits_to_target = False
|
|
|
|
|
|
class RegTestLedger(BitcoinCashLedger):
|
|
headers_class = UnverifiedHeaders
|
|
max_target = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
genesis_hash = '0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206'
|
|
genesis_bits = 0x207fffff
|
|
target_timespan = 1
|
|
verify_bits_to_target = False
|
|
|
|
|
|
class BitcoinCash(BaseCoin):
|
|
name = 'BitcoinCash'
|
|
symbol = 'BCH'
|
|
network = 'mainnet'
|
|
|
|
ledger_class = MainNetLedger
|
|
transaction_class = Transaction
|
|
|
|
pubkey_address_prefix = int2byte(0x00)
|
|
script_address_prefix = int2byte(0x05)
|
|
extended_public_key_prefix = unhexlify('0488b21e')
|
|
extended_private_key_prefix = unhexlify('0488ade4')
|
|
|
|
default_fee_per_byte = 50
|
|
|
|
def __init__(self, ledger, fee_per_byte=default_fee_per_byte):
|
|
super(BitcoinCash, self).__init__(ledger, fee_per_byte)
|
|
|
|
|
|
class BitcoinCashRegtest(BitcoinCash):
|
|
network = 'regtest'
|
|
ledger_class = RegTestLedger
|
|
pubkey_address_prefix = int2byte(111)
|
|
script_address_prefix = int2byte(196)
|
|
extended_public_key_prefix = unhexlify('043587cf')
|
|
extended_private_key_prefix = unhexlify('04358394')
|
|
|