Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ public enum RequestSource {
public static final String LATEST_STR = "latest";
public static final String FINALIZED_STR = "finalized";
public static final String TAG_PENDING_SUPPORT_ERROR = "TAG pending not supported";
public static final String INVALID_BLOCK_RANGE = "invalid block range params";

private static final String JSON_ERROR = "invalid json request";
private static final String BLOCK_NUM_ERROR = "invalid block number";
Expand Down Expand Up @@ -1234,6 +1235,12 @@ public String newFilter(FilterRequest fr) throws JsonRpcInvalidParamsException,
JsonRpcMethodNotFoundException {
disableInPBFT("eth_newFilter");

// not supports finalized as block parameter
if (FINALIZED_STR.equalsIgnoreCase(fr.getFromBlock())
|| FINALIZED_STR.equalsIgnoreCase(fr.getToBlock())) {
throw new JsonRpcInvalidParamsException(INVALID_BLOCK_RANGE);
}

Map<String, LogFilterAndResult> eventFilter2Result;
if (getSource() == RequestSource.FULLNODE) {
eventFilter2Result = eventFilter2ResultFull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.tron.core.services.jsonrpc.filters;

import static org.tron.common.math.Maths.min;
import static org.tron.core.services.jsonrpc.TronJsonRpcImpl.INVALID_BLOCK_RANGE;

import com.google.protobuf.ByteString;
import lombok.Getter;
Expand Down Expand Up @@ -83,7 +84,7 @@ public LogFilterWrapper(FilterRequest fr, long currentMaxBlockNum, Wallet wallet
toBlockSrc = Long.MAX_VALUE;
}
if (fromBlockSrc > toBlockSrc) {
throw new JsonRpcInvalidParamsException("please verify: fromBlock <= toBlock");
throw new JsonRpcInvalidParamsException(INVALID_BLOCK_RANGE);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ public void testLogFilterWrapper() {
LogFilterWrapper logFilterWrapper =
new LogFilterWrapper(new FilterRequest("0x78", "0x14", null, null, null), 100, null);
} catch (JsonRpcInvalidParamsException e) {
Assert.assertEquals("please verify: fromBlock <= toBlock", e.getMessage());
Assert.assertEquals("invalid block range params", e.getMessage());
}

//fromBlock or toBlock is not hex num
Expand Down Expand Up @@ -644,4 +644,44 @@ public void testLogFilterWrapper() {
Assert.assertEquals("Incorrect hex syntax", e.getMessage());
}
}

@Test
public void testNewFilterFinalizedBlock() {

try {
tronJsonRpc.newFilter(new FilterRequest(null, null, null, null, null));
} catch (Exception e) {
Assert.fail();
}

try {
tronJsonRpc.newFilter(new FilterRequest("finalized", null, null, null, null));
} catch (Exception e) {
Assert.assertEquals("invalid block range params", e.getMessage());
}

try {
tronJsonRpc.newFilter(new FilterRequest(null, "finalized", null, null, null));
} catch (Exception e) {
Assert.assertEquals("invalid block range params", e.getMessage());
}

try {
tronJsonRpc.newFilter(new FilterRequest("finalized", "latest", null, null, null));
} catch (Exception e) {
Assert.assertEquals("invalid block range params", e.getMessage());
}

try {
tronJsonRpc.newFilter(new FilterRequest("0x1", "finalized", null, null, null));
} catch (Exception e) {
Assert.assertEquals("invalid block range params", e.getMessage());
}

try {
tronJsonRpc.newFilter(new FilterRequest("finalized", "finalized", null, null, null));
} catch (Exception e) {
Assert.assertEquals("invalid block range params", e.getMessage());
}
}
}