mirror of https://github.com/crytic/slither
Merge pull request #1799 from crytic/detector-compilation-artifacts
testing strategy + coverage workflowrevert-1799-detector-compilation-artifacts
commit
2af8b0c5ec
@ -0,0 +1,30 @@ |
|||||||
|
# Derived from <https://github.com/pyca/cryptography/blob/SOME_REF/.github/actions/upload-coverage/action.yml> |
||||||
|
# Originally authored by the PyCA Cryptography maintainers, and licensed under |
||||||
|
# the terms of the BSD license: |
||||||
|
# <https://github.com/pyca/cryptography/blob/main/LICENSE.BSD> |
||||||
|
|
||||||
|
name: Upload Coverage |
||||||
|
description: Upload coverage files |
||||||
|
|
||||||
|
runs: |
||||||
|
using: "composite" |
||||||
|
|
||||||
|
steps: |
||||||
|
# FIXME(jl): codecov has the option of including machine information in filename that would solve this unique naming |
||||||
|
# issue more completely. |
||||||
|
# This method has the limitation of 1 coverage file per run, limiting some coverage between online/offline tests. |
||||||
|
- run: | |
||||||
|
COVERAGE_UUID=$(python3 -c "import uuid; print(uuid.uuid4())") |
||||||
|
echo "COVERAGE_UUID=${COVERAGE_UUID}" >> $GITHUB_OUTPUT |
||||||
|
if [ -f .coverage ]; then |
||||||
|
mv .coverage .coverage.${COVERAGE_UUID} |
||||||
|
fi |
||||||
|
id: coverage-uuid |
||||||
|
shell: bash |
||||||
|
- uses: actions/upload-artifact@v3.1.0 |
||||||
|
with: |
||||||
|
name: coverage-data |
||||||
|
path: | |
||||||
|
.coverage.* |
||||||
|
*.lcov |
||||||
|
if-no-files-found: ignore |
@ -0,0 +1,13 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
# used to pass --cov=$path and --cov-append to pytest |
||||||
|
if [ "$1" != "" ]; then |
||||||
|
pytest "$1" tests/e2e/ -n auto |
||||||
|
status_code=$? |
||||||
|
python -m coverage report |
||||||
|
else |
||||||
|
pytest tests/e2e/ -n auto |
||||||
|
status_code=$? |
||||||
|
fi |
||||||
|
|
||||||
|
exit "$status_code" |
@ -0,0 +1,13 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
# used to pass --cov=$path and --cov-append to pytest |
||||||
|
if [ "$1" != "" ]; then |
||||||
|
pytest "$1" tests/tools/read-storage/test_read_storage.py |
||||||
|
status_code=$? |
||||||
|
python -m coverage report |
||||||
|
else |
||||||
|
pytest tests/tools/read-storage/test_read_storage.py |
||||||
|
status_code=$? |
||||||
|
fi |
||||||
|
|
||||||
|
exit "$status_code" |
@ -0,0 +1,13 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
# used to pass --cov=$path and --cov-append to pytest |
||||||
|
if [ "$1" != "" ]; then |
||||||
|
pytest "$1" tests/unit/ |
||||||
|
status_code=$? |
||||||
|
python -m coverage report |
||||||
|
else |
||||||
|
pytest tests/unit/ |
||||||
|
status_code=$? |
||||||
|
fi |
||||||
|
|
||||||
|
exit "$status_code" |
@ -1,51 +0,0 @@ |
|||||||
--- |
|
||||||
name: IR tests |
|
||||||
|
|
||||||
defaults: |
|
||||||
run: |
|
||||||
# To load bashrc |
|
||||||
shell: bash -ieo pipefail {0} |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
branches: [master, dev] |
|
||||||
schedule: |
|
||||||
# run CI every day even if no PRs/merges occur |
|
||||||
- cron: '0 12 * * *' |
|
||||||
|
|
||||||
concurrency: |
|
||||||
group: ${{ github.workflow }}-${{ github.ref }} |
|
||||||
cancel-in-progress: true |
|
||||||
|
|
||||||
jobs: |
|
||||||
build: |
|
||||||
name: IR tests |
|
||||||
runs-on: ${{ matrix.os }} |
|
||||||
strategy: |
|
||||||
fail-fast: false |
|
||||||
matrix: |
|
||||||
os: [ubuntu-latest, windows-2022] |
|
||||||
|
|
||||||
steps: |
|
||||||
- name: Checkout Code |
|
||||||
uses: actions/checkout@v3 |
|
||||||
|
|
||||||
- name: Set up Python 3.8 |
|
||||||
uses: actions/setup-python@v3 |
|
||||||
with: |
|
||||||
python-version: 3.8 |
|
||||||
|
|
||||||
- name: Install dependencies |
|
||||||
run: | |
|
||||||
pip install ".[dev]" |
|
||||||
solc-select install 0.5.0 |
|
||||||
solc-select use 0.8.11 --always-install |
|
||||||
|
|
||||||
- name: Install old solc |
|
||||||
if: matrix.os == 'ubuntu-latest' |
|
||||||
run: solc-select install 0.4.0 |
|
||||||
|
|
||||||
|
|
||||||
- name: Test with pytest |
|
||||||
run: | |
|
||||||
pytest tests/test_ssa_generation.py |
|
@ -1,45 +0,0 @@ |
|||||||
--- |
|
||||||
name: Detectors tests |
|
||||||
|
|
||||||
defaults: |
|
||||||
run: |
|
||||||
# To load bashrc |
|
||||||
shell: bash -ieo pipefail {0} |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
branches: [master, dev] |
|
||||||
schedule: |
|
||||||
# run CI every day even if no PRs/merges occur |
|
||||||
- cron: '0 12 * * *' |
|
||||||
|
|
||||||
concurrency: |
|
||||||
group: ${{ github.workflow }}-${{ github.ref }} |
|
||||||
cancel-in-progress: true |
|
||||||
|
|
||||||
jobs: |
|
||||||
build: |
|
||||||
name: Detectors tests |
|
||||||
runs-on: ${{ matrix.os }} |
|
||||||
strategy: |
|
||||||
fail-fast: false |
|
||||||
matrix: |
|
||||||
os: [ubuntu-latest, windows-2022] |
|
||||||
|
|
||||||
steps: |
|
||||||
- name: Checkout Code |
|
||||||
uses: actions/checkout@v3 |
|
||||||
|
|
||||||
- name: Set up Python 3.8 |
|
||||||
uses: actions/setup-python@v3 |
|
||||||
with: |
|
||||||
python-version: 3.8 |
|
||||||
|
|
||||||
- name: Install dependencies |
|
||||||
run: | |
|
||||||
pip install ".[dev]" |
|
||||||
|
|
||||||
solc-select use 0.7.3 --always-install |
|
||||||
- name: Test with pytest |
|
||||||
run: | |
|
||||||
pytest tests/test_detectors.py |
|
@ -1,56 +0,0 @@ |
|||||||
--- |
|
||||||
name: Features tests |
|
||||||
|
|
||||||
defaults: |
|
||||||
run: |
|
||||||
# To load bashrc |
|
||||||
shell: bash -ieo pipefail {0} |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
branches: [master, dev] |
|
||||||
schedule: |
|
||||||
# run CI every day even if no PRs/merges occur |
|
||||||
- cron: '0 12 * * *' |
|
||||||
|
|
||||||
concurrency: |
|
||||||
group: ${{ github.workflow }}-${{ github.ref }} |
|
||||||
cancel-in-progress: true |
|
||||||
|
|
||||||
jobs: |
|
||||||
build: |
|
||||||
name: Features tests |
|
||||||
runs-on: ${{ matrix.os }} |
|
||||||
strategy: |
|
||||||
fail-fast: false |
|
||||||
matrix: |
|
||||||
os: [ubuntu-latest, windows-2022] |
|
||||||
|
|
||||||
steps: |
|
||||||
- name: Checkout Code |
|
||||||
uses: actions/checkout@v3 |
|
||||||
|
|
||||||
- name: Set up Python 3.8 |
|
||||||
uses: actions/setup-python@v3 |
|
||||||
with: |
|
||||||
python-version: 3.8 |
|
||||||
|
|
||||||
- name: Install dependencies |
|
||||||
run: | |
|
||||||
pip install ".[dev]" |
|
||||||
|
|
||||||
solc-select use 0.8.0 --always-install |
|
||||||
|
|
||||||
cd tests/test_node_modules/ |
|
||||||
npm install hardhat |
|
||||||
cd ../.. |
|
||||||
|
|
||||||
- name: Test with pytest |
|
||||||
run: | |
|
||||||
pytest tests/test_features.py |
|
||||||
pytest tests/test_constant_folding.py |
|
||||||
pytest tests/slithir/test_ternary_expressions.py |
|
||||||
pytest tests/slithir/test_operation_reads.py |
|
||||||
pytest tests/test_functions_ids.py |
|
||||||
pytest tests/test_function.py |
|
||||||
pytest tests/test_source_mapping.py |
|
@ -1,49 +0,0 @@ |
|||||||
--- |
|
||||||
name: Parser tests |
|
||||||
|
|
||||||
defaults: |
|
||||||
run: |
|
||||||
# To load bashrc |
|
||||||
shell: bash -ieo pipefail {0} |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
branches: [master, dev] |
|
||||||
schedule: |
|
||||||
# run CI every day even if no PRs/merges occur |
|
||||||
- cron: '0 12 * * *' |
|
||||||
|
|
||||||
concurrency: |
|
||||||
group: ${{ github.workflow }}-${{ github.ref }} |
|
||||||
cancel-in-progress: true |
|
||||||
|
|
||||||
jobs: |
|
||||||
build: |
|
||||||
name: Parser tests |
|
||||||
runs-on: ${{ matrix.os }} |
|
||||||
strategy: |
|
||||||
fail-fast: false |
|
||||||
matrix: |
|
||||||
os: [ubuntu-latest, windows-2022] |
|
||||||
|
|
||||||
steps: |
|
||||||
- name: Checkout Code |
|
||||||
uses: actions/checkout@v3 |
|
||||||
|
|
||||||
- name: Set up Python 3.8 |
|
||||||
uses: actions/setup-python@v3 |
|
||||||
with: |
|
||||||
python-version: 3.8 |
|
||||||
|
|
||||||
- name: Install dependencies |
|
||||||
run: | |
|
||||||
pip install ".[dev]" |
|
||||||
|
|
||||||
- name: Install solc |
|
||||||
run: | |
|
||||||
solc-select install all |
|
||||||
solc-select use 0.8.0 |
|
||||||
|
|
||||||
- name: Test with pytest |
|
||||||
run: | |
|
||||||
pytest tests/test_ast_parsing.py -n auto |
|
@ -1,53 +0,0 @@ |
|||||||
--- |
|
||||||
name: Test slither-read-storage |
|
||||||
|
|
||||||
defaults: |
|
||||||
run: |
|
||||||
# To load bashrc |
|
||||||
shell: bash -ieo pipefail {0} |
|
||||||
|
|
||||||
on: |
|
||||||
pull_request: |
|
||||||
branches: [master, dev] |
|
||||||
schedule: |
|
||||||
# run CI every day even if no PRs/merges occur |
|
||||||
- cron: '0 12 * * *' |
|
||||||
|
|
||||||
concurrency: |
|
||||||
group: ${{ github.workflow }}-${{ github.ref }} |
|
||||||
cancel-in-progress: true |
|
||||||
|
|
||||||
jobs: |
|
||||||
build: |
|
||||||
name: Test slither-read-storage |
|
||||||
runs-on: ubuntu-latest |
|
||||||
|
|
||||||
steps: |
|
||||||
- uses: actions/checkout@v3 |
|
||||||
- name: Setup node |
|
||||||
uses: actions/setup-node@v2 |
|
||||||
with: |
|
||||||
node-version: '14' |
|
||||||
|
|
||||||
- name: Install ganache |
|
||||||
run: npm install --global ganache |
|
||||||
|
|
||||||
- name: Set up Python 3.8 |
|
||||||
uses: actions/setup-python@v2 |
|
||||||
with: |
|
||||||
python-version: 3.8 |
|
||||||
|
|
||||||
- name: Install python dependencies |
|
||||||
run: | |
|
||||||
pip install ".[dev]" |
|
||||||
solc-select install 0.8.1 |
|
||||||
solc-select install 0.8.10 |
|
||||||
solc-select use 0.8.1 |
|
||||||
|
|
||||||
- name: Run slither-read-storage |
|
||||||
run: | |
|
||||||
pytest tests/test_read_storage.py |
|
||||||
|
|
||||||
- name: Run storage layout tests |
|
||||||
run: | |
|
||||||
pytest tests/test_storage_layout.py |
|
@ -0,0 +1,107 @@ |
|||||||
|
--- |
||||||
|
name: Pytest |
||||||
|
|
||||||
|
defaults: |
||||||
|
run: |
||||||
|
shell: bash |
||||||
|
|
||||||
|
on: |
||||||
|
push: |
||||||
|
branches: [master, dev] |
||||||
|
pull_request: |
||||||
|
schedule: |
||||||
|
# run CI every day even if no PRs/merges occur |
||||||
|
- cron: '0 12 * * *' |
||||||
|
|
||||||
|
concurrency: |
||||||
|
group: ${{ github.workflow }}-${{ github.ref }} |
||||||
|
cancel-in-progress: true |
||||||
|
|
||||||
|
jobs: |
||||||
|
tests: |
||||||
|
runs-on: ${{ matrix.os }} |
||||||
|
strategy: |
||||||
|
fail-fast: false |
||||||
|
matrix: |
||||||
|
os: ["ubuntu-latest", "windows-2022"] |
||||||
|
type: ["unit", "integration", "tool"] |
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v3 |
||||||
|
- name: Set up Python 3.8 |
||||||
|
uses: actions/setup-python@v4 |
||||||
|
with: |
||||||
|
python-version: 3.8 |
||||||
|
cache: "pip" |
||||||
|
cache-dependency-path: setup.py |
||||||
|
|
||||||
|
- name: Install dependencies |
||||||
|
run: | |
||||||
|
pip install ".[test]" |
||||||
|
solc-select install 0.8.0 |
||||||
|
solc-select use 0.8.0 |
||||||
|
|
||||||
|
- name: Setup node |
||||||
|
uses: actions/setup-node@v3 |
||||||
|
with: |
||||||
|
node-version: '16' |
||||||
|
cache: 'npm' |
||||||
|
cache-dependency-path: '**/package-lock.json' |
||||||
|
|
||||||
|
- name: Install test dependencies |
||||||
|
run: | |
||||||
|
if [ ${{ matrix.type }} = "tool" ]; then |
||||||
|
# Setup Ganache for slither-read-storage tests. |
||||||
|
npm install --global ganache |
||||||
|
elif [ ${{ matrix.type }} = "integration" ]; then |
||||||
|
# Setup Hardhat for compilation tests. |
||||||
|
pushd tests/e2e/compilation/test_data/test_node_modules/ || exit |
||||||
|
npm install hardhat |
||||||
|
popd || exit |
||||||
|
fi |
||||||
|
|
||||||
|
- name: Run ${{ matrix.type }} tests |
||||||
|
env: |
||||||
|
TEST_TYPE: ${{ matrix.type }} |
||||||
|
# Only run coverage on ubuntu-latest. |
||||||
|
run: | |
||||||
|
if [ ${{ matrix.os }} = "ubuntu-latest" ]; then |
||||||
|
TEST_ARGS="--cov=slither --cov-append" |
||||||
|
elif [ ${{ matrix.os }} = "windows-2022" ]; then |
||||||
|
TEST_ARGS="" |
||||||
|
fi |
||||||
|
bash "./.github/scripts/${TEST_TYPE}_test_runner.sh" $TEST_ARGS |
||||||
|
|
||||||
|
|
||||||
|
- name: Upload coverage |
||||||
|
uses: ./.github/actions/upload-coverage |
||||||
|
# only aggregate test coverage over linux-based tests to avoid any OS-specific filesystem information stored in |
||||||
|
# coverage metadata. |
||||||
|
if: ${{ matrix.os == 'ubuntu-latest' }} |
||||||
|
|
||||||
|
coverage: |
||||||
|
needs: |
||||||
|
- tests |
||||||
|
|
||||||
|
runs-on: ubuntu-latest |
||||||
|
|
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v3 |
||||||
|
- name: Set up Python 3.8 |
||||||
|
uses: actions/setup-python@v4 |
||||||
|
with: |
||||||
|
python-version: 3.8 |
||||||
|
|
||||||
|
- run: pip install coverage[toml] |
||||||
|
|
||||||
|
- name: download coverage data |
||||||
|
uses: actions/download-artifact@v3.0.2 |
||||||
|
with: |
||||||
|
name: coverage-data |
||||||
|
|
||||||
|
- name: combine coverage data |
||||||
|
id: combinecoverage |
||||||
|
run: | |
||||||
|
set +e |
||||||
|
python -m coverage combine |
||||||
|
echo "## python coverage" >> $GITHUB_STEP_SUMMARY |
||||||
|
python -m coverage report -m --format=markdown >> $GITHUB_STEP_SUMMARY |
@ -1,32 +0,0 @@ |
|||||||
[ |
|
||||||
[ |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 96, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
7 |
|
||||||
], |
|
||||||
"starting_column": 18, |
|
||||||
"ending_column": 21 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.4.25/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "02545af9e98ed496f7c9e2b2de0f66bcf8e8e31c25a2a2626b5bad92619b1f85", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
} |
|
||||||
] |
|
||||||
] |
|
@ -1,32 +0,0 @@ |
|||||||
[ |
|
||||||
[ |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 96, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
7 |
|
||||||
], |
|
||||||
"starting_column": 18, |
|
||||||
"ending_column": 21 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.5.16/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "d347f1cb6d791b00f8a6ad65c201eeaa527636f2bf2c5529102441c56e994b33", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
} |
|
||||||
] |
|
||||||
] |
|
@ -1,32 +0,0 @@ |
|||||||
[ |
|
||||||
[ |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 96, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
7 |
|
||||||
], |
|
||||||
"starting_column": 18, |
|
||||||
"ending_column": 21 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.6.11/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "2cc2fa8e55fae035ed2ebc4798c488d64e92c7c9875fe6699e39103c0b95c264", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
} |
|
||||||
] |
|
||||||
] |
|
@ -1,88 +0,0 @@ |
|||||||
[ |
|
||||||
[ |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 336, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
8 |
|
||||||
], |
|
||||||
"starting_column": 14, |
|
||||||
"ending_column": 17 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 336:\n\t- b' /*ok \\xe2\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "2407672dea557be27d0c488ba9c714e6a7f21dd3f7759058e718c1984e142f95", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 348, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
8 |
|
||||||
], |
|
||||||
"starting_column": 26, |
|
||||||
"ending_column": 29 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 348:\n\t- b'\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "477e54031d4d30d485b9cdc2d7ef3e9ae3de52640364505df8eb9619c2bcde6b", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"elements": [ |
|
||||||
{ |
|
||||||
"type": "other", |
|
||||||
"name": "rtlo-character", |
|
||||||
"source_mapping": { |
|
||||||
"start": 342, |
|
||||||
"length": 3, |
|
||||||
"filename_relative": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"filename_absolute": "/GENERIC_PATH", |
|
||||||
"filename_short": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol", |
|
||||||
"is_dependency": false, |
|
||||||
"lines": [ |
|
||||||
8 |
|
||||||
], |
|
||||||
"starting_column": 20, |
|
||||||
"ending_column": 23 |
|
||||||
} |
|
||||||
} |
|
||||||
], |
|
||||||
"description": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"markdown": "tests/detectors/rtlo/0.8.0/unicode_direction_override.sol contains a unicode right-to-left-override character at byte offset 342:\n\t- b'\\x80\\xaeaaa\\xe2\\x80\\xaebbb\\xe2\\x80\\xaeccc\\xe2\\x80\\xacddd\\xe2\\x80\\xaceee\\xe2\\x80\\xac*/'\n", |
|
||||||
"first_markdown_element": "", |
|
||||||
"id": "9dd23585bb0ff1f244f749281b27f62978e0bb5b0ae58c8c9cb6d3f9c7e82253", |
|
||||||
"check": "rtlo", |
|
||||||
"impact": "High", |
|
||||||
"confidence": "High" |
|
||||||
} |
|
||||||
] |
|
||||||
] |
|
@ -0,0 +1,3 @@ |
|||||||
|
artifacts/ |
||||||
|
cache/ |
||||||
|
node_modules/ |
@ -1,6 +1,6 @@ |
|||||||
module.exports = { |
module.exports = { |
||||||
solidity: { |
solidity: { |
||||||
version: "0.8.0" |
version: "0.8.1" |
||||||
}, |
}, |
||||||
} |
} |
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue