Browse Source

Add support for ODIN Coin (#815)

patch-2
Pixxl 6 years ago
committed by Neil
parent
commit
bf845a157c
  1. 46
      electrumx/lib/coins.py
  2. 20
      tests/blocks/odin_mainnet_1337.json
  3. 20
      tests/blocks/odin_mainnet_17000.json

46
electrumx/lib/coins.py

@ -2097,6 +2097,52 @@ class Xuez(Coin):
return xevan_hash.getPoWHash(header)
# Source: https://github.com/odinblockchain/odin
class Odin(Coin):
NAME = "ODIN"
SHORTNAME = "ODIN"
NET = "mainnet"
XPUB_VERBYTES = bytes.fromhex("27561872")
XPRV_VERBYTES = bytes.fromhex("27256746")
P2PKH_VERBYTE = bytes.fromhex("73")
P2SH_VERBYTES = [bytes.fromhex("39")]
WIF_BYTE = bytes.fromhex("8a")
GENESIS_HASH = ('31ca29566549e444cf227a0e2e067aed'
'847c2acc541d3bbf9ca1ae89f4fd57d7')
TX_COUNT = 340000
TX_COUNT_HEIGHT = 340000
TX_PER_BLOCK = 2
RPC_PORT = 22101
REORG_LIMIT = 100
BASIC_HEADER_SIZE = 80
HDR_V4_SIZE = 112
HDR_V4_HEIGHT = 143447
HDR_V4_START_OFFSET = HDR_V4_HEIGHT * BASIC_HEADER_SIZE
SESSIONCLS = DashElectrumX
DAEMON = daemon.DashDaemon
@classmethod
def static_header_offset(cls, height):
assert cls.STATIC_BLOCK_HEADERS
if height >= cls.HDR_V4_HEIGHT:
relative_v4_offset = (height - cls.HDR_V4_HEIGHT) * cls.HDR_V4_SIZE
return cls.HDR_V4_START_OFFSET + relative_v4_offset
else:
return height * cls.BASIC_HEADER_SIZE
@classmethod
def header_hash(cls, header):
version, = util.unpack_le_uint32_from(header)
if version >= 4:
return super().header_hash(header)
else:
import quark_hash
return quark_hash.getPoWHash(header)
class Pac(Coin):
NAME = "PAC"
SHORTNAME = "PAC"

20
tests/blocks/odin_mainnet_1337.json

@ -0,0 +1,20 @@
{
"hash": "6733a167600d75c51e4e1c86aca95e5cb2c7b5a545f4027906dfda890e426413",
"confirmations": 313490,
"height": 1337,
"version": 3,
"merkleroot": "82428534b45d72fb714efc68201805a4108e438f344a21d73e270a19515be161",
"time": 1538189461,
"nonce": 0,
"bits": "1a0db9f7",
"difficulty": 1222238.113064503,
"chainwork": "000000000000000000000000000000000000000000000000264ff2b7dbef2c2f",
"acc_checkpoint": "0000000000000000000000000000000000000000000000000000000000000000",
"previousblockhash": "8124baf13a48e7f9336db961d0b59b2021cf95138b3068f6c22b689cbe265c83",
"nextblockhash": "28dd5e9887f029a46e1bf12100403c698087747ff1fbb7cf1f5802b4e28cb982",
"tx": [
"bf927d12784d64dfadb8ccd27124abe0c5c4978cef1dc84187285e7bca05d282",
"8663461f3adaa54a2438ef83198ad31f34747f9e037ca89351e88c9dd9e7c3e3"
],
"block": "03000000835c26be9c682bc2f668308b1395cf21209bb5d061b96d33f9e7483af1ba248161e15b51190a273ed7214a348f438e10a405182068fc4e71fb725db43485428295e8ae5bf7b90d1a000000000201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff050239050101ffffffff010000000000000000000000000001000000010b0e46907b49b0794767633f59e584719d81aead72d87a26bbbae595cc04f88b0100000049483045022100fff2f7b2b4abad935f5a5731dd4b3363e658d3bcf433263e7ec813313dc6230102207772df5639a8cfad622ba8d54f7aa22ecaff88bc360222fc6e6d2ebaa9f9941401ffffffff040000000000000000000028babda0050000232103c16d7c1523d9f36578e9e631f97b7a39e5282ccd6374d98b2aacf1dd4fe984a6ac42f2f6aba0050000232103c16d7c1523d9f36578e9e631f97b7a39e5282ccd6374d98b2aacf1dd4fe984a6ac00a3e111000000001976a91492150f863991f5a465a0a3a06caebd2787a260a588ac00000000473045022100d478732e49ab4f273c687bc24f6a646d8aad6877b0948a24f9030d7683b028d502207f8933b6de4604d2d702a165eaca9ede81933ca1185c00c6dd365e074935a741"
}

20
tests/blocks/odin_mainnet_17000.json

@ -0,0 +1,20 @@
{
"hash": "7bc09de55cd8334f6f167829753f043ac1afa4eddaf5898dc1a14b46ace947f0",
"confirmations": 144827,
"height": 170000,
"version": 4,
"merkleroot": "e60ecea79426c869bea8d064465dd9cc9e6b426bdfb632752e3de3c352272f27",
"time": 1548246463,
"nonce": 0,
"bits": "1a2865aa",
"difficulty": 415300.8388247479,
"chainwork": "00000000000000000000000000000000000000000000001371001c2972478ec1",
"acc_checkpoint": "0000000000000000000000000000000000000000000000000000000000000000",
"previousblockhash": "2cc1019efc9b89475c0f2a72d1418c4387cfd8b9da5548d819740b0a9843568d",
"nextblockhash": "cce7302d617f9a490104e70098f8e6015a46499516b25bf6fbd54c4edbefb808",
"tx": [
"77f183818333fc317122c448151f5d11b7f621151130ce02bf6acd1f6ccbadd6",
"39436b3d686eb2be88c89e4edb66fa853a3d49f1ded40d2cd156b0e43c2e8e82"
],
"block": "040000008d5643980a0b7419d84855dab9d8cf87438c41d1722a0f5c47899bfc9e01c12c272f2752c3e33d2e7532b6df6b426b9eccd95d4664d0a8be69c82694a7ce0ee6bf5d485caa65281a0000000000000000000000000000000000000000000000000000000000000000000000000201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff06031098020101ffffffff0100000000000000000000000000010000000102b5c06f8f38c2139a5e51b15fcc8ce4685523b4549b4c3528483fad0c865b87030000006b4830450221008374ad472e099de0cc627f2d6ea2e9ffe878ad41bc1209ebe8e942eb516dc9dc022070968c94f60d55902a64bb3705502eb0ed591cf090785ad44061ba4a987db0ab012103cdca2f4c4d26ce23d543caf2d14426e4cd03878bd29c3637d7f181e3fe1ffc25ffffffff03000000000000000000366f6a6701000000232103cdca2f4c4d26ce23d543caf2d14426e4cd03878bd29c3637d7f181e3fe1ffc25ac009aad4e000000001976a9141ec10816853643a3b3cbbb8189d0bfbea75304bf88ac00000000473045022100b8aa4d4fde2452268ba06a0bf7be76e48007ec439ce97a6647ff10a293d2f54a02202c21ee5eefa4d078eae5d6a16ce29debfce274ed4f9cd38feab80821a6ec83fc"
}
Loading…
Cancel
Save