@reinforcedai/hardhat-security-review 2512.8.1 → 2512.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +30 -17
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +35 -18
package/dist/index.js
CHANGED
|
@@ -32,15 +32,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
const fs = __importStar(require("fs"));
|
|
40
37
|
const task_names_1 = require("hardhat/builtin-tasks/task-names");
|
|
41
38
|
const config_1 = require("hardhat/config");
|
|
42
39
|
const contract_names_1 = require("hardhat/utils/contract-names");
|
|
43
|
-
const
|
|
40
|
+
const table_1 = require("table");
|
|
44
41
|
const AutoFixManager_1 = require("./AutoFixManager");
|
|
45
42
|
const ContractUnflattener_1 = require("./ContractUnflattener");
|
|
46
43
|
const ReinforcedHardhatRuntimeEnvironmentField_1 = require("./ReinforcedHardhatRuntimeEnvironmentField");
|
|
@@ -115,7 +112,6 @@ function enrichVulnerabilitiesWithOriginalMapping(vulnerabilities, flattenedSour
|
|
|
115
112
|
unflattener.parseFlattened(flattenedSource, sourcePaths);
|
|
116
113
|
return vulnerabilities.map(vuln => {
|
|
117
114
|
const mapping = unflattener.mapVulnerabilityToOriginal(vuln.from_line, vuln.to_line);
|
|
118
|
-
console.log('Mapping for vulnerability:', mapping);
|
|
119
115
|
if (mapping) {
|
|
120
116
|
return {
|
|
121
117
|
...vuln,
|
|
@@ -159,7 +155,6 @@ async function auditAllContracts(hre) {
|
|
|
159
155
|
console.log('No vulnerabilities found');
|
|
160
156
|
else {
|
|
161
157
|
const enrichedVulnerabilities = enrichVulnerabilitiesWithOriginalMapping(auditResult.result, flatSource, sourcePaths.map(sp => sp.trim()));
|
|
162
|
-
console.log('Enriched vulnerabilities:', enrichedVulnerabilities);
|
|
163
158
|
console.log(formatAuditResult(enrichedVulnerabilities, flatSource));
|
|
164
159
|
if (hre.config.reinforced?.autoFixEnabled !== false) {
|
|
165
160
|
const autoFixManager = new AutoFixManager_1.AutoFixManager();
|
|
@@ -225,20 +220,38 @@ function formatAuditResult(vulnerabilities, sourceCode) {
|
|
|
225
220
|
.join('\n');
|
|
226
221
|
}
|
|
227
222
|
const rows = [
|
|
228
|
-
['Possibility
|
|
229
|
-
['Description
|
|
230
|
-
['Affected code
|
|
231
|
-
['Possible fix
|
|
232
|
-
['Test case
|
|
223
|
+
['Possibility', `${vulnerability.miners_select_count}/${vulnerability.miners_participated_count}`],
|
|
224
|
+
['Description', vulnerability.description],
|
|
225
|
+
['Affected code', affectedCode],
|
|
226
|
+
['Possible fix', vulnerability.fixed_lines || 'No fix provided'],
|
|
227
|
+
['Test case', vulnerability.test_case || 'No test case provided'],
|
|
233
228
|
['Is suggestion', vulnerability.is_suggestion ? 'Yes' : 'No'],
|
|
234
229
|
];
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
230
|
+
const config = {
|
|
231
|
+
columns: {
|
|
232
|
+
0: { width: 14 },
|
|
233
|
+
1: { width: 80 - 14 },
|
|
234
|
+
},
|
|
235
|
+
border: {
|
|
236
|
+
topBody: `─`,
|
|
237
|
+
topJoin: `┬`,
|
|
238
|
+
topLeft: `┌`,
|
|
239
|
+
topRight: `┐`,
|
|
240
|
+
bottomBody: `─`,
|
|
241
|
+
bottomJoin: `┴`,
|
|
242
|
+
bottomLeft: `└`,
|
|
243
|
+
bottomRight: `┘`,
|
|
244
|
+
bodyLeft: `│`,
|
|
245
|
+
bodyRight: `│`,
|
|
246
|
+
bodyJoin: `│`,
|
|
247
|
+
joinBody: `─`,
|
|
248
|
+
joinLeft: `├`,
|
|
249
|
+
joinRight: `┤`,
|
|
250
|
+
joinJoin: `┼`
|
|
251
|
+
}
|
|
239
252
|
};
|
|
240
|
-
|
|
241
|
-
output += table
|
|
253
|
+
output += '\n';
|
|
254
|
+
output += (0, table_1.table)(rows, config);
|
|
242
255
|
output += '\n\n';
|
|
243
256
|
}
|
|
244
257
|
return output;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"main": "dist/index.js",
|
|
4
4
|
"types": "dist/index.d.ts",
|
|
5
5
|
"type": "commonjs",
|
|
6
|
-
"version": "2512.
|
|
6
|
+
"version": "2512.24.1",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"lint:fix": "prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json",
|
|
9
9
|
"lint": "tslint --config tslint.json --project tsconfig.json",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"nanospinner": "^1.2.2",
|
|
24
24
|
"readline-sync": "^1.4.10",
|
|
25
25
|
"tsx": "^4.7.3",
|
|
26
|
-
"
|
|
26
|
+
"table": "^6.9.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@nomiclabs/hardhat-ethers": "^2.0.0",
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { parseFullyQualifiedName } from 'hardhat/utils/contract-names';
|
|
|
6
6
|
// This import is needed to let the TypeScript compiler know that it should include your type
|
|
7
7
|
// extensions in your npm package's types file.
|
|
8
8
|
import { HardhatRuntimeEnvironment } from 'hardhat/types';
|
|
9
|
-
import
|
|
9
|
+
import { table } from 'table';
|
|
10
10
|
import { Vulnerability } from 'types';
|
|
11
11
|
import { AutoFixManager } from './AutoFixManager';
|
|
12
12
|
import { ContractUnflattener } from './ContractUnflattener';
|
|
@@ -104,7 +104,6 @@ function enrichVulnerabilitiesWithOriginalMapping(
|
|
|
104
104
|
|
|
105
105
|
return vulnerabilities.map(vuln => {
|
|
106
106
|
const mapping = unflattener.mapVulnerabilityToOriginal(vuln.from_line, vuln.to_line);
|
|
107
|
-
console.log('Mapping for vulnerability:', mapping);
|
|
108
107
|
if(mapping) {
|
|
109
108
|
return {
|
|
110
109
|
...vuln,
|
|
@@ -155,7 +154,7 @@ async function auditAllContracts(hre: HardhatRuntimeEnvironment) {
|
|
|
155
154
|
flatSource,
|
|
156
155
|
sourcePaths.map(sp => sp.trim()),
|
|
157
156
|
);
|
|
158
|
-
|
|
157
|
+
|
|
159
158
|
console.log(formatAuditResult(enrichedVulnerabilities, flatSource));
|
|
160
159
|
|
|
161
160
|
if(hre.config.reinforced?.autoFixEnabled !== false) {
|
|
@@ -228,25 +227,43 @@ function formatAuditResult(vulnerabilities: Vulnerability[], sourceCode: string)
|
|
|
228
227
|
}
|
|
229
228
|
|
|
230
229
|
const rows = [
|
|
231
|
-
['Possibility
|
|
232
|
-
['Description
|
|
233
|
-
['Affected code
|
|
234
|
-
['Possible fix
|
|
235
|
-
['Test case
|
|
230
|
+
['Possibility', `${vulnerability.miners_select_count}/${vulnerability.miners_participated_count}`],
|
|
231
|
+
['Description', vulnerability.description],
|
|
232
|
+
['Affected code', affectedCode],
|
|
233
|
+
['Possible fix', vulnerability.fixed_lines || 'No fix provided'],
|
|
234
|
+
['Test case', vulnerability.test_case || 'No test case provided'],
|
|
236
235
|
['Is suggestion', vulnerability.is_suggestion ? 'Yes' : 'No'],
|
|
237
236
|
];
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
237
|
+
|
|
238
|
+
const config = {
|
|
239
|
+
columns: {
|
|
240
|
+
0: { width: 14 },
|
|
241
|
+
1: { width: 80 - 14 },
|
|
242
|
+
},
|
|
243
|
+
border: {
|
|
244
|
+
topBody: `─`,
|
|
245
|
+
topJoin: `┬`,
|
|
246
|
+
topLeft: `┌`,
|
|
247
|
+
topRight: `┐`,
|
|
248
|
+
|
|
249
|
+
bottomBody: `─`,
|
|
250
|
+
bottomJoin: `┴`,
|
|
251
|
+
bottomLeft: `└`,
|
|
252
|
+
bottomRight: `┘`,
|
|
253
|
+
|
|
254
|
+
bodyLeft: `│`,
|
|
255
|
+
bodyRight: `│`,
|
|
256
|
+
bodyJoin: `│`,
|
|
257
|
+
|
|
258
|
+
joinBody: `─`,
|
|
259
|
+
joinLeft: `├`,
|
|
260
|
+
joinRight: `┤`,
|
|
261
|
+
joinJoin: `┼`
|
|
262
|
+
}
|
|
242
263
|
};
|
|
243
|
-
const table = Table(
|
|
244
|
-
headers,
|
|
245
|
-
rows,
|
|
246
|
-
options,
|
|
247
|
-
);
|
|
248
264
|
|
|
249
|
-
output +=
|
|
265
|
+
output += '\n';
|
|
266
|
+
output += table(rows, config);
|
|
250
267
|
output += '\n\n';
|
|
251
268
|
}
|
|
252
269
|
return output;
|