diff --git a/electrumx/lib/coins.py b/electrumx/lib/coins.py index faf51ab..3f655aa 100644 --- a/electrumx/lib/coins.py +++ b/electrumx/lib/coins.py @@ -2051,6 +2051,26 @@ class Pivx(Coin): return quark_hash.getPoWHash(header) +class PivxTestnet(Pivx): + SHORTNAME = "tPIVX" + NET = "testnet" + XPUB_VERBYTES = bytes.fromhex("3a8061a0") + XPRV_VERBYTES = bytes.fromhex("3a805837") + P2PKH_VERBYTE = bytes.fromhex("8B") + P2SH_VERBYTES = [bytes.fromhex("13")] + WIF_BYTE = bytes.fromhex("EF") + GENESIS_HASH = ( + '0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818') + BASIC_HEADER_SIZE = 80 + HDR_V4_SIZE = 112 + HDR_V4_HEIGHT = 863787 + HDR_V4_START_OFFSET = HDR_V4_HEIGHT * BASIC_HEADER_SIZE + TX_COUNT = 2157510 + TX_COUNT_HEIGHT = 569399 + TX_PER_BLOCK = 2 + RPC_PORT = 51472 + + class Bitg(Coin): NAME = "BitcoinGreen" diff --git a/tests/blocks/pivx_testnet_1000.json b/tests/blocks/pivx_testnet_1000.json new file mode 100644 index 0000000..7c4d3e8 --- /dev/null +++ b/tests/blocks/pivx_testnet_1000.json @@ -0,0 +1,12 @@ +{ + "hash": "0923838e270b6c62e8ee957541793511c8aca8db2f6edea5209d3c6fd03b3bbb", + "size": 461, + "height": 10000, + "merkleroot": "af2180392bc2a7d273f8da7c307a12e97ebc19271b7612d2b885079564fc86cc", + "tx": ["df275d713fcf5e78e7e8369d640201d46736c0d2255e31ce45bd5aa0206f861f", "b68d2b93908869b5cf6ebe069aa21dd7ca3f6d5637cc098f3ec3f6f0406f6093"], + "time": 1489054870, + "nonce": 0, + "bits": "1b0101e7", + "previousblockhash": "17314f4629950d94c597f50434a7587af405e84aa5d825f35e09bbdc5cc969e0", + "block": "03000000e069c95cdcbb095ef325d8a54ae805f47a58a73404f597c5940d9529464f3117cc86fc64950785b8d212761b2719bc7ee9127a307cdaf873d2a7c22b398021af962cc158e701011b000000000201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0502e8030101ffffffff010000000000000000000000000001000000016d2ef9508a20c024b554567a1847b565f968b0926faa17a60c915c62f124343c1a0100006a473044022026966a060563b855e2dd95644d79af3713b81f65820a12e854dc40662034e9f702200ae2bee76842c5e21fbc9f17ea7303179e7c00447380ef3bd53a171541101451012102624e3321ae66cfa542f1febe954b052cb560a8392c5ffd9a3d821cd17f47b682ffffffff03000000000000000000f082fdc361000000232102624e3321ae66cfa542f1febe954b052cb560a8392c5ffd9a3d821cd17f47b682ac00f2052a010000001976a9144e22534048a03912670ffbc0714bb06678024d7588ac00000000463044022050067ba9a6b187114651909b16d67b367e1ced79eb2f8b8750c99da55ece848d0220237d89ec7a9cbfdf823ccd24842041cccc350ca518408bb284ed7a5b3e60de47" +} \ No newline at end of file diff --git a/tests/blocks/pivx_testnet_10000.json b/tests/blocks/pivx_testnet_10000.json new file mode 100644 index 0000000..9c66cda --- /dev/null +++ b/tests/blocks/pivx_testnet_10000.json @@ -0,0 +1,14 @@ +{ + "hash": "e5131e1610f037fe5b2ccce9e0c521d7811a0c46392238f0fadb06e5c25187e1", + "size": 427, + "height": 10000, + "merkleroot": "1094dedef85d4be585ee2f07af0f3f8d42634413493f67a5beee5f98dbdfbe94", + "tx": [ + "705e9918f8cb302b9c498396b89f61ce111830512a2809ef2febc315797f777f", "2b255a6f234cfc1f82573bcff4158f9a08915c6cc78243a5c41c41f2e45b3561" + ], + "time": 1489600717, + "nonce": 0, + "bits": "1b00aafa", + "previousblockhash": "1002a4f8555112786b9367fb77152bcf4c058ab756d2dde312f04fbbfd6de02a", + "block": "030000002ae06dfdbb4ff012e3ddd256b78a054ccf2b1577fb67936b78125155f8a4021094bedfdb985feebea5673f49134463428d3f0faf072fee85e54b5df8dede9410cd80c958faaa001b000000000201000000010000000000000000000000000000000000000000000000000000000000000000ffffffff050210270101ffffffff01000000000000000000000000000100000001db86fae450b5cf86e783430b20d1ec5831971cc357ff0cb77458623495235a0b0100000048473044022048ac464dd1a72054a1df51982782a9d2bb8ab1922b8d24b9978ddce6cdbff6e30220497bc6951638b7d5dcae9645e8e2a687c6d736ff6a096debd70804c5139ef14101ffffffff0300000000000000000020c7f1052a010000232102624e3321ae66cfa542f1febe954b052cb560a8392c5ffd9a3d821cd17f47b682ac00f2052a010000001976a914fffc52dc6b3745407753734e8d4dbafa962b869b88ac0000000046304402206506b34c75aa787836034fcf5f01a0e051cd4eedbdd5d32fda015316c2e1951d02206db8085ec577ec6e2942d70c8c2879dfa69b6b53653c0b2c42601a1a47eea70c" +} \ No newline at end of file diff --git a/tests/lib/test_addresses.py b/tests/lib/test_addresses.py index de30892..e8fe710 100644 --- a/tests/lib/test_addresses.py +++ b/tests/lib/test_addresses.py @@ -56,7 +56,15 @@ addresses = [ (coins.Bitg, "GP1vBChXjjbaKwMcoPGB4T8cZLXWCe2wLV", "38bc968f95157bb7446feb1a7d75f2791fc8cf91", "4c7332cd142b788dd89241"), (coins.Bitg, "GaXGkXrm4dK1CYfSWvKubKgMcrYN59BZGF", - "b6f335a20a887f03a1d8a5c701f967c35d9b45c4", "383b20a90a9109531ccd7e") + "b6f335a20a887f03a1d8a5c701f967c35d9b45c4", "383b20a90a9109531ccd7e"), + (coins.Pivx, "DGSHy3fsygJTZtvnkpT1qG8QvNim5kwyqp", + "7be9fe7b9f894ba8481814c5eb085b788597059a", "9f1c9c70216bdc67a897fc"), + (coins.Pivx, "DSHxy3zZLUxZndKtXq9rXhwAMH1Ypt8qEW", + "e808105b7bfcc8b102cafa7242089b22c77a3b94", "31d61c3076fa0b2b7c74ef"), + (coins.PivxTestnet, "yJ8iHtUxj9U4vsXLCZTbPNbuxG6NJNCvb8", + "e808105b7bfcc8b102cafa7242089b22c77a3b94", "31d61c3076fa0b2b7c74ef"), + (coins.PivxTestnet, "yCcNWqqMhDmsPzKchCPK1ux4HpxK7j3xpB", + "ab72728952c06dfc0f6cf21449dd645422731ec4", "eb3a3155215538d51de7cc") ] diff --git a/tests/server/test_env.py b/tests/server/test_env.py index a56ad10..bc92f88 100644 --- a/tests/server/test_env.py +++ b/tests/server/test_env.py @@ -126,6 +126,14 @@ def test_COIN_NET(): os.environ['NET'] = 'mainnet' e = Env() os.environ.pop('NET') + os.environ['COIN'] = ' Pivx ' + os.environ['NET'] = 'mainnet' + e = Env() + assert e.coin == lib_coins.Pivx + os.environ['NET'] = 'testnet' + e = Env() + assert e.coin == lib_coins.PivxTestnet + os.environ.pop('NET') def test_CACHE_MB():