11import traceback
2- from typing import Optional , Union
2+ from typing import List , Optional , Union
33
44from hiero_sdk_python .channels import _Channel
55from hiero_sdk_python .client .client import Client
66from hiero_sdk_python .exceptions import PrecheckError , ReceiptStatusError
77from hiero_sdk_python .executable import _ExecutionState , _Method
8- from hiero_sdk_python .hapi .services import query_header_pb2 , query_pb2 , response_pb2 , transaction_get_receipt_pb2
8+ from hiero_sdk_python .hapi .services import query_header_pb2 , query_pb2 , response_pb2 , transaction_get_receipt_pb2 , transaction_receipt_pb2
99from hiero_sdk_python .query .query import Query
1010from hiero_sdk_python .response_code import ResponseCode
1111from hiero_sdk_python .transaction .transaction_id import TransactionId
@@ -247,6 +247,22 @@ def _map_status_error(self, response: response_pb2.Response) -> Union[PrecheckEr
247247 TransactionReceipt ._from_proto (response .transactionGetReceipt .receipt , self .transaction_id ),
248248 )
249249
250+ def _map_receipt_list (self , receipts : List [transaction_receipt_pb2 .TransactionReceipt ]) -> List ["TransactionReceipt" ]:
251+ """
252+ Maps a list of protobuf transaction receipts to TransactionReceipt objects.
253+
254+ Args:
255+ receipts: A list of protobuf TransactionReceipt objects
256+
257+ Returns:
258+ A list of TransactionReceipt objects
259+ """
260+ return [
261+ TransactionReceipt ._from_proto (receipt_proto , self .transaction_id )
262+ for receipt_proto in receipts
263+ ]
264+
265+
250266 def execute (self , client : Client ) -> TransactionReceipt :
251267 """
252268 Executes the transaction receipt query.
@@ -272,20 +288,16 @@ def execute(self, client: Client) -> TransactionReceipt:
272288 parent = TransactionReceipt ._from_proto (response .transactionGetReceipt .receipt , self .transaction_id )
273289
274290 if self .include_children :
275- children = []
276-
277- for child_proto in response .transactionGetReceipt .child_transaction_receipts :
278- child_receipt = TransactionReceipt ._from_proto (child_proto , self .transaction_id )
279- children .append (child_receipt )
291+ children = self ._map_receipt_list (
292+ response .transactionGetReceipt .child_transaction_receipts
293+ )
280294
281295 parent ._set_children (children )
282296
283297 if self .include_duplicates :
284- duplicates = []
285-
286- for duplicate_proto in response .transactionGetReceipt .duplicateTransactionReceipts :
287- duplicate_receipt = TransactionReceipt ._from_proto (duplicate_proto , self .transaction_id )
288- duplicates .append (duplicate_receipt )
298+ duplicates = self ._map_receipt_list (
299+ response .transactionGetReceipt .duplicateTransactionReceipts
300+ )
289301
290302 parent ._set_duplicates (duplicates )
291303
0 commit comments