|
31 | 31 | from hiero_sdk_python.tokens.token_mint_transaction import TokenMintTransaction |
32 | 32 | from hiero_sdk_python.tokens.token_pause_status import TokenPauseStatus |
33 | 33 | from hiero_sdk_python.tokens.token_pause_transaction import TokenPauseTransaction |
| 34 | +from hiero_sdk_python.tokens.token_reject_transaction import TokenRejectTransaction |
34 | 35 | from hiero_sdk_python.tokens.token_revoke_kyc_transaction import TokenRevokeKycTransaction |
35 | 36 | from hiero_sdk_python.tokens.token_type import TokenType |
36 | 37 | from hiero_sdk_python.transaction.transaction_receipt import TransactionReceipt |
|
48 | 49 | GrantTokenKycParams, |
49 | 50 | MintTokenParams, |
50 | 51 | PauseTokenParams, |
| 52 | + RejectTokenParams, |
51 | 53 | RevokeTokenKycParams, |
52 | 54 | ) |
53 | 55 | from tck.response.token import ( |
|
63 | 65 | GrantTokenKycResponse, |
64 | 66 | MintTokenResponse, |
65 | 67 | PauseTokenResponse, |
| 68 | + RejectTokenResponse, |
66 | 69 | RevokeTokenKycResponse, |
67 | 70 | ) |
68 | 71 | from tck.util.client_utils import get_client |
@@ -732,3 +735,44 @@ def get_token_info(params: GetTokenInfoParams) -> GetTokenInfoResponse: |
732 | 735 |
|
733 | 736 | info = query.execute(client) |
734 | 737 | return _build_token_info_response(info) |
| 738 | + |
| 739 | + |
| 740 | +def _build_reject_token_transaction( |
| 741 | + params: RejectTokenParams, |
| 742 | +) -> TokenRejectTransaction: |
| 743 | + transaction = TokenRejectTransaction().set_grpc_deadline(DEFAULT_GRPC_TIMEOUT) |
| 744 | + |
| 745 | + if params.ownerId is not None: |
| 746 | + transaction.set_owner_id(AccountId.from_string(params.ownerId)) |
| 747 | + |
| 748 | + if params.serialNumbers is not None and params.tokenIds is not None: |
| 749 | + nft_ids = [] |
| 750 | + |
| 751 | + for token_id in params.tokenIds: |
| 752 | + nft_ids.extend( |
| 753 | + NftId(TokenId.from_string(token_id), int(serial_number)) for serial_number in params.serialNumbers |
| 754 | + ) |
| 755 | + |
| 756 | + transaction.set_nft_ids(nft_ids) |
| 757 | + |
| 758 | + elif params.tokenIds is not None: |
| 759 | + transaction.set_token_ids([TokenId.from_string(token) for token in params.tokenIds]) |
| 760 | + |
| 761 | + return transaction |
| 762 | + |
| 763 | + |
| 764 | +@rpc_method("rejectToken") |
| 765 | +def reject_token(params: RejectTokenParams) -> RejectTokenResponse: |
| 766 | + client = get_client(params.sessionId) |
| 767 | + |
| 768 | + transaction = _build_reject_token_transaction(params) |
| 769 | + |
| 770 | + if params.commonTransactionParams is not None: |
| 771 | + params.commonTransactionParams.apply_common_params(transaction, client) |
| 772 | + |
| 773 | + response = transaction.execute(client, wait_for_receipt=False) |
| 774 | + receipt = response.get_receipt(client, validate_status=True) |
| 775 | + |
| 776 | + return RejectTokenResponse( |
| 777 | + status=ResponseCode(receipt.status).name, |
| 778 | + ) |
0 commit comments