* Update NDK to v2.12.2 * Fix NWC with @nostr-dev-kit/ndk-wallet * Add test for nip-57 zap receipts
63 lines
1.6 KiB
Bash
63 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# https://github.com/nostr-protocol/nips/blob/master/57.md
|
|
set -e
|
|
|
|
# test user with attached wallet
|
|
# TODO: attach wallet to test01 via psql if not already attached?
|
|
USERNAME=test01
|
|
|
|
# XXX this should match NOSTR_PRIVATE_KEY in .env.development
|
|
NOSTR_PRIVATE_KEY=5f30b7e7714360f51f2be2e30c1d93b7fdf67366e730658e85777dfcc4e4245f
|
|
NOSTR_PUBLIC_KEY=$(nak key public $NOSTR_PRIVATE_KEY)
|
|
|
|
SINCE=$(date +%s)
|
|
|
|
function create_event() {
|
|
nak event -k 9734 \
|
|
--tag p=$NOSTR_PUBLIC_KEY \
|
|
--tag 'relays=wss://relay.primal.net' \
|
|
--tag amount=100000
|
|
}
|
|
|
|
function url_encode() {
|
|
cat - | jq -sRr @uri
|
|
}
|
|
|
|
function test_exit() {
|
|
if [ $1 -eq 0 ]; then
|
|
echo "worker publishes nip-57 zap receipts: PASSED"
|
|
else
|
|
echo "worker publishes nip-57 zap receipts: FAILED"
|
|
fi
|
|
exit $1
|
|
}
|
|
|
|
create_event | nak verify
|
|
|
|
# create a zap request event (kind 9734)
|
|
EVENT="$(create_event)"
|
|
|
|
echo "generated zap request event:"
|
|
echo "$EVENT" | jq
|
|
|
|
echo $EVENT | nak verify
|
|
|
|
# XXX make sure amount is higher than dust limit of receiver's wallet
|
|
echo -n "sending zap request event LNURL endpoint ... "
|
|
PR=$(curl -s "http://localhost:3000/api/lnurlp/$USERNAME/pay?amount=100000&nostr=$(echo $EVENT | url_encode)" | jq -r .pr)
|
|
echo "OK"
|
|
|
|
[ "$PR" == "null" ] && echo "error: LNURL endpoint did not return bolt11" && test_exit 1
|
|
echo $PR
|
|
|
|
sndev fund --cln $PR
|
|
|
|
# subscribe to zap receipt event (kind 9735)
|
|
echo -n "waiting for zap receipt event ... "
|
|
sleep 3
|
|
PR2=$(nak -q req -k 9735 -p $NOSTR_PUBLIC_KEY --limit 1 wss://relay.primal.net | jq -r '.tags[] | select(.[0] == "bolt11") | .[1]')
|
|
echo "OK"
|
|
|
|
[ "$PR" == "$PR2" ] && test_exit 0 || test_exit 1
|