You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Welcome! This is a Beginner Issue designed to help you learn the codebase.
π When this issue is complete, you will have:
β Researched a file or method in detail
β Followed SDK patterns to implement a solution
β Researched and identified appropriate programming constructs to solve the problem
β Created basic tests
β Delivered a clean, review-ready pull request
π Problem Description
The Python SDK currently provides the following methods on TopicUpdateTransaction for managing fee exempt keys:
set_fee_exempt_keys()
clear_fee_exempt_keys()
However, it is missing an add_fee_exempt_key() convenience method that exists in the other SDKs.
π‘ Expected Solution
Implement add_fee_exempt_key() in TopicUpdateTransaction to provide API parity with the other SDK. The method should append a single Key to the transaction's fee exempt key list.
π Research Pointers
Review hiero_sdk_python/topic/topic_update_transaction.py, where set_fee_exempt_keys() and clear_fee_exempt_keys() are currently implemented.
Compare the implementation with the other SDK's TopicUpdateTransaction, specifically the addFeeExemptKey() method, to maintain API consistency across SDKs. For Reference
Look at other transaction classes in the Python SDK that provide both set_*() and add_*() methods to follow existing conventions for validation, frozen-state checks, and method chaining.
Add or update unit tests under the topic transaction test suite to verify the new method's behavior.
π οΈ Implementation Notes
Add an add_fee_exempt_key() method to TopicUpdateTransaction.
Ensure the method validates the input and calls _require_not_frozen() before modifying the transaction.
Method should return self to support method chaining.
Beginner issues are low-risk but we expect a working solution.
Important
We recommend completing at least 3 Good First Issues before attempting a beginner issue.
Difficulty:
Requires building knowledge of the specific file(s)
Beginner to intermediate Coding skills
Tip
You should be comfortable with:
Forking, branching, committing (with DCO + GPG signing), and opening a pull request without a tutorial
Reading beginner to intermediate code you did not write and following its patterns
Handling simple merge conflicts
Keeping your fork up to date with main by rebasing
Looking things up on your own before asking for help
If any of that feels unfamiliar, Good First Issues might still be the most rewarding path for you right now β find one here.
You can always come back when you are ready.
β οΈ AI Usage Policy
AI can help you understand the codebase and the problem
Using AI to generate code for beginner issues is strictly discouraged
Using AI as the main source of research is strictly discouraged, refer to language and library documentation, protobuf definitions and other SDKs.
π§βπ Beginner Issue
Welcome! This is a Beginner Issue designed to help you learn the codebase.
π When this issue is complete, you will have:
β Researched a file or method in detail
β Followed SDK patterns to implement a solution
β Researched and identified appropriate programming constructs to solve the problem
β Created basic tests
β Delivered a clean, review-ready pull request
π Problem Description
The Python SDK currently provides the following methods on
TopicUpdateTransactionfor managing fee exempt keys:set_fee_exempt_keys()clear_fee_exempt_keys()However, it is missing an
add_fee_exempt_key()convenience method that exists in the other SDKs.π‘ Expected Solution
Implement
add_fee_exempt_key()inTopicUpdateTransactionto provide API parity with the other SDK. The method should append a singleKeyto the transaction's fee exempt key list.π Research Pointers
hiero_sdk_python/topic/topic_update_transaction.py, whereset_fee_exempt_keys()andclear_fee_exempt_keys()are currently implemented.TopicUpdateTransaction, specifically theaddFeeExemptKey()method, to maintain API consistency across SDKs. For Referenceset_*()andadd_*()methods to follow existing conventions for validation, frozen-state checks, and method chaining.π οΈ Implementation Notes
add_fee_exempt_key()method toTopicUpdateTransaction._require_not_frozen()before modifying the transaction.selfto support method chaining.π§ Beginner Contributors β Prerequisites & Expectations
Caution
Beginner issues are low-risk but we expect a working solution.
Important
We recommend completing at least 3 Good First Issues before attempting a beginner issue.
Difficulty:
Tip
You should be comfortable with:
If any of that feels unfamiliar, Good First Issues might still be the most rewarding path for you right now β find one here.
You can always come back when you are ready.
β±οΈ Timeline & Workflow
Typical time: ~1 Week / ~8 hours.
π§© Difficulty: Manageable but requires investigation and testing
π Best for: Beginner contributors
π΄ Completing a beginner issue in 1β3 hours is a red flag.
Tip
Suggested: share your proposed implementation approach as a comment before writing code to get early feedback and avoid wasted effort.
π§ͺ Testing Requirements
Important
At the beginner level, testing will be necessary but a small component.
The methods you implement should be verified (happy path at least)
How you test depends on the type of change.
Source code changes (e.g. in
src/):uv run pytest tests/unit/<specific_file>_test.py -vGitHub Actions / workflow changes (e.g. in
.github/): Guidemainand simulating the scenarioExample script changes (e.g. in
examples/):π‘οΈ Quality & Review Standards
Beginner PRs must be working and follow best practices.
π€ AI notes
β PR Quality Checklist
Before opening your PR, confirm:
Before requesting a review, confirm:
git commit -S -s -m "chore: description"β Signing guideπ Workflow quick reference
You have done this before β here are the links if you need them:
/assignbelowπ Resources & Support
π Stuck?
Tip
Comment on this issue: and describe what you have tried. A maintainer will respond.
Python SDK References:
References: