2023-06-19 14:46:53 +02:00
|
|
|
#!/usr/bin/env bash
|
2023-01-30 10:32:30 +01:00
|
|
|
set -e
|
2023-01-30 14:35:14 +01:00
|
|
|
|
2023-01-30 17:44:34 +01:00
|
|
|
root=$(cd $(dirname "$0")/.. && pwd)
|
2023-06-19 11:36:21 +02:00
|
|
|
arch=$(arch)
|
2023-01-30 17:44:34 +01:00
|
|
|
|
2023-05-30 15:38:08 +02:00
|
|
|
if command -v echidna; then
|
2023-01-30 14:35:14 +01:00
|
|
|
fuzz () {
|
2023-05-30 15:38:08 +02:00
|
|
|
echidna ${root} \
|
2023-01-30 17:44:34 +01:00
|
|
|
--config ${root}/fuzzing/echidna.yaml \
|
|
|
|
--corpus-dir ${root}/fuzzing/corpus \
|
2023-02-28 16:32:47 +01:00
|
|
|
--crytic-args --ignore-compile \
|
2023-01-30 14:35:14 +01:00
|
|
|
--contract $1
|
|
|
|
}
|
2023-06-19 11:36:21 +02:00
|
|
|
elif [ "${arch}" = "x86_64" ]; then
|
2023-01-30 14:35:14 +01:00
|
|
|
fuzz () {
|
|
|
|
docker run \
|
|
|
|
--rm \
|
2023-01-30 17:44:34 +01:00
|
|
|
-v ${root}:/src ghcr.io/crytic/echidna/echidna \
|
2023-01-30 14:35:14 +01:00
|
|
|
bash -c \
|
2023-05-30 15:38:08 +02:00
|
|
|
"cd /src && echidna . \
|
2023-01-30 14:35:14 +01:00
|
|
|
--config fuzzing/echidna.yaml \
|
2023-01-30 17:44:34 +01:00
|
|
|
--corpus-dir fuzzing/corpus \
|
2023-01-30 14:35:14 +01:00
|
|
|
--crytic-args --ignore-compile \
|
|
|
|
--contract $1"
|
|
|
|
}
|
2023-06-19 11:36:21 +02:00
|
|
|
else
|
|
|
|
echo "Error: echidna not found, and the docker image does not support ${arch}"
|
|
|
|
echo "Please install echidna: https://github.com/crytic/echidna#installation"
|
|
|
|
exit 1
|
2023-01-30 14:35:14 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
fuzz FuzzMarketplace
|