Skip to content

Commit

Permalink
Chat Genaric interactor connected
Browse files Browse the repository at this point in the history
  • Loading branch information
flypaper0 committed Sep 1, 2022
1 parent fca1b49 commit 8cef57d
Show file tree
Hide file tree
Showing 23 changed files with 298 additions and 425 deletions.
77 changes: 77 additions & 0 deletions .swiftpm/xcode/xcshareddata/xcschemes/WalletConnectChat.xcscheme
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1340"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectChat"
BuildableName = "WalletConnectChat"
BlueprintName = "WalletConnectChat"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ChatTests"
BuildableName = "ChatTests"
BlueprintName = "ChatTests"
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "WalletConnectChat"
BuildableName = "WalletConnectChat"
BlueprintName = "WalletConnectChat"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
17 changes: 4 additions & 13 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,11 @@ let package = Package(
path: "Sources/WalletConnectSign"),
.target(
name: "Chat",
dependencies: ["WalletConnectRelay", "WalletConnectUtils", "WalletConnectKMS"],
dependencies: ["WalletConnectNetworking"],
path: "Sources/Chat"),
.target(
name: "Auth",
dependencies: [
"WalletConnectPairing",
"WalletConnectNetworking",
.product(name: "Web3", package: "Web3.swift")
],
dependencies: ["WalletConnectPairing", "WalletConnectNetworking", .product(name: "Web3", package: "Web3.swift")],
path: "Sources/Auth"),
.target(
name: "WalletConnectRelay",
Expand All @@ -68,12 +64,7 @@ let package = Package(
dependencies: []),
.target(
name: "WalletConnectNetworking",
dependencies: [
"JSONRPC",
"WalletConnectKMS",
"WalletConnectRelay",
"WalletConnectUtils",
]),
dependencies: ["JSONRPC", "WalletConnectKMS", "WalletConnectRelay", "WalletConnectUtils"]),
.target(
name: "WalletConnectRouter",
dependencies: []),
Expand All @@ -94,7 +85,7 @@ let package = Package(
dependencies: ["WalletConnectKMS", "WalletConnectUtils", "TestingUtils"]),
.target(
name: "TestingUtils",
dependencies: ["WalletConnectUtils", "WalletConnectKMS", "JSONRPC", "WalletConnectPairing"],
dependencies: ["WalletConnectPairing", "WalletConnectNetworking"],
path: "Tests/TestingUtils"),
.testTarget(
name: "WalletConnectUtilsTests",
Expand Down
3 changes: 2 additions & 1 deletion Sources/Auth/AuthClientFactory.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public struct AuthClientFactory {
pendingRequestsProvider: pendingRequestsProvider,
cleanupService: cleanupService,
logger: logger,
pairingStorage: pairingStore, socketConnectionStatusPublisher: relayClient.socketConnectionStatusPublisher)
pairingStorage: pairingStore,
socketConnectionStatusPublisher: relayClient.socketConnectionStatusPublisher)
}
}
7 changes: 4 additions & 3 deletions Sources/Chat/ChatClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import Foundation
import WalletConnectUtils
import WalletConnectKMS
import WalletConnectRelay
import WalletConnectNetworking
import Combine

