Skip to content

For consistency with TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT, return ACCOUNT_ALREADY_FROZEN_FOR_TOKEN #5110

Open
@tinker-michaelj

Description

🆕🐥 First Timers Only

This issue is reserved for people who have never contributed to Hedera or any open source project in general.
We know that creating a pull request (PR) is a major barrier for new contributors.
The goal of this issue and all other issues labeled by 'Good First Issue' is to help you make your first contribution to Hedera.

👾 Description of the issue

Since tokenAssociate returns TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT instead of SUCCESS when re-associating a token, it would be more consistent for freezeAccount to return ACCOUNT_ALREADY_FROZEN_FOR_TOKEN instead of SUCCESS.

Steps to reproduce

Add the following validation at the end of Hip17UnhappyAccountsSuite.uniqueTokenOperationsFailForFrozenAccount():

tokenFreeze(UNIQUE_TOKEN_A, CLIENT_1).hasKnownStatus(SUCCESS)

This validation checks what happens if a user tries to freeze a token that is already frozen.

Proposed Solution:

To fix the issue and return the error code, three steps are necessary:

  1. Add the new error code ACCOUNT_ALREADY_FROZEN_FOR_TOKEN as another entry in response_code.proto. Once this is done, rebuild the project to re-generate the Java classes from the protobuf definition.
  2. Fix the test above to expect the new error code. It is a new value of the enum ResponseCodeEnum.
  3. Include a check in TokenFreezeAccountHandler.handle(). To fail the transaction, you must throw a HandleException.

The test should run successfully again.

📋 Step by step guide to do a contribution

If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow. More information and concrete samples for shell commands for each step can be found in our CONTRIBUTING.md file.
A more detailed general documentation of the GitHub PR workflow can be found here.

  • Claim this issue: Comment below that you are interested in working on the issue
  • Wait for assignment: A community member with the given rights will add you as an assignee of the issue
  • Fork the repository: You can do that in GitHub (by simply clicking the 'fork' button).
  • Check out the forked repository
  • Create a feature branch for the issue. We do not have a hard naming definition for branches but it is best practice to prefix the branch name with the issue id.
  • Solve the issue in your branch.
  • Commit your changes: Here, it is needed to add sign-off information to the commit to accept the "Developer Certificate of Origin" (https://developercertificate.org). More details can be found in our CONTRIBUTING.md
  • Start a Pull Request (PR): We have a pattern for naming pull requests that a GitHub Action checks. We use that pattern to support the creation of automatic release notes.
  • Check GitHub Actions: Several GitHub Actions will be triggered automatically for each PR. If a GitHub Action fails and you do not understand the cause of that error do not hesitate to add a comment to the PR and ask the Hedera developer community for support.
  • Wait for reviews: Members of the Hedera developer community will review your PR. If a reviewer finds any missing pieces or a problem, he or she will start a discussion with you and describe the next steps for solving the problem.
  • You did it 🎉: We will merge the fix in the develop branch. Thanks for being part of the Hedera community as an open-source contributor ❤️

🎉 Contribute to Hacktoberfest

Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽

🤔 Additional Information

If you have any questions, just ask us directly in this issue by adding a comment. You can join our community chat at Discord. A general manual about open-source contributions can be found here.

Metadata

Assignees

Labels

Good First IssueEither a small change or a medium change concentrated in a single component.hacktoberfestIssues shown by lists for the Hacktoberfest and made for newcomers to do the first contribution.

Type

No type

Projects

  • Status

    📋 Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions