nevillegrech / gigahorse-toolchain

A binary lifter and analysis framework for Ethereum smart contracts
Other
290 stars 59 forks source link

Support for storage array delete ops #138

Closed sifislag closed 2 months ago

sifislag commented 2 months ago

Add some support for array delete operations. Output relation is the following:

/**
  An `array` is deleted by setting its length to zero in `sstore` and then erasing all its contents in a following `loop`. 
*/
.decl ArrayDeleteOp(sstore: Statement, loop: Block, array: StorageConstruct)

Also added some cases in InductionVariableUpperBoundVar, and better documented the rules.

github-actions[bot] commented 2 months ago

Test Results (Souffle 2.3)

55 tests  ±0   55 :white_check_mark: ±0   32m 53s :stopwatch: +28s  1 suites ±0    0 :zzz: ±0   1 files   ±0    0 :x: ±0 

Results for commit ce5172a6. ± Comparison against base commit 09d12c22.

github-actions[bot] commented 2 months ago

Test Results (Souffle 2.4)

55 tests  ±0   55 :white_check_mark: ±0   33m 33s :stopwatch: -31s  1 suites ±0    0 :zzz: ±0   1 files   ±0    0 :x: ±0 

Results for commit ce5172a6. ± Comparison against base commit 09d12c22.