2018-08-23 17:59:35 +02:00
#!/bin/bash
2021-09-02 12:34:30 +02:00
trap 'rm -f "$_temp"' EXIT
trap 'rm -f "$_error"' EXIT
2021-03-16 21:43:34 +01:00
_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 ..."
2018-12-03 16:16:12 +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
2021-08-04 00:18:30 +02:00
if [ ${# network } -eq 0 ] ; then network = $( cat .network) ; fi
2019-01-25 21:56:24 +01:00
if [ ${# network } -eq 0 ] ; then network = "bitcoin" ; fi
2018-12-03 16:16:12 +01:00
if [ ${# chain } -eq 0 ] ; then
2021-08-04 00:18:30 +02:00
chain = $( $bitcoincli_alias getblockchaininfo | jq -r '.chain' )
2018-12-03 16:16:12 +01:00
fi
2018-08-23 17:59:35 +02:00
2021-08-04 00:18:30 +02:00
source <( /home/admin/config.scripts/network.aliases.sh getvars $1 $2 )
2018-12-03 16:16:12 +01:00
# check if user has money in lightning channels - info about close all
2021-09-26 11:30:09 +02:00
if [ $LNTYPE = cl ] ; then
2021-08-04 00:18:30 +02:00
ln_getInfo = $( $lightningcli_alias getinfo 2>/dev/null)
ln_channels_online = " $( echo " ${ ln_getInfo } " | jq -r '.num_active_channels' ) " 2>/dev/null
2021-09-26 11:30:09 +02:00
cl_num_inactive_channels = " $( echo " ${ ln_getInfo } " | jq -r '.num_inactive_channels' ) " 2>/dev/null
openChannels = $(( ln_channels_online+cl_num_inactive_channels))
2021-08-04 00:18:30 +02:00
elif [ $LNTYPE = lnd ] ; then
openChannels = $( $lncli_alias listchannels 2>/dev/null | jq '.[] | length' )
fi
2018-12-03 16:16:12 +01:00
if [ ${# openChannels } -eq 0 ] ; then
2018-12-03 17:02:32 +01:00
clear
2018-12-03 16:16:12 +01:00
echo "*** IMPORTANT **********************************"
2021-08-04 00:18:30 +02:00
echo " It looks like $LNTYPE is not responding. "
2018-12-03 16:16:12 +01:00
echo "Still starting up, is locked or is not running?"
2021-08-04 00:18:30 +02:00
echo "Try later, try reboot or run command: debug"
2018-12-03 16:16:12 +01:00
echo "************************************************"
2019-04-16 00:53:29 +02:00
echo "Press ENTER to return to main menu."
read key
2021-08-04 00:18:30 +02:00
exit 0
2018-12-03 16:16:12 +01:00
fi
2019-04-15 20:17:17 +02:00
2018-12-03 16:16:12 +01:00
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 23:21:27 +02:00
if [ $? -eq 1 ] ; then
2021-08-04 00:18:30 +02:00
exit 0
2019-04-15 23:21:27 +02:00
fi
2019-04-15 23:32:47 +02:00
echo "..."
2018-12-03 16:16:12 +01:00
fi
2018-08-23 17:59:35 +02:00
2018-12-03 16:16:12 +01:00
# check if money is waiting to get confirmed
2021-09-26 11:30:09 +02:00
if [ $LNTYPE = cl ] ; then
2021-08-04 00:18:30 +02:00
ln_walletbalance_wait = 0
2021-09-26 11:30:09 +02:00
cl_listfunds = $( $lightningcli_alias listfunds 2>/dev/null)
for i in $( echo " $cl_listfunds " \
2021-08-04 00:18:30 +02:00
| 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
2018-12-03 16:16:12 +01:00
if [ ${ unconfirmed } -gt 0 ] ; then
2019-04-16 01:00:26 +02: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 23:21:27 +02:00
if [ $? -eq 1 ] ; then
2021-08-04 00:18:30 +02:00
exit 0
2019-04-15 23:21:27 +02:00
fi
2019-04-15 23:32:47 +02:00
echo "..."
2018-12-03 16:16:12 +01:00
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 23:32:47 +02: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"
2021-08-04 00:18:30 +02:00
exit 0
2018-12-03 16:59:45 +01:00
fi
2018-08-23 17:59:35 +02:00
address = $( cat $_temp | xargs)
2020-05-02 11:32:04 +02:00
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-16 00:53:29 +02:00
echo "Press ENTER to return to main menu."
read key
2021-08-04 00:18:30 +02:00
exit 0
2018-08-23 17:59:35 +02:00
fi
clear
echo "******************************"
2019-04-15 23:32:47 +02:00
echo "Sweep all possible Funds"
2018-08-23 17:59:35 +02:00
echo "******************************"
2018-12-03 21:32:29 +01:00
2021-12-14 23:34:35 +01:00
# raise high focus on onchain wallet balance & pending for the next 15min
2021-12-20 20:26:34 +01:00
/home/admin/_cache.sh focus ln_${ LNTYPE } _${ chain } net_wallet_onchain_pending 0 900
/home/admin/_cache.sh focus ln_${ LNTYPE } _${ chain } net_wallet_onchain_balance 0 900
2021-12-14 23:34:35 +01:00
2019-04-15 20:17:17 +02:00
# execute command
2021-09-26 11:30:09 +02:00
if [ ${ LNTYPE } = "cl" ] ; then
2021-08-04 00:18:30 +02:00
# withdraw destination satoshi [feerate] [minconf] [utxos]
command = " $lightningcli_alias withdraw ${ address } all slow "
elif [ ${ LNTYPE } = "lnd" ] ; then
command = " $lncli_alias sendcoins --sweepall --addr= ${ address } --conf_target=36 "
fi
2019-04-15 20:17:17 +02:00
echo " $command "
result = $( $command 2>$_error )
2021-08-04 00:18:30 +02:00
error = $( cat ${ _error } )
echo
2019-04-15 23:46:04 +02:00
if [ ${# error } -gt 0 ] ; then
2019-04-15 23:32:47 +02:00
echo " FAIL: $error "
2021-08-04 00:18:30 +02:00
echo
2019-04-15 20:17:17 +02:00
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
2019-04-15 23:32:47 +02:00
echo "FAIL --> Was not able to send transaction (see error above)"
2019-04-15 20:17:17 +02:00
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
2019-04-15 23:32:47 +02:00
else
echo " Result: $result "
2021-08-04 00:18:30 +02:00
echo
2019-04-15 20:17:17 +02:00
echo "********************************************************************"
2019-04-15 23:32:47 +02:00
fi
2021-08-04 00:18:30 +02:00
echo
2019-04-16 00:53:29 +02:00
echo "Press ENTER to return to main menu."
read key