Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions tck/handlers/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
from hiero_sdk_python.tokens.token_revoke_kyc_transaction import TokenRevokeKycTransaction
from hiero_sdk_python.tokens.token_type import TokenType
from hiero_sdk_python.tokens.token_unfreeze_transaction import TokenUnfreezeTransaction
from hiero_sdk_python.tokens.token_unpause_transaction import TokenUnpauseTransaction
from hiero_sdk_python.tokens.token_update_transaction import TokenUpdateTransaction
from hiero_sdk_python.tokens.token_wipe_transaction import TokenWipeTransaction
from hiero_sdk_python.transaction.transaction_receipt import TransactionReceipt
Expand All @@ -62,6 +63,7 @@
RejectTokenParams,
RevokeTokenKycParams,
UnfreezeTokenParams,
UnpauseTokenParams,
UpdateTokenParams,
WipeTokenParams,
)
Expand All @@ -84,6 +86,7 @@
RejectTokenResponse,
RevokeTokenKycResponse,
UnfreezeTokenResponse,
UnpauseTokenResponse,
UpdateTokenResponse,
WipeTokenResponse,
)
Expand Down Expand Up @@ -407,6 +410,16 @@ def _build_pause_token_transaction(params: PauseTokenParams) -> TokenPauseTransa
return transaction


def _build_unpause_token_transaction(params: UnpauseTokenParams) -> TokenUnpauseTransaction:
"""Build a TokenUnpauseTransaction from TCK params."""
transaction = TokenUnpauseTransaction().set_grpc_deadline(DEFAULT_GRPC_TIMEOUT)

if params.tokenId is not None:
Comment thread
anchit-goel marked this conversation as resolved.
transaction.set_token_id(TokenId.from_string(params.tokenId))

return transaction


def _build_grant_token_kyc_transaction(params: GrantTokenKycParams) -> TokenGrantKycTransaction:
"""Build a TokenGrantKycTransaction from TCK params."""
transaction = TokenGrantKycTransaction().set_grpc_deadline(DEFAULT_GRPC_TIMEOUT)
Expand Down Expand Up @@ -540,6 +553,22 @@ def pause_token(params: PauseTokenParams) -> PauseTokenResponse:
return PauseTokenResponse(status=ResponseCode(receipt.status).name)


@rpc_method("unpauseToken")
def unpause_token(params: UnpauseTokenParams) -> UnpauseTokenResponse:
"""Unpause a token using TCK unpauseToken parameters."""
client = get_client(params.sessionId)

transaction = _build_unpause_token_transaction(params)

if params.commonTransactionParams is not None:
params.commonTransactionParams.apply_common_params(transaction, client)

response = transaction.execute(client, wait_for_receipt=False)
receipt: TransactionReceipt = response.get_receipt(client, validate_status=True)

return UnpauseTokenResponse(status=ResponseCode(receipt.status).name)


@rpc_method("grantTokenKyc")
def grant_token_kyc(params: GrantTokenKycParams) -> GrantTokenKycResponse:
"""Grant KYC to an account for a token using TCK grantTokenKyc parameters."""
Expand Down
16 changes: 16 additions & 0 deletions tck/param/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,22 @@ def parse_json_params(cls, params: dict) -> PauseTokenParams:
)


@dataclass
class UnpauseTokenParams(BaseTransactionParams):
"""Request parameters for the unpauseToken endpoint."""

tokenId: str | None = None

@classmethod
def parse_json_params(cls, params: dict) -> UnpauseTokenParams:
"""Parse JSON-RPC params into an UnpauseTokenParams instance."""
return cls(
tokenId=params.get("tokenId"),
sessionId=parse_session_id(params),
commonTransactionParams=parse_common_transaction_params(params),
)


@dataclass
class AirdropTokenParams(BaseTransactionParams):
"""Request parameters for the airdropToken endpoint."""
Expand Down
5 changes: 5 additions & 0 deletions tck/response/token.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ class PauseTokenResponse(StatusOnlyResponse):
"""Response payload for pauseToken."""


@dataclass
class UnpauseTokenResponse(StatusOnlyResponse):
"""Response payload for unpauseToken."""


@dataclass
class AirdropTokenResponse(StatusOnlyResponse):
"""Response payload for airdropToken."""
Expand Down