raspiblitz/home.admin/BBcashoutWallet.sh

116 lines
3.9 KiB
Bash
Raw Normal View History

2018-08-23 17:59:35 +02:00
#!/bin/bash
_temp=$(mktemp -p /dev/shm/)
_error=$(mktemp -p /dev/shm/)
2018-08-23 17:59:35 +02:00
2018-12-03 17:02:32 +01:00
echo "please wait ..."
# 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
if [ ${#network} -eq 0 ]; then network=$(cat .network); fi
if [ ${#network} -eq 0 ]; then network="bitcoin"; fi
if [ ${#chain} -eq 0 ]; then
2021-07-05 23:42:55 +01:00
chain=$($bitcoincli_alias getblockchaininfo | jq -r '.chain')
fi
2018-08-23 17:59:35 +02:00
2021-07-05 23:42:55 +01:00
source <(/home/admin/config.scripts/network.aliases.sh getvars $1 $2)
# check if user has money in lightning channels - info about close all
2021-07-05 23:42:55 +01:00
if [ $LNTYPE = cln ];then
ln_getInfo=$($lightningcli_alias getinfo 2>/dev/null)
ln_channels_online="$(echo "${ln_getInfo}" | jq -r '.num_active_channels')" 2>/dev/null
cln_num_inactive_channels="$(echo "${ln_getInfo}" | jq -r '.num_inactive_channels')" 2>/dev/null
openChannels=$((ln_channels_online+cln_num_inactive_channels))
elif [ $LNTYPE = lnd ];then
openChannels=$($lncli_alias listchannels 2>/dev/null | jq '.[] | length')
fi
if [ ${#openChannels} -eq 0 ]; then
2018-12-03 17:02:32 +01:00
clear
echo "*** IMPORTANT **********************************"
2021-07-05 23:42:55 +01:00
echo "It looks like $LNTYPE is not responding."
echo "Still starting up, is locked or is not running?"
echo "Try later, try reboot or run command: debug"
echo "************************************************"
2019-04-15 23:53:29 +01:00
echo "Press ENTER to return to main menu."
read key
exit 1
fi
if [ ${openChannels} -gt 0 ]; then
2020-02-17 22:30:08 +01:00
whiptail --title 'Info' --yes-button='Cashout Anyway' --no-button='Go Back' --yesno '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.' 10 56
2019-04-15 22:21:27 +01:00
if [ $? -eq 1 ]; then
exit 1
fi
2019-04-15 22:32:47 +01:00
echo "..."
fi
2018-08-23 17:59:35 +02:00
# check if money is waiting to get confirmed
2021-07-05 23:42:55 +01:00
if [ $LNTYPE = cln ];then
ln_walletbalance_wait=0
cln_listfunds=$($lightningcli_alias listfunds 2>/dev/null)
for i in $(echo "$cln_listfunds" \
|jq .outputs[]|jq 'select(.status=="unconfirmed")'|grep value|awk '{print $2}'|cut -d, -f1);do
ln_walletbalance_wait=$((ln_walletbalance_wait+i))
done
unconfirmed=$ln_walletbalance_wait
elif [ $LNTYPE = lnd ];then
unconfirmed=$($lncli_alias walletbalance | grep '"unconfirmed_balance"' | cut -d '"' -f4)
fi
if [ ${unconfirmed} -gt 0 ]; then
2019-04-16 00:00:26 +01:00
whiptail --title 'Info' --yes-button='Cashout Anyway' --no-button='Go Back' --yesno "Still waiting confirmation for (some of) your funds.\nNOTICE: Just confirmed on-chain funds can be moved." 8 58
2019-04-15 22:21:27 +01:00
if [ $? -eq 1 ]; then
exit 1
fi
2019-04-15 22:32:47 +01:00
echo "..."
fi
2018-08-23 17:59:35 +02:00
# let user enter the address
2018-12-03 20:41:16 +01:00
l1="Enter on-chain address to send confirmed funds to:"
2019-04-15 22:32:47 +01:00
dialog --title "Where to send funds?" --inputbox "\n$l1\n" 9 75 2>$_temp
2018-12-03 16:59:45 +01:00
if test $? -eq 0
then
echo "ok pressed"
else
echo "cancel pressed"
exit 1
fi
2018-08-23 17:59:35 +02:00
address=$(cat $_temp | xargs)
shred -u $_temp
2018-08-23 17:59:35 +02:00
if [ ${#address} -eq 0 ]; then
echo "FAIL - not a valid address (${address})"
2019-04-15 23:53:29 +01:00
echo "Press ENTER to return to main menu."
read key
2018-08-23 17:59:35 +02:00
exit 1
fi
clear
echo "******************************"
2019-04-15 22:32:47 +01:00
echo "Sweep all possible Funds"
2018-08-23 17:59:35 +02:00
echo "******************************"
2018-12-03 21:32:29 +01:00
# execute command
2021-07-05 23:42:55 +01:00
if [ ${LNTYPE} = "cln" ];then
# TODO no easy way to sweep funds
# withdraw destination satoshi [feerate] [minconf] [utxos]
command="NOT IMPLEMENTED YET"
elif [ ${LNTYPE} = "lnd" ];then
command="$lncli_alias sendcoins --sweepall --addr=${address} --conf_target=36"
fi
echo "$command"
result=$($command 2>$_error)
2021-07-05 23:42:55 +01:00
error=$(cat ${_error})
echo
2019-04-15 22:46:04 +01:00
if [ ${#error} -gt 0 ]; then
2019-04-15 22:32:47 +01:00
echo "FAIL: $error"
2021-07-05 23:42:55 +01:00
echo
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
2019-04-15 22:32:47 +01:00
echo "FAIL --> Was not able to send transaction (see error above)"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
2019-04-15 22:32:47 +01:00
else
echo "Result: $result"
2021-07-05 23:42:55 +01:00
echo
echo "********************************************************************"
2019-04-15 22:32:47 +01:00
fi
2021-07-05 23:42:55 +01:00
echo
2019-04-15 23:53:29 +01:00
echo "Press ENTER to return to main menu."
read key