@ -440,6 +440,7 @@ class BitcoinSegwit(BitcoinMixin, Coin):
class BitcoinGold ( EquihashMixin , BitcoinMixin , Coin ) :
CHUNK_SIZE = 252
NAME = " BitcoinGold "
SHORTNAME = " BTG "
FORK_HEIGHT = 491407
@ -450,6 +451,7 @@ class BitcoinGold(EquihashMixin, BitcoinMixin, Coin):
TX_COUNT_HEIGHT = 499923
TX_PER_BLOCK = 50
REORG_LIMIT = 1000
RPC_PORT = 8338
@classmethod
def header_hash ( cls , header ) :
@ -461,6 +463,54 @@ class BitcoinGold(EquihashMixin, BitcoinMixin, Coin):
else :
return double_sha256 ( header [ : 68 ] + header [ 100 : 112 ] )
@classmethod
def electrum_header ( cls , header , height ) :
h = dict (
block_height = height ,
version = struct . unpack ( ' <I ' , header [ : 4 ] ) [ 0 ] ,
prev_block_hash = hash_to_str ( header [ 4 : 36 ] ) ,
merkle_root = hash_to_str ( header [ 36 : 68 ] ) ,
timestamp = struct . unpack ( ' <I ' , header [ 100 : 104 ] ) [ 0 ] ,
reserved = hash_to_str ( header [ 72 : 100 ] ) ,
bits = struct . unpack ( ' <I ' , header [ 104 : 108 ] ) [ 0 ] ,
nonce = hash_to_str ( header [ 108 : 140 ] ) ,
solution = hash_to_str ( header [ 140 : ] )
)
return h
class BitcoinGoldTestnet ( BitcoinGold ) :
FORK_HEIGHT = 1
SHORTNAME = " TBTG "
XPUB_VERBYTES = bytes . fromhex ( " 043587CF " )
XPRV_VERBYTES = bytes . fromhex ( " 04358394 " )
P2PKH_VERBYTE = bytes . fromhex ( " 6F " )
P2SH_VERBYTES = [ bytes . fromhex ( " C4 " ) ]
WIF_BYTE = bytes . fromhex ( " EF " )
TX_COUNT = 0
TX_COUNT_HEIGHT = 1
NET = ' testnet '
RPC_PORT = 18338
GENESIS_HASH = ( ' 00000000e0781ebe24b91eedc293adfe '
' a2f557b53ec379e78959de3853e6f9f6 ' )
class BitcoinGoldRegtest ( BitcoinGold ) :
FORK_HEIGHT = 2000
SHORTNAME = " TBTG "
XPUB_VERBYTES = bytes . fromhex ( " 043587CF " )
XPRV_VERBYTES = bytes . fromhex ( " 04358394 " )
P2PKH_VERBYTE = bytes . fromhex ( " 6F " )
P2SH_VERBYTES = [ bytes . fromhex ( " C4 " ) ]
WIF_BYTE = bytes . fromhex ( " EF " )
TX_COUNT = 0
TX_COUNT_HEIGHT = 1
NET = ' regtest '
RPC_PORT = 18444
GENESIS_HASH = ( ' 0f9188f13cb7b2c71f2a335e3a4fc328 '
' bf5beb436012afca590b1a11466e2206 ' )
class Emercoin ( Coin ) :
NAME = " Emercoin "
@ -537,11 +587,6 @@ class BitcoinSegwitTestnet(BitcoinTestnetMixin, Coin):
]
class BitcoinGoldTestnet ( BitcoinTestnetMixin , BitcoinGold ) :
NAME = " BitcoinGold "
FORK_HEIGHT = 1210320
class BitcoinSegwitRegtest ( BitcoinSegwitTestnet ) :
NAME = " BitcoinSegwit "
NET = " regtest "