hiero-ledger / hiero-ledger/hiero-consensus-node

ConsensusCreateTopicHandler.preHandle() change to INVALID_ADMIN_KEY from BAD_ENCODING

Open Beginner friendly
#7,770 2 comments 0 reactions 0 assignees View on GitHub
Good First Issue Candidate
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

## 🆕🐥 First Timers Only

This issue is reserved for people who have never contributed to [Hedera](https://hedera.com) 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'**](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Ahashgraph+archived%3Afalse+label%3A%22Good+First+Issue%22+) is to help you make your first contribution to Hedera.

## 👾 Description of the issue

When a user sends a transaction to create a topic and uses an invalid admin key, the error code `BAD_ENCODING` is returned, which is too generic. Instead, we should return `INVALID_ADMIN_KEY`.

### Steps to reproduce

Run the end-to-end test `TopicCreateSuite.adminKeyIsValidated()`. It succeeds, meaning `BAD_ENCODING` is returned.

### Proposed Solution:

The fix is already included in `ConsensusCreateTopicHandler.preHandle()` but commented out. This should be fixed. In addition, the test mentioned above must be updated.

## 📋 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](https://github.com/hashgraph/.github/blob/main/CONTRIBUTING.md) file.
A more detailed general documentation of the GitHub PR workflow can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).

- [ ] **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](https://github.com/hashgraph/.github/blob/main/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](https://hacktoberfest.digitalocean.com) 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](https://hedera.com/discord). A general manual about open-source contributions can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).

Contributor guide

Open the contributing guide

Research direction

Start in ConsensusCreateTopicHandler.preHandle(), where the proposed fix is commented out. Run the end-to-end test TopicCreateSuite.adminKeyIsValidated() before and after the change, then update it so the invalid admin key produces INVALID_ADMIN_KEY instead of BAD_ENCODING.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.