87 lines
2.6 KiB
Bash
Executable File
87 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -xue
|
|
|
|
. ./config.sh
|
|
|
|
PREV_ID=$(cat "$DEALS_PREV_MESSAGE_ID_FOR_ACCEPT" || echo "")
|
|
|
|
NEW_PREV_ID_FILE="${DEALS_PREV_MESSAGE_ID_FOR_ACCEPT}.new"
|
|
TEXT_FILE="${DEALS_BASE}/accept_message.txt"
|
|
SENDER_FILE="${DEALS_BASE}/sender.txt"
|
|
|
|
python get_bm_message.py \
|
|
--to-address "$DEALS_BM_TO_ACCEPT_DEALS" \
|
|
--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
|
|
|
|
# BM message id is used as deal ID.
|
|
DEAL_ID=$(cat "$NEW_PREV_ID_FILE")
|
|
|
|
mv "$NEW_PREV_ID_FILE" "$DEALS_PREV_MESSAGE_ID_FOR_ACCEPT"
|
|
|
|
mkdir -p "$DEALS_INPUTS_DB_ROOT"
|
|
INPUT_FILE="${DEALS_INPUTS_DB_ROOT}/${DEAL_ID}"
|
|
|
|
mv "$TEXT_FILE" "$INPUT_FILE"
|
|
|
|
PAYER_BTC=$(grep "payer_btc: " "$INPUT_FILE" | sed "s/^payer_btc: //" | sed 's/"//g' | sed "s/'//g")
|
|
PAYEE_BTC=$(grep "payee_btc: " "$INPUT_FILE" | sed "s/^payee_btc: //" | sed 's/"//g' | sed "s/'//g")
|
|
AMOUNT=$(grep "amount: " "$INPUT_FILE" | sed "s/^amount: //" | sed 's/"//g' | sed "s/'//g" | sed "s/ BTC$//" )
|
|
MEMO="deposit for deal ${DEAL_ID}"
|
|
|
|
mkdir -p "$DEALS_PAYER_BTC"
|
|
mkdir -p "$DEALS_PAYEE_BTC"
|
|
echo "$PAYER_BTC" > "${DEALS_PAYER_BTC}/${DEAL_ID}"
|
|
echo "$PAYEE_BTC" > "${DEALS_PAYEE_BTC}/${DEAL_ID}"
|
|
|
|
NOW=$(date +"%s")
|
|
NOW_STR=$(date -u "-d@${NOW}")
|
|
EXPIRATION=$(($NOW + $DEALS_DEPOSIT_TIMEOUT))
|
|
EXPIRATION_STR=$(date -u "-d@${EXPIRATION}")
|
|
|
|
mkdir -p "$DEALS_REQUEST_DB_ROOT"
|
|
REQUEST_FILE="${DEALS_REQUEST_DB_ROOT}/${DEAL_ID}"
|
|
|
|
if [ -f "$REQUEST_FILE" ] ; then
|
|
echo "File ${REQUEST_FILE} already exists"
|
|
exit 1
|
|
fi
|
|
|
|
$ELECTRUM addrequest "$AMOUNT" -m "$MEMO" --expiration "$DEALS_DEPOSIT_TIMEOUT" > "$REQUEST_FILE"
|
|
|
|
DEPOSIT_ADDRESS=$(cat "$REQUEST_FILE" | grep '"address": ' | sed 's/"address": //' | sed 's/[ ",]//g')
|
|
|
|
APPROVED_DEAL="${DEALS_BASE}/approved_deal.txt"
|
|
cp "$INPUT_FILE" "$APPROVED_DEAL"
|
|
echo '' >> "$APPROVED_DEAL"
|
|
echo "deal: ${DEAL_ID}" >> "$APPROVED_DEAL"
|
|
echo "to_bitcoin: ${DEPOSIT_ADDRESS}" >> "$APPROVED_DEAL"
|
|
echo "date: '${NOW_STR}'" >> "$APPROVED_DEAL"
|
|
echo "pay_until: '${EXPIRATION_STR}'" >> "$APPROVED_DEAL"
|
|
|
|
mkdir -p "$DEALS_SIGNED_APPROVED_DEALS_DB_ROOT"
|
|
SIGNED_FILE="${DEALS_SIGNED_APPROVED_DEALS_DB_ROOT}/${DEAL_ID}"
|
|
|
|
if [ -f "$SIGNED_FILE" ] ; then
|
|
echo "File ${SIGNED_FILE} already exists"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$DEALS_DEAL_SENDERS"
|
|
cp "$SENDER_FILE" "${DEALS_DEAL_SENDERS}/${DEAL_ID}"
|
|
|
|
gpg -o "$SIGNED_FILE" --sign-with="$DEALS_PGP_TO_ACK_DEAL" --clear-sign "$APPROVED_DEAL"
|
|
python send_bm_message.py \
|
|
--from-address "$DEALS_BM_TO_ACCEPT_DEALS" \
|
|
--to-address "$(cat "$SENDER_FILE" )" \
|
|
--subject "" \
|
|
--message-file "$SIGNED_FILE"
|