Features
- Upgrade EVM to Shanghai #5964
- EVM version update and optimizations #5962
- Turn on the Shanghai version of the EVM in previewnet #6212
- Update hedera-protobufs-java version to 0.38.10 #6579
- Add PCLI command to sign account balance files #6264
Minor Features
- Update FileSignTool to support compressed rcd file with extension "rcd.gz" #6007
- Extend software version to use configuration #6519 #6519
- write human readable state address book during state save #6057
- misc startup improvements #5790
- Add signing requirements for transfer of NFT with fallback royalty fee #5997
- Change the file name for preconsensus event stream files. #6000
- Enable default services compression properties #6040
- More robust state dumps #5963
- Make accounts blocklisting feature flag disabled by default #6069
- Turn on the contract actions sidecar in mainnet and testnet #5687
- Parallel bucket reads in HalfDiskHashMap.endWriting() #5993
- update log rollover configuration #6086
- if no state is loaded, always use config address book. #6079
- Add some ascii art to Hedera.java #6270
- Update
StakingInfo.weight
midnight UTC #6231 - Create Entity Map Warmer For Performance #6223
- Introduced MappedConfigSource #6105
- Debuggable State Reference Counts #6142
- pces span heuristic #6222
- AddressBook.forceUseOfAddressBook default setting #6334
- Add feature flag for state ref count debug feature. #6404
- Extend software version to use configuration #6519
Bug Fixes
- Implement HRC facade implementation of associate/dissociate functions #6053
- Distinguish auto-approvals in synthetic CryptoTransfer transfer lists #6290
- Bump JRS spec
0.0.X
ids to0.0.(X+300)
to account for EVM blocklist accounts #6039 - Decrement entity numbers (299 not 300 blocklist accounts) #6048
- HTS precompile clears memo #6033
- fix address book init on software downgrade #5940
- Omit auto-renew id if unused in synth
ContractCreateTransactionBody
#6111 - Fix angry log message when state metadata doesn't record any state signatures #6179
- Include ownerId in synthetic child createApproveAllowanceForAllNFT txn #6177
- Ensure complete record files and sidecars are written during event stream recovery #6202
- SigningTool defined as app #6215
- Call getNumberOfChildren() less in iterator. #6279
- Don't require signing keys when doing event stream recovery. #6285
- Only clear memo in
TokenUpdateLogic
if client code can signal unset vs empty #6322 - AddressBookInitializer skip validating state loaded addressbook #6481
- Only allow positive amounts for transferToken function #6573
- Remove zero stake check in submission #6604
Documentation
Test Improvements
- Fix flaky preconsensus event stream test #5984
- automating address book initialization tests #5899
- Assert EVM is set correctly in contract create #5797
- Added test for autoCreate with transfer to Long Zero Address #5695
- Add more hollow finalization tests #5918
- Add fuzzing tests for CryptoTransfer-to-alias, CryptoTransfer-to-EVM-address covering auto/lazy creates and transfers to existing accounts #4943
- Config API use null annotations and checks #5814
- Fix AddressBookTestingToolState errors for test scenarios #6182
- Add new test workflow #6287
- Add addressBook test panel #6289
- Add tests for gas calculation utility functions #6551
Codebase Improvements
- Bucket.findEntryOffset() can reduce calls to getKeySize() [#5949](#5949)
- Use PBJ with services [#4856](#4856)
- transaction metadata becomes pre handle results #5958
- Create a
VirtualMap
benchmark for remove operations #5966 - query workflow improvements #5971
- Implement FreezeService preHandle #5988
- Remove SessionContext #5974
- Revert to
v0.35.3
ContractKey.hashCode()
#6012 - FileSignTool moved to new module #5972
- Changed FeeObject to a record #5978
- 5910: VirtualKey doesn't need to be comparable #6014
- Implement
TokenPause
andTokenUnpause
Handlers #5960 - Change HAPI Jar #6066, #6098
- Throw PreCheckException instead of setting status in PreHandleContext. #6063
- query workflow improvements part2 #6080
- Set the ledger ID for preproduction environments #6087
- Implement Token Grant KYC Handle #5911
- renamed
stake
toweight
throughout the platform #6099 - Move to PBJ Account #6103
- Enable writing pcli plugins in
hedera-services
and provide an example plugin #6134 - Use correct path when loading state. #6181
- Merge relevant work from
replay-develop
#6102 - Make readable stores available to all services #6210
- Lifecycle and Mutable interfaces & functionality moved to base module #5822
- Config Provider for Services #5996
- Cross-service stores (TokenService part) #6230
- Migrated ConsensusService to new design #6239
- Migrated AdminService to new design #6238
- Dagger module for token service #6249
- Migrated FileService to new design #6240
- Migrated NetworkService to new design #6241
- Move noop metrics. #6251
- Migrated SmartContractService to new design #6244
- Migrated UtilService to new design #6245
- consensus service & admin service use new DI pattern #6260
- AppTestBase use simple config #6275
- ConfigConverter and ConfigSource implementations for the service layer #6107
- Migrated ScheduleService to new design #6243
- query workflow improvements part3 #6108
- Finalize cross service stores #6246
- Implement token revoke KYC handle #6140
- update Platform SDK CI/CD release pipelines to support the integrated repository #6315
- Move (some) signatures and decoders of versioned ABIs to a dedicated location #6569
Contributors
We'd like to thank all the contributors who worked on this release!
@agadzhalov
@alittley
@artemananiev
@beeradb
@cody-littley
@cweagans
@david-bakin-sl
@dimitar-dinev
@edward-swirldslabs
@hendrikebbers
@imalygin
@IvanKavaldzhiev
@iwsimon
@JeffreyDallas
@jsync-swirlds
@kimbor
@lpetrovic05
@lukelee-sl
@mhess-swl
@MiroslavGatsanoga
@mustafauzunn
@nathanklick
@Neeharika-Sompalli
@netopyr
@OlegMazurov
@poulok
@povolev15
@qnswirlds
@randered
@rbair23
@shemnon
@stoqnkpL
@stoyan-lime
@tannerjfco
@tdermendzhievv
@timo0
@tinker-michaelj