@@ -358,21 +358,25 @@ global ARGS_HASH_CHUNK_LENGTH: u32 = 32;
358
358
global ARGS_HASH_CHUNK_COUNT : u32 = 16 ;
359
359
360
360
fn hash_args <N >(args : [Field ; N ]) -> Field {
361
- let mut chunks_hashes = [0 ; ARGS_HASH_CHUNK_COUNT ];
362
- for i in 0 ..ARGS_HASH_CHUNK_COUNT {
363
- let mut chunk_hash = 0 ;
364
- let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH ;
365
- if start_chunk_index < (args .len () as u32 ) {
366
- let mut chunk_args = [0 ; ARGS_HASH_CHUNK_LENGTH ];
367
- for j in 0 ..ARGS_HASH_CHUNK_LENGTH {
368
- let item_index = i * ARGS_HASH_CHUNK_LENGTH + j ;
369
- if item_index < (args .len () as u32 ) {
370
- chunk_args [j ] = args [item_index ];
361
+ if args .len () == 0 {
362
+ 0
363
+ } else {
364
+ let mut chunks_hashes = [0 ; ARGS_HASH_CHUNK_COUNT ];
365
+ for i in 0 ..ARGS_HASH_CHUNK_COUNT {
366
+ let mut chunk_hash = 0 ;
367
+ let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH ;
368
+ if start_chunk_index < (args .len () as u32 ) {
369
+ let mut chunk_args = [0 ; ARGS_HASH_CHUNK_LENGTH ];
370
+ for j in 0 ..ARGS_HASH_CHUNK_LENGTH {
371
+ let item_index = i * ARGS_HASH_CHUNK_LENGTH + j ;
372
+ if item_index < (args .len () as u32 ) {
373
+ chunk_args [j ] = args [item_index ];
374
+ }
371
375
}
376
+ chunk_hash = dep::std::hash:: pedersen_with_separator (chunk_args , GENERATOR_INDEX__FUNCTION_ARGS )[0 ];
372
377
}
373
- chunk_hash = dep::std::hash:: pedersen_with_separator ( chunk_args , GENERATOR_INDEX__FUNCTION_ARGS )[ 0 ] ;
378
+ chunks_hashes [ i ] = chunk_hash ;
374
379
}
375
- chunks_hashes [ i ] = chunk_hash ;
380
+ dep::std::hash:: pedersen_with_separator ( chunks_hashes , GENERATOR_INDEX__FUNCTION_ARGS )[ 0 ]
376
381
}
377
- dep::std::hash:: pedersen_with_separator (chunks_hashes , GENERATOR_INDEX__FUNCTION_ARGS )[0 ]
378
382
}
0 commit comments