Files
early-concept/judge.sh
2024-04-23 13:56:26 +03:00

70 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -xue
. ./config.sh
PREV_ID=$(cat "$DEALS_PREV_MESSAGE_ID_FOR_JUDGE" || echo "")
NEW_PREV_ID_FILE="${DEALS_PREV_MESSAGE_ID_FOR_JUDGE}.new"
TEXT_FILE="${DEALS_BASE}/judge_message.txt.asc"
SENDER_FILE="${DEALS_BASE}/judge_sender.txt"
python get_bm_message.py \
--to-address "$DEALS_JUDGE_BM_DESTINATION" \
--from-address "$SENDER_FILE" \
--prev-id "$PREV_ID" \
--output-id "$NEW_PREV_ID_FILE" \
--output-text "$TEXT_FILE"
if [ ! -f "$NEW_PREV_ID_FILE" ]; then
echo "No new messages"
exit 0
fi
mv "$NEW_PREV_ID_FILE" "$DEALS_PREV_MESSAGE_ID_FOR_JUDGE"
SENDER="$(cat "$SENDER_FILE" )"
if [ "$SENDER" != "$DEALS_JUDGE_BM_SOURCE" ]; then
echo "Sender is not our judge"
exit 1
fi
DEAL=$(grep 'deal:' "$TEXT_FILE" | sed 's/deal: //')
mkdir -p "$DEALS_JUDGE_MESSAGES"
TEXT_FILE_CONTENT="${DEALS_JUDGE_MESSAGES}/${DEAL}"
gpg -o "$TEXT_FILE_CONTENT" "$TEXT_FILE" 2> "${DEALS_BASE}/gpg_stderr.txt"
if ! grep "$DEALS_JUDGE_PGP" "${DEALS_BASE}/gpg_stderr.txt" ; then
echo "GPG check failed"
exit 1
fi
mkdir -p "$DEALS_FINISHED"
FINISHED_FILE="${DEALS_FINISHED}/${DEAL}"
if [ -f "$FINISHED_FILE" ] ; then
echo "Deal ${DEAL} has been jusged already"
exit 0
fi
touch "$FINISHED_FILE"
SEND_BTC=$(grep 'send_btc:' "$TEXT_FILE_CONTENT" | sed 's/send_btc: //')
BTC_ADDRESS_FILE="${DEALS_BASE}/${SEND_BTC}_btc/${DEAL}"
if [ ! -f "$BTC_ADDRESS_FILE" ] ; then
echo "File ${BTC_ADDRESS_FILE} does not exist"
exit 1
fi
BTC_ADDRESS="$(cat "$BTC_ADDRESS_FILE")"
INPUT_FILE="${DEALS_INPUTS_DB_ROOT}/${DEAL}"
AMOUNT=$(grep "amount: " "$INPUT_FILE" | sed "s/^amount: //" | sed 's/"//g' | sed "s/'//g" | sed "s/ BTC$//" )
$ELECTRUM payto "$BTC_ADDRESS" "$AMOUNT" | $ELECTRUM broadcast -