v0.2.0
This release is large. The headline themes are: stricter typing, better ergonomics, broader receipt/query capabilities, TLS hardening, and a major cleanup of examples, docs, and automation.
The source code changes are described at a high level:
New Features
EVM & Mirror Node Integration:
-
AccountId now supports initialization and conversion from EVM addresses (20-byte hex).
-
Added populate_account_num and populate_evm_address to AccountId to resolve missing identifiers via Mirror Node REST queries.
-
ContractId updated with to_evm_address using a new to_solidity_address helper.
-
Client Enhancements:
- New Client.from_env() method to automatically initialize a client from a .env file using OPERATOR_ID, OPERATOR_KEY, and NETWORK variables.
- Added support for TLS configuration, including custom root certificates and certificate verification toggles.
- New update_network() method to refresh node lists from mirror nodes.
-
Key Utilities:
- Introduced a unified Key type alias (Union of PrivateKey and PublicKey) and a key_to_proto helper to simplify transaction construction.
-
Data Models:
- Added AssessedCustomFee to represent fees collected during transactions, as found in transaction records.
- Added StakingInfo to provide details on account staking status and rewards.
-
Hbar Units:
- Added convenience factory methods for Hbar: from_microbars, from_millibars, from_kilobars, and from_megabars.
Changes & Improvements
-
Developer Experience:
- Added human-friendly str and developer-friendly repr methods to AccountBalance, AccountInfo, AccountId, StakingInfo, and AssessedCustomFee.
-
Query Execution:
-
Standardized execute() methods across various queries (e.g., AccountRecordsQuery, ContractInfoQuery, TokenInfoQuery) to accept an optional timeout parameter.
-
Improved query payment logic to fallback to the client-level default_max_query_payment if not explicitly set on the query.
-
Transaction Handling:
-
AccountCreateTransaction now accepts both PrivateKey and PublicKey for setting account keys.
-
Added set_transaction_valid_duration to the base Transaction class.
-
Node Management:
- Refined node health tracking with backoff increase/decrease logic and automatic re-admission of healthy nodes.
-
Deprecations:
- CustomFixedFee.set_amount_in_tinybars() is now deprecated. Developers should use set_hbar_amount(Hbar.from_tinybars(amount)) instead.
-
Behavioral Changes:
-
AccountId.hash now only hashes the shard, realm, and num, excluding the alias_key.
-
The Client now defaults to a 10-second gRPC deadline and a 120-second request timeout.
[0.2.0] - From changelog entries
Src - Breaking Changes
Deprecations:
-
Remove deprecated 'in_tinybars' parameter and update related tests
/src/hiero_sdk_python/hbar.py,/tests/unit/hbar_test.pyand/src/hiero_sdk_python/tokens/custom_fixed_fee.py. -
Behavioral Changes:
-
AccountId.hash now only hashes the shard, realm, and num, excluding the alias_key.
-
The Client now defaults to a 10-second gRPC deadline and a 120-second request timeout.
Src
New:
-
feat: AccountCreateTransaction now supports both PrivateKey and PublicKey #939
-
Support selecting specific node account ID(s) for queries and transactions and added
Network._get_node()with updated execution flow (#362) -
Add support for include_children in TransactionGetReceiptQuery (#1100)(#1100)
-
Added support for include duplicates in get transaction receipt query (#1166)
-
Add TLS support with two-stage control (
set_transport_security()andset_verify_certificates()) for encrypted connections to Hedera networks. TLS is enabled by default for hosted networks (mainnet, testnet, previewnet) and disabled for local networks (solo, localhost) (#855) -
Add contract_id support for CryptoGetAccountBalanceQuery(#1293)
-
Add StakingInfo class (1364)
-
Added first-class support for EVM address aliases in
AccountId, including parsing, serialization, Mirror Node population helpers. -
Added MirrorNode based population for
ContractId, including parsing and serialization support. -
Added
grpc_deadlinesupport for transaction and query execution. -
Added
Client.from_env()and network-specific factory methods (e.g.,Client.for_testnet()) to simplify client initialization and reduce boilerplate. [#1251] -
Added convenient factory methods to
Hbarclass for easier instantiation:from_microbars(),from_millibars(),from_hbars(),from_kilobars(),from_megabars(), andfrom_gigabars(). #1272 -
Support for setting
max_query_payment,Query.set_max_query_payment()allows setting a per-query maximum Hbar payment andClient.set_default_max_query_payment()sets a client-wide default maximum payment. -
Allow
PublicKeyfor batch_key inTransaction, enabling bothPrivateKeyandPublicKeyfor batched transactions -
Allow
PublicKeyforTokenUpdateKeysinTokenUpdateTransaction, enabling non-custodial workflows where operators can build transactions using only public keys (#934). -
Changed
TransactionResponse.get_receipt()so now pins receipt queries to the submitting node viaset_node_account_ids()(#1686) -
fix: TLS Hostname Mismatch & Certificate Verification Failure for Nodes
-
fix: ensure all Query sub-class
execute()function to correctly propagate the optionaltimeoutparameter. -
Added
AssessedCustomFeedomain model to represent assessed custom fees. (#1637) -
Added Hbar object support for TransferTransaction HBAR transfers: Methods now accept
Union[int, Hbar]for amount parameters with immediate normalization to tinybars -
Added all missing fields to
__str__()method and updatedtest_token_info.py -
Added
__str__()to CustomRoyaltyFee and updated examples and tests accordingly (#986) -
Added str and repr to AccountBalance
-
Added
__eq__and__hash__functions for Key -
Type hints to exception classes (
PrecheckError,MaxAttemptsError,ReceiptStatusError) constructors and string methods. -
Added missing type hints to sign method in Transaction class (#1630)
-
Add return type hint to
ContractId.__str__. (#1654) -
Add return type hint to
AccountId.__repr__for type consistency. (#1503) -
Updated return of to_bytes function in
src/hiero_sdk_python/transaction/transaction.py. (#1631) -
Added missing return type
src/hiero_sdk_python/utils/entity_id_helper.py. (#1622) -
Improved docstring for
account_allowance_approve_transaction_nft.pywith purpose, key concepts and required vs optional steps. -
Implement custom
__repr__method forFileIddataclass class that returns constructor-style representation for improved debugging experience (#1628) -
Added
__str__and__repr__methods toAccountInfoclass for improved logging and debugging experience (#1098) -
Added support for the
includeDuplicatesflag inTransactionRecordQueryandduplicatesfield inTransactionRecord(#1635) -
Add repr custom method for ContractId class to improve debugging (#1714)
-
Add
__repr__()method toTopicIdclass for improved debugging with constructor-style representation (#1629) -
Added comprehensive docstring to
FeeAssessmentMethodenum explaining inclusive vs exclusive fee assessment methods with usage examples. (#1391) -
Added comprehensive docstring to
TokenTypeenum explaining fungible vs non-fungible tokens with practical use cases. (#1392) -
Added
__str__()to CustomFixedFee and updated examples and tests accordingly.
Examples
- Update
verify_freeze()to treat only ACCOUNT_FROZEN_FOR_TOKEN as a successful freeze verification (#1515) - Added a module-level docstring to the HBAR allowance approval example to clarify delegated spending behavior and key concepts. #1202
- examples/mypy.ini for stricter type checking in example scripts
- Formatted examples/tokens directory using black code formatter for consistent code style
- Refactored
account_create_transaction_create_with_alias.pyexample by splitting monolithic function into modular functions:generate_main_and_alias_keys(),create_account_with_ecdsa_alias(),fetch_account_info(),print_account_summary()(#1016) - Modularized
transfer_transaction_fungibleexample by introducingaccount_balance_query()&transfer_transaction().Renamedtransfer_tokens()→main() - Refactored
examples/consensus/topic_create_transaction.pyto useClient.from_env()(#1611) - Refactored
account_create_transaction_without_alias.pyinto smaller, modular functions.(#1321) - Refactored
account_create_transaction_with_fallback_alias.pyby splitting the monolithiccreate_account_with_fallback_aliasfunction into modular functions:generate_fallback_key,fetch_account_info, andprint_account_summary. The existingsetup_client()function was reused for improved readability and structure (#1018) - Refactored
account_create_transaction_evm_alias.pyto improve readability by splitting the monolithic function into smaller helper functions. #1017 - Renamed example files to match src naming (#1053)
- Improved consistency of transaction examples (#1120)
- Cleaned up
token_airdrop_claim_autoexample for pylint compliance (no functional changes). (#1079) - Formatted
examples/queryusing black (#1082)(#1082) - Format token examples with Black for consistent code style and improved readability (#1119)
- Cleaned up
token_airdrop_claim_signature_requiredexample for pylint compliance (no functional changes). (#1080) - Pylint cleanup for token_airdrop_transaction_cancel.py (#1081) @tiya-15
- Transformed
examples/tokens/custom_fee_fixed.pyto be an end-to-end example, that interacts with the Hedera network, rather than a static object demo. - Transformed
examples\tokens\custom_royalty_fee.pyto be an end-to-end example, that interacts with the Hedera network, rather than a static object demo. - Refactored
examples/tokens/custom_royalty_fee.pyby splitting monolithic function custom_royalty_fee_example() into modular functions create_royalty_fee_object(), create_token_with_fee(), verify_token_fee(), and main() to improve readability, cleaned up setup_client() (#1169) - Refactored
setup_client()in allexamples/query/files to useClient.from_env()for simplified client initialization (#1449) - style: apply black formatting to examples (#1299)
- Move
account_allowance_delete_transaction_hbar.pyfromexamples/toexamples/account/for better organization (#1003) - chore: Move account allowance example to correct folder
- Format token examples with Black for consistent code style and improved readability (#1119)
- Refactored
examples/account/account_create_transaction_create_with_alias.pyandexamples/account/account_create_transaction_evm_alias.pyto use the nativeAccountInfo.__str__method for printing account details, replacing manual JSON serialization. (#1263) - Updated
transfer_transaction_hbar.pyexample to useHbarobjects instead of raw integers and added receipt checking withResponseCodevalidation.(#1249) - Refactored
file_info_query.pyto useprint(info)instead of manual formatting (#1451) - Replaced
ResponseCode.get_name(receipt.status)with theResponseCode(receipt.status).nameacross examples and integration tests for consistency. (#1136) - Replaced deprecated
AccountCreateTransaction.set_key()usage withset_key_without_alias()andset_key_with_alias()across examples and tests - Deleted
examples/utils.pyas its helper functions are no longer needed. (#1263) - Aligned token freeze example filename references and improved error handling by catching broader exceptions with clearer messages. (#1412)
- Fix token association verification in
token_airdrop_transaction.pyto correctly check if tokens are associated by usingtoken_id in token_balancesinstead of incorrectly displaying zero balances which was misleading (#[815]) - Fixed token examples to consistently use setup_client without tuple unpacking.(#1397)
- Fixed incorrect run instructions and broaden error handling in
token_dissociate_transaction.pyexample to improve usability for new users (#1468) - Add examples/tokens/token_create_transaction_pause_key.py example demonstrating token pause/unpause behavior and pause key usage (#833)
- Made custom fraction fee end to end
- Added
transfer_transaction_tinybar.pyexample demonstrating tinybar transfers with both integer and Hbar object approaches. (#1249) - Added
transfer_transaction_gigabar.pyexample demonstratingGIGABARunit usage for large-value transfers. (#1249)
Docs
- Added foundational guide for GitHub Workflows (#1741)
- Added Protobuf Training guide to enhance developer understanding of proto serialization
- Added guide for resolving CHANGELOG.md conflicts using GitHub's web editor (
#1591) - Added Windows setup guide for SDK developers (
docs/sdk_developers/training/setup/setup_windows.md) with PowerShell installation instructions. (#1570) - Added comprehensive training documentation for the
Queryclass, covering execution flow, payments, retries, and building child queries. (#1238) - Added method chaining examples to the developer training guide (
docs/sdk_developers/training/coding_token_transactions.md) (#1194) - Added documentation explaining how to pin GitHub Actions to specific commit SHAs (
docs/sdk_developers/how-to-pin-github-actions.md)(#1211) - Added Good First Issue (GFI) management and frequency documentation to clarify maintainer expectations and SDK-level GFI governance.
- Added SDK-level Good First Issue (GFI) guidelines for maintainers to clarify what qualifies as a good first issue.
- Added Good First Issue candidate guidelines documentation (
docs/maintainers/good_first_issue_candidate_guidelines.md) and Good First Issues guidelines documentation (docs/maintainers/good_first_issues_guidelines.md) (#1066) - Added documentation: "Testing GitHub Actions using Forks" (
docs/sdk_developers/training/testing_forks.md). - Documentation: created docs/maintainers/hiero_python_sdk_team.md
- Add Github CODEOWNERS
- Add comprehensive training documentation for _Executable class
docs/sdk_developers/training/executable.md - Added empty
docs/maintainers/good_first_issues.mdfile for maintainers to write Good First Issue guidelines (#1034) - Fix relative links in
testing.md, clean upCONTRIBUTING.mdTOC, and normalize test file naming and paths (#1706) - Added comprehensive docstring to
compress_with_cryptographyfunction (#1626) - Replaced the docstring in
entity_id_helper.pywith one that is correct. (#1623) - Updated team.md with new triage, committers and maintainer (#1692)
- Removed outdated "Common Issues" section from CONTRIBUTING.md that referenced non-existent docs/common_issues.md (
#1665) - Align Good First Issue and Good First Issue — Candidate guidelines with the Hiero C++ SDK for clarity and consistency.(#1421)
- Difficulty guidelines to feel more welcoming
- Moved docs/sdk_developers/project_structure.md to docs/sdk_developers/training/setup/project_structure.md and ensured all previous references are updated #1223
- Improved the contributing section for sdk developers in CONTRIBUTING.md for clarity and including new documentation
- Updated set up and workflow documents for improved clarity and organisation
- chore: update maintainer guidelines link in MAINTAINERS.md (#1605)
- chore: update MAINTAINERS.md to include new maintainer Manish Dait and sort maintainers by GitHub ID. (#1691)
- Moved
docs/sdk_developers/how_to_link_issues.mdtodocs/sdk_developers/training/workflow/how_to_link_issues.mdand updated all references (#1222) - Corrected broken documentation links in SDK developer training files.(#1707)
- Fixed the README account balance example to use correct SDK APIs and provide a runnable testnet setup. (#1250)
- Fixed broken project structure link in
CONTRIBUTING.md(#1664) - Added
docs/sdk_developers/training/transaction_lifecycle.mdto explain the typical lifecycle of executing a transaction using the Hedera Python SDK. - Added
coding_token_transactions.mdfor a high level overview training on how token transactions are created in the python sdk.
Coderabbit AI
- Contract-specific CodeRabbit review instructions in
.coderabbit.yamlfor improved automated PR feedback on ABI, gas, ContractId, and protobuf safety. (#1695) - Added advanced CodeRabbit reviewer guidance for
tokensmodule changes, with specialized validation rules for token transactions, token classes, and enums. (#1496) - Added prompt for codeRabbit on how to review /examples (#1180)
- Added prompt for coderabbit to review
Queryand it's sub-classes. - Coderabbit prompt for .github
- Added global review instructions to CodeRabbit configuration to limit reviews to issue/PR scope and prevent scope creep [#1373]
- Enable CodeRabbit walkthrough mode by default to improve PR review visibility (#1439)
- Add CodeRabbit documentation review prompts for docs, sdk_users, and sdk_developers with priorities, philosophy, and edge case checks. (#1236)
.github
- Added new members to the mentor roster. (#1693)
- Added logging in bot-gfi-assign-on-comment.js to prevent silent skips. (
#1668)
and deserialization (#1645) - Added a beginner assignment guard that requires completion of a Good First Issue. (#1484)
- Added
/unassigncommand allowing contributors to remove themselves from assigned issues.(#1472) - Advanced-check bot unassigns users from issues if they do not meet the requirements and provides an explanatory message. (#1477)
- Auto-assignment bot for beginner-labeled issues with
/assigncommand support and helpful reminders. (#1368) - Enable dry run support for office hours bot via
workflow_dispatchtrigger for testing without posting comments. (#1426) - Trigger CodeRabbit plan comment after Good First Issue assignment to provide AI-generated implementation guidance to new contributors. (#1432)
- Added a notification workflow that alerts the support team when an issue is labeled as a Good First Issue Candidate.[(#1296)]
- Beginner issue documentation and updated GFI and GFIC templates and documentation
- Enable auto assignment to good first issues (#1312), archived good first issue support team notification. Changed templates with new assign instruction.
- Intermediate issue documentation
- Automated assignment guard for
advancedissues; requires completion of at least onegood first issueand oneintermediateissue before assignment (exempts maintainers, committers, and triage members). (#1142) - Added a GitHub Actions workflow to validate broken Markdown links in pull requests.
- Added
.github/workflows/bot-coderabbit-plan-trigger.ymlto automatically invoke CodeRabbit's plan feature on intermediate and advanced issues, providing implementation guidance to help contributors assess complexity and understand requirements. (#1289) - Added a GitHub Actions workflow that reminds contributors to link pull requests to issues.
- Codecov workflow
- Fix inactivity bot execution for local dry-run testing.
- Added
.github/workflows/bot-pr-auto-draft-on-changes.ymlto automatically convert PRs to draft and notify authors when reviewers request changes. - Add beginner issue template
- Unified the inactivity-unassign bot into a single script with
DRY_RUNsupport, and fixed handling of cross-repo PR references for stale detection. - Add relevant examples to the beginner issue template
- Phase 2 of the inactivity-unassign bot: Automatically detects stale open pull requests (no commit activity for 21+ days), comments with a helpful InactivityBot message, closes the stale PR, and unassigns the contributor from the linked issue.
- Added a github template for good first issues
- Added
.github/workflows/bot-assignment-check.ymlto limit non-maintainers to 2 concurrent issue assignments. - Configured coderabbit with a
.coderabbit.yaml - Added
.github/workflows/bot-community-callsand its script to notify issue creators of a community call - Add inactivity bot workflow to unassign stale issue assignees (#952)
- Restore bug and feature request issue templates (#996)(#996)
- Add PR inactivity reminder bot for stale pull requests
.github/workflows/pr-inactivity-reminder-bot.yml - Added new
.github/ISSUE_TEMPLATE/04_good_first_issue_candidate.ymlfile (1068)(#1068) - Enhanced
.github/ISSUE_TEMPLATE/01_good_first_issue.ymlwith welcoming message and acceptance criteria sections to guide contributors in creating quality GFIs (#1052) - Add new
.github/ISSUE_TEMPLATE/05_intermediate_issue.ymlfile (1072)(#1072) - Added advanced issue template for contributors
.github/ISSUE_TEMPLATE/06_advanced_issue.yml. - Added advanced issue template
- Added GitHub workflow that makes sure newly added test files follow pytest test files naming conventions (#1054)
- Added Issue Reminder (no-PR) bot, .github/scripts/issue_reminder_no_pr.sh and .github/workflows/bot-issue-reminder-no-pr.yml to automatically detect assigned issues with no linked pull requests for 7+ days and post a gentle ReminderBot comment.(#951)
- Added
.github/workflows/cron-check-broken-links.ymlworkflow to perform scheduled monthly Markdown link validation across the entire repository with automatic issue creation for broken links (#1210) - Add Linked Issue Enforcer to automatically close PRs without linked issues
.github/workflows/bot-linked-issue-enforcer.yml. - Added merge conflict bot workflow (
.github/workflows/bot-merge-conflict.yml) and helper script (.github/scripts/bot-merge-conflict.js) to detect and notify about PR merge conflicts, with retry logic for unknown mergeable states, idempotent commenting, and push-to-main recheck logic (#1247) - Added workflow to prevent assigning intermediate issues to contributors without prior Good First Issue completion (#1143).
- Add GitHub Actions script and workflow for automatic spam list updates.
- Added Acceptance Criteria section to Good First Issue template for better contributor guidance (#997)
- Add workflow to notify team about P0 issues
bot-p0-issues-notify-team.yml - Add a workflow to notify the team when issues are labeled as “good first issues” or identified as candidates for that label:
bot-gfi-notify-team.yml(#1115) - Chained Good First Issue assignment with mentor assignment to bypass GitHub's anti-recursion protection - mentor assignment now occurs immediately after successful user assignment in the same workflow execution. (#1369)
- Updated the mentor assignment bot welcome message to be more structured. (#1487)
- Add automated bot to recommend next issues to contributors after their first PR merge (#1380)
- Added dry-run support and refactored
.github/workflows/bot-workflows.ymlto use dedicated script.github/scripts/bot-workflows.jsfor improved maintainability and testability. (#1288) - Added
/workingcommand to reset the inactivity timer on issues and PRs. (#1552) - Added a visible confirmation comment when a user unassigns themselves from an issue (#1506)
- Improved bot message formatting in LinkBot to display issue linking format as a code block for better clarity (#1762)
- Improve the changelog check by posting informative PR comments when entries are missing or placed under a released version. (#1683)
- Updated GitHub Actions setup-node action to v6.2.0.
- Updated actions/checkout to v6.0.1 and actions/github-script v8.0.0 in bot-next-issue-recommendation workflow (#1586)
- Good First Issue template to have more guidance and renamed other templates for consistency with upstream
- Added AI usage guidelines to the Good First Issue and Beginner issue templates to guide contributors on responsible AI use. (#1490)
- Refactored
bot-verified-commits.ymlworkflow to use modular JavaScript with configurable environment variables, input sanitization, dry-run mode support, and SHA-pinned actions. (#1482) - Refactored the advanced issue assignment guard to use a single configurable variable for the required number of completed intermediate issues. (#1479)
- Move assignment guards to be directly inside the gfi and beginner auto assign
- Added comprehensive documentation to the PR changelog check script (
.github/scripts/pr-check-changelog.sh) to clarify behavior, inputs, permissions, and dependencies [(#1337)] - Renamed the GitHub notify team script to match its corresponding workflow filename for better maintainability (#1338)
- Updated Good First Issue notifications to trigger only after the first comment is posted, reducing noise on unassigned issues.(#1212)
- Archived unused auto draft GitHub workflow to prevent it from running (#1371)
- Remove the commented out blocks in config.yml (#1435)
- Update the acceptance criteria wording in the issue templates to improve clarity and consistency for contributors (#1491)
- Make the required signed commit command explicit in all issue templates to reduce PR signing errors for contributors (#1489)
- Expanded inactivity bot messages to include
/unassigncommand information for contributors (#1555) - Hide the commit verification bot marker in pull request comments.
- Renamed
.github/scripts/check_advanced_requirement.shtobot-advanced-check.shfor workflow consistency (#1341) - Renamed bot-inactivity workflow files to remove "-phase" suffix since the process no longer uses phased execution (#1339)
- Renamed templates for improved clarity [(#1265)]
- Reduce office-hours reminder spam by posting only on each user's most recent open PR, grouping by author and sorting by creation time (#1121)
- Renamed workflow scripts in
.github/scripts/to match their corresponding workflow file names for improved consistency and maintainability (#1198) - Updated Codecov coverage thresholds in 'codecov.yml' to require 90% of project coverage and 92% of patch coverage (#1157)
- Reduce office-hours reminder spam by never posting on PRs of maintainers and committers
- Renamed workflow files for consistent PR check naming:
examples.yml→pr-check-examples.yml,
test.yml→pr-check-test.yml(#1043) - Updated bot naming conventions in
.github/workflowsto be consistent (#1042) - Update team notification script and workflow for P0 issues 'p0_issues_notify_team.js'
- Changed messaged for test failure summaries so it is clearer by extracting test failure names into summary
- Issue reminder bot now explicitly mentions assignees (e.g.,
@user) in comments. (#1232) - Renamed
pr-missing-linked-issue.ymlandpr_missing_linked_issue.jstobot-pr-missing-linked-issue.ymlandbot-pr-missing-linked-issue.jsrespectively. Enhanced LinkBot PR comment with clickable hyperlinks to documentation for linking issues and creating issues. (#1264) - Moved helpful references to Additional Context section and added clickable links.
- Update GitHub workflow names in
.github/workflows/bot-workflows.ymlto match correct references [(#1284)] - Updated
.github/scripts/bot-office-hours.shto detect and skip PRs created by bot accounts when posting office hours reminders. (#1384) - Enhance assignment bot to guard against users with spam PRs
.github/scripts/bot-assignment-check.sh - Update changelog workflow to trigger automatically on pull requests instead of manual dispatch (#1567)
- chore: update merge conflict bot message with web editor tips (#1592)
- Modified and renamed hasIntermediateOrAdvancedLabel() to check if issue label is beginner or higher (#1385)
- chore: clarify wording in the bot-assignment-check.sh (#1748)
- Added a fork guard condition to prevent Codecov upload failures on fork PRs due to missing token. (
#1485) - Fixed assignment limit check to only count issues (not PRs) towards the maximum 2 concurrent assignments, allowing users to be assigned to PRs without affecting their issue assignment capacity. (#1717)
- Updated Good First Issue recommendations to supported Hiero repositories. (#1689)
- Fix the next-issue recommendation bot to post the correct issue recommendation comment. (#1593)
- Ensured that the GFI assignment bot skips posting
/assignreminders for repository collaborators to avoid unnecessary notifications.(#1568). - Reduced notification spam by skipping the entire advanced qualification job for non-advanced issues and irrelevant events (#1517)
- Fixed jq syntax in bot-office-hours.sh (#1502)
- Fixed formatting of
/unassigncommand in the PR inactivity reminder message so it displays correctly with backticks. (#1582) - Respect
dry-runinput inbot-community-calls.ymlworkflow (#1425) - Prevented linkbot from commenting on or auto-closing bot-authored pull requests. (#1516)
- Updated LinkBot regex in the GitHub Actions bot script to support "Closes" and "Resolves" keywords for improved PR body-link detection (#1465)
- Fixed CodeRabbit plan trigger workflow running multiple times when issues are created with multiple labels by switching to labeled event trigger only. (#1427)
- Refined intermediate assignment guard to validate Beginner issue completion with improved logging and GraphQL-based counting. (#1424)
- Prevent LinkBot from posting duplicate “missing linked issue” comments on pull requests. (#1475)
- Good First Issue bot no longer posts
/assignreminders for repository collaborators. (#1367) - Improved filename-related error handling with clearer and more descriptive error messages.(#1413)
- GFI workflow casing
- Update
bot-workflows.ymlto trigger only on open PRs with failed workflows; ignore closed PRs and branches without open PRs. - Fixed inactivity bot workflow not checking out repository before running (#964)
- Fixed solo workflow defaulting to zero
- good first issue template yaml rendering
- Workflow does not contain permissions for
pr-check-test-filesandpr-check-codecov - Fixed
cron-check-broken-links.ymlstring parsing issue in context inputdry_run(#1235) - Fixed LinkBot permission issue for fork PRs by changing trigger to pull_request_target and adding proper permissions.
- Fixed duplicate comment prevention in issue reminder bot by adding hidden HTML marker for reliable comment detection (.github/scripts/bot-issue-reminder-no-pr.sh) (#1372)
- Updated
.github/scripts/bot-community-calls.shto skip posting reminders on issues created by bot accounts. (#1383) - Update
.github/scripts/bot-advanced-check.shto unassign unqualified users. - Refactor spam list update logic and remove unused pull request creation step
.github/scripts/update-spam-list.js.github/workflows/cron-update-spam-list.yml. - Refactor assignment time retrieval and open PR check to use GraphQL API instead of REST API
.github/scripts/bot-issue-reminder-no-pr.sh(#1746) - Fixed bot-pr-missing-linked-issue to skip commenting on pull requests created by automated bots. (#1382)
- Fixed step-security/harden-runner action SHA in merge conflict bot workflow (#1278)
- Added technical docstrings and hardening (set -euo pipefail) to the pr-check-test-files.sh script (#1336)
Tests
- Format
tests/unit/crypto_utils_test.pywith black for code style consistency (#1524) - Standardize formatting of
tests/unit/entity_id_helper_test.pyusing Black for consistent code style across the test suite (#1527) - Added tests for ProtoBuf Training Example Implementation
- Formatted
tests/unit/get_receipt_query_test.pywith black for code style consistency. (#1537) - format black
tests/unit/hbar*.py.(#1538) - Formatted
tests/unit/conftest.pywith black for code style consistency. (#1522) - format
black tests/unit/nft_id_test.pywith Black.(#1544) - Format
tests/unit/executable_test.pywith Black.(#1530) - Format
tests/unit/hedera_trust_manager_test.pywith Black for consistent code style (#1539) - Format tests/unit/logger_test.py with black for code style consistency (#1541)
- Format
tests/unit/batch_transaction_test.pywith Black.(#1520) - Style: formatted
tests/unit/prng_transaction_test.pywith black (#1546) - Formatted contract unit tests with black for consistent style. (#1523)
- Format account test files with Black (#1519)
- Format
tests/unit/node*.pywith Black for consistent code style (#1545) - Improve unit test coverage for Hbar, including edge cases, validation, comparisons, and hashing. (#1483)
- Standardize formatting of evm_address_test.py using Black for improved consistency and readability (#1529)
- Formatted unit test files using Black.
- Format tests/unit/network_tls_test.py with black for code style consistency (#1543)
- Formatted
ethereum_transaction_test.pyusing Black. - Formatted client_test.py using Black.
- Format tests/unit/query*.py using black (#1547)
- Format
tests/unit/custom_fee_test.pywith black for code style consistency. (#1525) - Includes comprehensive unit tests covering various Hbar units (HBAR, MICROBAR, NANOBAR, TINYBAR) and accumulation behavior with mixed
intandHbarinputs - Added unit tests for
crypto_utils(#993) - chore: format tests/unit/mock_server.py with black (#1542)
- Added more tests to the CustomFee class for different functionalities (#991)
- Rename test files across the repository to ensure they consistently end with _test.py (#1055)
- Rename the file 'test_token_fee_schedule_update_transaction_e2e.py' to make it ends with _test.py as all other test files.(#1117)
- Added comprehensive unit tests for Timestamp class (#1158)
- Enhance unit and integration test review instructions for clarity and coverage
.coderabbit.yaml. - Formatted key-related unit test files (
key_utils_test.py,test_key_format.py,test_key_list.py) using the black formatter - Enhance TopicInfo
__str__method and tests with additional coverage, and update the format_key function inkey_format.pyto handle objects with a _to_proto method. - Replaced
ResponseCode.get_name(receipt.status)with theResponseCode(receipt.status).nameacross examples and integration tests for consistency. (#1136) - Replaced deprecated
AccountCreateTransaction.set_key()usage withset_key_without_alias()andset_key_with_alias()across examples and tests - Enhance NodeAddress tests with additional coverage for proto conversion
tests/unit/node_address_test.py - Fixed the topic_message_query integarion test
- Fix unit test tet_query.py
- Flaky tests by disabling TLS in mock Hedera nodes in
mock_server.py - Add new tests to
tests/unit/topic_info_query_test.py(#1124) - Improved unit test coverage for
TransactionIdclass, covering parsing logic, hashing, and scheduled transactions. - Added unit test for 'endpoint.py' to increase coverage.
- Added unit tests for
key_format.pyto improve coverage. - Added unit tests for
SubscriptionHandleclass covering cancellation state, thread management, and join operations.
Packages
- Bump protobuf toml to protobuf==6.33.2
- Bumped requests from 2.32.3 to 2.32.4 to 2.32.5
- Updated
pyproject.tomlto enforce stricter Ruff linting rules, including Google-style docstrings (D), import sorting (I), and modern Python syntax (UP). - Refactored SDK dependencies to use version ranges, moved build-only deps out of runtime, removed unused core deps and added optional extras.
AUTO - GENERATED - What's Changed
- feat(examples): add pause key example for token create by @undefinedIsMyLife in #833
- feat: added transaction lifecycle guide to documentation by @CynthiaFotso in #870
- feat(github-actions): add inactivity unassign bot phase 1 by @Akshat8510 in #956
- feat: Add automated assignment limit bot by @Adityarya11 in #960
- fix(github-actions): checkout repo before running inactivity bot by @Akshat8510 in #965
- feat: Allow PublicKey for TokenUpdateKeys in TokenUpdateTransaction by @emiliyank in #946
- chore: made custom fraction fee end to end by @mukundkumarjha in #973
- chore: update issue template for good first issue by @exploreriii in #975
- fix: TopicMessageQuery integration test timeout issue by @manishdait in #982
- refactor(token-info): improve string representation to include all fields by @tech0priyanshu in #955
- feat: add str to CustomFixedFee and update examples/tests by @undefinedIsMyLife in #976
- chore: bump proto by @exploreriii in #994
- fix: good first issue template issue rendering by @exploreriii in #984
- feat: Add Acceptance Criteria to Good First Issue Template (#997) by @adityashirsatrao007 in #998
- feat: added stringy function for the custom royalty fee (#986) by @HusseinYasser in #1001
- feat: account create transaction support private key by @AntonioCeppellini in #954
- feat(github-actions): add inactivity bot phase 2 (stale PR detection) by @Akshat8510 in #989
- fix: node account ids by @nadineloepfe in #1020
- feat: implement TLS support by @emiliyank in #860
- chore: restore bug and feature request issue templates by @andrerovee in #1019
- refactor: improve modularity of transfer_transaction_fungible example by @undefinedIsMyLife in #1023
- feat: add PR inactivity reminder bot for stale pull requests by @MonaaEid in #978
- test: add tests for the custom fee class (#991) by @HusseinYasser in #1011
- chore(deps): bump step-security/harden-runner from 2.13.2 to 2.14.0 by @dependabot[bot] in #1026
- test: add unit tests for crypto_utils (Issue #993) by @adityashirsatrao007 in #1006
- feat: add comprehensive training documentation for
_Executableclass by @MonaaEid in #1024 - refactor(examples): modularize account_create_transaction_create_with_alias by @adityashirsatrao007 in #1030
- test: add unit test for subscription_handle by @Giannis-dot in #1028
- fix: remove test default to no failure if empty by @exploreriii in #1036
- fix(bot): unify inactivity unassign bot and handle cross-repo refs by @Akshat8510 in #1041
- docs: add guide for testing GitHub Actions on forks by @Akshat8510 in #1058
- docs: added good_first_issues.md by @ChaitanyaChute in #1048
- chore: rename token_update example files to match src files by @colslice in #1059
- docs: add fix: inactivity bot pagination and assignment date detection by @Akshat8510 in #1076
- chore: split monolithic example into modular helpers and main entrypoint (#1018) by @Rowrow620 in #1050
- chore: bot filenames changed in to be consistent. Changelog entry ad… by @Mickey08JK in #1078
- refactor(example): sync transaction_to_bytes with main by @dantesb777 in #1045
- docs: update good first issue template with welcome + criteria by @prishajaiswal75 in #1057
- chore: rename workflow files to use pr-check prefix by @prishajaiswal75 in #1091
- chore: clean up token airdrop example for pylint compliance by @prishajaiswal75 in #1094
- feat: auto-draft PRs when reviewers request changes by @Mounil2005 in #1095
- feat: create 04_good_first_issue_candidate.yml by @AntonioCeppellini in #1086
- fix: Update unit test for test_query.py by @manishdait in #1047
- chore(deps): bump actions/github-script from 7.0.1 to 8.0.0 by @dependabot[bot] in #1106
- feat: Add workflow to notify team about P0 issues by @MonaaEid in #1104
- fix: update team notification script and workflow for P0 issues by @MonaaEid in #1113
- chore: move account allowance example to correct folder by @tWiLighT-xY91 in #1007
- fix: correct token association check by @AubreyDDD in #1044
- chore: rename all test files for consistency (#1055) by @kplnosmn94-droid in #1093
- chore: formatted examples/query by @andrerovee in #1118
- feat: add issue reminder bot by @prajeeta15 in #1027
- ci: enable codecov by @exploreriii in #1060
- chore: format transaction examples with black by @rahul-797 in #1126
- chore: clean up token_airdrop_claim_signature_required example for pylint compliance #1080 by @kplnosmn94-droid in #1103
- feat: add tests for key format by @aceppaluni in #1092
- docs: add GFI-Guidelines Doc File by @aceppaluni in #1128
- docs: Add GFI-Management and GFI-Frequency docs files by @aceppaluni in #1132
- chore: rename file test_token_fee_schedule_update_transaction_e2e.py to amke it end with _test.py #1117 by @Bhavanahegde-23 in #1131
- feat(account): add str and repr to AccountInfo by @Akshat8510 in #1129
- feat: Add workflow to notify team about Good first issues by @kplnosmn94-droid in #1123
- chore: format token examples with black by @thzthix in #1127
- chore(examples): move account_allowance_delete_transaction_hbar.py to account subdirectory (#1003) by @TianyangRen in #1134
- feat: create new .github/ISSUE_TEMPLATE/05_intermediate_issue.yml by @AntonioCeppellini in #1137
- chore(deps): bump astral-sh/setup-uv from 7.1.1 to 7.1.6 by @dependabot[bot] in #1135
- docs: gfi guidelines by @exploreriii in #1133
- feat: Add support for include_children in TransactionGetReceiptQuery by @AntonioCeppellini in #1114
- feat(account): add str and repr to AccountBalance by @mukundkumarjha in #1122
- feat: added github workflow that checks test file names (#1054) by @HusseinYasser in #1096
- fix: pylint cleanup for token_airdrop_transaction_cancel.py by @tiya-15 in #1146
- chore: rename/response code name by @ChaitanyaChute in #1151
- fix: TLS Hostname Mismatch & Certificate Verification Failure for Nodes by @manishdait in #1038
- feat: Transform custom_fee_fixed example to end-to-end test by @Adityarya11 in #1148
- feat: Create advanced issue template for contributors by @MonaaEid in #1152
- fix: support public for batch_key in Transaction by @AubreyDDD in #1051
- ci: reduce office-hours reminder spam by posting only on most recent PR per user by @TianyangRen in #1150
- chore: move helpful references to additional context by @andrerovee in #1162
- feat: Refactor custom_royalty_fee.py example for end-to-end execution by @Adityarya11 in #1160
- fix: Workflow permissions for test file naming checks and codecov by @manishdait in #1168
- feat: added new tests to topic_info_query_test.py by @AntonioCeppellini in #1163
- feat(ci): add workflow to remind pull requests to link issues by @undefinedIsMyLife in #1173
- ci: coderabbit yaml by @exploreriii in #1174
- chore(examples): add mypy config for example scripts by @sarthak-cs in #1179
- fix: correct typos in CONTRIBUTING.md by @sarthak-cs in #1182
- chore: refactor custom_royalty_fee.py into modular functions by @levitepeter in #1176
- feat: Add custom CodeRabbit instructions for examples by @Adityarya11 in #1189
- feat: Added doc on how to create token transaction. by @Adityarya11 in #1190
- refactor: remove deprecated
in_tinybarsparameter by @MonaaEid in #1188 - chore: increase codecov coverage thresholds by @nagaraju504 in #1191
- feat: implement Linked Issue Enforcer to close PRs without linked issues. by @MonaaEid in #1187
- docs: add method chaining examples by @suyash1567 in #1200
- feat: Add Pr Check For Broken Links by @aceppaluni in #1206
- docs(account): improve module docstring for account_allowance_approve… by @sarthak-cs in #1204
- test(timestamp): add unit tests for timestamp by @sarthak-cs in #1216
- docs: Add module docstring to examples/account/account_allowance_approve_transaction_hbar.py by @mathew1046 in #1218
- docs: add guide for pinning github actions by @nagaraju504 in #1215
- refactor: modularize account_create_transaction_evm_alias.py example (#1017) by @mathew1046 in #1227
- chore: enhance unit and integration test review instructions by @MonaaEid in #1231
- feat: added the support for the include dups for tx receipt query (#1166) by @HusseinYasser in #1186
- fix: rename scripts in .github/scripts/ to match workflow file names by @majiayu000 in #1229
- feat: add scheduled markdown link check workflow by @drtoxic69 in #1228
- chore: Move docs/sdk_developers/project_structure.md to docs/sdk_developers/training/setup/project_structure.md #1223 by @mathew1046 in #1234
- feat: add explicit assignees mention to
issue reminder botby @drtoxic69 in #1239 - fix: Flaky tests by disabling TLS for nodes in mock_server by @manishdait in #1240
- fix: handle string boolean in broken links workflow by @DAShaikh10 in #1242
- feat: hbar support by @prajeeta15 in #1199
- docs: move how_to_link_issues to workflow by @joshiy2006 in #1230
- fix(readme): correct account balance example to use valid SDK APIs by @parvninama in #1253
- feat: add assignment guard for advanced issues (#1142) by @Akshat8510 in #1209
- feat: add mentor assignment workflow by @Mounil2005 in #1201
- ci: prompt coderabbit on .github workflow and script by @exploreriii in #1262
- chore: improve flow in contributing guide by @exploreriii in #1185
- docs: create team details by @exploreriii in #1184
- feat: exclude maintainers and committers from office hours notifications by @exploreriii in #1171
- fix: bump requests by @exploreriii in #1275
- ci: update merge conflict bot to trigger on main by @cheese-cakee in #1247
- fix: correct step-security/harden-runner SHA in merge conflict bot workflow by @cheese-cakee in #1280
- feat: add
HBARunit examples and update transfer transaction by @drtoxic69 in #1259 - fix(ci): run bot-workflows only for open PRs with failures by @tech0priyanshu in #1282
- chore: rename missing linked issue files and enhance LinkBot with clickable links by @DAShaikh10 in #1285
- ci: notify GFI support team only after first issue comment by @undefinedIsMyLife in #1258
- feat: Add intermediate issue assignment guard workflow by @Mounil2005 in #1225
- feat: Add convenient factory methods for Hbar units by @Adityarya11 in #1277
- fix: casing for good first issue bot by @exploreriii in #1295
- chore: rename templates for clarity (#1265) by @parvninama in #1297
- fix: update GitHub workflow names (#1284) by @parvninama in #1298
- feat: enhance assignment bot to guard against users with spam PRs by @MonaaEid in #1270
- docs: add CodeRabbit review prompts for documentation by @Mounil2005 in #1294
- feat: unit test for 'endpoint.py' by @mukundkumarjha in #1290
- test: enhance
NodeAddresstests with additional coverage by @MonaaEid in #1302 - feat: Add Client factory methods (from_env) and simplify examples by @Adityarya11 in #1274
- chore: format examples/tokens directory using black code formatter by @Mounil2005 in #1318
- feat(ci): enable auto-assignment for good first issues by @exploreriii in #1315
- style: apply black formatting to examples by @MrMadHatt in #1320
- chore: add beginner template issue by @exploreriii in #1330
- chore: rename notify team script to match workflow title by @Pikolosan in #1343
- docs: create beginner issue guidelines by @exploreriii in #1325
- chore: add detail to beginner template by @exploreriii in #1349
- refactor(github): rename bot-inactivity workflow files by @cxhello in #1356
- docs: add Query class training documentation for SDK contributors by @undefinedIsMyLife in #1313
- feat: community calls bot by @exploreriii in #1172
- docs: advanced issue guidelines by @exploreriii in #1331
- docs: intermediate issue guidelines by @exploreriii in #1328
- refactor: create account transaction without alias by @tech0priyanshu in #1334
- feat: re-add intermediate template by @aceppaluni in #1360
- feat: automate CodeRabbit plan for intermediate/advanced issues (#1289) by @Mounil2005 in #1332
- fix: LinkBot fork permission issue by @Mounil2005 in #1363
- docs: add top-level explanation to pr-check-changelog.sh (#1337) by @Pikolosan in #1362
- feat: Improved unit test coverage for TransactionId class. by @Adityarya11 in #1358
- chore: Prompt Coderabbit to have issue requirement context by @emiliyank in #1378
- feat: update pyproject.toml with ruff settings by @drtoxic69 in #1357
- chore: archive unused auto-draft workflow by @kushagrakaushik in #1374
- chore: Chain GFI assignment with mentor assignment (#1369) by @Mounil2005 in #1386
- chore: enable coderabbit for beginner issues by @kushagrakaushik in #1387
- feat: add GitHub Actions workflow for automatic spam list updates by @MonaaEid in #1359
- chore: rename check_advanced_requirement.sh to bot-advanced-check.sh #1341 by @akramsdm in #1353
- feat: add notification workflow for Good First Issue candidates [(#1296)] by @parvninama in #1342
- chore(deps): bump astral-sh/setup-uv from 7.1.6 to 7.2.0 by @dependabot[bot] in #1381
- docs: add technical docstring to pr-check-test-files.sh by @MrMadHatt in #1390
- fix: skip missing-issue comments for bot PRs by @kushagrakaushik in #1398
- fix: prevent duplicate issue reminder comments and update message by @Adityarya11 in #1399
- docs: add TokenType docstring by @cheese-cakee in #1402
- fix: replace deprecated AccountCreateTransaction.set_key usage by @prishajaiswal75 in #1355
- fix: skip /assign reminder for repository collaborators [(#1367)] by @parvninama in #1420
- chore: skip bot accounts in community call reminders by @MrMadHatt in #1418
- chore: skip bot accounts in office hours script by @MrMadHatt in #1403
- chore: Added prompt for coderabbit to review Query classes by @manishdait in #1411
- refactor: use native AccountInfo string representation in examples by @drtoxic69 in #1269
- feat: add contract_id support for CryptoGetAccountBalanceQuery by @AntonioCeppellini in #1389
- feat: add auto-assignment bot for beginner issues by @Pikolosan in #1417
- chore: remove unused commented issue template config by @Vinzy0 in #1438
- chore: enable coderabbit walkthrough mode by @CODEAbhinav-art in #1441
- fix: filename error handling (#1413) by @Abhijeet2409 in #1437
- feat: enable dry run support for office hours bot (#1426) by @cheese-cakee in #1446
- fix: align setup_client usage across token examples by @kushagrakaushik in #1406
- fix: chain guards to assignment bots by @exploreriii in #1461
- chore: use print(info) in file info example by @CODEAbhinav-art in #1458
- feat: trigger CodeRabbit plan after GFI assignment (#1432) by @cheese-cakee in #1444
- docs: update beginner-advanced guidelines v2 by @exploreriii in #1467
- fix(examples): align token dissociate example instructions and error … by @CODEAbhinav-art in #1470
- test: enhance
TopicInfotest coverage by @MonaaEid in #1445 - fix: intermediate assignment guard to count beginner issues instead of GFI and to use GraphQl counting by @parvninama in #1443
- fix: Fix Advanced Check Bot by @aceppaluni in #1477
- fix: prevent LinkBot from posting duplicate missing-issue comments by @parvninama in #1475
- docs: update Good First Issue instructions by @Abhijeet2409 in #1466
- test(hbar): improve unit test coverage by @CODEAbhinav-art in #1483
- refactor: Refactored the advanced issue assignment guard to use a single configurable variable by @parvninama in #1486
- chore: docs update shuffle by @exploreriii in #1410
- fix: prevent duplicate runs for CodeRabbit plan trigger (#1427) by @cheese-cakee in #1464
- feat: Added Token Review Instructions by @aceppaluni in #1496
- chore: Add AI usage guidelines to issue templates by @MohamedSharfan in #1497
- docs: make signed commit command explicit in issue templates by @CODEAbhinav-art in #1500
- chore(bots): support /unassign command with validation checks by @undefinedIsMyLife in #1493
- chore(account_id): add repr return type hint by @kordianpawelec in #1505
- feat: Add max query payment support to Query by @manishdait in #1347
- fix(bot): update LinkBot regex to support Closes and Resolves (#1465) by @gangulysiddhartha22-cmyk in #1511
- fix: respect dry-run input for bot-community-calls workflow by @gangulysiddhartha22-cmyk in #1518
- feat: add StakingInfo class by @AntonioCeppellini in #1498
- chore: format account test files with black by @gangulysiddhartha22-cmyk in #1534
- feat: Extend
AccountIdfunctionality and improve alias handling by @manishdait in #1009 - chore: format unit test files with black by @shrav-jally in #1548
- docs(pr-template): update acceptance criteria section by @adityaKothari06 in #1550
- feat: require Good First Issue before beginner issue assignment by @parvninama in #1508
- chore: format network_tls_test.py with black by @HirulaAbesignha in #1549
- fix: Transaction byte generation for valid
node_account_idsduring external signing and manual freezing by @manishdait in #1226 - chore: format evm address unit tests with black by @KunalSiyag in #1536
- fix: prevent commenting and auto-closing bot PRs by @parvninama in #1575
- fix: make changelog workflow trigger automatically on PRs by @HirulaAbesignha in #1577
- chore: Format contract tests using Black by @AbbyHumphreys in #1560
- chore: gfi templates version2 by @exploreriii in #1578
- chore: add visible confirmation when unassigning issues by @prishajaiswal75 in #1535
- chore: create windows setup guide #1570 by @Akshat8510 in #1579
- chore: expand inactivity bot messages to include /unassign info by @Rajkoli145 in #1555
- chore: Fixed Jq syntax by @mukundkumarjha in #1571
- chore: formatting of client.py by @mukundkumarjha in #1573
- chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in #1557
- fix: align filename and improve error handling in token freeze example by @ShrutiJ3110 in #1434
- feat: Update mentor assignment welcome message (Fixes #1487) by @MohamedSharfan in #1488
- chore(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 by @dependabot[bot] in #1558
- chore: format ethereum_transaction_test.py with black by @shrav-jally in #1563
- feat: add automated bot to recommend next issues to contributors by @Mounil2005 in #1440
- chore: fix /unassign formatting in pr_inactivity_reminder.js by @Subhrasameerdash in #1588
- style: format prng_transaction_test.py with black (#1546) by @RKNAGA18 in #1589
- chore: update actions/checkout to v6.0.1 and add actions/github-script in bot-next-issue-recommendation workflow by @gangulysiddhartha22-cmyk in #1587
- fix: reduce notification spam by skipping advanced check job on non-advanced issues by @gangulysiddhartha22-cmyk in #1580
- feat: Add dry-run support and refactor bot-workflows.yml (#1288) by @Mounil2005 in #1431
- chore: format tests/unit/mock_server.py with black by @RKNAGA18 in #1604
- chore: format logger_test.py with black by @GodishalaAshwith in #1600
- chore: format batch_transaction_test.py with black (#1520) by @Pradeepbeleri in #1606
- chore: format hedera_trust_manager_test.py with black by @gangulysiddhartha22-cmyk in #1607
- chore: format key unit tests using black by @Aditya0105singh in #1562
- chore: update link to maintainer guidelines by @jwagantall in #1616
- chore(deps): bump step-security/harden-runner from 2.13.3 to 2.14.1 by @dependabot[bot] in #1597
- chore: update actions/setup-node to v6.2.0 by @ij1205 in #1609
- fix: correctly detect team members using permission level API by @Abhijeet2409 in #1581
- chore: format tests/unit/executable_test.py with black (#1530) by @Pradeepbeleri in #1612
- fix: update
.github/scripts/bot-advanced-check.shto unassign unqualified users by @MonaaEid in #1602 - refactor: harden and upgrade bot-verified-commits workflow (#1482) by @cheese-cakee in #1494
- docs: add guide for resolving CHANGELOG.md conflicts using GitHub web editor by @gangulysiddhartha22-cmyk in #1601
- chore: format
black tests/unit/nft_id_test.pywith Black. by @AkshayKumarSahu in #1641 - chore(tests): format node unit tests with black by @Subhrasameerdash in #1615
- refactor: use Client.from_env() in topic_create_transaction.py by @gangulysiddhartha22-cmyk in #1619
- fix: update next-issue recommendation bot comment logic by @parvninama in #1617
- chore(deps): bump astral-sh/setup-uv from 7.2.0 to 7.2.1 by @dependabot[bot] in #1647
- chore: add comprehensive docstring to compress_with_cryptography by @AshharAhmadKhan in #1632
- fix: add-type-hints-transaction-sign by @Pikolosan in #1649
- chore: update merge conflict bot message with web editor tips by @RKNAGA18 in #1608
- chore: hide commit verification bot comment by @dtee1 in #1662
- chore: format tests/unit/conftest.py with black #1522 by @Subhrasameerdash in #1584
- feat: implement repr method for TopicId class by @AshharAhmadKhan in #1661
- chore: format black tests/unit/hbar*.py by @om12prakash in #1669
- chore: format query unit tests with black by @shrav-jally in #1670
- chore: add return type hint to ContractId.str by @Flames4fun in #1655
- chore: remove outdated Common Issues section from CONTIRBUTING.md by @mariami57 in #1672
- feat: add /working command to reset inactivity timers by @drtoxic69 in #1585
- chore: fix broken Project Structure link in CONTRIBUTING by @Camden-Kirkpatrick in #1675
- docs: fix return type description in parse_from_string docstring by @Camden-Kirkpatrick in #1678
- chore: Format test file using Black by @achahid19 in #1685
- chore: update team.md with new triage, committers and maintainer by @ParasSalonia in #1694
- style: format tests/unit/custom_fee_test.py by @MrMadHatt in #1703
- fix: correct response code check for token freeze verification by @achahid19 in #1688
- chore: Add Missing Return Type Hint to parse_from_string Function by @AkshayKumarSahu in #1650
- feat: Add ProtoBuff Training Guide by @aceppaluni in #1645
- chore: add Codeowners file by @exploreriii in #1501
- chore: update MAINTAINERS.md with new maintainer (#1691) by @Raghav-56 in #1704
- chore: Add Missing Type Hint to to_bytes Method in Transaction Class by @AkshayKumarSahu in #1708
- feat: implement repr method for ContractId class by @AshharAhmadKhan in #1714
- feat: Added
grpc_deadlineandrequest_timeoutsupport for transaction and query execution by @manishdait in #1499 - feat: Add support for populating
ContractIdnum value using MirrorNode query by @manishdait in #1565 - feat: Add AssessedCustomFee model with protobuf support and tests by @gangulysiddhartha22-cmyk in #1660
- chore: format entity_id_helper_test.py with Black by @miguel23es in #1532
- chore: refactor setup_client in examples/query to use Client.from_env by @Subhrasameerdash in #1720
- fix: add logging to prevent silent skips in bot-gfi-assign-on-comment by @tech0priyanshu in #1733
- chore: enhance exception type safety and context by @Adityarya11 in #1594
- fix: Limit GFI bot recommendations to supported repositories. by @Abhijeet2409 in #1740
- feat: transaction record query include duplicates by @gangulysiddhartha22-cmyk in #1671
- chore: refactor spam list updating by @MonaaEid in https://github.com/hiero-ledger/hiero-sdk-python/pull/1749
- chore: update mentor roster with new triage members by @Pradeepbeleri in https://github.com/hiero-ledger/hiero-sdk-python/pull/1732
- chore: format black tests/unit/crypto_utils_test.py by @AkshayKumarSahu in https://github.com/hiero-ledger/hiero-sdk-python/pull/1738
- ci: Non-blocking bot to remind about missing CHANGELOG entries by @parvninama in https://github.com/hiero-ledger/hiero-sdk-python/pull/1734
- chore: Edit .github/scripts/bot-assignment-check.sh so max assignment limit only applies to issues, it excludes PRs by @AkshayKumarSahu in https://github.com/hiero-ledger/hiero-sdk-python/pull/1739
- chore: fix broken training documentation links by @ParasSalonia in https://github.com/hiero-ledger/hiero-sdk-python/pull/1737
- chore: Added missing timeout support for some
execute()implementations by @manishdait in https://github.com/hiero-ledger/hiero-sdk-python/pull/1736 - chore: clarify wording in bot-assignment-check.sh by @vbhavh in https://github.com/hiero-ledger/hiero-sdk-python/pull/1761
- docs: fix documentation relative links and normalize test file naming by @achahid19 in https://github.com/hiero-ledger/hiero-sdk-python/pull/1730
- fix: switch to GraphQL for issue assignment and PR checks by @MonaaEid in https://github.com/hiero-ledger/hiero-sdk-python/pull/1746
- chore: add contract-specific CodeRabbit review instructions by @gangulysiddhartha22-cmyk in https://github.com/hiero-ledger/hiero-sdk-python/pull/1763
- fix: clarify phrasing in missing-linked-issue bot script by @jona42-ui in https://github.com/hiero-ledger/hiero-sdk-python/pull/1766
- chore(deps): bump step-security/harden-runner from 2.14.1 to 2.14.2 by @dependabot[bot] in https://github.com/hiero-ledger/hiero-sdk-python/pull/1760
- chore: Restructure dependencies and add optional extras by @manishdait in https://github.com/hiero-ledger/hiero-sdk-python/pull/1679
- docs: create foundational github workflow guide #1741 by @Akshat8510 in https://github.com/hiero-ledger/hiero-sdk-python/pull/1776
- feat: add set_node_account_ids to the query chain by @AntonioCeppellini in https://github.com/hiero-ledger/hiero-sdk-python/pull/1727
- chore: implement repr method for FileId class (#1628) by @Subhrasameerdash in https://github.com/hiero-ledger/hiero-sdk-python/pull/1770
- fix: prevent codecov upload from failing on forks by @ParasSalonia in https://github.com/hiero-ledger/hiero-sdk-python/pull/1752
- chore: v0.2.0 by @exploreriii in https://github.com/hiero-ledger/hiero-sdk-python/pull/1784
New Contributors
- @undefinedIsMyLife made their first contribution in #833
- @adityashirsatrao007 made their first contribution in #998
- @HusseinYasser made their first contribution in #1001
- @andrerovee made their first contribution in #1019
- @Giannis-dot made their first contribution in #1028
- @ChaitanyaChute made their first contribution in #1048
- @colslice made their first contribution in #1059
- @Rowrow620 made their first contribution in #1050
- @Mickey08JK made their first contribution in #1078
- @dantesb777 made their first contribution in #1045
- @prishajaiswal75 made their first contribution in #1057
- @tWiLighT-xY91 made their first contribution in #1007
- @kplnosmn94-droid made their first contribution in #1093
- @rahul-797 made their first contribution in #1126
- @Bhavanahegde-23 made their first contribution in #1131
- @thzthix made their first contribution in #1127
- @TianyangRen made their first contribution in #1134
- @tiya-15 made their first contribution in #1146
- @sarthak-cs made their first contribution in #1179
- @levitepeter made their first contribution in #1176
- @nagaraju504 made their first contribution in #1191
- @suyash1567 made their first contribution in #1200
- @mathew1046 made their first contribution in #1218
- @majiayu000 made their first contribution in #1229
- @DAShaikh10 made their first contribution in #1242
- @joshiy2006 made their first contribution in #1230
- @parvninama made their first contribution in #1253
- @cheese-cakee made their first contribution in #1247
- @MrMadHatt made their first contribution in #1320
- @Pikolosan made their first contribution in #1343
- @cxhello made their first contribution in #1356
- @kushagrakaushik made their first contribution in #1374
- @akramsdm made their first contribution in #1353
- @Vinzy0 made their first contribution in #1438
- @CODEAbhinav-art made their first contribution in #1441
- @Abhijeet2409 made their first contribution in #1437
- @MohamedSharfan made their first contribution in #1497
- @kordianpawelec made their first contribution in #1505
- @gangulysiddhartha22-cmyk made their first contribution in #1511
- @shrav-jally made their first contribution in #1548
- @adityaKothari06 made their first contribution in #1550
- @HirulaAbesignha made their first contribution in #1549
- @KunalSiyag made their first contribution in #1536
- @AbbyHumphreys made their first contribution in #1560
- @Rajkoli145 made their first contribution in #1555
- @ShrutiJ3110 made their first contribution in #1434
- @Subhrasameerdash made their first contribution in #1588
- @RKNAGA18 made their first contribution in #1589
- @GodishalaAshwith made their first contribution in #1600
- @Pradeepbeleri made their first contribution in #1606
- @Aditya0105singh made their first contribution in #1562
- @ij1205 made their first contribution in #1609
- @AkshayKumarSahu made their first contribution in #1641
- @AshharAhmadKhan made their first contribution in #1632
- @dtee1 made their first contribution in #1662
- @om12prakash made their first contribution in #1669
- @Flames4fun made their first contribution in #1655
- @mariami57 made their first contribution in #1672
- @Camden-Kirkpatrick made their first contribution in #1675
- @achahid19 made their first contribution in #1685
- @ParasSalonia made their first contribution in #1694
- @Raghav-56 made their first contribution in #1704
- @miguel23es made their first contribution in #1532
- @vbhavh made their first contribution in https://github.com/hiero-ledger/hiero-sdk-python/pull/1761
- @jona42-ui made their first contribution in https://github.com/hiero-ledger/hiero-sdk-python/pull/1766
Full Changelog: v0.1.10...v0.2.0