diff --git a/hostr/cmd/tools/resolvePubKey.go b/hostr/cmd/tools/resolvePubKey.go new file mode 100644 index 0000000..e3732dd --- /dev/null +++ b/hostr/cmd/tools/resolvePubKey.go @@ -0,0 +1,24 @@ +package tools + +import ( + "fmt" + + "github.com/nbd-wtf/go-nostr/nip19" +) + +func ResolvePubKey(npubOrHex string) (string, error) { + // npubから始まる場合はデコードする + if npubOrHex[0:4] == "npub" { + _, v, err := nip19.Decode(npubOrHex) + if err != nil { + return "", fmt.Errorf("Invalid npub") + } + return v.(string), nil + } else { + _, err := nip19.EncodePublicKey(npubOrHex) + if err != nil { + return "", fmt.Errorf("Invalid pubkey") + } + } + return npubOrHex, nil +}