v0.50.0 #3290
steven-sheehy
started this conversation in
Releases
v0.50.0
#3290
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This release adds support for three new improvement proposals: HIP-260 Smart Contract Traceability, HIP-329 CREATE2 Opcode, and HIP-336 Allowance APIs. It also updates the REST API to reflect the latest phases of HIP-226 and HIP-227 and updates the Rosetta API for HIP-31.
HIP-260 describes a need for improving the traceability of smart contracts by providing a verifiable trail of contract state changes in the transaction record. The mirror node can now store these state changes and expose them via the contract results REST API to show the values read and written for each slot. This information was added to both
/api/v1/contracts/results/{transactionId}
and/api/v1/contracts/{id}/results/{timestamp}
. Below is an example, with other fields omitted for brevity:HIP-329 adds support for EIP-1014 generated contract addresses via the CREATE2 opcode. As part of this, a new
evm_address
is added to the transaction record that will be present for contract create transactions. Additionally, thisevm_address
can be populated in anyContractID
that appears in the transaction body. The mirror node was updated to be able to map thisevm_address
to its corresponding contract number and to expose this property on the contracts REST API. We also store full contract information for child contracts since they now appear as separate internal transactions in the record stream, filling a long-standing gap in missing smart contract data.HIP-336 allowance functionality allows an account owner to delegate another account to spend hbars or tokens on his or her behalf. This feature provides an implementation of ERC20, IERC20, and ERC721 on the Hedera network. The mirror node was updated to support these new transaction types and store the absolute or relative crypto, fungible or non-fungible allowances. In a later release we will expose this information via a REST API as detailed in the design document.
Multiple new fields were added to the contract REST APIs as outlined in HIP-226 and HIP-227. The fields
bloom
,result
, andstatus
were added to the contract results API response.result
andstatus
show similar information with the former being the HAPI response enum while the latter returning0x1
or0x0
to show if the transaction was successful or not, as is common in web3 APIs. We also addedbloom
to the contract logs API response. Finally, we now return a partial response for contract calls without a result.The importer component added a new
hedera.mirror.importer.parser.record.entity.persist.topics
property to control persistence of topic messages. This can be set to false for mirror node operators if topic message data is not being used. On mainnet alone, this data currently takes up to 2TB worth of storage.The Monitor component gained support for parallel node validation to improve startup performance. Now all validation is done in a background thread, adding and removing nodes as necessary while the publisher thread continues publishing transactions without any interruptions. This re-work also fixed issues with subscription halting during node validation and taking too long to validate a down node.
Rosetta saw a few important improvements including adding support for HIP-31 expected token decimals. The Rosetta unified Docker image saw functionality added to automatically restore the database using a database snapshot on initial startup.
Breaking Changes
As part of HIP-329 CREATE2, we renamed the existing
solidity_address
in the contract REST API toevm_address
. This new name accurately reflects the naming in the HIP and protobuf and avoids tying the address to Solidity when Hedera supports more than just Solidity contracts.Enhancements
Bug Fixes
Dependency Upgrades
@godaddy
/terminus from 4.10.1 to 4.10.2 in /hedera-mirror-rest #3199Contributors
We'd like to thank all the contributors who worked on this release!
This discussion was created from the release v0.50.0.
Beta Was this translation helpful? Give feedback.
All reactions