From 247086f32965d7cb282bd20835cc912374c7d870 Mon Sep 17 00:00:00 2001 From: POTHURI HARIKA <cb.en.p2cys21018@cb.students.amrita.edu> Date: Thu, 15 Jun 2023 12:13:27 +0530 Subject: [PATCH] Upload New File --- .../SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Tools/SmartCheck/Solidity/Rules/SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES.md diff --git a/Tools/SmartCheck/Solidity/Rules/SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES.md b/Tools/SmartCheck/Solidity/Rules/SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES.md new file mode 100644 index 0000000..152982a --- /dev/null +++ b/Tools/SmartCheck/Solidity/Rules/SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES.md @@ -0,0 +1,76 @@ +# Analysis of Smart Contract Security Vulnerabilities and Tools  +     <br/>    <br/> + <br/> + + +## SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES +### Rule Description +<p> + Use <code>bytes</code> instead of <code>byte[]</code> for lower gas consumption. +</p> +### Solidity-Rules + +  + +``` +typeName + [typeName/elementaryTypeName[text()[1] = "byte"]] + [matches(text()[1], "^\[.*\]$")] +``` + + + +### Sample Code + +``` +pragma solidity 0.4.24; +contract C { + + // <yes> <report> SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES f13a9f + byte[] someVariable1; + + bytes someVariable2; + uint[] data; +} +``` + +### Abstract Syntax Tree + +[Click Here](https://astexplorer.net/#/gist/81c00d2664b3a76545a8024e42c8a238/489d5aa42067fb6025a78c853016c00806d06a3f) to view the AST for the above code. Code generated from AST Explorer using _solidity-parser-antlr-0.4.11_ + +### Code Result + +``` +SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES +patternId: f13a9f +severity: 1 +line: 5 +column: 4 +content: byte[] + +ruleId: SOLIDITY_VISIBILITY +patternId: b51ce0 +severity: 1 +line: 5 +column: 4 +content: byte[]someVariable1; + +ruleId: SOLIDITY_VISIBILITY +patternId: b51ce0 +severity: 1 +line: 7 +column: 4 +content: bytessomeVariable2; + +ruleId: SOLIDITY_VISIBILITY +patternId: b51ce0 +severity: 1 +line: 8 +column: 4 +content: uint[]data; + +SOLIDITY_VISIBILITY :3 +SOLIDITY_BYTE_ARRAY_INSTEAD_BYTES :1 + + +``` -- GitLab