#!/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"