Skip to content

Commit ef0b675

Browse files
refactor: migrate bulk format from map to array
1 parent 0eda5d3 commit ef0b675

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

src/Modules/Bulk.ts

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -47,34 +47,31 @@ export function handleBulk(content: Bytes): void {
4747
bulk.content = content.toString();
4848

4949
const jsonContent = json.try_fromBytes(content);
50-
if (jsonContent.isOk && jsonContent.value.kind == JSONValueKind.OBJECT) {
51-
const contentObject = jsonContent.value.toObject();
52-
53-
for (let i = 0; i < contentObject.entries.length; i++) {
54-
const entry = contentObject.entries[i];
55-
56-
if (isIntegerString(entry.key)) {
57-
const index = BigInt.fromString(entry.key);
58-
if (
59-
// exclude slice out of deal bot range
60-
index >= botFirst &&
61-
index < botFirst.plus(botSize) &&
62-
entry.value.kind == JSONValueKind.OBJECT
63-
) {
64-
let sliceCid = entry.value.toObject().getEntry('orders');
65-
if (sliceCid != null && sliceCid.value.kind == JSONValueKind.STRING) {
66-
let sliceContext = new DataSourceContext();
67-
sliceContext.setString(CONTEXT_BULK, bulkId);
68-
sliceContext.setString(CONTEXT_DEAL, dealId);
69-
sliceContext.setBigInt(CONTEXT_INDEX, index);
70-
sliceContext.setBytes(CONTEXT_DOMAIN_SEPARATOR_HASH, domainSeparator);
71-
72-
DataSourceTemplate.createWithContext(
73-
'BulkSlice',
74-
[sliceCid.value.toString()],
75-
sliceContext,
76-
);
77-
}
50+
if (jsonContent.isOk && jsonContent.value.kind == JSONValueKind.ARRAY) {
51+
const contentArray = jsonContent.value.toArray();
52+
53+
for (let i = 0; i < contentArray.length; i++) {
54+
const entry = contentArray[i];
55+
const index = BigInt.fromI32(i);
56+
if (
57+
// exclude slice out of deal bot range
58+
index >= botFirst &&
59+
index < botFirst.plus(botSize) &&
60+
entry.kind == JSONValueKind.OBJECT
61+
) {
62+
let sliceCid = entry.toObject().getEntry('orders');
63+
if (sliceCid != null && sliceCid.value.kind == JSONValueKind.STRING) {
64+
let sliceContext = new DataSourceContext();
65+
sliceContext.setString(CONTEXT_BULK, bulkId);
66+
sliceContext.setString(CONTEXT_DEAL, dealId);
67+
sliceContext.setBigInt(CONTEXT_INDEX, index);
68+
sliceContext.setBytes(CONTEXT_DOMAIN_SEPARATOR_HASH, domainSeparator);
69+
70+
DataSourceTemplate.createWithContext(
71+
'BulkSlice',
72+
[sliceCid.value.toString()],
73+
sliceContext,
74+
);
7875
}
7976
}
8077
}

0 commit comments

Comments
 (0)