1616import math
1717from typing import TYPE_CHECKING , Any , Literal , overload
1818
19- from typing import TYPE_CHECKING , Any , List , Literal , Optional , overload
2019from hiero_sdk_python .file .file_id import FileId
2120from hiero_sdk_python .hapi .services import file_append_pb2 , timestamp_pb2
2221from hiero_sdk_python .hapi .services .schedulable_transaction_body_pb2 import (
3029# Use TYPE_CHECKING to avoid circular import errors
3130if TYPE_CHECKING :
3231 from hiero_sdk_python .channels import _Channel
33- from hiero_sdk_python .client import Client
32+ from hiero_sdk_python .client . client import Client
3433 from hiero_sdk_python .crypto .private_key import PrivateKey
35-
36- from hiero_sdk_python .channels import _Channel
3734 from hiero_sdk_python .executable import _Method
3835 from hiero_sdk_python .transaction .transaction import TransactionReceipt
3936 from hiero_sdk_python .transaction .transaction_response import TransactionResponse
@@ -289,35 +286,12 @@ def freeze_with(self, client: Client) -> FileAppendTransaction:
289286 if self ._transaction_body_bytes :
290287 return self
291288
292- if self .transaction_id is None :
293- if client is None :
294- raise ValueError (
295- "Transaction ID must be set before freezing. Use freeze_with(client) or set_transaction_id()."
296- )
297-
298- self .transaction_id = client .generate_transaction_id ()
299-
300-
301289 self ._resolve_transaction_id (client )
302290
303291 # Generate transaction IDs for all chunks
304292 if not self ._transaction_ids :
305293 base_timestamp = self .transaction_id .valid_start
306294
307- for i in range (self .get_required_chunks ()):
308- if i == 0 :
309- # First chunk uses the original transaction ID
310- chunk_transaction_id = self .transaction_id
311- else :
312- # Subsequent chunks get incremented timestamps
313- # Add i nanoseconds to space out chunks
314- chunk_valid_start = timestamp_pb2 .Timestamp (
315- seconds = base_timestamp .seconds , nanos = base_timestamp .nanos + i
316- )
317- chunk_transaction_id = TransactionId (
318- account_id = self .transaction_id .account_id , valid_start = chunk_valid_start
319- )
320- self ._transaction_ids .append (chunk_transaction_id )
321295 for i in range (self .get_required_chunks ()):
322296 if i == 0 :
323297 # First chunk uses the original transaction ID
@@ -326,12 +300,10 @@ def freeze_with(self, client: Client) -> FileAppendTransaction:
326300 # Subsequent chunks get incremented timestamps
327301 # Add i nanoseconds to space out chunks
328302 chunk_valid_start = timestamp_pb2 .Timestamp (
329- seconds = base_timestamp .seconds ,
330- nanos = base_timestamp .nanos + i
303+ seconds = base_timestamp .seconds , nanos = base_timestamp .nanos + i
331304 )
332305 chunk_transaction_id = TransactionId (
333- account_id = self .transaction_id .account_id ,
334- valid_start = chunk_valid_start
306+ account_id = self .transaction_id .account_id , valid_start = chunk_valid_start
335307 )
336308
337309 self ._transaction_ids .append (chunk_transaction_id )
@@ -476,7 +448,6 @@ def sign(self, private_key: PrivateKey) -> FileAppendTransaction:
476448 super ().sign (private_key )
477449 return self
478450
479-
480451 @property
481452 def body_size_all_chunks (self ) -> list [int ]:
482453 """Returns an array of body sizes for transactions with multiple chunks."""
@@ -488,8 +459,7 @@ def body_size_all_chunks(self) -> list[int]:
488459 for transaction_id in self ._transaction_ids :
489460 self .transaction_id = transaction_id
490461 sizes .append (self .body_size )
491-
462+
492463 self ._current_chunk_index = original_index
493464 self .transaction_id = original_transaction_id
494465 return sizes
495-
0 commit comments