70 lines
1.7 KiB
Bash
Executable File
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 -
|