Skip to content

Commit 2e429c2

Browse files
committed
Fix block handler for multichain
1 parent ac600cf commit 2e429c2

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

codegenerator/cli/npm/envio/src/Batch.res

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ let getOrderedNextItem = (fetchStates: ChainMap.t<FetchState.t>): option<
5858
})
5959
}
6060

61+
let hasUnorderedNextItem = (fetchStates: ChainMap.t<FetchState.t>) => {
62+
fetchStates
63+
->ChainMap.values
64+
->Js.Array2.some(fetchState => {
65+
fetchState->FetchState.isActivelyIndexing &&
66+
switch fetchState->FetchState.getEarliestEvent {
67+
| Item(_) => true
68+
| NoItem(_) => false
69+
}
70+
})
71+
}
72+
6173
let popOrderedBatchItems = (
6274
~maxBatchSize,
6375
~fetchStates: ChainMap.t<FetchState.t>,

codegenerator/cli/templates/static/codegen/src/eventFetching/ChainManager.res

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,10 @@ Simply calls getOrderedNextItem in isolation using the chain manager without
102102
the context of a batch
103103
*/
104104
let nextItemIsNone = (chainManager: t): bool => {
105-
chainManager->getFetchStateWithData->Batch.getOrderedNextItem === None
105+
switch chainManager.multichain {
106+
| Ordered => chainManager->getFetchStateWithData->Batch.getOrderedNextItem === None
107+
| Unordered => chainManager->getFetchStateWithData->Batch.hasUnorderedNextItem
108+
}
106109
}
107110

108111
let createBatch = (chainManager: t, ~maxBatchSize: int): Batch.t => {

0 commit comments

Comments
 (0)