Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The setter methods setFileId and setContractId of SystemDeleteTransaction.java are not working as expected. #1596

Open
11 tasks
thenswan opened this issue Sep 11, 2023 · 2 comments · May be fixed by #2025
Open
11 tasks
Assignees
Labels
bug Something isn't working good first issue Issues which are ideal for a first time or new project contributor. hacktoberfest Issues shown by lists for the Hacktoberfest and made for newcomers to do the first contribution.

Comments

@thenswan
Copy link
Contributor

thenswan commented Sep 11, 2023

🆕🐥 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

  • The setter methods setFileId and setContractId in SystemDeleteTransaction.java are not behaving as expected. When setFileId is called, it should reset contractId, and similarly, when setContractId is called, it should reset fileId. However, this behavior is inconsistent between the Java SDK and the C++ SDK. The C++ SDK properly resets the other ID when one is set, but the Java SDK does not.

Additional context

For reference, see the implementations:

Steps to Reproduce

  1. Enable the resetFileId and resetContractId tests in SystemDeleteTransactionTest.
  2. Run the tests and observe whether setFileId resets contractId and setContractId resets fileId.

Proposed Solution:

To align the behavior of the Java SDK with the C++ SDK, the setFileId and setContractId methods in the Java implementation should be updated to reset the other field when one is set:

  • setFileId should reset the contractId when it is called.
  • setContractId should reset the fileId when it is called.

This can be achieved by modifying the methods in SystemDeleteTransaction.java to mirror the C++ implementation. For example:

public SystemDeleteTransaction setFileId(FileId fileId) {
    requireNotFrozen();
    this.fileId = fileId;
    this.contractId = null; // Reset contractId
    return this;
}

public SystemDeleteTransaction setContractId(ContractId contractId) {
    requireNotFrozen();
    this.contractId = contractId;
    this.fileId = null; // Reset fileId
    return this;
}

Additionally, ensure that the tests are updated to reflect this behavior:

  1. Re-enable the resetFileId and resetContractId tests in SystemDeleteTransactionTest.
  2. Verify that both fields are properly reset by running these tests.

📋 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.

@thenswan thenswan added the bug Something isn't working label Sep 11, 2023
@thenswan thenswan self-assigned this Sep 11, 2023
@0xivanov 0xivanov added the good first issue candidate Issues that can become a good first issue but need more description/context. label Sep 3, 2024
@0xivanov 0xivanov added good first issue Issues which are ideal for a first time or new project contributor. and removed good first issue candidate Issues that can become a good first issue but need more description/context. labels Sep 26, 2024
@hendrikebbers hendrikebbers added the hacktoberfest Issues shown by lists for the Hacktoberfest and made for newcomers to do the first contribution. label Oct 1, 2024
@jmiquis
Copy link

jmiquis commented Oct 2, 2024

Hi there! could you assign this to me please?
Thx a lot in advance!

@SimiHunjan
Copy link
Contributor

You are assigned @jmiquis !

jmiquis added a commit to jmiquis/hedera-sdk-java that referenced this issue Oct 5, 2024
@jmiquis jmiquis linked a pull request Oct 5, 2024 that will close this issue
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working good first issue Issues which are ideal for a first time or new project contributor. hacktoberfest Issues shown by lists for the Hacktoberfest and made for newcomers to do the first contribution.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants