diff --git a/Sources/Auth/Auth.swift b/Sources/Auth/Auth.swift new file mode 100644 index 000000000..ab10c1f39 --- /dev/null +++ b/Sources/Auth/Auth.swift @@ -0,0 +1,26 @@ +import Foundation +import WalletConnectRelay +import Combine + +public class Auth { + + public static var instance: AuthClient = { + guard let config = Auth.config else { + fatalError("Error - you must call Auth.configure(_:) before accessing the shared instance.") + } + return AuthClientFactory.create( + metadata: config.metadata, + account: config.account, + relayClient: Relay.instance) + }() + + private static var config: Config? + + private init() { } + + static public func configure(metadata: AppMetadata, account: Account?) { + Auth.config = Auth.Config( + metadata: metadata, + account: account) + } +} diff --git a/Sources/Auth/AuthConfig.swift b/Sources/Auth/AuthConfig.swift new file mode 100644 index 000000000..b364ec507 --- /dev/null +++ b/Sources/Auth/AuthConfig.swift @@ -0,0 +1,8 @@ +import Foundation + +extension Auth { + struct Config { + let metadata: AppMetadata + let account: Account? + } +} diff --git a/Sources/Auth/Services/Wallet/WalletRequestSubscriber.swift b/Sources/Auth/Services/Wallet/WalletRequestSubscriber.swift index 633f2c76d..aa5cdde47 100644 --- a/Sources/Auth/Services/Wallet/WalletRequestSubscriber.swift +++ b/Sources/Auth/Services/Wallet/WalletRequestSubscriber.swift @@ -19,9 +19,7 @@ class WalletRequestSubscriber { self.logger = logger self.address = address self.messageFormatter = messageFormatter - if address != nil { - subscribeForRequest() - } + subscribeForRequest() } private func subscribeForRequest() {