early concept v1
This commit is contained in:
86
accept_deal.sh
Executable file
86
accept_deal.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user