create, sign and publish a nostr event from event.json

function eventp(){
  c=$(date +%s)
  e=$(cat event.json)
  e=$(echo $e | jq '.pubkey="'$(noscl public)'"')
  e=$(echo $e | jq '.created_at='$c)
  #se=$(echo "[0,\"$(noscl public)\",$c,$(echo $e | jq -r .kind),$(echo $e | jq -c .tags),$(echo $e | jq .content)]")
  #se=$(echo 'evt='$e'; se=JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content]); console.log(se)' | node)
  #h=$(echo "$se" | shasum -a 256 | grep -oP "^\S+")
  #h=$(node event-hash.js "$e")
  #e=$(echo $e | jq '.id="'$h'"')
  #s=$(noscl sign "$e" | tail -n 1 | xargs)
  #e=$(echo $e | jq '.sign="'$s'"')
  e=$(node nostr-tool-test.mjs "$e");
  echo '["EVENT",'$e']' | websocat wss://nos.lol
  id=$(echo $e | jq -r .id)
  echo $id
  key-convertr --kind note $id
}

nostr-tool-test.js

import { generatePrivateKey, getPublicKey } from 'nostr-tools'
import { validateEvent, verifySignature, getSignature, getEventHash, finishEvent } from 'nostr-tools'

let sk = generatePrivateKey()
let pk = getPublicKey(sk)

let event = JSON.parse(process.argv[2])
event.id = getEventHash(event)
event.sig = getSignature(event, sk)
let evt_signed = finishEvent(event, sk)

console.log(JSON.stringify(evt_signed))
Edit

Pub: 25 Nov 2023 10:42 UTC

Edit: 25 Nov 2023 13:24 UTC

Views: 52