From 02438e488d32dc3cb479d747248e7ea3dd83840d Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sun, 26 Nov 2017 17:39:01 -0800 Subject: [PATCH] Add Hush using the shiny new EquihashMixin (#319) --- lib/coins.py | 15 +++++++++++++++ tests/blocks/hush_mainnet_8888.json | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 tests/blocks/hush_mainnet_8888.json diff --git a/lib/coins.py b/lib/coins.py index c4de22b..6c0ea68 100644 --- a/lib/coins.py +++ b/lib/coins.py @@ -868,6 +868,21 @@ class Zcash(EquihashMixin, Coin): RPC_PORT = 8232 REORG_LIMIT = 800 +class Hush(EquihashMixin, Coin): + NAME = "Hush" + SHORTNAME = "HUSH" + NET = "mainnet" + P2PKH_VERBYTE = bytes.fromhex("1CB8") + P2SH_VERBYTES = [bytes.fromhex("1CBD")] + WIF_BYTE = bytes.fromhex("80") + GENESIS_HASH = ( '0003a67bc26fe564b75daf11186d3606' + '52eb435a35ba3d9d3e7e5d5f8e62dc17') + DESERIALIZER = lib_tx.DeserializerZcash + TX_COUNT = 329196 + TX_COUNT_HEIGHT = 68379 + TX_PER_BLOCK = 5 + RPC_PORT = 8822 + REORG_LIMIT = 800 class Komodo(KomodoMixin, EquihashMixin, Coin): NAME = "Komodo" diff --git a/tests/blocks/hush_mainnet_8888.json b/tests/blocks/hush_mainnet_8888.json new file mode 100644 index 0000000..5c875c6 --- /dev/null +++ b/tests/blocks/hush_mainnet_8888.json @@ -0,0 +1,16 @@ +{ + "hash": "0000039bb661e382ce1d7856cb8301276b7f9a6607390d26048f17314a9b9854", + "size": 1587, + "height": 8888, + "merkleroot": "94dbedc7139fcdf497bf55b9049c6cb384781f588bb4a3e235cff4d583a09e0b", + "tx": [ + "94dbedc7139fcdf497bf55b9049c6cb384781f588bb4a3e235cff4d583a09e0b" + ], + "time": 1481075500, + "nonce": "0000000000000000000000000000000000000000000000000004cb078407c283", + "solution": "0051246a2f75feb5e243d38126bb0565332ccee1450a3b33e30317a7fb1767339cb15c1998fc025ce80f0d25ba17271a09c1bb12137289c893ae373155dc7239fefa0cb51842f8c43e091a4c4a3ae75448bd4e0506b8e60ae46ffcbdb983a5bf1fc4a9e1b221fc41ec13e155d4dfd51961117a49caf9d5a27a97de1d8445140ede0871eb8ee5e9367295f328f9eccd725de0465b77d728992c4a49b2ea88b8b655871ab15bbffbc906b2fbbde49a4795274b95baa1ffbeb244701bddc1255e1405fecb531f9df517ae66e4c0bf43c1fbd7b10ce2fd21911488f6b61462e48ed2b5a25a37fb94b10fb632f7c3a8a3818bd202626a7466de85e49ef027093ba6406c20b6a1632bc11896899b68b96aae8ebb0ca6da9e73d15f52f4a79b045b78ed4adcbc7f85c9134301789f28309191495621bff21f5db9a31fa7754251dee0c2a3df43688714d5172df117cc5bfff95e011a9f72c751aab8b33600ca36d0dc1844e60f913106f5c58d6e448e156e49112fdad3d121d33a904fd33a4f427fcf5ab2b395fa06c736ca6266d10d5de8264fb2465815e0c4ad8fb2b64a32439e4246c63d036f04da236cf1900f456cdc56f7354d51ce06063d34f00ed8694bc1e30a1be3b2e12723fbecfc5a705481d0265b92ae970c3146e81528854444744a309ed9761f4e677af9d960ffc583328778084972ff1842fc2ffa02afb14dbb4d28d54475a4c15cda2d1f42ac7c72c40895858fbe0fcab30a6e511734aaebf0b3dbed3ad82ad03e5c715887fff0eda87cf1d3638688ad1916992f26e21dca3b7199fbc3c4664846261b00e29d890a0f175bf1bd17c4219e24a20b9f937826670b1c4ee52986dc7f6b8c3007b668a3df3cf92359135816be3a24e3a26e1b9d5422ede02653ceea99f20e579f846850f1a63b84953ecefbf2ec62776b48078e4dfda6b301335f15031ae4bfe17cb205b652352ca15bd03fbe1ec494d85c1a3ac1cf6092f77363d49dec10fe754b0778d5b91e0c167eb4dd43186a58f7156348bff1b22b968c4f17d74e37040de67d255903d28352f5cf0216610afd01d46855ca00d1bafca5fe32caa4f7e10b17feaf467006e75f0875b3c3c35297e18af39a790639e155df71e8df2f5baa38a26ce9bc1b39a01ba6cd49600ddae920b40dd3d927f10d77c67a2af698be5f0343c494cfa0b7853828411b2b6415b2df99fafe4b3b18443d6e1758932565257b0ac11d2249d39a6dfe0fe4f0c3ebb3bd01b31f05af487d0dea521ddc4fbc4c998ad4b99724039c65f4d25acab2ea10b7b328c203e44c4d2b8ccbaea1b8b4ec7434f86aef8d5f58a9438697b474ddf3379086852fb242fe3e625cf5b1fe14129435515fd031a2ba26ea6e65b6170f087d907e2bd11a57c25622e54ce1844beca9f5221b5f57d33601a93bf93c4dba2536d74688de6211e6bd3e5c5bd901c2be3d13d25af5f4eb006e21b6859d87225a8d4b221f39c5fb5e793aff19148f47360ae33ef2bff90e25a5ba9586e57d09abb04283b2caa62f2636d994ad055eed56b262f43f922128dc857d59f6546d9999650d8d08b0587630a1f574881a7344213e2cb252c7a00a08646240c3020afc9a6235dd94ebd1a0d41ff2c7247c0797101a83d1d98b22eb8d63d0addbd61fe4df025d7551024d899fd622352c9fade0c2715299b1320abff10c43dc6f93f92fd0e3ea26f380754cdf4aa01c12220aac4c9add463d15017cd5b007864c1c83b72a5354f6e55e875be762667544b83aeea12d7bf8b2029eabd239f39e61e7a2a04586ef2ae17250b0041c16d89b49d6c65ae5672734a618c41ef648957bdf56045dc42cacdc5527d18811183ce265b4730ade32791867393bdbd229beb4bd8851f1e9fd62157e9a4992", + "bits": "1e03f51f", + "previousblockhash": "000000d1366e024400e34f7a92a8314c75d8637fc96f9765f600c968169fb44a", + "block":"040000004ab49f1668c900f665976fc97f63d8754c31a8927a4fe30044026e36d10000000b9ea083d5f4cf35e2a3b48b581f7884b36c9c04b955bf97f4cd9f13c7eddb9400000000000000000000000000000000000000000000000000000000000000002c6b47581ff5031e83c2078407cb0400000000000000000000000000000000000000000000000000fd40050051246a2f75feb5e243d38126bb0565332ccee1450a3b33e30317a7fb1767339cb15c1998fc025ce80f0d25ba17271a09c1bb12137289c893ae373155dc7239fefa0cb51842f8c43e091a4c4a3ae75448bd4e0506b8e60ae46ffcbdb983a5bf1fc4a9e1b221fc41ec13e155d4dfd51961117a49caf9d5a27a97de1d8445140ede0871eb8ee5e9367295f328f9eccd725de0465b77d728992c4a49b2ea88b8b655871ab15bbffbc906b2fbbde49a4795274b95baa1ffbeb244701bddc1255e1405fecb531f9df517ae66e4c0bf43c1fbd7b10ce2fd21911488f6b61462e48ed2b5a25a37fb94b10fb632f7c3a8a3818bd202626a7466de85e49ef027093ba6406c20b6a1632bc11896899b68b96aae8ebb0ca6da9e73d15f52f4a79b045b78ed4adcbc7f85c9134301789f28309191495621bff21f5db9a31fa7754251dee0c2a3df43688714d5172df117cc5bfff95e011a9f72c751aab8b33600ca36d0dc1844e60f913106f5c58d6e448e156e49112fdad3d121d33a904fd33a4f427fcf5ab2b395fa06c736ca6266d10d5de8264fb2465815e0c4ad8fb2b64a32439e4246c63d036f04da236cf1900f456cdc56f7354d51ce06063d34f00ed8694bc1e30a1be3b2e12723fbecfc5a705481d0265b92ae970c3146e81528854444744a309ed9761f4e677af9d960ffc583328778084972ff1842fc2ffa02afb14dbb4d28d54475a4c15cda2d1f42ac7c72c40895858fbe0fcab30a6e511734aaebf0b3dbed3ad82ad03e5c715887fff0eda87cf1d3638688ad1916992f26e21dca3b7199fbc3c4664846261b00e29d890a0f175bf1bd17c4219e24a20b9f937826670b1c4ee52986dc7f6b8c3007b668a3df3cf92359135816be3a24e3a26e1b9d5422ede02653ceea99f20e579f846850f1a63b84953ecefbf2ec62776b48078e4dfda6b301335f15031ae4bfe17cb205b652352ca15bd03fbe1ec494d85c1a3ac1cf6092f77363d49dec10fe754b0778d5b91e0c167eb4dd43186a58f7156348bff1b22b968c4f17d74e37040de67d255903d28352f5cf0216610afd01d46855ca00d1bafca5fe32caa4f7e10b17feaf467006e75f0875b3c3c35297e18af39a790639e155df71e8df2f5baa38a26ce9bc1b39a01ba6cd49600ddae920b40dd3d927f10d77c67a2af698be5f0343c494cfa0b7853828411b2b6415b2df99fafe4b3b18443d6e1758932565257b0ac11d2249d39a6dfe0fe4f0c3ebb3bd01b31f05af487d0dea521ddc4fbc4c998ad4b99724039c65f4d25acab2ea10b7b328c203e44c4d2b8ccbaea1b8b4ec7434f86aef8d5f58a9438697b474ddf3379086852fb242fe3e625cf5b1fe14129435515fd031a2ba26ea6e65b6170f087d907e2bd11a57c25622e54ce1844beca9f5221b5f57d33601a93bf93c4dba2536d74688de6211e6bd3e5c5bd901c2be3d13d25af5f4eb006e21b6859d87225a8d4b221f39c5fb5e793aff19148f47360ae33ef2bff90e25a5ba9586e57d09abb04283b2caa62f2636d994ad055eed56b262f43f922128dc857d59f6546d9999650d8d08b0587630a1f574881a7344213e2cb252c7a00a08646240c3020afc9a6235dd94ebd1a0d41ff2c7247c0797101a83d1d98b22eb8d63d0addbd61fe4df025d7551024d899fd622352c9fade0c2715299b1320abff10c43dc6f93f92fd0e3ea26f380754cdf4aa01c12220aac4c9add463d15017cd5b007864c1c83b72a5354f6e55e875be762667544b83aeea12d7bf8b2029eabd239f39e61e7a2a04586ef2ae17250b0041c16d89b49d6c65ae5672734a618c41ef648957bdf56045dc42cacdc5527d18811183ce265b4730ade32791867393bdbd229beb4bd8851f1e9fd62157e9a49920101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b82200ffffffff01807c814a0000000023210278972c96309be95f95cc81a9ad1f385e20ca79bd9c10ce82b94b67d4aeff27f3ac00000000" + +}