raspiblitz/home.admin/BBcreateInvoice.sh

98 lines
2.7 KiB
Bash
Raw Normal View History

2018-08-09 14:58:44 +02:00
#!/bin/bash
_temp="./download/dialog.$$"
_error="./.error.out"
2018-10-20 11:07:20 +02:00
sudo chmod 7777 ${_error}
2018-08-09 14:58:44 +02:00
2018-12-05 16:19:06 +01:00
# load raspiblitz config data (with backup from old config)
2019-02-02 23:49:04 +01:00
source /home/admin/raspiblitz.info
source /mnt/hdd/raspiblitz.conf
2018-12-05 16:19:06 +01:00
if [ ${#network} -eq 0 ]; then network=`cat .network`; fi
if [ ${#network} -eq 0 ]; then network="bitcoin"; fi
2018-12-05 16:19:06 +01:00
if [ ${#chain} -eq 0 ]; then
echo "gathering chain info ... please wait"
chain=$(${network}-cli getblockchaininfo | jq -r '.chain')
fi
2018-08-09 14:58:44 +02:00
echo ""
echo "*** Precheck ***"
# check if chain is in sync
2018-12-05 16:19:06 +01:00
chainInSync=$(lncli --chain=${network} --network=${chain}net getinfo | grep '"synced_to_chain": true' -c)
2018-08-09 14:58:44 +02:00
if [ ${chainInSync} -eq 0 ]; then
echo "!!!!!!!!!!!!!!!!!!!"
echo "FAIL - 'lncli getinfo' shows 'synced_to_chain': false"
echo "Wait until chain is sync with LND and try again."
echo "!!!!!!!!!!!!!!!!!!!"
echo ""
exit 1
fi
# check number of connected peers
echo "check for open channels"
2018-12-05 16:19:06 +01:00
openChannels=$(sudo -u bitcoin /usr/local/bin/lncli --chain=${network} --network=${chain}net listchannels 2>/dev/null | grep chan_id -c)
2018-08-09 14:58:44 +02:00
if [ ${openChannels} -eq 0 ]; then
echo ""
echo "!!!!!!!!!!!!!!!!!!!"
echo "FAIL - You have NO ESTABLISHED CHANNELS .. open a channel first."
echo "!!!!!!!!!!!!!!!!!!!"
echo ""
exit 1
fi
# let user enter the invoice
l1="Enter the AMOUNT IN SATOSHI of the invoice:"
l2="1 ${network} = 100 000 000 SAT"
dialog --title "Pay thru Lightning Network" \
2018-08-09 15:06:06 +02:00
--inputbox "$l1\n$l2" 9 50 2>$_temp
2018-08-09 14:58:44 +02:00
amount=$(cat $_temp | xargs | tr -dc '0-9')
shred $_temp
if [ ${#amount} -eq 0 ]; then
echo "FAIL - not a valid input (${amount})"
exit 1
fi
# build command
2018-12-05 16:19:06 +01:00
command="lncli --chain=${network} --network=${chain}net addinvoice ${amount}"
2018-08-09 14:58:44 +02:00
# info output
clear
echo "******************************"
echo "Create Invoice / Payment Request"
echo "******************************"
echo ""
echo "COMMAND LINE: "
echo $command
echo ""
echo "RESULT:"
2018-08-09 15:08:39 +02:00
sleep 2
2018-08-09 14:58:44 +02:00
# execute command
result=$($command 2>$_error)
error=`cat ${_error}`
#echo "result(${result})"
#echo "error(${error})"
if [ ${#error} -gt 0 ]; then
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "FAIL"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "${error}"
else
echo "******************************"
echo "WIN"
echo "******************************"
2018-08-09 15:06:06 +02:00
echo "${result}"
2018-08-09 15:08:39 +02:00
echo ""
2018-08-09 15:06:54 +02:00
rhash=$(echo "$result" | grep r_hash | cut -d '"' -f4)
payReq=$(echo "$result" | grep pay_req | cut -d '"' -f4)
2018-08-09 15:06:06 +02:00
echo "Give this Invoice/PaymentRequest to someone to pay it:"
2018-08-09 15:09:25 +02:00
echo ""
2018-08-09 15:06:06 +02:00
echo ${payReq}
2018-08-09 15:08:39 +02:00
echo ""
2018-12-05 16:19:06 +01:00
echo "You can use 'lncli --chain=${network} --network=${chain}net lookupinvoice ${rhash}' to check the payment. "
2018-08-09 15:06:06 +02:00
# TODO: Offer to go into monitor for incommin payment loop.
2018-08-09 14:58:44 +02:00
fi
echo ""