diff --git a/home.admin/config.scripts/bonus.lndconnect.sh b/home.admin/config.scripts/bonus.lndconnect.sh index c848924f0..76975b322 100755 --- a/home.admin/config.scripts/bonus.lndconnect.sh +++ b/home.admin/config.scripts/bonus.lndconnect.sh @@ -4,10 +4,17 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "# config script to connect mobile apps with lnd connect" echo "# will autodetect dyndns, sshtunnel or TOR" - echo "# bonus.lndconnect.sh [zap-ios|zap-android|zeus-ios|zeus-android|shango-ios|shango-android|sendmany-android|fullynoded-lnd] [?ip|tor]" + echo "# bonus.lndconnect.sh [zap-ios|zap-android|zeus-ios|zeus-android|shango-ios|shango-android|sendmany-android|fullynoded-lnd] [?ip|tor] [?key-value]" exit 1 fi +# check if lnd is on +source <(/home/admin/_cache.sh get lnd) +if [ "${lnd}" != on ]; then + echo "error='lnd not active'" + exit 1 +fi + # make sure commandline tool is available sudo apt-get install -y qrencode 1>/dev/null 2>/dev/null @@ -206,6 +213,11 @@ fi # see spec here: https://github.com/LN-Zap/lndconnect/blob/master/lnd_connect_uri.md lndconnect="lndconnect://${host}:${port}${macaroonParameter}${certParameter}" +if [ "$3" == "key-value" ]; then + echo "lndconnect='${lndconnect}'" + exit 0 +fi + # display qr code image on LCD sudo /home/admin/config.scripts/blitz.display.sh qr "${lndconnect}" diff --git a/home.admin/config.scripts/cl.rest.sh b/home.admin/config.scripts/cl.rest.sh index 7a31bec7f..1a500ef0a 100644 --- a/home.admin/config.scripts/cl.rest.sh +++ b/home.admin/config.scripts/cl.rest.sh @@ -12,7 +12,7 @@ if [ $# -eq 0 ]||[ "$1" = "-h" ]||[ "$1" = "--help" ];then echo "The same macaroon and certs will be used for the parallel networks" echo echo "Usage:" - echo "cl.rest.sh [on|off|connect] " + echo "cl.rest.sh [on|off|connect] [?key-value]" echo exit 1 fi @@ -23,14 +23,24 @@ echo "# Running 'cl.rest.sh $*'" if [ "$1" = connect ];then echo "# Allowing port ${portprefix}6100 through the firewall" - sudo ufw allow "${portprefix}6100" comment "${netprefix}clrest" + sudo ufw allow "${portprefix}6100" comment "${netprefix}clrest" 1>/dev/null localip=$(ip addr | grep 'state UP' -A2 | grep -E -v 'docker0|veth' | grep 'eth0\|wlan0\|enp0' | tail -n1 | awk '{print $2}' | cut -f1 -d'/') # hidden service to https://xx.onion - /home/admin/config.scripts/tor.onion-service.sh ${netprefix}clrest 443 ${portprefix}6100 + /home/admin/config.scripts/tor.onion-service.sh ${netprefix}clrest 443 ${portprefix}6100 1>/dev/null toraddress=$(sudo cat /mnt/hdd/tor/${netprefix}clrest/hostname) hex_macaroon=$(xxd -plain /home/bitcoin/c-lightning-REST/certs/access.macaroon | tr -d '\n') url="https://${localip}:${portprefix}6100/" + lndconnect="lndconnect://${toraddress}:443?macaroon=${hex_macaroon}" + + if [ "$3" == "key-value" ]; then + echo "toraddress='${toraddress}'" + echo "local='${url}'" + echo "macaroon='${hex_macaroon}'" + echo "connectstring='${lndconnect}'" + exit 0 + fi + #string="${url}?${hex_macaroon}" #sudo /home/admin/config.scripts/blitz.display.sh qr "$string" #clear diff --git a/home.admin/config.scripts/lnd.export.sh b/home.admin/config.scripts/lnd.export.sh index e62e8df43..22c2c5990 100755 --- a/home.admin/config.scripts/lnd.export.sh +++ b/home.admin/config.scripts/lnd.export.sh @@ -3,10 +3,17 @@ # command info if [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "tool to export macaroons & tls.cert" - echo "lnd.export.sh [hexstring|scp|http|btcpay]" + echo "lnd.export.sh [hexstring|scp|http|btcpay] [?key-value]" exit 1 fi +# check if lnd is on +source <(/home/admin/_cache.sh get lnd) +if [ "${lnd}" != on ]; then + echo "error='lnd not active'" + exit 1 +fi + # 1. parameter -> the type of export exportType=$1 @@ -59,13 +66,14 @@ if [ ${#exportType} -eq 0 ]; then ######################## elif [ "${exportType}" = "hexstring" ]; then + adminMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/admin.macaroon) + invoiceMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/invoice.macaroon) + readonlyMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/readonly.macaroon) clear echo "###### HEXSTRING EXPORT ######" echo "" - adminMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/admin.macaroon) echo "adminMacaroon=${adminMacaroon}" echo "" - invoiceMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/invoice.macaroon) echo "invoiceMacaroon=${invoiceMacaroon}" echo "" readonlyMacaroon=$(sudo xxd -ps -u -c 1000 /mnt/hdd/lnd/data/chain/${network}/${chain}net/readonly.macaroon) @@ -80,6 +88,13 @@ elif [ "${exportType}" = "hexstring" ]; then ######################## elif [ "${exportType}" = "btcpay" ]; then + # lnd needs to be unlocked + source <(/home/admin/_cache.sh get ln_lnd_mainnet_locked) + if [ "${ln_lnd_mainnet_locked}" == "1" ]; then + echo "error='lnd wallet needs to be unlocked'" + exit 1 + fi + # take public IP as default # TODO: IP2TOR --> check if there is a forwarding for LND REST oe ask user to set one up #ip="${publicIP}" @@ -101,6 +116,11 @@ elif [ "${exportType}" = "btcpay" ]; then # construct connection string connectionString="type=lnd-rest;server=https://${ip}:${port}/;macaroon=${macaroon};certthumbprint=${certthumb}" + if [ "$2" == "key-value" ]; then + echo "connectionString='${connectionString}'" + exit 1 + fi + clear echo "###### BTCPAY CONNECTION STRING ######" echo "" diff --git a/home.admin/config.scripts/tor.onion-service.sh b/home.admin/config.scripts/tor.onion-service.sh index 85568708d..81ee451af 100755 --- a/home.admin/config.scripts/tor.onion-service.sh +++ b/home.admin/config.scripts/tor.onion-service.sh @@ -102,8 +102,8 @@ HiddenServicePort $toPort 127.0.0.1:$fromPort" | sudo tee -a "${torrc_services}" sudo cp "${torrc_services}" /var/cache/raspiblitz/tmp sudo chmod 777 /var/cache/raspiblitz/tmp sudo chown -R admin:admin /var/cache/raspiblitz/tmp - sudo awk 'NF > 0 {blank=0} NF == 0 {blank++} blank < 2' "${torrc_services}" > /var/cache/raspiblitz/tmp - sudo mv /var/cache/raspiblitz/tmp "${torrc_services}" + sudo awk 'NF > 0 {blank=0} NF == 0 {blank++} blank < 2' "${torrc_services}" > /var/cache/raspiblitz/tmp/services + sudo mv /var/cache/raspiblitz/tmp/services "${torrc_services}" sudo chmod 644 "${torrc_services}" sudo chown bitcoin:bitcoin "${torrc_services}"