Skip to content

Commit c2a11fd

Browse files
committed
evm-rpc: sort block numbers
1 parent d89396e commit c2a11fd

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"packages/beaconchain",
3434
"packages/cli",
3535
"packages/evm",
36+
"packages/evm-rpc",
3637
"packages/indexer",
3738
"packages/protocol",
3839
"packages/starknet",

packages/evm-rpc/src/log-fetcher.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import type { LogFilter } from "@apibara/evm";
12
import type { Bytes } from "@apibara/protocol";
23
import type { RpcLog } from "viem";
34
import { hexToNumber, isHex, numberToHex, pad, trim } from "viem";
45
import type { Log } from "./block";
5-
import type { Filter, LogFilter } from "./filter";
6+
import type { Filter } from "./filter";
67
import type { ViemRpcClient } from "./stream-config";
78
import { viemRpcLogToDna } from "./transform";
89

@@ -94,7 +95,10 @@ export async function fetchLogsForRange({
9495
fromBlock: numberToHex(fromBlock),
9596
toBlock: numberToHex(toBlock),
9697
address: logFilter.address,
97-
topics: logFilter.topics ? [...logFilter.topics] : undefined,
98+
topics:
99+
logFilter.topics !== undefined
100+
? [...logFilter.topics]
101+
: undefined,
98102
},
99103
],
100104
});
@@ -149,7 +153,11 @@ export async function fetchLogsForRange({
149153
}
150154
}
151155

152-
return { logs: logsByBlock, blockNumbers: Array.from(blockNumbers) };
156+
const sortedBlockNumbers = Array.from(blockNumbers).sort((a, b) =>
157+
a < b ? -1 : a > b ? 1 : 0,
158+
);
159+
160+
return { logs: logsByBlock, blockNumbers: sortedBlockNumbers };
153161
}
154162

155163
function refineLog(log: RpcLog, filter: LogFilter): Log | null {

0 commit comments

Comments
 (0)