@@ -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