Research Article
SESCon: Secure Ethereum Smart Contracts by Vulnerable Patterns’ Detection
Algorithm 1
Detecting vulnerabilities in the smart contract using SESCon.
| (1) | Read the smart contract | | (2) | Extract the abstract syntax tree | | (3) | Convert AST to XML path using XPath queries | | (4) | Store locations of each statement which L1, L2, … Ln | | (5) | Get control flow graphs (cf1, cf2) | | (6) | Get dependency graph, dg1, dg2 | | (7) | Get local variable (lv1, lv2) | | (8) | Get state variable (sv1, sv2, \enleadertwodots svn) | | (9) | Get payable function (pf1, pf2) | | (10) | Get nonpayable function (npf1, npf2, …\enleadertwodots npfn) | | (11) | Load standard patterns of vulnerabilities , , …, | | (12) | for each (pi) compare dgi in given smart contract do | | (13) | if foundPattern then | | (14) | detectVulList.add (pi) | | (15) | locationsList.add (Li) | | (16) | end if | | (17) | end for | | (18) | Generate report |
|