Fixed a few bugs that the AI made. Replace the private key, file, and relay vars with your stuff, compile with "go build", and it should work

Reply to this note

Please Login to reply.

Discussion

TY . Will try now. I am on a mini family vacation

No rush. Enjoy.

If it doesn't compile, ask the AI to fix it. Probably about err :=

how do you compile it? I checked out that GO repo, put a file called logger.go with your code

You got the compiler installed?

Yes

Make a folder like /home/verita84/go/src/nostrlogger then run "go mod init" inside. Then "go build logger.go". It may ask to run go get

If all is well, it should create a binary file named logger which you can put in your bin folder

root@nas:~/go/src/nostrlogger# go run nostrlogger.go

# command-line-arguments

./nostrlogger.go:14:2: undefined: sk

./nostrlogger.go:16:17: undefined: nostr.DerivePublicKey

./nostrlogger.go:16:33: undefined: sk

./nostrlogger.go:18:19: undefined: nostr.EncodePrivateKey

./nostrlogger.go:18:36: undefined: sk

./nostrlogger.go:20:19: undefined: nostr.EncodePublicKey

./nostrlogger.go:34:3: unknown field Type in struct literal of type nostr.Event

./nostrlogger.go:35:3: unknown field Payload in struct literal of type nostr.Event

./nostrlogger.go:39:3: unknown field Timestamp in struct literal of type nostr.Event

./nostrlogger.go:40:14: undefined: sk

./nostrlogger.go:40:14: too many errors

Oops. Change to sk :=

:= is declaration, = is just assignment

That solved that error.

# command-line-arguments

./nostrlogger.go:16:17: undefined: nostr.DerivePublicKey

./nostrlogger.go:18:19: undefined: nostr.EncodePrivateKey

./nostrlogger.go:20:19: undefined: nostr.EncodePublicKey

./nostrlogger.go:34:3: unknown field Type in struct literal of type nostr.Event

./nostrlogger.go:35:3: unknown field Payload in struct literal of type nostr.Event

./nostrlogger.go:39:3: unknown field Timestamp in struct literal of type nostr.Event

./nostrlogger.go:40:3: unknown field Signature in struct literal of type nostr.Event

./nostrlogger.go:40:17: sk.Sign undefined (type string has no field or method Sign)

./nostrlogger.go:45:14: undefined: nostr.Publish

Did you run

go get github.com/nbd-wtf/go-nostr

?

Yes

undefined: nostr.DerivePublicKey

nostr is never defined anywhere

import ... go-nostr should define it. 🤔

Let me try to compile it in termux

Looks like your nsec section shoud be like this?

pk, _ := nostr.GetPublicKey(sk)

nsec, _ := nip19.EncodePrivateKey(sk)

npub, _ := nip19.EncodePublicKey(pk)

Does this compile?

It moves on

Looks like the entite event section is wrong too. Nothing like the sample

Need to read the code for .Publish() to see how to construct the event struct for DM

It's KindEncryptedDirectMessage. This is the struct. nip4.go has encryption functions

ev := nostr.Event{

PubKey: pub,

CreatedAt: nostr.Now(),

Kind: KindEncryptedDirectMessage,

Tags: nil,

Content: need to encrypt this,

}