From 4785cc3c7f6186222fa6abe01f8327343732b7b0 Mon Sep 17 00:00:00 2001 From: Ouziel Slama Date: Thu, 27 Feb 2025 08:13:23 +0000 Subject: [PATCH] move dhash in helpers --- .../counterpartycore/lib/cli/server.py | 4 ++-- .../counterpartycore/lib/ledger/events.py | 5 +++-- .../counterpartycore/lib/parser/check.py | 14 +------------- .../counterpartycore/lib/utils/helpers.py | 13 +++++++++++++ .../test/units/parser/check_test.py | 8 -------- .../test/units/utils/helpers_test.py | 7 +++++++ 6 files changed, 26 insertions(+), 25 deletions(-) delete mode 100644 counterparty-core/counterpartycore/test/units/parser/check_test.py diff --git a/counterparty-core/counterpartycore/lib/cli/server.py b/counterparty-core/counterpartycore/lib/cli/server.py index 748a7f14f7..02f22ebc2c 100755 --- a/counterparty-core/counterpartycore/lib/cli/server.py +++ b/counterparty-core/counterpartycore/lib/cli/server.py @@ -24,7 +24,7 @@ from counterpartycore.lib.ledger.backendheight import BackendHeight from counterpartycore.lib.ledger.currentstate import CurrentState from counterpartycore.lib.parser import blocks, check, follow -from counterpartycore.lib.utils import database +from counterpartycore.lib.utils import database, helpers logger = logging.getLogger(config.LOGGER_NAME) D = decimal.Decimal @@ -338,7 +338,7 @@ def show_params(): def generate_move_random_hash(move): move = int(move).to_bytes(2, byteorder="big") random_bin = os.urandom(16) - move_random_hash_bin = check.dhash(random_bin + move) + move_random_hash_bin = helpers.dhash(random_bin + move) return binascii.hexlify(random_bin).decode("utf8"), binascii.hexlify( move_random_hash_bin ).decode("utf8") diff --git a/counterparty-core/counterpartycore/lib/ledger/events.py b/counterparty-core/counterpartycore/lib/ledger/events.py index 57f05823bc..019f3b64c5 100644 --- a/counterparty-core/counterpartycore/lib/ledger/events.py +++ b/counterparty-core/counterpartycore/lib/ledger/events.py @@ -8,7 +8,8 @@ from counterpartycore.lib.ledger.balances import get_balance from counterpartycore.lib.ledger.caches import AssetCache, UTXOBalancesCache from counterpartycore.lib.ledger.currentstate import ConsensusHashBuilder, CurrentState -from counterpartycore.lib.parser import check, protocol, utxosinfo +from counterpartycore.lib.parser import protocol, utxosinfo +from counterpartycore.lib.utils import helpers @contextmanager @@ -150,7 +151,7 @@ def add_to_journal(db, block_index, command, category, event, bindings): previous_event_hash, ] ) - event_hash = binascii.hexlify(check.dhash(event_hash_content)).decode("ascii") + event_hash = binascii.hexlify(helpers.dhash(event_hash_content)).decode("ascii") message_bindings = { "message_index": message_index, "block_index": block_index, diff --git a/counterparty-core/counterpartycore/lib/parser/check.py b/counterparty-core/counterpartycore/lib/parser/check.py index a6de736459..a7078c3b50 100644 --- a/counterparty-core/counterpartycore/lib/parser/check.py +++ b/counterparty-core/counterpartycore/lib/parser/check.py @@ -1,5 +1,3 @@ -import binascii -import hashlib import json import logging @@ -9,21 +7,11 @@ from counterpartycore.lib.ledger.currentstate import CurrentState from counterpartycore.lib.messages.data import checkpoints from counterpartycore.lib.utils import database +from counterpartycore.lib.utils.helpers import dhash_string logger = logging.getLogger(config.LOGGER_NAME) -def dhash(text): - if not isinstance(text, bytes): - text = bytes(str(text), "utf-8") - - return hashlib.sha256(hashlib.sha256(text).digest()).digest() - - -def dhash_string(text): - return binascii.hexlify(dhash(text)).decode() - - def consensus_hash(db, field, previous_consensus_hash, content): assert field in ("ledger_hash", "txlist_hash", "messages_hash") diff --git a/counterparty-core/counterpartycore/lib/utils/helpers.py b/counterparty-core/counterpartycore/lib/utils/helpers.py index c5bdbd138f..7fe0d734c4 100644 --- a/counterparty-core/counterpartycore/lib/utils/helpers.py +++ b/counterparty-core/counterpartycore/lib/utils/helpers.py @@ -1,4 +1,6 @@ +import binascii import decimal +import hashlib import itertools import json import os @@ -126,3 +128,14 @@ def is_process_alive(pid): except OSError: return False return True + + +def dhash(text): + if not isinstance(text, bytes): + text = bytes(str(text), "utf-8") + + return hashlib.sha256(hashlib.sha256(text).digest()).digest() + + +def dhash_string(text): + return binascii.hexlify(dhash(text)).decode() diff --git a/counterparty-core/counterpartycore/test/units/parser/check_test.py b/counterparty-core/counterpartycore/test/units/parser/check_test.py deleted file mode 100644 index d7a975de18..0000000000 --- a/counterparty-core/counterpartycore/test/units/parser/check_test.py +++ /dev/null @@ -1,8 +0,0 @@ -from counterpartycore.lib.parser import check - - -def test_dhash(): - assert ( - check.dhash_string("foobar") - == "3f2c7ccae98af81e44c0ec419659f50d8b7d48c681e5d57fc747d0461e42dda1" - ) diff --git a/counterparty-core/counterpartycore/test/units/utils/helpers_test.py b/counterparty-core/counterpartycore/test/units/utils/helpers_test.py index bc6f146214..eb939c640e 100644 --- a/counterparty-core/counterpartycore/test/units/utils/helpers_test.py +++ b/counterparty-core/counterpartycore/test/units/utils/helpers_test.py @@ -15,3 +15,10 @@ def test_is_valid_tx_hash(): assert not helpers.is_valid_tx_hash( "3f2c7ccae98af81e44c0ec419659f50d8b7d48c681e5d57fc747d0461e42ddaG" ) + + +def test_dhash(): + assert ( + helpers.dhash_string("foobar") + == "3f2c7ccae98af81e44c0ec419659f50d8b7d48c681e5d57fc747d0461e42dda1" + )