55Provides TokenBurnTransaction, a subclass of Transaction for burning fungible and
66non-fungible tokens on the Hedera network using the Hedera Token Service (HTS) API.
77"""
8- from typing import Optional
8+ from typing import List , Optional
99
1010from hiero_sdk_python .hapi .services .token_burn_pb2 import TokenBurnTransactionBody
11+ from hiero_sdk_python .hapi .services import transaction_body_pb2
1112from hiero_sdk_python .transaction .transaction import Transaction
1213from hiero_sdk_python .channels import _Channel
1314from hiero_sdk_python .executable import _Method
@@ -24,11 +25,11 @@ class TokenBurnTransaction(Transaction):
2425 to build and execute a token burn transaction.
2526 """
2627 def __init__ (
27- self ,
28- token_id : TokenId | None = None ,
29- amount : Optional [int ] = None ,
30- serials : list [ int ] | None = None ,
31- ):
28+ self ,
29+ token_id : Optional [ TokenId ] = None ,
30+ amount : Optional [int ] = None ,
31+ serials : Optional [ List [ int ]] = None
32+ ) -> None :
3233 """
3334 Initializes a new TokenBurnTransaction instance with optional token_id, amount, and serials.
3435
@@ -38,11 +39,11 @@ def __init__(
3839 serials (list[int], optional): The serial numbers of non-fungible tokens to burn.
3940 """
4041 super ().__init__ ()
41- self .token_id : TokenId = token_id
42+ self .token_id : Optional [ TokenId ] = token_id
4243 self .amount : Optional [int ] = amount
43- self .serials : list [ int ] = serials if serials else []
44-
45- def set_token_id (self , token_id : TokenId ):
44+ self .serials : Optional [ List [ int ] ] = serials if serials else []
45+
46+ def set_token_id (self , token_id : TokenId ) -> "TokenBurnTransaction" :
4647 """
4748 Sets the token ID for this burn transaction.
4849
@@ -55,8 +56,8 @@ def set_token_id(self, token_id: TokenId):
5556 self ._require_not_frozen ()
5657 self .token_id = token_id
5758 return self
58-
59- def set_amount (self , amount : int ):
59+
60+ def set_amount (self , amount : int ) -> "TokenBurnTransaction" :
6061 """
6162 Sets the amount of fungible tokens to burn.
6263
@@ -69,8 +70,8 @@ def set_amount(self, amount: int):
6970 self ._require_not_frozen ()
7071 self .amount = amount
7172 return self
72-
73- def set_serials (self , serials : list [int ]):
73+
74+ def set_serials (self , serials : List [int ]) -> "TokenBurnTransaction" :
7475 """
7576 Sets the list of serial numbers of non-fungible tokens to burn.
7677
@@ -83,8 +84,8 @@ def set_serials(self, serials: list[int]):
8384 self ._require_not_frozen ()
8485 self .serials = serials
8586 return self
86-
87- def add_serial (self , serial : int ):
87+
88+ def add_serial (self , serial : int ) -> "TokenBurnTransaction" :
8889 """
8990 Adds a single serial number to the list of non-fungible tokens to burn.
9091
@@ -98,8 +99,8 @@ def add_serial(self, serial: int):
9899 self ._require_not_frozen ()
99100 self .serials .append (serial )
100101 return self
101-
102- def build_transaction_body (self ):
102+
103+ def build_transaction_body (self ) -> transaction_body_pb2 . TransactionBody :
103104 """
104105 Builds the transaction body for this token burn transaction.
105106
@@ -120,7 +121,7 @@ def build_transaction_body(self):
120121 amount = self .amount ,
121122 serialNumbers = self .serials
122123 )
123- transaction_body = self .build_base_transaction_body ()
124+ transaction_body : transaction_body_pb2 . TransactionBody = self .build_base_transaction_body ()
124125 transaction_body .tokenBurn .CopyFrom (token_burn_body )
125126 return transaction_body
126127
@@ -141,8 +142,8 @@ def _get_method(self, channel: _Channel) -> _Method:
141142 transaction_func = channel .token .burnToken ,
142143 query_func = None
143144 )
144-
145- def _from_proto (self , proto : TokenBurnTransactionBody ):
145+
146+ def _from_proto (self , proto : TokenBurnTransactionBody ) -> "TokenBurnTransaction" :
146147 """
147148 Deserializes a TokenBurnTransactionBody from a protobuf object.
148149
0 commit comments