From 6fb997c49e1acef4a9924fa70ddc6e82a67c9499 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Wed, 10 Jul 2024 17:00:25 +0530 Subject: [PATCH 1/2] show lines for gas warnings --- .../src/lib/contract-selection.tsx | 13 ++++++++++++- .../solidity-compiler/src/lib/solScanTable.tsx | 2 +- .../solidity-compiler/src/lib/types/index.ts | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx index b13f3ddcb3..289e55dc2d 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx @@ -313,8 +313,19 @@ export const ContractSelection = (props: ContractSelectionProps) => { const { data: scanData } = await axios.post('https://solidityscan.remixproject.org/downloadResult', { url }) const scanReport: ScanReport = scanData.scan_report - if (scanReport?.multi_file_scan_details?.length) { + for (const template of scanReport.multi_file_scan_details) { + if (template.metric_wise_aggregated_findings?.length) { + const { metric_wise_aggregated_findings } = template + let positions = [] + for (const details of metric_wise_aggregated_findings) { + const { findings } = details + for (const f of findings) + positions.push(`${f.line_nos_start[0]}:${f.line_nos_end[0]}`) + } + template.positions = JSON.stringify(positions) + } + } await plugin.call('terminal', 'logHtml', ) } else { const modal: AppModal = { diff --git a/libs/remix-ui/solidity-compiler/src/lib/solScanTable.tsx b/libs/remix-ui/solidity-compiler/src/lib/solScanTable.tsx index 059262744c..2c0f5c5237 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/solScanTable.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/solScanTable.tsx @@ -37,7 +37,7 @@ export function SolScanTable(props: SolScanTableProps) { {template.template_details.issue_name} {template.template_details.issue_severity} {template.template_details.issue_confidence} - {parse(template.template_details.static_issue_description)} + {parse(template.template_details.static_issue_description)} {template.positions ? `Lines: ${template.positions}`: ''} {template.template_details.issue_remediation ? parse(template.template_details.issue_remediation) : 'Not Available' } ) diff --git a/libs/remix-ui/solidity-compiler/src/lib/types/index.ts b/libs/remix-ui/solidity-compiler/src/lib/types/index.ts index 1aa0b84f25..f7474eca7c 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/types/index.ts +++ b/libs/remix-ui/solidity-compiler/src/lib/types/index.ts @@ -19,6 +19,8 @@ export interface ScanTemplate { export interface ScanDetails { issue_id: string no_of_findings: string + metric_wise_aggregated_findings?: Record[] + positions?: string template_details: ScanTemplate } From 691a475e2c1ce6daf02349ed775beef8e60592ed Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Mon, 15 Jul 2024 19:25:18 +0530 Subject: [PATCH 2/2] fix linting --- libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx index 289e55dc2d..30a045c368 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx @@ -317,7 +317,7 @@ export const ContractSelection = (props: ContractSelectionProps) => { for (const template of scanReport.multi_file_scan_details) { if (template.metric_wise_aggregated_findings?.length) { const { metric_wise_aggregated_findings } = template - let positions = [] + const positions = [] for (const details of metric_wise_aggregated_findings) { const { findings } = details for (const f of findings)