estimateGas
Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. The transaction will not be added to the blockchain. Note that the estimate may be significantly more than the amount of gas actually used by the transaction, for a variety of reasons including EVM mechanics and node performance.
Parameters
See jumbo_call
parameters, expect that all properties are optional. If no gas limit is specified geth uses the block gas limit from the pending block as an upper bound. As a result the returned estimate might not be enough to executed the call/transaction when the amount of gas is higher than the pending block gas limit.
Returns
QUANTITY
the amount of gas used.
Requests
- C#
- cURL
- HTTP
- Java
- NodeJs
- Python
- Javascript
- Go
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://testnode.jumbochain.org");
var content = new StringContent("{\n\t\"jsonrpc\":\"2.0\",\n\t\"method\":\"jumbo_estimateGas\",\n\t\"params\":[\n\t],\n\t\"id\":1\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
curl --location 'https://testnode.jumbochain.org' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"method":"jumbo_estimateGas",
"params":[
],
"id":1
}'
POST / HTTP/1.1
Host: testnode.jumbochain.org
Content-Type: application/json
Content-Length: 76
{
"jsonrpc":"2.0",
"method":"jumbo_estimateGas",
"params":[
],
"id":1
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"jsonrpc\":\"2.0\",\n\t\"method\":\"jumbo_estimateGas\",\n\t\"params\":[\n\t],\n\t\"id\":1\n}");
Request request = new Request.Builder()
.url("https://testnode.jumbochain.org")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
const axios = require("axios");
let data = JSON.stringify({
jsonrpc: "2.0",
method: "jumbo_estimateGas",
params: [],
id: 1,
});
let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://testnode.jumbochain.org",
headers: {
"Content-Type": "application/json",
},
data: data,
};
axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
import requests
import json
url = "https://testnode.jumbochain.org"
payload = json.dumps({
"jsonrpc": "2.0",
"method": "jumbo_estimateGas",
"params": [],
"id": 1
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify({
jsonrpc: "2.0",
method: "jumbo_estimateGas",
params: [],
id: 1,
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow",
};
fetch("https://testnode.jumbochain.org", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://testnode.jumbochain.org"
method := "POST"
payload := strings.NewReader(`{
"jsonrpc":"2.0",
"method":"jumbo_estimateGas",
"params":[
],
"id":1
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}