You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.7 KiB

6 years ago
#!/bin/bash
_temp="./download/dialog.$$"
_error="./.error.out"
6 years ago
6 years ago
echo "please wait ..."
# load raspiblitz config data (with backup from old config)
source /mnt/hdd/raspiblitz.conf 2>/dev/null
if [ ${#network} -eq 0 ]; then network=`cat .network`; fi
if [ ${#chain} -eq 0 ]; then
chain=$(${network}-cli -datadir=/home/bitcoin/.${network} getblockchaininfo | jq -r '.chain')
fi
6 years ago
# check if user has money in lightning channels - info about close all
openChannels=$(lncli --chain=${network} listchannels 2>/dev/null | jq '.[] | length')
if [ ${#openChannels} -eq 0 ]; then
6 years ago
clear
echo "*** IMPORTANT **********************************"
echo "It looks like LND is not responding."
echo "Still starting up, is locked or is not running?"
echo "Try later, try reboot or check ./XXdebugLogs.sh"
echo "************************************************"
exit 1
fi
if [ ${openChannels} -gt 0 ]; then
dialog --title 'Info' --msgbox 'You still have funds in open Lightning Channels.\nUse CLOSEALL first if you want to cashout all funds.\nNOTICE: Just confirmed on-chain funds can be moved.' 7 58
6 years ago
echo "please wait ..."
fi
6 years ago
# check if money is waiting to get confirmed
unconfirmed=$(lncli --chain=${network} walletbalance | grep '"unconfirmed_balance"' | cut -d '"' -f4)
if [ ${unconfirmed} -gt 0 ]; then
dialog --title 'Info' --msgbox "Still waiting confirmation for ${unconfirmed} sat.\nNOTICE: Just confirmed on-chain funds can be moved." 6 58
6 years ago
echo "please wait ..."
fi
6 years ago
# get available amount in on-chain wallet
maxAmount=$(lncli --chain=${network} walletbalance | grep '"confirmed_balance"' | cut -d '"' -f4)
6 years ago
if [ ${maxAmount} -eq 0 ]; then
dialog --title 'Info' --msgbox "You have 0 moveable funds available.\nNOTICE: Just confirmed on-chain funds can be moved." 6 58
exit 1
fi
6 years ago
# let user enter the amount
#l1="Enter the amount of funds you want to send/remove:"
#l2="You have max available: ${maxAmount} sat"
#l3="If you enter nothing, all funds available will be send."
#dialog --title "Remove Funds from RaspiBlitz" \
#--inputbox "$l1\n$l2\n$l3" 10 60 2>$_temp
#if test $? -eq 0
#then
# echo "ok pressed"
#else
# echo "cancel pressed"
# exit 1
#fi
#amount=$(cat $_temp | xargs)
#shred $_temp
#if [ ${#amount} -eq 0 ]; then
6 years ago
amount=${maxAmount}
#fi
6 years ago
# let user enter the address
l1="Enter on-chain address to send confirmed funds to:"
6 years ago
l2="You will send: ${amount} sat to that address"
dialog --title "Where to send funds?" \
--inputbox "$l1\n$l2" 8 75 2>$_temp
if test $? -eq 0
then
echo "ok pressed"
else
echo "cancel pressed"
exit 1
fi
6 years ago
address=$(cat $_temp | xargs)
shred $_temp
if [ ${#address} -eq 0 ]; then
echo "FAIL - not a valid address (${address})"
exit 1
fi
# TODO: check address is valid for network and chain
echo "UNDER CONSTRUCTION"
tryAgain=1
count=0
while [ ${tryAgain} -eq 1 ]
do
echo "amount(${amount}) count(${count})"
amount=expr $amount - 1000
count=expr $count + 1
if [ ${count} -gt 10 ]; then tryAgain=0; fi
done
exit 1
6 years ago
# TODO: check if fees are getting done right so that transaction will get processed
command="lncli --chain=${network} sendcoins --addr ${address} --amt ${amount} --conf_target 3"
6 years ago
clear
echo "******************************"
6 years ago
echo "Send on-chain Funds"
6 years ago
echo "******************************"
echo ""
6 years ago
# execute command
if [ ${#command} -gt 0 ]; then
result=$($command)
fi
insufficient funds available to construct transaction
6 years ago
# on no result
if [ ${#result} -eq 0 ]; then
echo "Sorry something went wrong - thats unusual."
echo ""
exit 1
fi
# when result is available
echo "$result"
# TODO: check if all cashed out (0 funds + 0 channels) -> let user knwo its safe to update/reset RaspiBlitz
echo "OK. That worked :)"
6 years ago
echo ""