diff --git a/nip46/create_account.go b/nip46/create_account.go deleted file mode 100644 index 3ecc18d..0000000 --- a/nip46/create_account.go +++ /dev/null @@ -1,82 +0,0 @@ -package nip46 - -import ( - "context" - "fmt" - - "github.com/nbd-wtf/go-nostr" - "github.com/nbd-wtf/go-nostr/nip04" - "github.com/nbd-wtf/go-nostr/nip05" -) - -func CheckNameAvailability(ctx context.Context, name, domain string) bool { - result, _, err := nip05.Fetch(ctx, name+"@"+domain) - if err != nil { - return false - } - _, ok := result.Names[name] - return !ok -} - -type CreateAccountOptions struct { - Email string -} - -func CreateAccount( - ctx context.Context, - clientSecretKey string, - name string, - domain string, - pool *nostr.SimplePool, - extraOpts *CreateAccountOptions, - onAuth func(string), -) (*BunkerClient, []string, error) { - if pool == nil { - pool = nostr.NewSimplePool(ctx) - } - - // create a bunker that targets the provider directly - providerPubkey, relays, err := queryWellKnownNostrJson(ctx, "_@"+domain) - if err != nil { - return nil, nil, err - } - - bunker := NewBunker( - ctx, - clientSecretKey, - providerPubkey, - relays, - pool, - onAuth, - ) - - _, err = bunker.RPC(ctx, "connect", []string{providerPubkey, ""}) - if err != nil { - return nil, relays, fmt.Errorf("initial connect error: %w", err) - } - - // call create_account on it, it should return the value of the public key that will be created - email := "" - if extraOpts != nil { - email = extraOpts.Email - } - resp, err := bunker.RPC(ctx, "create_account", []string{name, domain, email}) - if err != nil { - return nil, relays, fmt.Errorf("error on create_account: %w", err) - } - - newlyCreatedPublicKey := resp - - // update this bunker instance so it targets the new key now instead of the provider - bunker.target = newlyCreatedPublicKey - bunker.sharedSecret, _ = nip04.ComputeSharedSecret(newlyCreatedPublicKey, clientSecretKey) - bunker.getPublicKeyResponse = newlyCreatedPublicKey - - // finally try to connect again using the new key as the target - _, err = bunker.RPC(ctx, "connect", []string{newlyCreatedPublicKey, ""}) - if err != nil { - return bunker, relays, fmt.Errorf("newly-created public key connect error: %w", err) - } - - return bunker, relays, err -}