|
4 | 4 | from hiero_sdk_python.hapi.services import basic_types_pb2 |
5 | 5 | from hiero_sdk_python.tokens.token_id import TokenId |
6 | 6 |
|
7 | | -@dataclass(frozen=True, init=True, repr=True, eq=True) |
| 7 | +@dataclass(frozen=True) |
8 | 8 | class NftId: |
9 | 9 | """ |
10 | | - A unique identifiers for Non-Fungible Tokens (NFTs). |
| 10 | + A unique identifier for Non-Fungible Tokens (NFTs). |
11 | 11 | The NftId has a TokenId, and a serial number. |
12 | 12 | """ |
13 | 13 |
|
14 | 14 | tokenId: TokenId |
15 | 15 | serialNumber: int |
16 | 16 |
|
17 | | - def __post_init__(self) -> bool: |
| 17 | + def __post_init__(self) -> None: |
18 | 18 | """Validate the NftId after initialization.""" |
19 | 19 | if self.tokenId is None: |
20 | | - raise TypeError("token_id is required") |
| 20 | + raise TypeError("TokenId is required") |
21 | 21 | if not isinstance(self.tokenId, TokenId): |
22 | | - raise TypeError(f"token_id must be of type TokenId, got {type(self.tokenId)}") |
| 22 | + raise TypeError(f"TokenId must be of type TokenId, got {type(self.tokenId)}") |
23 | 23 | if not isinstance(self.serialNumber, int): |
24 | | - raise TypeError(f"Expected an integer for serial_number, got {type(self.serialNumber)}") |
| 24 | + raise TypeError(f"Expected an integer for serialNumber, got {type(self.serialNumber)}") |
25 | 25 | if self.serialNumber < 0: |
26 | | - raise ValueError("serial_number must be positive") |
27 | | - return True |
| 26 | + raise ValueError("serial_number must be non-negative") |
| 27 | + return None |
28 | 28 |
|
29 | 29 | @classmethod |
30 | 30 | def _from_proto(cls, nft_id_proto: Optional[basic_types_pb2.NftID] = None) -> "NftId": |
31 | 31 | """ |
32 | 32 | :param nft_id_proto: the proto NftID object |
33 | 33 | :return: a NftId object |
34 | 34 | """ |
| 35 | + if nft_id_proto is None: |
| 36 | + raise ValueError("NftID protobuf message is required") |
35 | 37 | return cls( |
36 | 38 | tokenId=TokenId._from_proto(nft_id_proto.token_ID), |
37 | 39 | serialNumber=nft_id_proto.serial_number |
|
0 commit comments