diff --git a/bindings/python/iota_sdk/utils.py b/bindings/python/iota_sdk/utils.py index 72218add02..f029feb703 100644 --- a/bindings/python/iota_sdk/utils.py +++ b/bindings/python/iota_sdk/utils.py @@ -179,6 +179,14 @@ def transaction_id(payload: SignedTransactionPayload) -> HexStr: 'payload': payload.as_dict() }) + @staticmethod + def protocol_parameters_hash(params: ProtocolParameters) -> HexStr: + """ Compute the hash of a ProtocolParameters instance. + """ + return _call_method('protocolParametersHash', { + 'protocolParameters': params.to_dict(), + }) + @staticmethod def transaction_signing_hash(transaction: Transaction) -> HexStr: """ Compute the signing hash of a transaction. diff --git a/bindings/python/tests/test_protocol_parameters.py b/bindings/python/tests/test_protocol_parameters.py index bbfcd356a3..3aecfa5056 100644 --- a/bindings/python/tests/test_protocol_parameters.py +++ b/bindings/python/tests/test_protocol_parameters.py @@ -2,15 +2,17 @@ # SPDX-License-Identifier: Apache-2.0 import json -from dacite import from_dict -from iota_sdk import ProtocolParameters +from iota_sdk import ProtocolParameters, Utils -protocol_params = {} +protocol_params_json = {} with open('../../sdk/tests/types/fixtures/protocol_parameters.json', "r", encoding="utf-8") as json_file: - protocol_params = json.load(json_file) + protocol_params_json = json.load(json_file) def test_protocol_parameters(): - protocol_params_dict = protocol_params['params'] + protocol_params_dict = protocol_params_json['params'] protocol_params = ProtocolParameters.from_dict(protocol_params_dict) assert protocol_params.to_dict() == protocol_params_dict + + expected_hash = protocol_params_json['hash'] + assert Utils.protocol_parameters_hash(protocol_params) == expected_hash