Skip to content

Commit 7389830

Browse files
Generate Rune bug fix #8
Generate Rune bug fix #8
1 parent 1474688 commit 7389830

File tree

1 file changed

+45
-20
lines changed

1 file changed

+45
-20
lines changed

entrypoint.sh

+45-20
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
EXISTING_PUBKEY=""
33
GETINFO_RESPONSE=""
44
LIGHTNING_RPC=$CORE_LIGHTNING_PATH"/$APP_CORE_LIGHTNING_BITCOIN_NETWORK""/lightning-rpc"
5-
COMMANDO_CONFIG="$COMMANDO_CONFIG"
6-
7-
echo "$LIGHTNING_RPC"
85

96
getinfo_request() {
107
cat <<EOF
@@ -21,7 +18,7 @@ commando_rune_request() {
2118
cat <<EOF
2219
{
2320
"jsonrpc": "2.0",
24-
"id": 1,
21+
"id": 2,
2522
"method": "commando-rune",
2623
"params": [null, [["For Application#"]]]
2724
}
@@ -32,28 +29,53 @@ commando_datastore_request() {
3229
cat <<EOF
3330
{
3431
"jsonrpc": "2.0",
35-
"id": 1,
32+
"id": 3,
3633
"method": "datastore",
3734
"params": [["commando", "runes", "$UNIQUE_ID"], "$RUNE"]
3835
}
3936
EOF
4037
}
4138

4239
generate_new_rune() {
43-
# Send 'commando-rune' request
44-
RUNE_RESPONSE=$( (echo "$(commando_rune_request)"; sleep 1) | socat - UNIX-CONNECT:"$LIGHTNING_RPC")
45-
RUNE=$(echo "$RUNE_RESPONSE" | jq -r '.result.rune')
46-
UNIQUE_ID=$(echo "$RUNE_RESPONSE" | jq -r '.result.unique_id')
47-
# Save rune in env file
48-
echo "LIGHTNING_RUNE=\"$RUNE\"" >> $COMMANDO_CONFIG
49-
echo "$RUNE"
50-
# This will fail for v>23.05
51-
DATASTORE_RESPONSE=$( (echo "$(commando_datastore_request)"; sleep 1) | socat - UNIX-CONNECT:"$LIGHTNING_RPC") > /dev/null
40+
COUNTER=0
41+
RUNE=""
42+
while { [ "$RUNE" = "" ] || [ "$RUNE" = "null" ]; } && [ $COUNTER -lt 10 ]; do
43+
# Send 'commando-rune' request
44+
echo "Generating rune attempt: $COUNTER"
45+
COUNTER=$((COUNTER+1))
46+
47+
RUNE_RESPONSE=$( (echo "$(commando_rune_request)"; sleep 2) | socat - UNIX-CONNECT:"$LIGHTNING_RPC")
48+
49+
RUNE=$(echo "$RUNE_RESPONSE" | jq -r '.result.rune')
50+
UNIQUE_ID=$(echo "$RUNE_RESPONSE" | jq -r '.result.unique_id')
51+
echo "RUNE_RESPONSE"
52+
echo "$RUNE_RESPONSE"
53+
echo "RUNE"
54+
echo "$RUNE"
55+
56+
if [ "$RUNE" != "" ] && [ "$RUNE" != "null" ]; then
57+
# Save rune in env file
58+
echo "LIGHTNING_RUNE=\"$RUNE\"" >> "$COMMANDO_CONFIG"
59+
fi
60+
61+
if [ "$UNIQUE_ID" != "" ] && [ "$UNIQUE_ID" != "null" ]; then
62+
# This will fail for v>23.05
63+
DATASTORE_RESPONSE=$( (echo "$(commando_datastore_request)"; sleep 1) | socat - UNIX-CONNECT:"$LIGHTNING_RPC") > /dev/null
64+
fi
65+
done
66+
if [ $COUNTER -eq 10 ] && [ "$RUNE" = "" ]; then
67+
echo "Error: Unable to generate rune for application authentication!"
68+
fi
5269
}
5370

5471
# Read existing pubkey
5572
if [ -f "$COMMANDO_CONFIG" ]; then
56-
EXISTING_PUBKEY=$(head -n1 $COMMANDO_CONFIG)
73+
EXISTING_PUBKEY=$(head -n1 "$COMMANDO_CONFIG")
74+
EXISTING_RUNE=$(sed -n "2p" "$COMMANDO_CONFIG")
75+
echo "EXISTING_PUBKEY"
76+
echo "$EXISTING_PUBKEY"
77+
echo "EXISTING_RUNE"
78+
echo "$EXISTING_RUNE"
5779
fi
5880

5981
# Getinfo from CLN
@@ -69,11 +91,14 @@ LIGHTNING_PUBKEY="$(jq -n "$GETINFO_RESPONSE" | jq -r '.result.id')"
6991
echo "$LIGHTNING_PUBKEY"
7092

7193
# Compare existing pubkey with current
72-
if [ "$EXISTING_PUBKEY" != "LIGHTNING_PUBKEY=\"$LIGHTNING_PUBKEY\"" ]; then
73-
# Pubkey changed; rewrite new data on the file.
74-
echo "Pubkey mismatched; Rewriting the data."
75-
cat /dev/null > $COMMANDO_CONFIG
76-
echo "LIGHTNING_PUBKEY=\"$LIGHTNING_PUBKEY\"" >> $COMMANDO_CONFIG
94+
if [ "$EXISTING_PUBKEY" != "LIGHTNING_PUBKEY=\"$LIGHTNING_PUBKEY\"" ] ||
95+
[ "$EXISTING_RUNE" = "" ] ||
96+
[ "$EXISTING_RUNE" = "LIGHTNING_RUNE=\"\"" ] ||
97+
[ "$EXISTING_RUNE" = "LIGHTNING_RUNE=\"null\"" ]; then
98+
# Pubkey changed or missing rune; rewrite new data on the file.
99+
echo "Pubkey mismatched or missing rune; Rewriting the data."
100+
cat /dev/null > "$COMMANDO_CONFIG"
101+
echo "LIGHTNING_PUBKEY=\"$LIGHTNING_PUBKEY\"" >> "$COMMANDO_CONFIG"
77102
generate_new_rune
78103
else
79104
echo "Pubkey matches with existing pubkey."

0 commit comments

Comments
 (0)