Files
cyphernode/proxy_docker/app/script/waitanyinvoice.sh

63 lines
2.2 KiB
Bash

#!/bin/sh
. ./trace.sh
. ./sql.sh
. ./callbacks_job.sh
ln_waitanyinvoice() {
trace "Entering ln_waitanyinvoice()..."
local lastpay_index=${1}
trace "[ln_waitanyinvoice] lastpay_index=${lastpay_index}"
local returncode
local result
local bolt11
local pay_index
local row
local id
local callback_url
#{
# "label": "Duvapk2OWvlmL3kf5GyDF",
# "bolt11": "lnbc1546230n1pwzanfspp5t5jr3rsjkh37986nzkta8kk0yyzam833l5e4an5nu6cyhjcjluwqdq9u2d2zxqr3jscqp2rzjqt04ll5ft3mcuy8hws4xcku2pnhma9r9mavtjtadawyrw5kgzp7g7zr745qq3mcqqyqqqqlgqqqqqzsqpclrjg6vtg4cmqj46przdgwp6rk0xmzfa7ga3wnm4h4evzxy3z32aqw77av65cz2mgcf02dak3vl25epq90dw289zz9x87dyjy6nqvchsq6p8nmj",
# "payment_hash": "5d24388e12b5e3e29f531597d3dacf2105dd9e31fd335ece93e6b04bcb12ff1c",
# "msatoshi": 154623000,
# "status": "paid",
# "pay_index": 12,
# "msatoshi_received": 154623000,
# "paid_at": 1546571113,
# "description": "...",
# "expires_at": 1546589056
#},
result=$(./lightning-cli waitanyinvoice ${lastpay_index})
returncode=$?
trace_rc ${returncode}
trace "[ln_waitanyinvoice] result=${result}"
if [ "${returncode}" -eq "0" ]; then
bolt11=$(echo "${result}" | jq ".bolt11" | tr -d '"')
pay_index=$(echo "${result}" | jq ".pay_index" | tr -d '"')
msatoshi_received=$(echo "${result}" | jq ".msatoshi_received" | tr -d '"')
status=$(echo "${result}" | jq ".status" | tr -d '"')
paid_at=$(echo "${result}" | jq ".paid_at" | tr -d '"')
sql "UPDATE ln_invoice SET status=\"${status}\", pay_index=${pay_index}, msatoshi_received=${msatoshi_received}, paid_at=${paid_at} WHERE bolt11=\"${bolt11}\""
row=$(sql "SELECT id, label, bolt11, callback_url, payment_hash, msatoshi, status, pay_index, msatoshi_received, paid_at, description, expires_at FROM ln_invoice WHERE NOT calledback AND bolt11=\"${bolt11}\"")
if [ -n "${row}" ]; then
ln_manage_callback ${row}
fi
sql "UPDATE cyphernode_props SET value="${pay_index}" WHERE property=\"pay_index\""
fi
}
while :
do
pay_index=$(sql "SELECT value FROM cyphernode_props WHERE property='pay_index'")
trace "[waitanyinvoice] pay_index=${pay_index}"
ln_waitanyinvoice ${pay_index}
sleep 5
done