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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+28-14Lines changed: 28 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,6 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
6
6
7
7
## [Unreleased]
8
8
9
-
10
9
### Added
11
10
- Add `examples/token_create_transaction_pause_key.py` example demonstrating token pause/unpause behavior and pause key usage (#820)
12
11
@@ -20,7 +19,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
20
19
- Add `examples/token_create_transaction_max_automatic_token_associations_0.py` to demonstrate how `max_automatic_token_associations=0` behaves.
21
20
- Add `examples/topic_id.py` to demonstrate `TopicId` opeartions
22
21
- Add `examples/topic_message.py` to demonstrate `TopicMessage` and `TopicMessageChunk` with local mock data.
23
-
- Added missing validation logic `fee_schedule_key` in integration `token_create_transaction_e2e_test.py` and ``token_update_transaction_e2e_test.py`.
22
+
- Added missing validation logic `fee_schedule_key` in integration `token_create_transaction_e2e_test.py` and ``token_update_transaction_e2e_test.py`.
24
23
- Add `account_balance_query.py` example to demonstrate how to use the CryptoGetAccountBalanceQuery class.
25
24
- Add `examples/token_create_transaction_admin_key.py` demonstrating admin key privileges for token management including token updates, key changes, and deletion (#798)
26
25
- Add `examples/token_create_transaction_freeze_key.py` showcasing freeze key behavior, expected failures without the key, and the effect of freezing/unfreezing on transfers.
@@ -31,26 +30,39 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
31
30
-`alias`, `staked_account_id`, `staked_node_id` and `decline_staking_reward` fields to AccountCreateTransaction
32
31
-`staked_account_id`, `staked_node_id` and `decline_staking_reward` fields to AccountInfo
33
32
- Added `examples/token_create_transaction_supply_key.py` to demonstrate token creation with and without a supply key.
33
+
- Added `examples/token_create_transaction_kyc_key.py` to demonstrate KYC key functionality, including creating tokens with/without KYC keys, granting/revoking KYC status, and understanding KYC requirements for token transfers.
34
+
- Added BatchTransaction class
35
+
- Add support for token metadata (bytes, max 100 bytes) in `TokenCreateTransaction`, including a new `set_metadata` setter, example, and tests. [#799]
36
+
- Added `examples/token_create_transaction_token_fee_schedule.py` to demonstrate creating tokens with custom fee schedules and the consequences of not having it.
37
+
- Added `examples/token_create_transaction_wipe_key.py` to demonstrate token wiping and the role of the wipe key.
38
+
- Added `examples/account_allowance_approve_transaction_hbar.py` and `examples/account_allowance_delete_transaction_hbar.py`, deleted `examples/account_allowance_hbar.py`. [#775]
39
+
- Added `docs\sdk_developers\training\receipts.md` as a training guide for users to understand hedera receipts.
34
40
35
41
### Changed
42
+
- Upgraded step-security/harden-runner v2.13.2
43
+
- bumped actions/checkout from 5.0.0 to 6.0.0
44
+
- Limit workflow bot to one message per PR
36
45
- Refactored token-related example scripts (`token_delete.py`, `token_dissociate.py`, etc.) for improved readability and modularity. [#370]
37
46
- upgrade: step security action upgraded from harden-runner-2.13.1 to harden-runner-2.13.1
38
47
- chore: Split `examples/account_allowance_nft.py` into separate `account_allowance_approve_transaction_nft.py` and `account_allowance_delete_transaction_nft.py` examples.
39
48
- chore: bump protobuf from 6.33.0 to 6.33.1 (#796)
40
49
- fix: Allow `max_automatic_token_associations` to be set to -1 (unlimited) in `AccountCreateTransaction` and add field to `AccountInfo`.
41
50
- Allow `PrivateKey` to be used for keys in `TopicCreateTransaction` for consistency.
42
51
- Update github actions checkout from 5.0.0 to 5.0.1 (#814)
52
+
- changed to add concurrency to workflow bot
43
53
44
54
### Fixed
55
+
45
56
- chore: fix test.yml workflow to log import errors (#740)
46
57
- chore: fixed integration test names without a test prefix or postfix
47
58
- Staked node ID id issue in the account_create_transationt_e2e_test
48
-
59
+
- workflow: verified commits syntax for verfication bot
49
60
50
61
51
62
## [0.1.8] - 2025-11-07
52
63
53
64
### Added
65
+
54
66
-`is_unknown` property added to `src/hiero_sdk_python/response_code.py`
55
67
- Example `response_code.py`
56
68
- Add `TokenFeeScheduleUpdateTransaction` class to support updating custom fee schedules on tokens (#471).
@@ -75,15 +87,18 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
75
87
- docs: Add `docs/sdk_developers/project_structure.md` to explain repository layout and import paths.
76
88
77
89
### Changed
90
+
- chore: renamed examples to match src where possible
91
+
- Moved examples/ to be inside subfiles to match src structure
92
+
- changed example script workflow to run on new subdirectory structure
78
93
- chore: bumped solo action from 14.0 to 15.0 (#764)
79
94
- chore: replaced hardcoded 'testnet' messages with environment network name
80
-
- chore: validate that token airdrop transactions require an available token service on the channel (#632)
95
+
- chore: validate that token airdrop transactions require an available token service on the channel (#632)
81
96
- chore: update local environment configuration in env.example (#649)
82
97
- chore: Update env.example NETWORK to encourage testnet or local usage (#659)
83
98
- chore: updated pyproject.toml with python 3.10 to 3.13 (#510, #449)
84
99
- chore: fix type hint for TokenCancelAirdropTransaction pending_airdrops parameter
85
100
- chore: Moved documentation file `common_issues.md` from `examples/sdk_developers/` to `docs/sdk_developers/` for unified documentation management (#516).
86
-
- chore: Refactored the script of examples/custom_fee.py into modular functions
101
+
- chore: Refactored the script of examples/custom_fee.py into modular functions
87
102
- fix: Replaced `collections.namedtuple` with `typing.NamedTuple` in `client.py` for improved type checking.
88
103
- chore: Refactored examples/custom_fee.py into three separate example files.
89
104
- Expanded `docs/sdk_developers/checklist.md` with a self-review guide for all pull request submission requirements (#645).
@@ -93,6 +108,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
93
108
- Refactor `AbstractTokenTransferTransaction` to unify Token/NFT transfer logic.
94
109
95
110
### Fixed
111
+
96
112
- Added explicit read permissions to examples.yml (#623)
97
113
- Removed deprecated Logger.warn() method and legacy parameter swap logic from get_logger() (#673).
98
114
- Improved type hinting in `file_append_transaction.py` to resolve 'mypy --strict` errors. ([#495](https://github.com/hiero-ledger/hiero-sdk-python/issues/495))
@@ -102,12 +118,13 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
102
118
- Fixed incorrect `TokenType` import (protobuf vs. SDK enum) in 18 example files.
103
119
- Update `schedule_sign_transaction_e2e_test` to check for key presence instead of relying on index.
104
120
- Add `localhost` and `local` as network names
105
-
121
+
106
122
### Breaking Changes
123
+
107
124
- chore: changed the file names airdrop classes (#631)
@@ -137,9 +154,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
137
154
- chore: fix the examples workflow to log error messages and run on import failure (#738)
138
155
- Added `docs/discord.md` explaining how to join and navigate the Hiero community Discord (#614).
139
156
140
-
141
157
### Changed
142
-
143
158
- Added direct links to Python SDK channel in Linux Foundation Decentralized Trust Discord back in
144
159
- Updated all occurrences of non-functional Discord invite links throughout the documentation with the new, stable Hyperledger and Hedera invite links (#603).
145
160
- Refactored TopicId class to use @dataclass decorator for reducing boilerplate code
@@ -170,6 +185,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
170
185
- Type hinting for `Topic` related transactions.
171
186
172
187
### Removed
188
+
173
189
- Remove deprecated camelCase alias support and `_DeprecatedAliasesMixin`; SDK now only exposes snake_case attributes for `NftId`, `TokenInfo`, and `TransactionReceipt`. (Issue #428)
174
190
175
191
## [0.1.6] - 2025-10-21
@@ -210,8 +226,6 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
210
226
- Improved `CONTRIBUTING.md` by explaining the /docs folder structure and fixing broken hyperlinks.(#431)
211
227
- Converted class in `token_nft_info.py` to dataclass for simplicity.
212
228
213
-
214
-
215
229
### Fixed
216
230
217
231
- Incompatible Types assignment in token_transfer_list.py
This guide explains `ReceiptStatusError` in the Hiero SDK, how it differs from other errors, and how to handle it effectively.
4
+
5
+
## Error Handling Overview
6
+
7
+
Many developers assume that if `execute()` doesn't throw an exception, the transaction or query succeeded. However, failures can occur at different stages:
8
+
9
+
1.**Precheck (Before Submission):**
10
+
* Occurs if the transaction is malformed or fails initial validation by the node.
11
+
* The SDK raises a `PrecheckError` (or similar) immediately.
12
+
* The transaction never reaches consensus.
13
+
14
+
2.**Network/Node Retry Failures:**
15
+
* Occurs if the SDK cannot reach a node or receives transient errors (e.g., `BUSY`).
16
+
* The SDK automatically retries up to a limit.
17
+
* If retries are exhausted, a `MaxAttemptsError` or `TimeoutError` is raised.
18
+
19
+
3.**Receipt Status Errors (Post-Consensus):**
20
+
* Occurs **after** the network reaches consensus on the transaction.
21
+
* The transaction was successfully submitted and processed, but the logic failed (e.g., insufficient funds, token supply full, invalid signature for the specific operation).
22
+
* This is where `ReceiptStatusError` comes in.
23
+
24
+
## What is ReceiptStatusError?
25
+
26
+
`ReceiptStatusError` is an exception that represents a failure during the **consensus/execution** phase.
27
+
28
+
***Timing:** It happens after the transaction is submitted and processed by the network.
29
+
***Content:** It contains the `transaction_receipt`, which holds the status code (e.g., `INSUFFICIENT_ACCOUNT_BALANCE`) and other metadata.
30
+
***Usage:** You must explicitly check the receipt status or configure your client/transaction to throw this error.
31
+
32
+
## Handling ReceiptStatusError
33
+
34
+
When you execute a transaction, you typically get a receipt. You should check the status of this receipt.
35
+
36
+
```python
37
+
from hiero_sdk_python.response_code import ResponseCode
38
+
from hiero_sdk_python.exceptions import ReceiptStatusError
0 commit comments