2020-06-18 19:46:04 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
echo Getting node IDs
|
|
|
|
alice_address=$(docker-compose exec -T Alice lncli -n regtest getinfo | jq .identity_pubkey)
|
|
|
|
bob_address=$(docker-compose exec -T Bob lightning-cli getinfo | jq .id)
|
|
|
|
wei_address=$(docker-compose exec -T Wei eclair-cli -s -j -p eclair getinfo| jq .nodeId)
|
|
|
|
gloria_address=$(docker-compose exec -T Gloria lncli -n regtest getinfo | jq .identity_pubkey)
|
|
|
|
|
2020-06-27 14:54:28 +00:00
|
|
|
# The jq command returns JSON strings enclosed in double-quote characters
|
|
|
|
# These will confuse the shell later, because double-quotes have special
|
|
|
|
# meaning in a bash script.
|
|
|
|
|
|
|
|
# We remove the double-quote character by using the shell string manipulation
|
|
|
|
# expression: // removes the " character. Even here, we have to escape the "
|
|
|
|
# character with a backslash because otherwise bash will interpret it as a
|
|
|
|
# string closure.
|
|
|
|
# A bit messy, but it works!
|
2020-06-18 19:46:04 +00:00
|
|
|
alice_address=${alice_address//\"}
|
|
|
|
bob_address=${bob_address//\"}
|
|
|
|
wei_address=${wei_address//\"}
|
|
|
|
gloria_address=${gloria_address//\"}
|
|
|
|
|
2020-06-27 14:54:28 +00:00
|
|
|
# Let's tell everyone what we found!
|
2020-06-18 19:46:04 +00:00
|
|
|
echo Alice: ${alice_address}
|
|
|
|
echo Bob: ${bob_address}
|
|
|
|
echo Wei: ${wei_address}
|
|
|
|
echo Gloria: ${gloria_address}
|
|
|
|
|
|
|
|
echo Setting up channels...
|
|
|
|
echo Alice to Bob
|
|
|
|
docker-compose exec -T Alice lncli -n regtest connect ${bob_address}@Bob
|
|
|
|
docker-compose exec -T Alice lncli -n regtest openchannel ${bob_address} 1000000
|
|
|
|
|
|
|
|
echo Bob to Wei
|
|
|
|
docker-compose exec -T Bob lightning-cli connect ${wei_address}@Wei
|
|
|
|
docker-compose exec -T Bob lightning-cli fundchannel ${wei_address} 1000000
|
|
|
|
|
|
|
|
echo Wei to Gloria
|
|
|
|
docker-compose exec -T Wei eclair-cli -p eclair connect --uri=${gloria_address}@Gloria
|
|
|
|
docker-compose exec -T Wei eclair-cli -p eclair open --nodeId=${gloria_address} --fundingSatoshis=1000000
|
|
|
|
|
|
|
|
echo Get 10k sats invoice from Gloria
|
|
|
|
gloria_invoice=$(docker-compose exec -T Gloria lncli -n regtest addinvoice 10000 | jq .payment_request )
|
|
|
|
|
|
|
|
# Remove quotes
|
|
|
|
gloria_invoice=${gloria_invoice//\"}
|
|
|
|
echo Gloria invoice ${gloria_invoice}
|
|
|
|
|
2020-06-19 14:38:36 +00:00
|
|
|
echo Wait for channel establishment - 60 seconds for 6 blocks
|
2020-06-19 14:19:12 +00:00
|
|
|
sleep 60
|
2020-06-19 14:38:36 +00:00
|
|
|
|
2020-06-18 19:46:04 +00:00
|
|
|
echo Alice pays Gloria 10k sats, routed around the network
|
|
|
|
docker-compose exec -T Alice lncli -n regtest payinvoice --json --inflight_updates -f ${gloria_invoice}
|