diff --git a/nip46/dynamic-signer.go b/nip46/dynamic-signer.go index 6beea76..8b8fca6 100644 --- a/nip46/dynamic-signer.go +++ b/nip46/dynamic-signer.go @@ -16,6 +16,9 @@ type DynamicSigner struct { // { [handlePubkey]: {[clientKey]: Session} } sessions map[nostr.PubKey]map[nostr.PubKey]Session + // used for switch_relays call + DefaultRelays []string + sync.Mutex // the handler is the keypair we use to communicate with the NIP-46 client, decrypt requests, encrypt responses etc @@ -203,6 +206,9 @@ func (p *DynamicSigner) HandleRequest(ctx context.Context, event nostr.Event) ( result = plaintext case "ping": result = "pong" + case "switch_relays": + j, _ := json.Marshal(p.DefaultRelays) + result = string(j) default: return req, resp, eventResponse, fmt.Errorf("unknown method '%s'", req.Method) diff --git a/nip46/static-key-signer.go b/nip46/static-key-signer.go index 90e5008..49c9c3f 100644 --- a/nip46/static-key-signer.go +++ b/nip46/static-key-signer.go @@ -20,6 +20,9 @@ type StaticKeySigner struct { sync.Mutex AuthorizeRequest func(harmless bool, from nostr.PubKey, secret string) bool + + // used for switch_relays call + DefaultRelays []string } func NewStaticKeySigner(secretKey [32]byte) StaticKeySigner { @@ -204,6 +207,9 @@ func (p *StaticKeySigner) HandleRequest(_ context.Context, event nostr.Event) ( case "ping": result = "pong" harmless = true + case "switch_relays": + j, _ := json.Marshal(p.DefaultRelays) + result = string(j) default: return req, resp, eventResponse, fmt.Errorf("unknown method '%s'", req.Method)