Browse Source

Add support for Bitsend (BSD) (#738)

patch-2
David 6 years ago
committed by Neil
parent
commit
d96a91c727
  1. 47
      electrumx/lib/coins.py
  2. 14
      tests/blocks/bitsend_mainnet_571000.json

47
electrumx/lib/coins.py

@ -2758,3 +2758,50 @@ class Sparks(Coin):
def header_hash(cls, header):
import neoscrypt
return neoscrypt.getPoWHash(header)
# Source: https://github.com/LIMXTEC/BitSend
class Bitsend(Coin):
NAME = "Bitsend"
SHORTNAME = "BSD"
NET = "mainnet"
XPUB_VERBYTES = bytes.fromhex("0488B21E")
XPRV_VERBYTES = bytes.fromhex("0488ADE4")
P2PKH_VERBYTE = bytes.fromhex("66")
P2SH_VERBYTES = [bytes.fromhex("05")]
WIF_BYTE = bytes.fromhex("cc")
GENESIS_HASH = ('0000012e1b8843ac9ce8c18603658eaf'
'8895f99d3f5e7e1b7b1686f35e3c087a')
TX_COUNT = 974672
TX_COUNT_HEIGHT = 586022
TX_PER_BLOCK = 2
RPC_PORT = 8800
REORG_LIMIT = 1000
DESERIALIZER = lib_tx.DeserializerSegWit
XEVAN_TIMESTAMP = 1477958400
PEERS = [
'ele1.bitsend.cc s t',
'51.15.121.233 s t'
]
@classmethod
def header_hash(cls, header):
from datetime import datetime
timestamp, = util.unpack_le_uint32_from(header, 68)
t = datetime.fromtimestamp(timestamp).strftime("%A, %B %d, %Y %I:%M:%S")
version, = util.unpack_le_uint32_from(header, 0)
if timestamp > cls.XEVAN_TIMESTAMP:
import xevan_hash
return xevan_hash.getPoWHash(header)
else:
import x11_hash
return x11_hash.getPoWHash(header)
@classmethod
def genesis_block(cls, block):
header = cls.block_header(block, 0)
header_hex_hash = hash_to_hex_str(cls.header_hash(header))
if header_hex_hash != cls.GENESIS_HASH:
raise CoinError('genesis block has hash {} expected {}'
.format(header_hex_hash, cls.GENESIS_HASH))
return header + bytes(1)

14
tests/blocks/bitsend_mainnet_571000.json

@ -0,0 +1,14 @@
{
"hash": "0000000001b4c0cb741826a3236dfec65bafa6c901017ec2fe2b2662c6ec61cd",
"size": 271,
"height": 571000,
"merkleroot": "06fd61c7db6ba8d545b2c526c97f12d38474c9d5af8db804628c6c85c187a7b1",
"tx": [
"06fd61c7db6ba8d545b2c526c97f12d38474c9d5af8db804628c6c85c187a7b1"
],
"time": 1545267703,
"nonce": 679226306,
"bits": "1c028ff3",
"previousblockhash": "0000000002342e7f451c92b854ca068e1ea74d63405c01474ba05f80f0339078",
"block": "00000020789033f0805fa04b47015c40634da71e8e06ca54b8921c457f2e340200000000b1a787c1856c8c6204b88dafd5c97484d3127fc926c5b245d5a86bdbc761fd06f7e91a5cf38f021cc22b7c280101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff470378b60804f7e91a5c088101a570000000007a706f6f6c2e636100fabe6d6dfc11ced4e4a37b1706f30fea53f48c8baca01352a779873de984f74878b0b56a0100000000000000000000000200943577000000001976a9144364f5d8286d24d39df19bc6a5249a556b44730f88ac0065cd1d000000001976a9143a08893f724a005fe395db90e9572189e7ce4a2588ac00000000"
}
Loading…
Cancel
Save