Add compability to current formalism to short_channel_id-to-txid.sh

* Add compatibility with the new shortchannelid syntax with x as separator

* Add an error message in case the parse failed, instead of receveing an unrelated error from the bitcoin-cli
This commit is contained in:
Luca Ambrosini 2019-10-04 02:38:52 +02:00 committed by Rusty Russell
parent fa686c5ca7
commit 11124fa3bf

View File

@ -2,14 +2,27 @@
set -e
if [ "$#" != 1 ]; then
echo Usage: "$0" "short:channel:id" >&2
if [ "$#" != 1 ]
then
echo Usage: "$0" "shortchannelid (e.g. 532046x1702x0 or 532046:1702:0)" >&2
echo Uses bitcoin-cli to extract the actual txid >&2
exit 1
fi
BLOCK=$(echo "$1" | cut -d: -f1)
TXNUM=$(echo "$1" | cut -d: -f2)
# Try to segment using both x and : as delimiters (compatibility with the old shortchannelid standard)
BLOCK=$(echo "$1" | cut -dx -f1)
TXNUM=$(echo "$1" | cut -dx -f2)
if [ "$BLOCK" = "$1" ] && [ "$TXNUM" = "$1" ]
then
BLOCK=$(echo "$1" | cut -d: -f1)
TXNUM=$(echo "$1" | cut -d: -f2)
fi
if [ "$BLOCK" = "$1" ] && [ "$TXNUM" = "$1" ]
then
echo The provided shortchannelid is invalid. Valid examples: 532046x1702x0 or 532046:1702:0 >&2
exit 1
fi
bitcoin-cli getblock "$(bitcoin-cli getblockhash "$BLOCK")" true | grep '^ "' | head -n "$((TXNUM + 1))" | tail -n 1 | tr -dc '0-9a-f\n'