forked from mobiusAMM/mobiusV1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathverify.sh
37 lines (31 loc) · 1.25 KB
/
verify.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!bin/bash
# To use this script, first run ./verify.sh
# Then with the results:
# 1. Go to sourcify.dev
# 2. Add metadata.json from build/metadata/<ContractName>/metadata.json to the upload dialog
# 3. Add all files in sources-flattened-dir to the dialog
# 4. Set the contract address and upload
ROOTDIR="$(pwd)/$(dirname $0)"
SOURCES_DIR=$ROOTDIR/sources-flattened-dir
mkdir -p "$SOURCES_DIR"
cp -R contracts/ $SOURCES_DIR/contracts/
CONTRACTS=(
"contracts/Swap.sol"
"contracts/SwapUtils.sol"
"contracts/MathUtils.sol"
)
for CONTRACT in ${CONTRACTS[@]}; do
echo "$CONTRACT"
CBASENAME=$(basename $CONTRACT)
CBASE=${CBASENAME%.sol}
CONTRACT_DIR=$ROOTDIR/build/metadata/$CBASE/
mkdir -p "$CONTRACT_DIR"
docker run -v "$SOURCES_DIR/:/sources" -w /sources ethereum/solc:0.6.12 \
--optimize --optimize-runs 5000 \
--combined-json abi,bin,bin-runtime,compact-format,devdoc,hashes,interface,metadata "$CONTRACT" \
| jq ".contracts | to_entries | map(select(.key | contains(\":$CBASE\"))) | first | .value " \
> $CONTRACT_DIR/artifact.json
cat $CONTRACT_DIR/artifact.json | jq -r ".metadata" > $CONTRACT_DIR/metadata.json
done
cp -R $SOURCES_DIR/contracts/**/*.sol "$SOURCES_DIR"
rm -fr $SOURCES_DIR/contracts/