#!/usr/bin/env bash
set -ex

export ETH_GAS=${ETH_GAS:-"7000000"}
unset SOLC_FLAGS

# Deploy Gov Polling Generator (no solc optimization)
cd contracts/gov-polling-generator
dapp build
GOV_POLL_GEN=$(dapp create GovPollingGenerator)

# tx=$(seth send --async "$GOV_POLL_GEN" 'createPoll()')

# test "$(seth receipt "$tx" status)" -eq 0 && exit 1
# number=$(seth --to-hex "$(seth receipt "$tx" blockNumber)")
# data=$(seth logs -B "$number" "$GOV_POLL_GEN" | jq -r '.data')

# POLL_ID="$((16#${data:2:64}))"
# VOTE_YES="0x${data:90:40}"
# VOTE_NO="0x${data:154:40}"

seth send "$GOV_POLL_GEN" 'createPoll()'
POLL_ID=$(seth call "$GOV_POLL_GEN" 'polli()(uint256)')
while IFS=$'\n' read -r line; do ADDRS+=("$line"); done < <(seth call "$GOV_POLL_GEN" 'polls(uint256)(address,address)' "$POLL_ID")
POLL_ID=$((16#$POLL_ID))
VOTE_YES="0x${ADDRS[0]}"
VOTE_NO="0x${ADDRS[1]}"

cd ../../

# Add new addresses to json file
cat >> ./out/addresses.tmp.json << EOF
{
    "GOV_POLL_GEN": "$GOV_POLL_GEN",
    "POLL_ID": "$POLL_ID",
    "VOTE_YES": "$VOTE_YES",
    "VOTE_NO": "$VOTE_NO"
}
EOF
result=$(jq -s add "./out/addresses.json" "./out/addresses.tmp.json")
cat > ./out/addresses.json << EOF
$result 
EOF

rm ./out/addresses.tmp.json

cp ./contracts/gov-polling-generator/out/GovPollingGenerator.abi ./out/abi

echo "POLL DEPLOYMENT COMPLETED SUCCESSFULLY"
