newFilter
Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call jumbo_getFilterChanges
.
A note on specifying topic filters:
Topics are order-dependent. A transaction with a log with topics [A, B] will be matched by the following topic filters:
[]
"anything"
[A]
"A in first position (and anything after)"
[null, B]
"anything in first position AND B in second position (and anything after)"
[A, B]
"A in first position AND B in second position (and anything after)"
[[A, B], [A, B]]
"(A OR B) in first position AND (A OR B) in second position (and anything after)"
Parameters
Object
The filter options:
fromBlock
:QUANTITY|TAG
(optional, default: "latest") Integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.
toBlock
:QUANTITY|TAG
(optional, default: "latest") Integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.
address
:DATA|Array
, 20 Bytes(optional) Contract address or a list of addresses from which logs should originate.
topics
:Array of DATA
(optional) Array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with "or" options.
params: [{
"fromBlock": "0x1",
"toBlock": "0x2",
"address": " 0x8888f1f195afa192cfee860698584c030f4c9db1",
"topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", null, ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x0000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebccc"]]
}]
Returns
QUANTITY
A filter id
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_newFilter\",\n\t\"params\":[\n\t\t{\n\t\t\t\"topics\":[\"0x12341234\"]\n\t\t}\n\t],\n\t\"id\":73\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_newFilter",
"params":[
{
"topics":["0x12341234"]
}
],
"id":73
}'
POST / HTTP/1.1
Host: testnode.jumbochain.org
Content-Type: application/json
Content-Length: 110
{
"jsonrpc":"2.0",
"method":"jumbo_newFilter",
"params":[
{
"topics":["0x12341234"]
}
],
"id":73
}
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_newFilter\",\n\t\"params\":[\n\t\t{\n\t\t\t\"topics\":[\"0x12341234\"]\n\t\t}\n\t],\n\t\"id\":73\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_newFilter",
params: [
{
topics: ["0x12341234"],
},
],
id: 73,
});
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_newFilter",
"params": [
{
"topics": [
"0x12341234"
]
}
],
"id": 73
})
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_newFilter",
params: [
{
topics: ["0x12341234"],
},
],
id: 73,
});
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_newFilter",
"params":[
{
"topics":["0x12341234"]
}
],
"id":73
}`)
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))
}