Skip to content

Commit 9b26355

Browse files
committed
chore: added suggestion
Signed-off-by: Manish Dait <daitmanish88@gmail.com>
1 parent c8503a6 commit 9b26355

4 files changed

Lines changed: 61 additions & 12 deletions

File tree

examples/test.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from hiero_sdk_python.account.account_create_transaction import AccountCreateTransaction
2+
from hiero_sdk_python.account.account_id import AccountId
3+
from hiero_sdk_python.client.client import Client
4+
from hiero_sdk_python.consensus.topic_id import TopicId
5+
from hiero_sdk_python.consensus.topic_message_submit_transaction import TopicMessageSubmitTransaction
6+
from hiero_sdk_python.crypto.private_key import PrivateKey
7+
8+
9+
def main() -> None:
10+
client = Client.from_env()
11+
tx = (
12+
AccountCreateTransaction()
13+
.set_key(PrivateKey.generate())
14+
.set_node_account_id(AccountId(0, 0, 3))
15+
.freeze_with(client)
16+
)
17+
print(tx.size)
18+
print(tx.body_size)
19+
20+
tx2 = (
21+
TopicMessageSubmitTransaction()
22+
.set_topic_id(TopicId.from_string("0.0.23"))
23+
.set_message("A" * 1300)
24+
.freeze_with(client)
25+
)
26+
print(tx2.size)
27+
print(tx2.body_size)
28+
print(tx2.body_size_all_chunks)
29+
30+
31+
if __name__ == "__main__":
32+
main()

src/hiero_sdk_python/consensus/topic_message_submit_transaction.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,10 @@ def freeze_with(self, client: Client) -> TopicMessageSubmitTransaction:
265265

266266
chunk_transaction_id = self.transaction_id
267267
else:
268+
next_nanos = base_timestamp.nanos + i
269+
268270
chunk_valid_start = timestamp_pb2.Timestamp(
269-
seconds=base_timestamp.seconds, nanos=base_timestamp.nanos + i
271+
seconds=base_timestamp.seconds + next_nanos // 1_000_000_000, nanos=next_nanos % 1_000_000_000
270272
)
271273
chunk_transaction_id = TransactionId(
272274
account_id=self.transaction_id.account_id, valid_start=chunk_valid_start
@@ -412,10 +414,15 @@ def body_size_all_chunks(self) -> list[int]:
412414

413415
original_index = self._current_index
414416
original_transaction_id = self.transaction_id
415-
for transaction_id in self._transaction_ids:
416-
self.transaction_id = transaction_id
417-
sizes.append(self.body_size)
418417

419-
self._current_index = original_index
420-
self.transaction_id = original_transaction_id
418+
try:
419+
for i, transaction_id in enumerate(self._transaction_ids):
420+
self._current_index = i
421+
self.transaction_id = transaction_id
422+
423+
sizes.append(self.body_size)
424+
finally:
425+
self._current_index = original_index
426+
self.transaction_id = original_transaction_id
427+
421428
return sizes

src/hiero_sdk_python/file/file_append_transaction.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,10 @@ def freeze_with(self, client: Client) -> FileAppendTransaction:
299299
else:
300300
# Subsequent chunks get incremented timestamps
301301
# Add i nanoseconds to space out chunks
302+
next_nanos = base_timestamp.nanos + i
303+
302304
chunk_valid_start = timestamp_pb2.Timestamp(
303-
seconds=base_timestamp.seconds, nanos=base_timestamp.nanos + i
305+
seconds=base_timestamp.seconds + next_nanos // 1_000_000_000, nanos=next_nanos % 1_000_000_000
304306
)
305307
chunk_transaction_id = TransactionId(
306308
account_id=self.transaction_id.account_id, valid_start=chunk_valid_start
@@ -456,10 +458,15 @@ def body_size_all_chunks(self) -> list[int]:
456458

457459
original_index = self._current_chunk_index
458460
original_transaction_id = self.transaction_id
459-
for transaction_id in self._transaction_ids:
460-
self.transaction_id = transaction_id
461-
sizes.append(self.body_size)
462461

463-
self._current_chunk_index = original_index
464-
self.transaction_id = original_transaction_id
462+
try:
463+
for i, transaction_id in enumerate(self._transaction_ids):
464+
self._current_chunk_index = i
465+
self.transaction_id = transaction_id
466+
467+
sizes.append(self.body_size)
468+
finally:
469+
self._current_chunk_index = original_index
470+
self.transaction_id = original_transaction_id
471+
465472
return sizes

tests/unit/transaction_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,3 +423,6 @@ def test_chunked_tx_return_proper_sizes(file_id, account_id, transaction_id):
423423

424424
# The larger chunked transaction should be bigger than the single-chunk transaction
425425
assert large_size > small_size
426+
427+
# Check for chuck index reset reset
428+
assert large_tx._current_chunk_index == 0

0 commit comments

Comments
 (0)