feat: Mirror Node Contract Queries #1188
Draft
+722
−22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
A new
MirrorNodeContractQuery
class has been introduced to support EVM gas estimation and simulation. This query class provides two distinct types of queries:MirrorNodeContractCallQuery
– Executes a contract call and returns the result, simulating the execution of the contract.MirrorNodeContractEstimateGasQuery
– Estimates the gas usage for a contract call, allowing developers to understand the cost of executing a transaction.The inputs for these queries match those of
ContractExecuteTransaction
, making it easy for developers to calculate the cost of a follow-up transaction.The
MirrorNodeContractQuery
issues an HTTP request to theapi/v1/contracts/call
endpoint of the Mirror Node Web3 module, which supports both gas estimation and transient simulation of state-changing transactions. This enables accurate cost predictions and helps developers optimize their contract interactions before executing them on the network.Related issue(s):
Fixes #1167
Notes for reviewer:
Checklist