public class ChatClient {
Expand All @@ -16,7 +17,7 @@ public class ChatClient {
private let kms: KeyManagementService
private let threadStore: Database<Thread>
private let messagesStore: Database<Message>
private let invitePayloadStore: CodableStore<(RequestSubscriptionPayload)>
private let invitePayloadStore: CodableStore<RequestSubscriptionPayload>

public let socketConnectionStatusPublisher: AnyPublisher<SocketConnectionStatus, Never>

Expand Down Expand Up @@ -47,7 +48,7 @@ public class ChatClient {
kms: KeyManagementService,
threadStore: Database<Thread>,
messagesStore: Database<Message>,
invitePayloadStore: CodableStore<(RequestSubscriptionPayload)>,
invitePayloadStore: CodableStore<RequestSubscriptionPayload>,
socketConnectionStatusPublisher: AnyPublisher<SocketConnectionStatus, Never>
) {
self.registry = registry
Expand Down Expand Up @@ -121,7 +122,7 @@ public class ChatClient {
public func getInvites(account: Account) -> [Invite] {
var invites = [Invite]()
invitePayloadStore.getAll().forEach {
guard case .invite(let invite) = $0.request.params else {return}
guard let invite = try? $0.request.params?.get(Invite.self) else {return}
invites.append(invite)
}
return invites
Expand Down
10 changes: 6 additions & 4 deletions Sources/Chat/ChatClientFactory.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import Foundation
import WalletConnectRelay
import WalletConnectUtils
import WalletConnectKMS
import WalletConnectNetworking

public struct ChatClientFactory {

Expand All @@ -10,17 +11,18 @@ public struct ChatClientFactory {
relayClient: RelayClient,
kms: KeyManagementService,
logger: ConsoleLogging,
keyValueStorage: KeyValueStorage) -> ChatClient {
keyValueStorage: KeyValueStorage
) -> ChatClient {
let topicToRegistryRecordStore = CodableStore<RegistryRecord>(defaults: keyValueStorage, identifier: StorageDomainIdentifiers.topicToInvitationPubKey.rawValue)
let serialiser = Serializer(kms: kms)
let jsonRpcHistory = JsonRpcHistory<ChatRequestParams>(logger: logger, keyValueStore: CodableStore<JsonRpcRecord>(defaults: keyValueStorage, identifier: StorageDomainIdentifiers.jsonRpcHistory.rawValue))
let networkingInteractor = NetworkingInteractor(relayClient: relayClient, serializer: serialiser, logger: logger, jsonRpcHistory: jsonRpcHistory)
let rpcHistory = RPCHistory(keyValueStore: CodableStore<RPCHistory.Record>(defaults: keyValueStorage, identifier: StorageDomainIdentifiers.jsonRpcHistory.rawValue))
let networkingInteractor = NetworkingInteractor(relayClient: relayClient, serializer: serialiser, logger: logger, rpcHistory: rpcHistory)
let invitePayloadStore = CodableStore<RequestSubscriptionPayload>(defaults: keyValueStorage, identifier: StorageDomainIdentifiers.invite.rawValue)
let registryService = RegistryService(registry: registry, networkingInteractor: networkingInteractor, kms: kms, logger: logger, topicToRegistryRecordStore: topicToRegistryRecordStore)
let threadStore = Database<Thread>(keyValueStorage: keyValueStorage, identifier: StorageDomainIdentifiers.threads.rawValue)
let resubscriptionService = ResubscriptionService(networkingInteractor: networkingInteractor, threadStore: threadStore, logger: logger)
let invitationHandlingService = InvitationHandlingService(registry: registry, networkingInteractor: networkingInteractor, kms: kms, logger: logger, topicToRegistryRecordStore: topicToRegistryRecordStore, invitePayloadStore: invitePayloadStore, threadsStore: threadStore)
let inviteService = InviteService(networkingInteractor: networkingInteractor, kms: kms, threadStore: threadStore, logger: logger)
let inviteService = InviteService(networkingInteractor: networkingInteractor, kms: kms, threadStore: threadStore, rpcHistory: rpcHistory, logger: logger)
let leaveService = LeaveService()
let messagesStore = Database<Message>(keyValueStorage: keyValueStorage, identifier: StorageDomainIdentifiers.messages.rawValue)
let messagingService = MessagingService(networkingInteractor: networkingInteractor, messagesStore: messagesStore, threadStore: threadStore, logger: logger)
Expand Down
122 changes: 0 additions & 122 deletions Sources/Chat/NetworkingInteractor.swift

This file was deleted.

4 changes: 3 additions & 1 deletion Sources/Chat/ProtocolServices/Common/File.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import Foundation
import WalletConnectUtils
import Combine
import WalletConnectRelay
import WalletConnectUtils
import WalletConnectNetworking

class ResubscriptionService {
private let networkingInteractor: NetworkInteracting
Expand Down
Loading

0 comments on commit 8cef57d

Please sign in to comment.