github.com/hashgraph/hedera-sdk-go/v2@v2.48.0/CHANGELOG.md (about) 1 ## v2.48.0 2 3 ### Fixed 4 - Reset `stakedAccountID` when setting `stakedNodeID` and vice versa 5 - Fix `FEE_SCHEDULE_FILE_PART_UPLOADED` marked as error 6 7 ## v2.47.0 8 9 ### Added 10 - Functionality to pass a string in `SetMessage` function for `TopicMessageSubmitTransaction` 11 12 ### Fixed 13 - Resubmit transaction in case of throttle status at receipt 14 15 ## v2.46.0 16 17 ### Added 18 - `TokenClaimAirdropTransaction` and `TokenCancelAirdropTransaction` (part of HIP-904) 19 20 ### Fixed 21 - Handling of `0x` prefix when constructing ECDSA keys 22 23 ## v2.45.0 24 25 ### Added 26 - `TokenAirdropTransaction` (part of HIP-904) 27 28 ### Fixed 29 - Handling of `THROTTLED_AT_CONSENSUS` status code 30 31 ## v2.44.0 32 33 ### Added 34 35 - `NodeCreateTransaction`,`NodeUpdateTransaction`,`NodeDeleteTransaction` (part of HIP-869) 36 37 ## v2.43.0 38 39 ### Added 40 41 - `Key` functions such as `KeyFromBytes` `KeyToBytes` 42 - `KeyList` functions such as `SetThreshold` 43 44 ## v2.42.0 45 46 ### Added 47 48 - `TokenReject` functionality (part of HIP-904) 49 50 ### Fixed 51 52 - `TransactionReceiptQuery` and `AccountBalanceQuery` execution flows 53 54 ## v2.41.0 55 56 ### Added 57 58 - Modified `AccountUpdateTransaction` to allow `maxAutomaticTokenAssociations` to support `-1` as a valid value 59 60 ## v2.40.0 61 62 ### Added 63 64 - Implemented custom derivation paths in Menmonic ECDSA private key derivation 65 66 ### Fixed 67 68 - Revisited and fix failing examples 69 - Gracefully handle `PlatformNotActive` status code 70 71 ## v2.39.0 72 73 ### Added 74 75 - Implemented HIP-540: Change or remove existing keys from a token 76 77 ## v2.38.1 78 79 ### Changed 80 81 - `AccountBalanceQuery`, `AccountInfoQuery`, and `ContractInfoQuery` get all the data from consensus nodes again 82 83 ## v2.38.0 84 85 ### Added 86 87 - `AccountBalanceQuery`, `AccountInfoQuery`, and `ContractInfoQuery` get part of the data from the Mirror Node REST API (HIP-367) 88 - Fungible Token Metadata Field (HIP-646) 89 - NFT Collection Token Metadata Field (HIP-765) 90 91 ### Fixed 92 93 - Raise an error if the transaction is not frozen while signing 94 - Undeprecate `AccountBalance.TokenDecimals`, `AccountInfo.TokenRelationships` 95 - Account alias for hollow account Mirror Node Queries 96 97 ### Deprecated 98 99 - `TokenRelationship.Symbol`, use `TokenInfo.Symbol` instead 100 101 ## v2.37.0 102 103 ### Added 104 105 - METADATA key and possibility to update NFT metadata (HIP-657) 106 - Fungible Token Metadata Field (HIP-646) 107 - NFT Collection Token Metadata Field (HIP-765) 108 - updated protobufs 109 110 ## v2.36.0 111 112 ### Added 113 114 - Implemented HIP-844 (Add signerNonce field) 115 116 ## v2.35.0 117 118 ### Fixed 119 120 - Implemented HIP-745 (Serialize transaction without freezing) 121 122 ## v2.34.1 123 124 ### Fixed 125 126 - Fixed bug for fetching nodes from Client. 127 128 ## v2.34.0 129 130 - Refactored structures `executable`, `transaction` & `query` to define common methods in one place and reduce the code repetition 131 132 ## v2.32.0 133 134 ### Added 135 136 - `PopulateAccount` to `AccountID` 137 138 ## v2.31.0 139 140 ### Added 141 142 - `MarshalJSON` to `TransactionResponse`, `TransactionReceipt`, `TransactionRecord` 143 - `IsApproved` boolean to `Transfer` 144 145 ## v2.30.0 146 147 ### Fixed 148 149 - Node/Managed node concurrency issues 150 - Serialization issues with `FileAppendTransaction`, `TokenCreateTransaction`, `TopicCreateTransaction`, `TopicMessageSubmitTransaction` 151 152 ## v2.29.0 153 154 ### Fixed 155 156 - SDK Panics if node account id not in the network list 157 - non-exhaustive switch statement errors for `AccountAllowanceApproveTransaction` and `AccountAllowanceDeleteTransaction` 158 159 ## v2.28.0 160 161 ### Added 162 163 - `PopulateAccount` to `AccountID` 164 - `PopulateContract` to `ContractID` 165 166 ### Fixed 167 168 - Data race in `TopicMessageQuery` 169 170 ## v2.27.0 171 172 ### Fixed 173 174 - `ContractCreateFlow` to work with larger contract's bytecode 175 176 ## v2.26.1 177 178 ### Added 179 180 - `ContractNonces` to `ContractFunctionResult` to support HIP-729 181 182 ## v2.26.0 183 184 ### Added 185 186 - `AddInt*BigInt` functions to `ContractFunctionParameters` for sending `big.int` 187 - `GetResult` function to `ContractFunctionResult` for parsing result to an interface 188 - `GetBigInt` function to `ContractFunctionResult` for parsing result to a `big.int` 189 190 ### Fixed 191 192 - DER and PEM formats for private and public keys 193 - Network concurrency issues 194 - Some `ContractFunctionParameters` were sent/received as wrong data/data type 195 196 ## v2.25.0 197 198 ### Added 199 200 - Added logging functionality to Client, Transaction and Query 201 202 ## v2.24.4 203 204 ### Added 205 206 - Option to create a client from config file without mirror network 207 - Finished LegderID implementation 208 209 ## v2.24.3 210 211 ### Added 212 213 - Comments on the rest of the functions 214 215 ## v2.24.2 216 217 ### Added 218 219 - Comments on `client` and all `query` and `transaction` types 220 221 ## v2.24.1 222 223 ### Fixed 224 225 - `TransactionID.String()` will now return the TransactionID string without trimming the leading zeroes 226 227 ## v2.24.0 228 229 ### Added 230 231 - Alias support in `AccountCreateTransaction` 232 - `CreateAccountWithAliasExample` 233 - `CreateAccountWithAliasAndReceiverSignatureRequiredExample` 234 235 ## v2.23.0 236 237 ### Added 238 239 - `CustomFractionalFee.SetAssessmentMethod()` 240 - `AccountAllowanceApproveTransaction.ApproveTokenNftAllowanceWithDelegatingSpender()` 241 - `PrivateKeyFromStringECDSA()` 242 - New mirror node endpoints, only 443 port is now supported `mainnet-public.mirrornode.hedera.com:443`,`testnet.mirrornode.hedera.com:443`, `previewnet.mirrornode.hedera.com:443` 243 244 ### Fixed 245 246 - Minimum query cost can now be less than 25 tinybars 247 - `TransactionFromBytes()` now correctly sets transactionValidDuration 248 249 ### Deprecated 250 251 - `PrivateKeyFromStringECSDA()` 252 253 ## v2.22.0 254 255 ### Added 256 257 - Support for HIP-583 258 - Example for HIP-583 `account_create_token_transfer` which autocreates an account by sending HBAR to an Etherum Account Address 259 - `Mnemonic.ToStandardEd25519PrivateKey` which uses the correct derivation path 260 - `Mnemonic.ToStandardECDSAsecp256k1PrivateKey` which uses the correct derivation path 261 262 ### Deprecated 263 264 - `Mnemonic.ToPrivateKey()` was using incorrect derivation path 265 - `PrivateKeyFromMnemonic()` was using incorrect derivation path 266 267 ## v2.21.0 268 269 ### Fixed 270 271 - Panic in multiple node account id locking 272 - Regenerating transaction id, when not expired 273 - Signs more than once per node/transaction 274 - Not retrying other nodes when there are multiple nodes are locked 275 - Panic when locking multiple nodes 276 - Panic when too many nodes are not healthy 277 - INVALID_NODE_ACCOUNT error 278 - Setting MaxAutomaticTokenAssociations on ContractUpdate even if not set 279 280 ## v2.20.0 281 282 ### Added 283 284 - `IsZero()` and `Equals()` in `AccountID` 285 - `GetSignedTransactionBodyBytes()` in `Transaction` 286 287 ## v2.19.0 288 289 ### Added 290 291 - `SetDefaultMaxQueryPayment` and `SetDefaultMaxTransactionFee` in `Client` 292 293 ### Fixed 294 295 - Schedule network recursive call 296 - Wrongly deprecated `SpenderID` field in `TokenNFTInfo` 297 298 ## v2.18.0 299 300 ### Added 301 302 - `CustomFee.AllCollectorsAreExempt` 303 304 ### Fixed 305 306 - Addressbook Query no logner panics 307 308 ## v2.17.7 309 310 ### Added 311 312 - Example for HIP-542 313 - Example for HIP-573 314 315 ### Fixed 316 317 - 10 seconds blocking on creating a `Client` 318 319 ## v2.17.6 320 321 ### Fixed 322 323 - `NewAccountBallanceQuery` to correctly return account balance 324 325 ## v2.17.5 326 327 ### Added 328 329 - Update documentation for `ContractFunction[Parameters|Result]` to show how to use large integer variants 330 - Implement `TransactionResponse.ValidateStatus` 331 332 ## v2.17.4 333 334 ### Fixed 335 336 - `*Transactions` now don't sign twice 337 338 ## v2.17.3 339 340 ### Added 341 342 - `AccountCreateTransaction.[Set|Get]Alias[Key|EvmAddress]()` 343 - `ContractCreateFlow.[Set|Get]MaxChunks()` 344 - Support for automatically updating networks 345 - `Client.[Set|Get]NetworkUpdatePeriod()` 346 - `Client` constructor supports `_ScheduleNetworkUpdate` to disable auto updates 347 - `task update` for manual address book updating 348 349 ## v2.17.2 350 351 ### Fixed 352 353 - Removed deprecated flags for wrongfully deprecated `Client.[Set|Get]LedgerID` 354 - Added `SetGrpcDeadline` to `EthereumTransaction` and `TokenUpdateTransaction` 355 - Deprecated `LiveHash.Duration` use `LiveHash.LiveHashDuration` 356 - Added missing `LiveHashQuery.[Set|Get]MaxRetry` 357 - Added missing `TopicInfoQuery.SetPaymentTransactionID` 358 359 ## v2.17.1 360 361 ### Deprecated 362 363 - `AccountBalance.[tokens|tokenDecimals]` use a mirror node query instead 364 - `AccountInfo.tokenRelationships` use a mirror node query instead 365 - `ContractInfo.tokenRelationships` use a mirror node query instead 366 - `TokenNftInfo.SpenderID` replaced by `TokenNftInfo.AllowanceSpenderAccountID` 367 368 ### Fixed 369 370 - `Token[Update|Create]Transaction.KycKey` 371 - `TokenCreateTransaction.FreezeDefaul` wasn't being set properly. 372 - Requests should retry on `PLATFORM_NOT_ACTIVE` 373 374 ## v2.17.0 375 376 ### Added 377 378 - `PrngThansaction` 379 - `TransactionRecord.PrngBytes` 380 - `TransactionRecord.PrngNumber` 381 - `task` runner support 382 383 ## Deprecated 384 385 - `ContractFunctionResult.ContractStateChanges` with no replacement. 386 387 ## v2.17.0-beta.1 388 389 ### Added 390 391 - `PrngThansaction` 392 - `TransactionRecord.PrngBytes` 393 - `TransactionRecord.PrngNumber` 394 395 ## Deprecated 396 397 - `ContractFunctionResult.ContractStateChanges` with no replacement. 398 399 ## v2.16.1 400 401 ### Added 402 403 - `StakingInfo.PendingHbarReward` 404 405 ## v2.16.0 406 407 ### Added 408 409 - `StakingInfo` 410 - `AccountCreateTransaction.[Set|Get]StakedAccountID` 411 - `AccountCreateTransaction.[Set|Get]StakedNodeID` 412 - `AccountCreateTransaction.[Set|Get]DeclineStakingReward` 413 - `AccountInfo.StakingInfo` 414 - `AccountUpdateTransaction.[Set|Get]StakedAccountID` 415 - `AccountUpdateTransaction.[Set|Get]StakedNodeID` 416 - `AccountUpdateTransaction.[Set|Get]DeclineStakingReward` 417 - `AccountUpdateTransaction.ClearStaked[AccountID|NodeID]` 418 - `ContractCreateTransaction.[Set|Get]StakedNodeAccountID` 419 - `ContractCreateTransaction.[Set|Get]StakedNodeID` 420 - `ContractCreateTransaction.[Set|Get]DeclineStakingReward` 421 - `ContractInfo.StakingInfo` 422 - `ContractUpdateTransaction.[Set|Get]StakedNodeAccountID` 423 - `ContractUpdateTransaction.[Set|Get]StakedNodeID` 424 - `ContractUpdateTransaction.[Set|Get]DeclineStakingReward` 425 - `ContractUpdateTransaction.ClearStaked[AccountID|NodeID]` 426 - `TransactionRecord.PaidStakingRewards` 427 - `ScheduleCreateTransaction.[Set|Get]ExpirationTime` 428 - `ScheduleCreateTransaction.[Set|Get]WaitForExpiry` 429 - Protobuf requests and responses will be logged, for `TRACE`, in hex. 430 431 ### Fixed 432 433 - `TopicMessageSubmitTransaction` empty `ChunkInfo` would always cause an error 434 435 ## v2.16.0-beta.1 436 437 ### Added 438 439 - `StakingInfo` 440 - `AccountCreateTransaction.[Set|Get]StakedNodeAccountID` 441 - `AccountCreateTransaction.[Set|Get]StakedNodeID` 442 - `AccountCreateTransaction.[Set|Get]DeclineStakingReward` 443 - `AccountInfo.StakingInfo` 444 - `AccountUpdateTransaction.[Set|Get]StakedNodeAccountID` 445 - `AccountUpdateTransaction.[Set|Get]StakedNodeID` 446 - `AccountUpdateTransaction.[Set|Get]DeclineStakingReward` 447 - `ContractCreateTransaction.[Set|Get]StakedNodeAccountID` 448 - `ContractCreateTransaction.[Set|Get]StakedNodeID` 449 - `ContractCreateTransaction.[Set|Get]DeclineStakingReward` 450 - `ContractInfo.StakingInfo` 451 - `ContractUpdateTransaction.[Set|Get]StakedNodeAccountID` 452 - `ContractUpdateTransaction.[Set|Get]StakedNodeID` 453 - `ContractUpdateTransaction.[Set|Get]DeclineStakingReward` 454 - `TransactionRecord.PaidStakingRewards` 455 - `ScheduleCreateTransaction.[Set|Get]ExpirationTime` 456 - `ScheduleCreateTransaction.[Set|Get]WaitForExpiry` 457 458 ## v2.15.0 459 460 ### Added 461 462 - `EthereumFlow` 463 - `EthereumTransactionData` 464 465 ### Fixed 466 467 - `Transaction.[From|To]Bytes` would ignore some variables 468 - Fixed naming for `Ethereum.SetCallDataFileID()` and `Ethereum.SetMaxGasAllowanceHbar()` to be consistent with other sdks. 469 470 # v2.14.0 471 472 ### Added 473 474 - `ContractCreateTransaction.[Get|Set]MaxAutomaticTokenAssociations()` 475 - `ContractCreateTransaction.[Get|Set]AutoRenewAccountId()` 476 - `ContractCreateTransaction.[Get|Set]Bytecode()` 477 - `ContractUpdateTransaction.[Get|Set]MaxAutomaticTokenAssociations()` 478 - `ContractUpdateTransaction.[Get|Set|clear]AutoRenewAccountId()` 479 - `ContractCreateFlow.[Get|Set]MaxAutomaticTokenAssociations()` 480 - `ContractCreateFlow.[Get|Set]AutoRenewAccountId()` 481 - `ContractInfo.AutoRenewAccountID` 482 - `ContractDeleteTransaction.[Get|Set]PermanentRemoval` 483 - `ContractCallQuery.[Get|Set]SenderID` 484 - `ScheduleCreateTransaction.[Get|Set]ExpirationTime` 485 - `ScheduleCreateTransaction.[Get|Set]WaitForExpiry` 486 - `ScheduleInfo.WaitForExpiry` 487 - `EthereumTransaction` 488 - `TransactionRecord.EthereumHash` 489 - `AccountInfo.EthereumNonce` 490 - `AccountID.AliasEvmAddress` 491 - `AccountID.AccountIDFromEvmAddress()` 492 - `TransactionResponse.Get[Record|Receipt]Query` 493 494 ## v2.14.0-beta.3 495 496 ### Fixed 497 498 - `FileUpdateTransaction` and `TopicMessageSubmitTransaction` duplicate transaction errors. 499 - `*Transaction.ToBytes()` now properly chunked transactions. 500 501 ## v2.14.0-beta.2 502 503 ### Fixed 504 505 - `*Query` payment signatures weren't getting updated after updating body with new random node. 506 507 # v2.14.0-beta.1 508 509 ### Added 510 511 - `ContractCreateTransaction.[Get|Set]MaxAutomaticTokenAssociations()` 512 - `ContractCreateTransaction.[Get|Set]AutoRenewAccountId()` 513 - `ContractCreateTransaction.[Get|Set]Bytecode()` 514 - `ContractUpdateTransaction.[Get|Set]MaxAutomaticTokenAssociations()` 515 - `ContractUpdateTransaction.[Get|Set|clear]AutoRenewAccountId()` 516 - `ContractCreateFlow.[Get|Set]MaxAutomaticTokenAssociations()` 517 - `ContractCreateFlow.[Get|Set]AutoRenewAccountId()` 518 - `ContractInfo.AutoRenewAccountID` 519 - `ContractDeleteTransaction.[Get|Set]PermanentRemoval` 520 - `ContractCallQuery.[Get|Set]SenderID` 521 - `ScheduleCreateTransaction.[Get|Set]ExpirationTime` 522 - `ScheduleCreateTransaction.[Get|Set]WaitForExpiry` 523 - `ScheduleInfo.WaitForExpiry` 524 - `EthereumTransaction` 525 - `TransactionRecord.EthereumHash` 526 - `AccountInfo.EthereumNonce` 527 - `AccountID.AliasEvmAddress` 528 - `AccountID.AccountIDFromEvmAddress()` 529 530 ## v2.13.4 531 532 ### Fixed 533 534 - `FileUpdateTransaction` and `TopicMessageSubmitTransaction` duplicate transaction errors. 535 - `*Transaction.ToBytes()` now properly chunked transactions. 536 537 ## v2.13.3 538 539 ### Fixed 540 541 - `*Query` payment signatures weren't getting updated after updating body with new random node. 542 543 ## v2.13.2 544 545 ### Added 546 547 - `*Query.GetMaxQueryPayment()` 548 - `*Query.GetQueryPayment()` 549 550 ### Fixed 551 552 - `*Query.GetPaymentTransactionID()` panic when not set.` 553 - Removed unneeded parameter in `AccountDeleteTransaction.GetTransferAccountID()`. 554 - `FileUpdateTransaction.GeFileMemo()` is now `FileUpdateTransaction.GetFileMemo()` 555 - `TopicMessageSubmitTransaction` failing to send all messages, instead was getting duplicated transaction error. 556 - `TopicMessageSubmitTransaction` would panic if no message was set. 557 558 ## v2.13.1 559 560 ### Added 561 562 - `TokenNftAllowance.DelegatingSpender` 563 - `AccountAllowanceApproveTransaction.AddAllTokenNftApprovalWithDelegatingSpender()` 564 - `AccountAllowanceApproveTransaction.ApproveTokenNftAllowanceAllSerialsWithDelegatingSpender()` 565 566 ## Deprecated 567 568 - `AccountAllowanceAdjustTransaction` with no replacement. 569 - `AccountAllowanceDeleteTransaction.DeleteAllTokenAllowances()` with no replacement. 570 - `AccountAllowanceDeleteTransaction.DeleteAllHbarAllowances()` with no replacement. 571 - `AccountInfo.[Hbar|Toke|Nft]Allowances`, with no replacement. 572 - `TransactionRecord.[Hbar|Toke|Nft]Allowances`, with no replacement. 573 574 ## v2.13.0 575 576 ### Added 577 578 - `AccountAllowanceDeleteTransaction` 579 - `ContractFunctionResult.[gas|hbarAmount|contractFunctionParametersBytes]` 580 - `AccountAllowanceExample` 581 - `ScheduleTransferExample` 582 583 ### Deprecated 584 585 - `AccountAllowanceAdjustTransaction.revokeTokenNftAllowance()` with no replacement. 586 - `AccountAllowanceApproveTransaction.AddHbarApproval()`, use `ApproveHbarAllowance()` instead. 587 - `AccountAllowanceApproveTransaction.ApproveTokenApproval()`, use `GrantTokenNftAllowance()` instead. 588 - `AccountAllowanceApproveTransaction.ApproveTokenNftApproval()`, use `ApproveTokenNftAllowance()` instead. 589 590 ### Fixed 591 592 - `*Transaction.GetTransactionID()` panic when not set. 593 - `Transaction.Freeze()` now properly sets NodeAccountIDs 594 - `*Query` payment transaction now properly contains the right NodeAccountIDs. 595 596 ## v2.13.0-beta.1 597 598 ### Added 599 600 - `AccountAllowanceDeleteTransaction` 601 - `ContractFunctionResult.[gas|hbarAmount|contractFunctionParametersBytes]` 602 - `AccountAllowanceExample` 603 - `ScheduleTransferExample` 604 605 ### Deprecated 606 607 - `AccountAllowanceAdjustTransaction.revokeTokenNftAllowance()` with no replacement. 608 - `AccountAllowanceApproveTransaction.AddHbarApproval()`, use `ApproveHbarAllowance()` instead. 609 - `AccountAllowanceApproveTransaction.ApproveTokenApproval()`, use `GrantTokenNftAllowance()` instead. 610 - `AccountAllowanceApproveTransaction.ApproveTokenNftApproval()`, use `ApproveTokenNftAllowance()` instead. 611 612 ## v2.12.0 613 614 ### Added 615 616 - `AccountInfoFlowVerify[Signature|Transaction]()` 617 - `Client.[Set|Get]NodeMinReadmitPeriod()` 618 - Support for using any node from the entire network upon execution 619 if node account IDs have no been locked for the request. 620 - Support for all integer widths for `ContractFunction[Result|Selector|Params]` 621 622 ### Fixed 623 624 - Ledger ID checksums 625 - `TransactionFromBytes()` should validate all the transaction bodies are the same 626 627 ### Changed 628 629 - Network behavior to follow a more standard approach (remove the sorting we 630 used to do). 631 632 ## v2.12.0-beta.1 633 634 ### Added 635 636 - `AccountInfoFlowVerify[Signature|Transaction]()` 637 - `Client.[Set|Get]NodeMinReadmitPeriod()` 638 - Support for using any node from the entire network upon execution 639 if node account IDs have no been locked for the request. 640 - Support for all integer widths for `ContractFunction[Result|Selector|Params]` 641 642 ### Fixed 643 644 - Ledger ID checksums 645 - `TransactionFromBytes()` should validate all the transaction bodies are the same 646 647 ### Changed 648 649 - Network behavior to follow a more standard approach (remove the sorting we 650 used to do). 651 652 ## v2.11.0 653 654 ### Added 655 656 - `ContractCreateFlow` 657 - `Query.[Set|Get]PaymentTransactionID` 658 - Verbose logging using zerolog 659 - `*[Transaction|Query].[Set|Get]GrpcDeadline()` 660 - `TransactionRecord.[hbar|Token|TokenNft]AllowanceAdjustments` 661 - `TransferTransaction.AddApproved[Hbar|Token|Nft]Transfer()` 662 - `AccountAllowanceApproveTransaction.Approve[Hbar|Token|TokenNft]Allowance()` 663 - `AccountAllowanceAdjustTransaction.[Grant|Revoke][Hbar|Token|TokenNft]Allowance()` 664 - `AccountAllowanceAdjustTransaction.[Grant|Revoke]TokenNftAllowanceAllSerials()` 665 666 ### Fixed 667 668 - `HbarAllowance.OwnerAccountID`, wasn't being set. 669 - Min/max backoff for nodes should start at 8s to 60s 670 - The current backoff for nodes should be used when sorting inside of network 671 meaning nodes with a smaller current backoff will be prioritized 672 - `TopicMessageQuery` start time should have a default 673 674 ### Deprecated 675 676 - `AccountUpdateTransaction.[Set|Get]AliasKey` 677 678 ### Removed 679 680 - `Account[Approve|Adjust]AllowanceTransaction.Add[Hbar|Token|TokenNft]AllowanceWithOwner()` 681 682 ## v2.11.0-beta.1 683 684 ### Added 685 686 - `ContractCreateFlow` 687 - `Account[Approve|Adjust]AllowanceTransaction.add[Hbar|Token|TokenNft]AllowanceWithOwner()` 688 - `Query.[Set|Get]PaymentTransactionID` 689 - Verbose logging using zerolog 690 - `*[Transaction|Query].[Set|Get]GrpcDeadline()` 691 692 ### Fixed 693 694 - `HbarAllowance.OwnerAccountID`, wasn't being set. 695 - Min/max backoff for nodes should start at 8s to 60s 696 - The current backoff for nodes should be used when sorting inside of network 697 meaning nodes with a smaller current backoff will be prioritized 698 699 ### Deprecated 700 701 - `AccountUpdateTransaction.[Set|Get]AliasKey` 702 703 ## v2.10.0 704 705 ### Added 706 707 - `owner` field to `*Allowance`. 708 - Added free `AddressBookQuery`. 709 710 ### Fixed 711 712 - Changed mirror node port to correct one, 443. 713 - Occasional ECDSA invalid length error. 714 - ContractIDFromString() now sets EvmAddress correctly to nil, when evm address is not detected 715 716 ## v2.10.0-beta.1 717 718 ### Added 719 720 - `owner` field to `*Allowance`. 721 - Added free `AddressBookQuery`. 722 723 ### Fixed 724 725 - Changed mirror node port to correct one, 443. 726 727 ## v2.9.0 728 729 ### Added 730 731 - CREATE2 Solidity addresses can now be represented by a `ContractId` with `EvmAddress` set. 732 - `ContractId.FromEvmAddress()` 733 - `ContractFunctionResult.StateChanges` 734 - `ContractFunctionResult.EvmAddress` 735 - `ContractStateChange` 736 - `StorageChange` 737 - New response codes. 738 - `ChunkedTransaction.[Set|Get]ChunkSize()`, and changed default chunk size for `FileAppendTransaction` to 2048. 739 - `AccountAllowance[Adjust|Approve]Transaction` 740 - `AccountInfo.[hbar|token|tokenNft]Allowances` 741 - `[Hbar|Token|TokenNft]Allowance` 742 - `[Hbar|Token|TokenNft]Allowance` 743 - `TransferTransaction.set[Hbar|Token|TokenNft]TransferApproval()` 744 745 ### Fixed 746 747 - Requests not cycling though nodes. 748 - Free queries not attempting to retry on different nodes. 749 750 ### Deprecated 751 752 - `ContractId.FromSolidityAddress()`, use `ContractId.FromEvmAddress()` instead. 753 - `ContractFunctionResult.CreatedContractIDs`. 754 755 ## v2.9.0-beta.2 756 757 ### Added 758 759 - CREATE2 Solidity addresses can now be represented by a `ContractId` with `EvmAddress` set. 760 - `ContractId.FromEvmAddress()` 761 - `ContractFunctionResult.StateChanges` 762 - `ContractFunctionResult.EvmAddress` 763 - `ContractStateChange` 764 - `StorageChange` 765 - New response codes. 766 - `ChunkedTransaction.[Set|Get]ChunkSize()`, and changed default chunk size for `FileAppendTransaction` to 2048. 767 - `AccountAllowance[Adjust|Approve]Transaction` 768 - `AccountInfo.[hbar|token|tokenNft]Allowances` 769 - `[Hbar|Token|TokenNft]Allowance` 770 - `[Hbar|Token|TokenNft]Allowance` 771 - `TransferTransaction.set[Hbar|Token|TokenNft]TransferApproval()` 772 773 ### Fixed 774 775 - Requests not cycling though nodes. 776 - Free queries not attempting to retry on different nodes. 777 778 ### Deprecated 779 780 - `ContractId.FromSolidityAddress()`, use `ContractId.FromEvmAddress()` instead. 781 - `ContractFunctionResult.CreatedContractIDs`. 782 783 ## v2.9.0-beta.1 784 785 ### Added 786 787 - CREATE2 Solidity addresses can now be represented by a `ContractId` with `EvmAddress` set. 788 - `ContractId.FromEvmAddress()` 789 - `ContractFunctionResult.StateChanges` 790 - `ContractFunctionResult.EvmAddress` 791 - `ContractStateChange` 792 - `StorageChange` 793 - New response codes. 794 - `ChunkedTransaction.[Set|Get]ChunkSize()`, and changed default chunk size for `FileAppendTransaction` to 2048. 795 - `AccountAllowance[Adjust|Approve]Transaction` 796 - `AccountInfo.[hbar|token|tokenNft]Allowances` 797 - `[Hbar|Token|TokenNft]Allowance` 798 - `[Hbar|Token|TokenNft]Allowance` 799 - `TransferTransaction.set[Hbar|Token|TokenNft]TransferApproval()` 800 801 ### Fixed 802 803 - Requests not cycling though nodes. 804 - Free queries not attempting to retry on different nodes. 805 806 ### Deprecated 807 808 - `ContractId.FromSolidityAddress()`, use `ContractId.FromEvmAddress()` instead. 809 - `ContractFunctionResult.CreatedContractIDs`. 810 811 ## v2.8.0 812 813 ### Added 814 815 - Support for regenerating transaction IDs on demand if a request 816 responses with `TRANSACITON_EXPIRED` 817 818 ## v2.8.0-beta.1 819 820 ### Added 821 822 - Support for regenerating transaction IDs on demand if a request 823 responses with `TRANSACITON_EXPIRED` 824 825 ## v2.7.0 826 827 ### Added 828 829 - `AccountId.AliasKey`, including `AccountId.[From]String()` support. 830 - `[PublicKey|PrivateKey].ToAccountId()`. 831 - `AliasKey` fields in `TransactionRecord` and `AccountInfo`. 832 - `Nonce` field in `TransactionId`, including `TransactionId.[set|get]Nonce()` 833 - `Children` fields in `TransactionRecord` and `TransactionReceipt` 834 - `Duplicates` field in `TransactionReceipt` 835 - `[TransactionReceiptQuery|TransactionRecordQuery].[Set|Get]IncludeChildren()` 836 - `TransactionReceiptQuery.[Set|Get]IncludeDuplicates()` 837 - New response codes. 838 - Support for ECDSA SecP256K1 keys. 839 - `PrivateKeyGenerate[ED25519|ECDSA]()` 840 - `[Private|Public]KeyFrom[Bytes|String][DER|ED25519|ECDSA]()` 841 - `[Private|Public]Key.[Bytes|String][Raw|DER]()` 842 - `DelegateContractId` 843 - `*Id.[from|to]SolidityAddress()` 844 845 ### Deprecated 846 847 - `PrivateKeyGenerate()`, use `PrivateKeyGenerate[ED25519|ECDSA]()` instead. 848 849 ## v2.7.0-beta.1 850 851 ### Added 852 853 - `AccountId.AliasKey`, including `AccountId.[From]String()` support. 854 - `[PublicKey|PrivateKey].ToAccountId()`. 855 - `AliasKey` fields in `TransactionRecord` and `AccountInfo`. 856 - `Nonce` field in `TransactionId`, including `TransactionId.[set|get]Nonce()` 857 - `Children` fields in `TransactionRecord` and `TransactionReceipt` 858 - `Duplicates` field in `TransactionReceipt` 859 - `[TransactionReceiptQuery|TransactionRecordQuery].[Set|Get]IncludeChildren()` 860 - `TransactionReceiptQuery.[Set|Get]IncludeDuplicates()` 861 - New response codes. 862 - Support for ECDSA SecP256K1 keys. 863 - `PrivateKeyGenerate[ED25519|ECDSA]()` 864 - `[Private|Public]KeyFrom[Bytes|String][DER|ED25519|ECDSA]()` 865 - `[Private|Public]Key.[Bytes|String][Raw|DER]()` 866 867 ### Deprecated 868 869 - `PrivateKeyGenerate()`, use `PrivateKeyGenerate[ED25519|ECDSA]()` instead. 870 871 ## v2.6.0 872 873 ### Added 874 875 - New smart contract response codes 876 877 ### Deprecated 878 879 - `ContractCallQuery.[Set|Get]MaxResultSize()` 880 - `ContractUpdateTransaction.[Set|Get]ByteCodeFileID()` 881 882 ## v2.6.0-beta.1 883 884 ### Added 885 886 - New smart contract response codes 887 888 ### Deprecated 889 890 - `ContractCallQuery.[Set|Get]MaxResultSize()` 891 - `ContractUpdateTransaction.[Set|Get]ByteCodeFileID()` 892 893 ## v2.5.1 894 895 ### Fixed 896 897 - `TransferTransaction.GetTokenTransfers()` 898 - `TransferTransaction.AddTokenTransfer()` 899 - Persistent error not being handled correctly 900 - `TransactionReceiptQuery` should return even on a bad status codes. 901 Only \*.GetReceipt()`should error on non`SUCCESS` status codes 902 903 ## v2.5.1-beta.1 904 905 ### Changed 906 907 - Refactored and updated node account ID handling to err whenever a node account ID of 0.0.0 is being set 908 909 ## v2.5.0-beta.1 910 911 ### Deprecated 912 913 - `ContractCallQuery.[Set|Get]MaxResultSize()` 914 - `ContractUpdateTransaction.[Set|Get]ByteCodeFileID()` 915 916 ## v2.5.0 917 918 ### Fixed 919 920 - `TransactionReceiptQuery` should fill out `TransactionReceipt` even when a bad `Status` is returned 921 922 ## v2.4.1 923 924 ### Fixed 925 926 - `TransferTransaction` should serialize the transfers list deterministically 927 928 ## v2.4.0 929 930 ### Added 931 932 - Support for toggling TLS for both mirror network and services network 933 934 ## v2.3.0 935 936 ### Added 937 938 - `FreezeType` 939 - `FreezeTransaction.[get|set]FreezeType()` 940 941 ## v2.3.0-beta 1 942 943 ### Added 944 945 - Support for HIP-24 (token pausing) 946 - `TokenInfo.PauseKey` 947 - `TokenInfo.PauseStatus` 948 - `TokenCreateTransaction.PauseKey` 949 - `TokenUpdateTransaction.PauseKey` 950 - `TokenPauseTransaction` 951 - `TokenUnpauseTransaction` 952 953 ## v2.2.0 954 955 ### Added 956 957 - Support for automatic token associations 958 - `TransactionRecord.AutomaticTokenAssociations` 959 - `AccountInfo.MaxAutomaticTokenAssociations` 960 - `AccountCreateTransaction.MaxAutomaticTokenAssociations` 961 - `AccountUpdateTransaction.MaxAutomaticTokenAssociations` 962 - `TokenRelationship.AutomaticAssociation` 963 - `TokenAssociation` 964 - `Transaction*` helper methods - should make it easier to use the result of `TransactionFromBytes()` 965 966 ### Fixed 967 968 - TLS now properly confirms certificate hashes 969 - `TokenUpdateTransaction.GetExpirationTime()` returns the correct time 970 - Several `*.Get*()` methods required a parameter similiar to `*.Set*()` 971 This has been changed completely instead of deprecated because we treated this as hard bug 972 - Several `nil` dereference issues related to to/from protobuf conversions 973 974 ## v2.2.0-beta.1 975 976 ### Added 977 978 - Support for automatic token associations 979 - `TransactionRecord.AutomaticTokenAssociations` 980 - `AccountInfo.MaxAutomaticTokenAssociations` 981 - `AccountCreateTransaction.MaxAutomaticTokenAssociations` 982 - `AccountUpdateTransaction.MaxAutomaticTokenAssociations` 983 - `TokenRelationship.AutomaticAssociation` 984 - `TokenAssociation` 985 986 ## v2.1.16 987 988 ### Added 989 990 - Support for TLS 991 - Setters which follow the builder pattern to `Custom*Fee` 992 - `Client.[min|max]Backoff()` support 993 994 ### Deprecated 995 996 - `TokenNftInfoQuery.ByNftID()` - use `TokenNftInfoQuery.SetNftID()` instead 997 - `TokenNftInfoQuery.[By|Set|Get]AccountId()` with no replacement 998 - `TokenNftInfoQuery.[By|Set|Get]TokenId()` with no replacement 999 - `TokenNftInfoQuery.[Set|Get]Start()` with no replacement 1000 - `TokenNftInfoQuery.[Set|Get]End()` with no replacement 1001 1002 ## v2.1.15 1003 1004 ### Fixed 1005 1006 - `AssessedCustomFee.PayerAccountIDs` was misspelled 1007 1008 ## v2.1.14 1009 1010 ### Added 1011 1012 - Support for `CustomRoyaltyFee` 1013 - Support for `AssessedCustomFee.payerAccountIds` 1014 1015 ### Fixed 1016 1017 - `nil` dereference issues within `*.validateNetworkIDs()` 1018 1019 ## v2.1.13 1020 1021 ### Added 1022 1023 - Implement `Client.pingAll()` 1024 - Implement `Client.SetAutoChecksumValidation()` which validates all entity ID checksums on requests before executing 1025 1026 ### Fixed 1027 1028 - nil dereference errors when decoding invalid PEM files 1029 1030 ## v2.1.12 1031 1032 ### Added 1033 1034 - Updated `Status` with new response codes 1035 - Support for `Hbar.[from|to]String()` to be reversible 1036 1037 ## v2.1.11 1038 1039 ### Removed 1040 1041 - `*.AddCustomFee()` use `*.SetCustomFees()` instead 1042 1043 ### Changes 1044 1045 - Update `Status` with new codes 1046 1047 ### Fixes 1048 1049 - `PrivateKey.LegacyDerive()` should correctly handle indicies 1050 1051 ## v2.1.11-beta.1 1052 1053 ### Added 1054 1055 - Support for NFTS 1056 - Creating NFT tokens 1057 - Minting NFTs 1058 - Burning NFTs 1059 - Transfering NFTs 1060 - Wiping NFTs 1061 - Query NFT information 1062 - Support for Custom Fees on tokens: 1063 - Setting custom fees on a token 1064 - Updating custom fees on an existing token 1065 1066 ## v2.1.10 1067 1068 ### Added 1069 1070 - All requests should retry on gRPC error `INTERNAL` if the message contains `RST_STREAM` 1071 - `AccountBalance.Tokens` as a replacement for `AccountBalance.Token` 1072 - `AccountBalance.TokenDecimals` 1073 - All transactions will now `sign-on-demand` which should result in improved performance 1074 1075 ### Fixed 1076 1077 - `TopicMessageQuery` not calling `Unsubscribe` when a stream is cancelled 1078 - `TopicMessageQuery` should add 1 nanosecond to the `StartTime` of the last received message 1079 - `TopicMessageQuery` allocate space for entire chunked message ahead of time 1080 for retries 1081 - `TokenDeleteTransaction.SetTokenID()` incorrectly setting `tokenID` resulting in `GetTokenID()` always returning an empty `TokenID` 1082 - `TransferTransaction.GetTokenTransfers()` incorrectly setting an empty value 1083 1084 ### Deprecated 1085 1086 - `AccountBalance.Token` use `AccountBalance.Tokens` instead 1087 1088 ## v2.1.9 1089 1090 ### Fixed 1091 1092 - `Client.SetMirroNetwork()` producing a nil pointer exception on next use of a mirror network 1093 - Mirror node TLS no longer producing nil pointer exception 1094 1095 ## v2.1.8 1096 1097 ### Added 1098 1099 - Support TLS for mirror node connections. 1100 - Support for entity ID checksums which are validated whenever a request begins execution. 1101 This includes the IDs within the request, the account ID within the transaction ID, and 1102 query responses will contain entity IDs with a checksum for the network the query was executed on. 1103 1104 ### Fixed 1105 1106 - `TransactionTransaction.AddHbarTransfer()` incorrectly determine total transfer per account ID 1107 1108 ## v2.1.7 1109 1110 ### Fixed 1111 1112 - `TopicMessageQuery.MaxBackoff` was not being used at all 1113 - `TopicMessageQuery.Limit` was being incorrectly update with full `TopicMessages` rather than per chunk 1114 - `TopicMessageQuery.StartTime` was not being updated each time a message was received 1115 - `TopicMessageQuery.CompletionHandler` was be called at incorrect times 1116 - Removed the use of locks and `sync.Map` within `TopicMessageQuery` as it is unncessary 1117 - Added default logging to `ErrorHandler` and `CompletionHandler` 1118 1119 ## v2.1.6 1120 1121 - Support for `MaxBackoff`, `MaxAttempts`, `RetryHandler`, and `CompletionHandler` in `TopicMessageQuery` 1122 - Default logging behavior to `TopicMessageQuery` if an error handler or completion handler was not set 1123 1124 ### Fixed 1125 1126 - Renamed `ScheduleInfo.Signers` -> `ScheduleInfo.Signatories` 1127 - `TopicMessageQuery` retry handling; this should retry on more gRPC errors 1128 - `TopicMessageQuery` max retry timeout; before this would could wait up to 4m with no feedback 1129 - `durationFromProtobuf()` incorrectly calculation duration 1130 - `*Token.GetAutoRenewPeriod()` and `*Token.GetExpirationTime()` nil dereference 1131 - `Hbar.As()` using multiplication instead of division, and should return a `float64` 1132 1133 ### Added 1134 1135 - Exposed `Hbar.Negated()` 1136 1137 ## v2.1.5 1138 1139 ### 1140 1141 - Scheduled transaction support: `ScheduleCreateTransaction`, `ScheduleDeleteTransaction`, and `ScheduleSignTransaction` 1142 - Non-Constant Time Comparison of HMACs [NCC-E001154-006] 1143 - Decreased `CHUNK_SIZE` 4096->1024 and increased default max chunks 10->20 1144 1145 ## v2.1.5-beta.5 1146 1147 ### Fixed 1148 1149 - Non-Constant Time Comparison of HMACs [NCC-E001154-006] 1150 - Decreased `CHUNK_SIZE` 4096->1024 and increased default max chunks 10->20 1151 - Renamed `ScheduleInfo.GetTransaction()` -> `ScheduleInfo.getScheduledTransaction()` 1152 1153 ## v2.1.5-beta.4 1154 1155 ### Fixed 1156 1157 - `Transaction.Schedule()` should error when scheduling un-scheduable tranasctions 1158 1159 ### Removed 1160 1161 - `nonce` from `TransactionID` 1162 - `ScheduleTransactionBody` - should not be part of the public API 1163 1164 ## v2.1.5-beta.3 1165 1166 ### Fixed 1167 1168 - `Transaction[Receipt|Record]Query` should not error for status `IDENTICAL_SCHEDULE_ALREADY_CREATED` 1169 because the other fields on the receipt are present with that status. 1170 - `ErrHederaReceiptStatus` should print `exception receipt status ...` instead of 1171 `exception precheck status ...` 1172 1173 ## v2.1.5-beta.2 1174 1175 ### Fixed 1176 1177 - Executiong should retry on status `PLATFORM_TRANSACTION_NOT_CREATED` 1178 - Error handling throughout the SDK 1179 - A precheck error shoudl be returned when the exceptional status is in the header 1180 - A receipt error should be returned when the exceptional status is in the receipt 1181 - `TransactionRecordQuery` should retry on node precheck code `OK` only if we're not 1182 getting cost of query. 1183 - `Transaction[Receipt|Record]Query` should retry on both `RECEIPT_NOT_FOUND` and 1184 `RECORD_NOT_FOUND` status codes when node precheck code is `OK` 1185 1186 ## v2.1.5-beta.1 1187 1188 ### Fixed 1189 1190 - Updated scheduled transaction to use new HAPI porotubfs 1191 1192 ### Removed 1193 1194 - `ScheduleCreateTransaction.AddScheduledSignature()` 1195 - `ScheduleCreateTransaction.GetScheduledSignatures()` 1196 - `ScheduleSignTransaction.addScheduledSignature()` 1197 - `ScheduleSignTransaction.GetScheduledSignatures()` 1198 1199 ## v2.x 1200 1201 ### Added 1202 1203 - Support for scheduled transactions. 1204 - `ScheduleCreateTransaction` - Create a new scheduled transaction 1205 - `ScheduleSignTransaction` - Sign an existing scheduled transaction on the network 1206 - `ScheduleDeleteTransaction` - Delete a scheduled transaction 1207 - `ScheduleInfoQuery` - Query the info including `bodyBytes` of a scheduled transaction 1208 - `ScheduleId` 1209 - Support for scheduled and nonce in `TransactionId` 1210 - `TransactionIdWithNonce()` - Supports creating transaction ID with random bytes. 1211 - `TransactionId.[Set|Get]Scheduled()` - Supports scheduled transaction IDs. 1212 - `TransactionIdWithValidStart()` 1213 1214 ### Fixed 1215 1216 - Updated protobufs [#120](https://github.com/hashgraph/hedera-sdk-go/issues/120) 1217 1218 ### Deprecate 1219 1220 - `NewTransactionId()` - Use `TransactionIdWithValidStart()` instead. 1221 1222 ## v2.0.0 1223 1224 ### Changes 1225 1226 - All requests support getter methods as well as setters. 1227 - All requests support multiple node account IDs being set. 1228 - `TransactionFromBytes()` supports multiple node account IDs and existing 1229 signatures. 1230 - All requests support a max retry count using `SetMaxRetry()`